【问题标题】:Azure B2C Custom Policies: Invalid Request, client secret errorAzure B2C 自定义策略:请求无效,客户端密码错误
【发布时间】: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


【解决方案1】:

您需要将您的请求作为 POST 请求发送到 /token 端点,并将策略参数作为查询字符串参数,其余的在 x-www-form-urlencoded 正文中。

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多