我已经阅读了许多博客,其中包括:
https://www.codeproject.com/Articles/1254806/Authentication-and-Authorization-in-ASP-NET-Core-2
我正在构建使用Azure Active Directory使用OpenIdConnect的构建应用程序。我的愿望是将对每个应用程序的访问限制为仅特定组中的用户。例如,仅组1中的用户可以访问应用1,而组2中的用户只能访问应用2。
因此,当两个应用程序的用户使用Azure AD登录时,我都希望Azure AD返回已登录用户的组声明。基于组,我(从应用程序方面)决定是否允许用户访问该应用程序。我已经能够弄清楚如何返回组...
但是
当我在应用清单中包含groupMemberClaims时,出现错误 Bad Request ... ,这是由于向请求中添加了太多标头而导致的,因为某些用户属于许多安全组。这是我的困境。
任何人以前都遇到过这个问题,您是如何解决的?
答案 0 :(得分:0)
您可以不必依赖组,而可以在应用程序清单中为用户定义角色。 然后,您可以将这些角色分配给用户。 如果您具有Azure AD的付费许可证(我忘记了哪个层),则还可以将用户角色分配给组。
以下是应用清单中用户角色的示例:
{
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "Administrator",
"id": "179c1dc0-4801-46f3-bc0d-35f059da1415",
"isEnabled": true,
"description": "Administrators can access advanced features.",
"value": "admin"
}
]
}
value
是令牌中赋予您的应用的内容。
定义角色后,单击“本地目录中的托管应用程序”(这是服务主体)。
您可以在其中找到“用户和组”,并为用户(和组)分配角色。
我关于角色和自定义权限的文章:https://joonasw.net/view/defining-permissions-and-roles-in-aad