openid-connect - 应用清单中包含 groupMemberClaims 的 Azure AD 失败
问题描述
我已经阅读了许多博客,其中包括:
https://www.codeproject.com/Articles/1254806/Authentication-and-Authorization-in-ASP-NET-Core-2
我正在使用 Azure 活动目录构建使用 OpenIdConnect 的构建应用程序。我的愿望是将每个应用程序的访问权限仅限于特定组中的用户。例如,应用程序 1 只能由组 1 中的用户访问,而应用程序 2 只能由组 2 中的用户访问。
因此,当任一应用程序的用户使用 Azure AD 登录时,我希望 Azure AD 返回登录用户的组声明。根据组,我决定(从应用程序方面)是否允许用户访问应用程序。我已经能够弄清楚如何返回组...
但
当我在应用程序清单中包含 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
牌中提供给您的应用程序的内容。定义角色后,单击“本地目录中的托管应用程序”(即服务主体)。在那里您可以找到用户和组,并为用户(和组)分配角色。
我关于角色和自定义权限主题的文章:https ://joonasw.net/view/defining-permissions-and-roles-in-aad
推荐阅读
- python - Pandas 数据框比较和复制
- python - 使用 flask-sqlalchemy 组合三个表的动态过滤器
- python - 如何对python层中的记录列表进行分页
- visual-studio - 更新到 Xamarin.Forms 5 后,应用程序因 Shell 错误而崩溃
- flutter - 我的颤振 listview.builder 没有呈现完整列表,它只呈现前 4 个索引
- firebase - 当我登录时,我会得到前一个用户的用户名,直到我重新加载应用程序 Flutter
- pid - 如何获取 rundeck 作业 PID 并回显它
- laravel - 为 Laravel Blade 组件动态添加属性
- amazon-web-services - 连接到 AWS IoT 时出错:CFNetwork SSLHandshake failed (-9807) 和 TCP Conn 0x600003e30e40 SSLHandshake failed (-9807)
- javascript - 获取消息作者或提及用户的所有角色的问题 | 不和谐.js