应用清单中包含groupMemberClaims的Azure AD失败

时间:2018-09-26 17:36:57

标签: openid-connect azure-ad-b2c group-membership

我已经阅读了许多博客,其中包括:

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 ... ,这是由于向请求中添加了太多标头而导致的,因为某些用户属于许多安全组。这是我的困境。

任何人以前都遇到过这个问题,您是如何解决的?

1 个答案:

答案 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