Azure AD B2C:无法获取具有授权码的令牌

时间:2019-05-03 14:32:21

标签: azure azure-active-directory

我目前正在遵循this指南,以设置有关天蓝色功能的授权。我目前正在尝试与我的Web应用分开测试fiddler中的auth部分,以确保可以获得有效的令牌。我能够成功检索授权码,但是之后,我需要发布一些数据以将授权码交换为令牌。尝试执行此操作时,系统将返回502,并显示消息:DNS Lookup for "mytenantname.onmicrosoft.com" failed. System.Net.Sockets.SocketException No such host is known,好像该主机根本不存在。我在端点上发布的内容如下所示,其中B2C_1_FunctionsPlaygroundSignInRegister是我的用户流的名称:

POST https://mytenantname.onmicrosoft.com/oauth2/v2.0/token?p=B2C_1_FunctionsPlaygroundSignInRegister HTTP/1.1

User-Agent: Fiddler

Content-Type: application/x-www-form-urlencoded

Host: mytenantname.onmicrosoft.com

Body:grant_type=authorization_code&client_id=MyApplicationIdForTheAzure-AD-B2C-ap-here&code=myCodeHere&redirect_uri=jwt.ms

作为参考,这是我发送的工作get请求,可以在浏览器中键入该请求,并在登录/注册屏幕时得到提示,并在登录后返回授权码:

https://mytenantname.b2clogin.com/tfp/mytenantname.onmicrosoft.com/B2C_1_FunctionsPlaygroundSignInRegister/oauth2/v2.0/authorize?client_id=yApplicationIdForTheAzure-AD-B2C-ap-here&nonce=2&redirect_uri=https://functionapi.azurewebsites.net/.auth/login/aad/callback&scope=https://mytenantname.onmicrosoft.com/api/read&response_type=code 

有人可以指出我在哪里出问题了吗?我现在在这个问题上花了很多时间,没有想法。

1 个答案:

答案 0 :(得分:1)

您的POST网址和Host标头错误。

请参阅本节-

OAuth 2.0 authorization code flow in Azure Active Directory B2C

POST fabrikamb2c.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in HTTP/1.1
Host: https://fabrikamb2c.b2clogin.com

注意主机头。这意味着您的Fiddler请求应显示如下内容:

POST https://mytenantname.b2clogin.com/mytenantname.onmicrosoft.com/oauth2/v2.0/token?p=...
Host: mytenantname.b2clogin.com

P.S。这比Fiddler的要好得多- https://oauthdebugger.com/