azure - 404 未找到 Azure AD B2C 的 oauth2/v2.0/token 终结点

标签 azure oauth azure-active-directory

我很难通过 Azure AD B2C 的 OAuth 2.0 API 接收 access_tokenrefresh_token

我正在关注 official guide描述 OAuth 2.0 授权代码流程。

通过 Microsoft 提供的交互式登录网站接收 authorization_token 效果很好(URL:https://login.microsoftonline.com/[MY_TENANT]/oauth2/v2.0/authorize ?client_id=[CLIENT_ID]&response_type=code&response_mode=query&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=[CLIENT_ID]%20offline_access&p=[MY_SIGNUP_SIGNIN_POLICY])。

但是,当尝试通过文档中所述的简单 POST 请求获取 access_token 时,我收到以下 POST 请求的 404 Not Found:

URL: https://login.microsoftonline.com/[MY_TENANT]/oauth2/v2.0/token?p=B2C_1_sign_in
Header: Content-Type application/x-www-form-urlencoded
Payload: grant_type=authorization_code&client_id=[CLIENT_ID]&scope=[CLIENT_ID]%20offline_access&code=[AUTHORIZATION_CODE]&redirect_uri=urn:ietf:wg:oauth:2.0:oob

当时的文档是否有误?

注意:由于框架原因,我无法使用任何现有的 .NET 或 Java 库提供此登录过程。一个 C++ 库就可以了。

我非常希望他们以符合标准的方式实现通常的完整 headless OAuth2 协议(protocol)......

最佳答案

问题是我对文档的误解。

策略(查询参数p)在所有情况下都必须相同。因此,POST 请求的 URL 必须是:

https://login.microsoftonline.com/[MY_TENANT]/oauth2/v2.0/token?p=MY_SIGNUP_SIGNIN_POLICY

其中 MY_SIGNUP_SIGNIN_POLICY 与登录 URL 中的完全相同。

关于azure - 404 未找到 Azure AD B2C 的 oauth2/v2.0/token 终结点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784247/

相关文章:

azure - 无法部署 Azure Function 应用设置,因为文件共享返回 403

azure - ARM 模板如果条件

azure - 使用 TP OpenId Connect 的 B2C 自定义策略 - IdTokenAudience - MultiApple 场景

java - 在 Java 中实现 OAuth 协议(protocol)

azure - 在 Azure Function App 中使用 PowerShell 连接到不同的 Azure AD 租户

Azure Function PowerShell 检索和解析 HTTP POST 触发器正文

ios - 谷歌快速授权处理程序

oauth - 如何使用访问 token linkedin 发出 OAuth 请求

Azure AD 为应用程序创建用户组

azure - 用于通过 Azure AD 连接到 Azure SQL 数据库的连接字符串