为什么获取用户访问令牌会抛出 invalid_grant 错误?

Why does Get User Access token throws invalid_grant error?

我正在使用 Microsoft Graph Postman Collections 从 Postman 中测试常见的 Microsoft Graph API。但是,我在尝试 获取用户访问令牌时卡住了

下面是请求

POST /7c69806f-5754-488f-9dd8-7daa8afea4fd/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
SdkVersion: postman-graph/v1.0
cache-control: no-cache
Postman-Token: ac512133-5afe-47a3-ae9b-3b6c0b510ebd
grant_type=passwordclient_id=ebbe4872-5b7187-de6d6ddf7301client_secret=g99p8DWoxdUPY-%3F%40%5Bv7kt2g4BMxGscope=https%3A%2F%2Fgraph.microsoft.com%2F.defaultuserName=rohitdhamijagmail.onmicrosoft.compassword=Zcost%4080

在尝试 "Fetch user access token" POST API 时,出现以下错误:

{
    "error": "invalid_grant",
    "error_description": "AADSTS50034: The user account rohitdhamijagmail.onmicrosoft.com does not exist in the 7c69806f-5754-488f-9dd8-7daa8afea4fd directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: c0e97dd8-053d-4c99-81e4-354d7ae7d500\r\nCorrelation ID: 7e67450e-3054-48bc-b808-2f6277093dac\r\nTimestamp: 2020-03-03 09:38:09Z",
    "error_codes": [
        50034
    ],
    "timestamp": "2020-03-03 09:38:09Z",
    "trace_id": "c0e97dd8-053d-4c99-81e4-354d7ae7d500",
    "correlation_id": "7e67450e-3054-48bc-b808-2f6277093dac",
    "error_uri": "https://login.microsoftonline.com/error?code=50034"
}

用户帐户确实显示在我的 Azure 租户下,下面是附图

可能是什么问题? 注意:我已经正确配置了全局环境,因为我可以使用其他API,例如获取用户信息等

你的请求应该是这样的。

https://login.microsoftonline.com/YourTenant.onmicrosoft.com/oauth2/v2.0/token

client_id:b603c7be_Client_id_e61f925
scope:https://graph.microsoft.com/.default
client_secret:NpmwO/KDJ_client_secret:NpmwO_W0kWf1SbnL
username:tenentUser.onmicrosoft.com
password:YourUserPassword
grant_type:password

查看屏幕截图:

我正在按预期获得令牌

Step: 1

Step: 2

Step: 3

Note:

  1. Make sure your user belong to azure portal on your tenant
  2. Your Client Id belongs to that tenant
  3. Application secret is valid or not expired.

Update: How to get Tenant Id

更多信息请参考Official document

希望对您有所帮助。

我尝试了同样的方法,对我来说没有任何问题,可以查看的几点是,

  1. 要么应用程序必须在同一个活动目录下注册,要么像下面那样启用多租户,Authentication
  2. 该应用应具有以下权限,Permissions
  3. 我刚刚在邮递员电话中更新了用户名和密码,我的帐户也在 yourdomainhere.onmicrosoft.com Postman