“AADSTS900144:请求正文必须包含以下参数:'grant_type'。?

"AADSTS900144: The request body must contain the following parameter: 'grant_type'.?

我在我的 Azure ad b2c 租户中构建了一个应用程序并如图所示对其进行了配置,但为什么我不能在 postman 中请求访问令牌?

app registration

API permissions

postman screenshot

下面是我关注的两个文档的链接:

Register a Microsoft Graph application

Get access without a user

我注意到的一件事是令牌请求的参数应该作为表单参数在正文中,如下所示:

尽管如此,您应该使用您在此处定义的参数,此屏幕截图显示了 ROPC 流的测试请求,因此图片中的参数对您的用例无效。

因此,不要在 Params 中输入参数,而是在选择 x-www-form-urlencoded 作为类型后在 Body 选项卡中输入它们。

请在邮递员的“Body”选项卡中输入参数,而不是“Params”选项卡。如下截图所示。

为了获得令牌,您需要在请求正文中传递 grant_type,值应为密码。

例如

方法Post:https://login.microsoftonline.com/YourTenantID/oauth2/v2.0/token

在正文中你需要通过 client_id :您的应用客户端 ID 范围:user.read%20openid%20profile%20offline_access 用户名:您的用户名 密码:你的密码 grant_type: 密码 client_secret: 你的应用注册秘钥