如何在 Azure AD B2C 的 Postman 中使用密码凭据检索访问令牌?

How can I Retrieve Access Token with password credentials in Postman for Azure AD B2C?

问题:我想做什么?
答:我正在尝试自动检索 Auth Bearer 令牌以进行 API 测试

当前情况: 我关注了这个 wiki

我能够使用隐式授予类型检索 Auth Bearer 令牌。虽然,我需要在下一步中添加我的用户名和密码,如图所示:

如果我将授权类型更改为密码凭据以跳过手动添加用户名和密码 - 调用成功但提供了无效令牌:

MFA 在用户级别启用。我创建了关闭 MFA 的登录注册流程(尽管同时尝试关闭和始终打开,但它仍然给出相同的无效令牌):

如何绕过 MFA 并自动登录和检索访问令牌?

方法 2:按照这些 ROPC 方式检索令牌

我能够从 Postman 检索访问令牌,但如果在我的 REST API 调用应用程序中使用此令牌(应用程序 ROPC_Auth App 和其他应用程序都在同一个租户 B2C 下), 我在使用此 Auth Bearer Token/Access 令牌进行呼叫时遇到错误: 错误详情:enter image description here

方法 3:如果我在同一租户下手动使用应用程序的 Application/Client ID,我在测试 ROPC Flow 时遇到此错误。

{
    "error": "unauthorized_client",
    "error_description": "AADB2C90057: The provided application is not configured to allow the 'OAuth' Implicit flow.\r\nCorrelation ID: 25661033-61b9-4f59-8358-4cd07ad9b007\r\nTimestamp: 2022-01-13 22:38:52Z\r\n"
}

故障排除部分说要更改清单详细信息,我这样做了然后我收到了这个错误

"{

    "error": "invalid_request",

    "error_description": "AADB2C90205: This application does not have sufficient permissions against this web resource to perform the operation.\r\nCorrelation ID: 45dcc3bf-74d6-4536-8ab4-d2025dc9ecb0\r\nTimestamp: 2022-01-13 21:58:57Z\r\n"

}"

• 我完全按照以下文档 link 作为您尝试执行的 ROPC(资源所有者密码凭据)流程的先决条件。我按照以下文档 link 正确地使用 ROPC_Auth 策略作为在 Azure AD B2C 中注册的应用程序的用户流,成功地通过 Postman 请求了访问令牌、刷新令牌和 ID 令牌。

先决条件 Azure AD B2C link: - https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows?pivots=b2c-custom-policy

ROPC 流 Azure AD B2C link: - https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-ropc-policy?tabs=app-reg-ga&pivots=b2c-custom-policy#test-the-ropc-flow

请找到以下成功部署的快照:-

ROPC_Auth Azure AD B2C 中的应用程序

应用程序清单更改:-

Azure AD B2C 中的身份体验框架应用程序:-

Azure AD B2C 中的代理身份体验框架应用程序:-

ROPC_Auth Azure AD B2C 中的策略:-

在通过 Postman 请求令牌之前,确保 运行 用户流经“Signup_signin”B2C 自定义策略并通过它创建一个用户,因为创建的该用户的凭据只会在以后使用Postman 作为密码凭据身份验证请求。

邮递员 ROPC 请求:-

因此,通过这种方式,您可以通过 Postman 成功使用“密码凭据”流来成功获取应用程序的访问令牌、刷新令牌和 ID 令牌。