Hem*_*nth 4 azure-active-directory
我已经在上编写了一个Python
应用程序Open Shift
。
用户登录到应用程序后,将根据其在中的组成员身份来确定其特权Azure Active Directory
。
如何Azure Active Directory
通过我的应用程序验证用户是否属于某个组?
您可以根据自己的情况从应用程序中调用以下Microsoft Graph API:
如果您已经知道要检查/验证其成员身份的组,则此功能将非常有用。
POST https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/checkMemberGroups
Run Code Online (Sandbox Code Playgroud)
在请求正文中,您可以提供groupdIds
,即一个集合,其中包含要检查成员资格的组的对象ID。最多可以指定20个组。
{
"groupIds": [
"fee2c45b-915a-4a64b130f4eb9e75525e",
"4fe90ae065a-478b9400e0a0e1cbd540"
]
}
Run Code Online (Sandbox Code Playgroud)如果您还不了解该组,并且想要获取该用户所属的所有组,则此功能将非常有用。
POST https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/getMemberGroups
Run Code Online (Sandbox Code Playgroud)您还可以通过编辑应用程序的清单(可以直接在Azure Portal中完成)并将"groupMembershipClaims"
属性设置为"All"
或"SecurityGroup"
根据需要,使组声明作为应用程序的访问令牌的一部分进入。
但是groupMemembershipClaims有一个问题,该令牌并不总是与用户所属的所有组一起出现。如果用户是太多组的成员(AFAIK是6个或更多),则您只会返回超额指示器声明,例如hasGroups
告诉您该用户是许多组的成员,并且应该调用graph api来获取所有组的列表。这就是我强调相关的Microsoft Graph API的原因。
这是一个基于组声明进行授权的示例应用程序。它使用.NET 4.5 MVC,C#,但概念相同-
这是另一个SO Post,其中讨论了类似的要求。它还提到考虑使用应用程序角色来做出授权决策,因为在某些情况下这样做可能更合适。
归档时间: |
|
查看次数: |
715 次 |
最近记录: |