我有一些托管在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"
}
答案 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 >>