Microsoft有大量关于如何使用Microsoft身份平台处理身份验证(authN)的文档,但关于正确授权(authZ)的信息很少。到目前为止,我有一个单页应用程序(SPA),它使用MSAL登录用户。我们还有一个后端,用于验证从前端发送的访问令牌。有了这些,authN就可以按预期工作了。
对于authZ,我在后端有User
、Permission
和UserPermission
表,它们向用户填充权限。我有一个定制的中间件,它可以查询数据库中的用户和权限,并将ClaimsIdentity
声明的权限附加到ClaimsPrincipal
。
让Azure AD用户进入后端数据库的最佳方法是什么?
在前端,我需要显示所有用户的列表,然后可以填充权限。然而,我不知道“同步”这些用户的最佳方法,以便在我的后端数据库中显示和填充数据。
当前架构:
注意:我知道Microsoft Identity Platform提供了一种RBAC机制,它将角色声明添加到访问令牌。然而,我的授权要复杂得多,以至于我不能使用它,其次authZ声称不应该是JWT的一部分。
1条答案
按热度按时间pu3pd22g1#
Azure AD支持SCIM 2.0。它支持以标准化的方式将用户和组同步到实现所需SCIM端点的任何后端。
https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups
https://learn.microsoft.com/en-us/azure/databricks/administration-guide/users-groups/scim/aad
有很多付费和开源的.NET实现后端部分的包:https://www.nuget.org/packages?q=Scim&frameworks=&tfms=&packagetype=&prerel=true&sortby=relevance