【问题标题】:Adding Permissions to Claims - Microsoft.Identity.Web & B2C向声明添加权限 - Microsoft.Identity.Web 和 B2C
【发布时间】:2021-07-10 12:37:45
【问题描述】:

我想就如何将自定义声明添加到用户身份的任何文章/文档寻求建议或指导。我正在进行的项目是使用 Azure B2C 和 Microsoft.Identity.Web。

我正在寻找一种在网络应用程序中的网络请求期间添加自定义声明的可靠方法。该声明将包含从应用程序数据库获得的权限。所以我还需要一种方法来在请求之间存储该声明,这样我就不会在每次请求时都访问数据库。

存储在数据库中的角色和权限模型非常复杂和动态(由管理员管理),因此可以通过图形 API 在 B2C 中简单地存储自定义声明。

我正在考虑使用中间件进行声明转换:

  • 这对 Microsoft.Identity.Web 是否可行,还是我不应该这样做?

  • 仍然不确定如何在请求之间保留声明 - 在使用 Microsoft.Identity.Web 时有什么可靠的方法吗?

【问题讨论】:

    标签: asp.net-core azure-ad-b2c microsoft-identity-web


    【解决方案1】:

    如果您想在令牌中拥有权限,并且我认为这将是最佳方式,那么我会将用户对象中的权限保存为例如 Base64 编码的 JSON。您可以拥有相当复杂的结构,AAD B2C 只会在令牌中为用户返回。然后,一旦它到达你的 API,你就可以用这个值做你想做的事。它在令牌中,因此已正确签名,并且您在每次请求时都会获得令牌,因此您无需考虑访问任何数据库。

    【讨论】:

    • 谢谢,拥有令牌中的权限确实很理想。仍然在 B2C 中保存权限对象并非易事。应用数据库中的任何更改都需要反映给所有用户。例如。如果管理员向角色添加权限,则意味着检查/更新 b2c 中所有用户的编码对象。
    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 2021-12-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多