Azure AD OAuth令牌刷新提供错误AADSTS50000

时间:2018-06-15 09:12:41

标签: oauth-2.0 azure-active-directory refresh-token

成功验证后,我想刷新授权令牌,因此我发出以下请求

curl -X POST \
  https://login.microsoftonline.com/<my-tenant>/oauth2/v2.0/token \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -F grant_type=refresh_token \
  -F refresh_token=<my-refresh-token> \
  -F client_id=<my-client-id> \
  -F client_secret=<my-client-secret>

但是,我没有使用新令牌返回,而是获得以下响应:

{
    "error": "server_error",
    "error_description": "AADSTS50000: There was an error issuing a token.\r\nTrace ID: bb72ee21-7df2-4949-8375-e6d97b621300\r\nCorrelation ID: 719ea759-622b-4d63-be17-56fd6c255195\r\nTimestamp: 2018-06-15 09:07:13Z",
    "error_codes": [
        50000
    ],
    "timestamp": "2018-06-15 09:07:13Z",
    "trace_id": "bb72ee21-7df2-4949-8375-e6d97b621300",
    "correlation_id": "719ea759-622b-4d63-be17-56fd6c255195"
}

租户,客户端ID和客户端密钥与获取刷新令牌时使用的内容完全相同。然而,某些事情显然是缺失或不正确的 - 但是什么呢?

1 个答案:

答案 0 :(得分:0)

您缺少必需的scope参数as described here

您还需要提供redirect_uri,尽管您只是发出了POST请求。

redirect_uri必须与原始授权调用中使用的redirect_uri匹配。

刷新访问令牌时,您必须提供要获取令牌的范围。另外请确保您了解您只能刷新access_token,而不是id_token。而access_token总是有目的(范围)。

文档中描述的所有内容。