我目前正在遵循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
有人可以指出我在哪里出问题了吗?我现在在这个问题上花了很多时间,没有想法。
答案 0 :(得分:1)
您的POST网址和Host标头错误。
请参阅本节-
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/