Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 向声明添加权限-Microsoft.Identity.Web&;商对客_Asp.net Core_Azure Ad B2c_Microsoft Identity Web - Fatal编程技术网

Asp.net core 向声明添加权限-Microsoft.Identity.Web&;商对客

Asp.net core 向声明添加权限-Microsoft.Identity.Web&;商对客,asp.net-core,azure-ad-b2c,microsoft-identity-web,Asp.net Core,Azure Ad B2c,Microsoft Identity Web,我想询问有关如何向用户身份添加自定义声明的任何文章/文档的建议或方向。我正在从事的项目是将Azure B2C与Microsoft.Identity.Web一起使用 我正在搜索一种健壮的方法,在web应用程序中的web请求期间添加自定义声明。声明将包含从应用程序数据库获得的权限。所以我还需要一种在请求之间存储声明的方法,这样我就不会每次请求都访问数据库 存储在数据库中的角色和权限模型非常复杂和动态(由管理员管理),因此可以选择通过graph API在B2C中简单地存储自定义声明 我正在考虑使用中间

我想询问有关如何向用户身份添加自定义声明的任何文章/文档的建议或方向。我正在从事的项目是将Azure B2C与Microsoft.Identity.Web一起使用

我正在搜索一种健壮的方法,在web应用程序中的web请求期间添加自定义声明。声明将包含从应用程序数据库获得的权限。所以我还需要一种在请求之间存储声明的方法,这样我就不会每次请求都访问数据库

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

我正在考虑使用中间件进行索赔转换:

  • 这对Microsoft.Identity.Web是否合适,还是我不应该这样做

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


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

谢谢,在令牌中拥有权限将非常理想。仍然保存B2C中的权限对象不会很简单。应用程序数据库中的任何更改都需要反映给所有用户。例如,如果管理员向角色添加权限,则意味着检查/更新b2c中所有用户的编码对象。