如何从Azure AD B2C获取用户组信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Azure AD B2C获取用户组信息相关的知识,希望对你有一定的参考价值。

我正在使用Microsoft Graph来获取用户信息,即"List users" API

以下是访问用户信息的代码:

  ClientCredential clientCred = new ClientCredential(clientId, clientSecret);
  AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(resourceId, clientCred);
  string token = authenticationResult.AccessToken;
  Debug.WriteLine("token=" + token);   

  var responseString = String.Empty;
  string[] scopes = { "User.Read" };

  using (var client = new HttpClient())
  {
    string requestUrl = "https://graph.microsoft.com/v1.0/users?$select=id,givenName,surname";

    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
    Debug.WriteLine(request.ToString());

    HttpResponseMessage response = client.SendAsync(request).Result;

    responseString = response.Content.ReadAsStringAsync().Result;

    Debug.WriteLine(responseString);
  }

输出:

 {    
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,givenName,surname)",
"value": [
    {
        "id": "000000000-0000-0000-000-000000000",
        "givenName": "XXX",
        "surname": "XXX"
    }, {
        "id": "000000000-0000-0000-000-000000000",
        "givenName": "XXX",
        "surname": "XXX"
    }
]
 }

如何获取用户组?

答案

您可以调用user: getMemberGroups API操作让用户获取其组:

您需要这样发出请求:

POST https://graph.microsoft.com/v1.0/users/user-id-here/getMemberGroups
Content-type: application/json
Content-length: 33

{
  "securityEnabledOnly": true
}

securityEnabledOnly参数定义是否仅应返回安全组。将其设置为false还将返回例如用户的Office 365组成员身份。

一种替代方法是使用memberOf导航属性:

GET https://graph.microsoft.com/v1.0/users/user-id-here/memberOf

这将返回用户是其直接成员的组和目录角色。

以上是关于如何从Azure AD B2C获取用户组信息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure AD B2C 获取 Facebook 个人资料图片

Azure AD B2C 图形 API 401 未经授权

在 Azure B2C 中获取刷新令牌,Azure AD App 是第三方 IDP

如何在 Azure AD B2C 中管理用户流之间的单个帐户/会话

Azure AD B2C 自定义登录策略显示 SignUpSignIn

在 Postman 中为 Azure AD B2C 请求访问令牌