azure - Azure AD B2C:无法使用授权码获取令牌
问题描述
我目前正在按照本指南设置 azure 功能的授权。我目前正在尝试与我的网络应用程序分开测试提琴手中的身份验证部分,以确保我可以获得有效的令牌。我能够成功检索授权码,但是在那之后,我需要发布一些数据以将授权码交换为令牌。尝试这样做时,我收到一条带有消息的 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
作为参考,这是我发送的工作获取请求,我可以在浏览器中输入,提示登录/注册屏幕,并在登录后返回授权码:
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
有人可以指出我在这里出错的地方吗?我现在已经在这个问题上花费了大量时间并且没有想法。
解决方案
您的 POST url 和 Host 标头错误。
请参阅本节 -
Azure Active Directory B2C 中的 OAuth 2.0 授权代码流
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
PS 这比 Fiddler 好得多,因为你正在尝试做 - https://oauthdebugger.com/
推荐阅读
- excel - 调试 Excel 宏
- ruby-on-rails - React 应用程序设计:在导航中显示每个页面的记录数
- r - to.period 函数保留“缺失值”
- java - JAVA 数组索引超出范围,即使 < 数组长度
- c++ - Total C++ Noob:Boost 和 std 的文件 I/O 问题
- sql - 如何在不手动指定 PK 的情况下仅将唯一数据加载到我的 oracle 表中?
- java - 创建一个名为 calcWinPercentage() 的方法。我们必须确保我们不除以 0 。如果没有玩过游戏,返回-1
- objective-c - 如何将对象 c 传输到 Swift aout collectionVIewLayout
- c++ - 尝试在 C++ 中的 if 语句中定义字符串
- javascript - 有条件的 mongoDB 投影有问题