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

Azure AD including groupMemberClaims in app manifest fails

我阅读了很多博客,其中包括:

https://www.codeproject.com/Articles/1254806/Authentication-and-Authorization-in-ASP-NET-Core-2

我正在使用 Azure 活动目录构建使用 OpenIdConnect 的构建应用程序。我的愿望是将对每个应用程序的访问限制为仅特定组中的用户。例如,应用 1 只能由组 1 中的用户访问,而应用 2 只能由组 2 中的用户访问。

因此,当任一应用程序的用户使用 Azure AD 登录时,我希望 Azure AD return 组声明已登录用户。根据这些组,我决定(从应用程序端)是否允许用户访问该应用程序。我已经能够弄清楚如何 return 组...

但是

当我在应用程序清单中包含 groupMemberClaims 时,出现错误 Bad Request...用户属于这么多安全组。这是我的困境。

以前有人遇到过这个问题,你是如何解决的?

您可以在应用程序清单中为用户定义角色,而不是依赖组。 然后您可以将这些角色分配给用户。 如果你有 Azure AD 的付费许可证(我忘了是哪一层),你还可以将用户角色分配给组。

以下是应用清单中用户角色的示例:

{
  "appRoles": [
    {
      "allowedMemberTypes": [
        "User"
      ],
      "displayName": "Administrator",
      "id": "179c1dc0-4801-46f3-bc0d-35f059da1415",
      "isEnabled": true,
      "description": "Administrators can access advanced features.",
      "value": "admin"
    }
  ]
}

value 是在令牌中提供给您的应用程序的内容。 定义角色后,单击 "Managed app in local directory"(即服务主体)。 在那里您可以找到用户和组,并为用户(和组)分配角色。

我关于角色和自定义权限的文章:https://joonasw.net/view/defining-permissions-and-roles-in-aad