【发布时间】:2023-04-03 23:15:02
【问题描述】:
我是 AD B2C 的新手,我在使用 AD Graph API 时遇到了问题。
我的目标是列出所有注册到我的 AD 的用户。我只想通过 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_token、token_type、not_before、id_token_expires_in、profile_info。但是,id_token 似乎对应于文档中的access_token。
那么问题来了,是不是必须在 Authorization 标头中使用这个令牌才能向 AD Graph API 发送请求?
因为如果我使用此令牌,我会收到以下错误:Authentication_ExpiredToken - 您的访问令牌已过期。请在提交请求之前更新它。
提前感谢您的帮助
【问题讨论】:
-
您需要使用客户端凭据授权 + 在底层 AAD 中注册的应用程序 + 使用 AAD 登录端点,如文档所示:docs.microsoft.com/en-us/azure/active-directory-b2c/…
标签: azure-ad-b2c