列出AD B2C的所有用户

时间:2019-06-26 09:07:52

标签: azure-ad-b2c

我对AD B2C还是很陌生,并且在使用AD Graph API时遇到了麻烦。

我的目标是列出所有注册到我的广告的用户。我只想通过HTTP请求执行此操作。

到目前为止,我发现我必须使用此端点:

https://graph.windows.net/my_tenant.onmicrosoft.com/users?api-version=1.6

我的问题是我找不到在Authorization标头中使用的令牌。

目前,我正在通过以下URL进行身份验证:

https://my_tenant.b2clogin.com/my_tenant.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=27fb84fe-4baf-4b6b-bfe7-f2d0638f2790
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost
&response_mode=query
&scope=27fb84fe-4baf-4b6b-bfe7-f2d0638f2790%20offline_access
&state=data
&p=B2C_1_SignUporSignIn

我通过redirect_uri获得了一个代码,然后将该代码发送回此端点以获得令牌:

https://my_tenant.b2clogin.com/my_tenant.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_signuporsignin

在这里的文档之后:https://docs.microsoft.com/fr-fr/azure/active-directory-b2c/active-directory-b2c-access-tokens,我发送这些参数:

grant_type:authorization_code
client_secret:my_secret
client_id:27fb84fe-4baf-4b6b-bfe7-f2d0638f2790
scope:openid
code:code

问题是我没有得到像文档中所示的回复。我只得到id_tokentoken_typenot_beforeid_token_expires_inprofile_info。但是,id_token似乎与文档中的access_token相对应。

问题是,是否必须在Authorization标头中使用此令牌才能将请求发送到AD Graph API?

由于我使用此令牌,因此出现以下错误:Authentication_ExpiredToken-您的访问令牌已过期。请在提交请求之前将其续订。

预先感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在授权标头中使用此令牌将请求发送到AD Graph API是必需的吗?

是的,对于来自Azure Ad GraphMicrosoft Graph API的每个资源访问请求,您都需要传递收到的令牌。

您的错误原因:Authentication_ExpiredToken-您的访问令牌已过期。在提交请求之前,请先续签:

我已经测试并成功重现了您遇到的错误。查看屏幕截图:

enter image description here

可能的原因:

  1. 您的令牌请求端点可能是错误的,或者您已收到令牌 一个租户并尝试访问其他租户资源。确保令牌端点是https://login.microsoftonline.com/YourB2CTenant.onmicrosoft.com/oauth2/token

  2. 检查您的资源:应该为https://graph.windows.net/

令牌请求格式:

Request Endpoint URL: 
https://login.microsoftonline.com/YourTenantName.onmicrosoft.com/oauth2/token

请求正文

grant_type:client_credentials
client_id:AppId
client_secret:AppSecret
resource:https://graph.windows.net/

请参见下面的屏幕截图:

enter image description here

B2C用户访问格式:

用户列表请求网址:

 https://graph.windows.net/YourTenantName.onmicrosoft.com/users?api-version=1.6

查看屏幕截图:

enter image description here

记住点:

在这种情况下,您可能会遇到Insufficient privilege error 401,只需分配以下权限即可。

权限来自: Windows Azure Active Directory

权限名称: Read all users' full profiles

权限类型: DELEGATED PERMISSIONS

查看屏幕截图:

enter image description here

通过这种方式,您可以获得天蓝色的B2C令牌,并使用该令牌访问用户列表。