我正在尝试建立一个网站,用户可以在其中通过Azure AD B2C登录。登录后,我尝试提供一个安全区域,用户可以在其中通过Microsoft Graph API更改其Azure B2C用户属性(名字,姓氏等)。
我正尝试跟着Get a Token documentation
一切正常,直到第3步为止,在该步骤中,使用我在返回URL上收到的代码呼叫https://login.microsoftonline.com/common/oauth2/v2.0/token
以获得access_token
。
这是我正在做的一般流程:
https://login.microsoftonline.com/mytenantname.onmicrosoft.com/oauth2/v2.0/authorize
?client_id=[MyAppID]
&response_type=code+id_token
&redirect_uri=http%3A%2F%2Flocalhost%3A17000%2Fprocessing%2Findex
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fuser.read%20https%3A%2F%2Fgraph.microsoft.com%2Fuser.write
&state=[MyCustomState]&p=[MyCustomPolicy]
用户登录并重定向到redirect_uri
。
redirect_uri
成功接收了code
,id_token
和state
的值。
我从中获取code
值,并使用以下正文提出POST https://login.microsoftonline.com/common/oauth2/v2.0/token
请求:
POST https://login.microsoftonline.com/common/oauth2/v2.0/token
HTTP/1.1
grant_type=authorization_code
&code=[code]
&client_secret=[application secret]
&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fuser.read%20https%3A%2F%2Fgraph.microsoft.com%2Fuser.readwrite
&redirect_uri=http%3A%2F%2Flocalhost%3A17000%2Fprocessing%2Findex
{
"error": "invalid_grant",
"error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID:6d7a8e32-bcbf-4fc4-a37a-87dae4781b00\r\nCorrelation ID:252912b7-5775-491a-968f-00ab03696dd9\r\nTimestamp: 2019-06-2722:11:18Z",
"error_codes": [9002313],
"timestamp": "2019-06-27 22:11:18Z",
"trace_id": "6d7a8e32-bcbf-4fc4-a37a-87dae4781b00",
"correlation_id": "252912b7-5775-491a-968f-00ab03696dd9"
}
其他StackOverflow帖子提到要验证redirect_uri是否必须在初始登录和后续的access_token请求之间匹配。它们看起来与我相同,但是我仍然收到错误。
任何想法可能出什么问题吗?
答案 0 :(得分:0)
似乎您正在尝试使用Authorization Code Grant V2.0
您的请求与
Authorization Code Grant V2.0
格式不匹配,并且您遇到了该错误。
您应该为Authorization Code Grant V2.0
发送令牌请求,如下所示:
Token Endpoint: `https://login.microsoftonline.com/common/oauth2/v2.0/token`
client_id:b603c7be-_YourApp_ID-e6921e61f925
scope:https://graph.microsoft.com/User.ReadWrite.All
redirect_uri:https://www.getpostman.com/oauth2/callback
grant_type:authorization_code
client_secret:Vxf1SluKbgu4P_YourAppSecret_DSeZ8wL/Yp8ns4sc=
code:OAQABAAIAAADCoMpjJXrxTq9VG9te-7FXrnBIp82sWR1nC
有关详细信息,请参见屏幕截图: