哪个授权类型应该用于代表Azure中的令牌?

时间:2018-05-16 18:48:56

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

我有一些托管在Azure中的3个不同的应用程序。例如,Spa,Graph和API应用程序。我有来自Spa的Graph Application的用户令牌。现在,我需要使用图形访问令牌访问API应用程序。我试图使用中间件应用程序获取API应用程序访问令牌。但不幸的是,我收到了请求的授权类型的错误(响应中的unsupported_grant_type错误)。

终点: oauth2 / token

请求:

grant_type:urn:ietf:params:oauth:grant-type:jwt-bearer.
client_id :<<Client ID>>
client_secret : <client_secret>>
resource  : <<app URI>>
requested_token_use : <<on_behalf_of>>
scope : openid
assertion : <<Graph App Token>>

注意:我使用spa将用户令牌图形化为断言。请建议有效的授权类型。

回复:(400错误请求)

{
    "error": "unsupported_grant_type",
    "error_description": "AADSTS70003: The access grant 'urn:ietf:params:oauth:grant-type:jwt-bearer.' is not supported.\r\nTrace ID: 6534870f-662d-4543-acbc-250b89a00700\r\nCorrelation ID: 4ea54718-94ee-4151-abe9-4fca5469c7c5\r\nTimestamp: 2018-05-17 03:53:57Z",
    "error_codes": [
        70003
    ],
    "timestamp": "2018-05-17 03:53:57Z",
    "trace_id": "6534870f-662d-4543-acbc-250b89a00700",
    "correlation_id": "4ea54718-94ee-4151-abe9-4fca5469c7c5"
}

1 个答案:

答案 0 :(得分:0)

我用小修正解决了上述问题,我按预期获得了访问令牌。如下所述更改了请求(https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-on-behalf-of

grant_type      : urn:ietf:params:oauth:grant-type:jwt-bearer
client_id       : << Middle App Client ID >>
client_secret   : << Middle App Client Secret >>
assertion       : <<Access Token of middle App from SPA>>
requested_token_use : on_behalf_of
scope           : openid
resource        : << Actual Resource Name which requires access token >>