【发布时间】:2017-10-31 21:24:45
【问题描述】:
我有一个要注册的 Azure B2C 自定义策略。当我尝试获取刷新令牌时,我收到此错误:
{"error":"invalid_request","error_description":"AADB2C90079: Clients must send a client_secret when redeeming a confidential grant.\r\nCorrelation ID: 776e4226-467b-4648-b7f7-a9c09715fd68\r\nTimestamp: 2017-10-31 21:12:56Z\r\n"}
我正在使用此网址登录:
https://login.microsoftonline.com/<MyTenant>.onmicrosoft.com/oauth2/authorize?
p=B2C_1A_signup_signin
&client_id=<MyB2CAppID>
&nonce=defaultNonce
&redirect_uri=http%3A%2F%2Flocalhost%3A4200
&scope=openid+offline_access
&response_type=code
&prompt=login
使用从上一个 url 获得的代码,我尝试使用这个 url 获取访问令牌:
https://login.<MyTenant>.com/exob2ctest.onmicrosoft.com/oauth2/v2.0/token?
p=B2C_1A_signup_signin
&grant_type=authorization_code
&client_id=<MyB2CAppID>
&redirect_uri=urn:ietf:wg:oauth:2.0:oo
&code=<MyCode>
&scope=openid%20offline_access
&client_secret=<MyB2CAppSecret>
之后我收到错误消息。 我在 client_secret 参数上使用在 client_id 中引用的 B2C 应用程序上生成的密钥。 当我使用内置策略尝试此操作时,我可以毫无问题地获得刷新令牌。我的自定义政策中是否缺少某些内容?
提前致谢!
【问题讨论】:
-
您是否尝试下载您的内置策略并查看它?有时它会给你一些提示。
-
您能否确认您将请求发送到 /token 作为 POST 请求,除了 p=B2C_1A_signup_signin 作为 x-www-form-urlencoded 正文之外的所有内容?
-
另外,为了确保请求没有差异,您可以在 fiddler 中捕获两个请求(使用内置和自定义策略)并比较以查看是否有任何差异。
-
谢谢!使用 url 上的策略和 x-www-form-urlencoded 正文中的其余参数解决了它。
-
很高兴听到这个消息,您能否为答案投票并将问题标记为已回答?
标签: azure azure-ad-b2c