Azure AD OAuth 令牌刷新给出错误 AADSTS50000

Azure AD OAuth token refresh gives error AADSTS50000

认证成功后,我想刷新我的授权令牌,所以我发出以下请求

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"
}

tenant、client id 和client secret 都与获取刷新令牌时使用的相同。然而,显然缺少或不正确的东西 - 但是什么?

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

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

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

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

文档中描述的所有内容。