C# .Net Core Azure AD Cloud如何登录用户并访问他们的Azure AD安全组以确定他们是否在组中
Azure AD Cloud如何登录用户并访问他们的Azure AD安全组以确定他们是否在组中?我过去曾使用WindowsIdentity获取此信息,当时我们在本地发布了广告,但它不适用于Azure广告云。如何获取登录的用户信息以及他们所属的所有安全组?我不知道该怎么做。我花了很多时间试图找到答案,但运气不好 有两种可能的方法可以做到这一点:C# .Net Core Azure AD Cloud如何登录用户并访问他们的Azure AD安全组以确定他们是否在组中,c#,asp.net-mvc,asp.net-core,azure-active-directory,azure-web-app-service,C#,Asp.net Mvc,Asp.net Core,Azure Active Directory,Azure Web App Service,Azure AD Cloud如何登录用户并访问他们的Azure AD安全组以确定他们是否在组中?我过去曾使用WindowsIdentity获取此信息,当时我们在本地发布了广告,但它不适用于Azure广告云。如何获取登录的用户信息以及他们所属的所有安全组?我不知道该怎么做。我花了很多时间试图找到答案,但运气不好 有两种可能的方法可以做到这一点: 使用相关的Microsoft Graph API查询组信息 以下是一些似乎相关的API(您也可以找到其他API) -如果您已经知道一组要对照已知的组列表检
POST https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/checkMemberGroups
在请求正文中,您可以提供groupdIds
,即包含要检查其成员资格的组的对象ID的集合。最多可指定20组
{
"groupIds": [
"fee2c45b-915a-4a64b130f4eb9e75525e",
"4fe90ae065a-478b9400e0a0e1cbd540"
]
}
-如果要获取此用户所属的所有组,则此选项将非常有用。返回用户所属的所有组
检查此组是否可传递,因此您可以确保所有组都将返回。最多2046个作为1个请求的一部分返回。它还适用于O365组,您可以使用参数筛选到启用安全性的组
POST https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/getMemberGroups
- 使用Microsoft Graph API,您不必担心超龄场景 当您启用groupMembershipClaims作为令牌的一部分时,如果用户是太多组的一部分,为确保令牌大小不超过HTTP标头大小限制,Azure AD将限制其在组声明中包含的ObjectID的数量。如果用户是超过超龄限制的组的成员(SAML令牌为150,JWT令牌为200),则Azure AD不会在令牌中发出组声明。相反,它在令牌中包含一个overage声明,指示应用程序使用Graph API检索用户的组成员资格
- 若您需要任何其他信息,如组名或任何其他需要再次使用Microsoft Graph API查询的属性,则访问令牌将仅包括组ID
API的组https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/checkMemberGroups
和类似的getMemberGroups
2)通过编辑应用程序的清单和设置“groupMembershipClaims”
属性到“All”
或“SecurityGroup”“
根据需要。使用Microsoft Graph API的方法具有优势。。因为当用户是太多组的一部分时,您不会在令牌中返回GroupID,而是返回一个超龄指示器。@Rohistaigal:请您在答案中添加您的注释。@MohitVerma MSFT我添加了一个答案并进行了详细说明。请随意建议任何其他适当的信息/编辑。