Какой тип гранта следует использовать для токена от имени в Azure? - PullRequest
0 голосов
/ 16 мая 2018

У меня есть 3 разных приложения, которые размещены в Azure.Например, Spa, Graph и API-приложения.У меня есть токен пользователя для приложения Graph от Spa.Теперь мне нужно получить доступ к Приложению 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 голосов
/ 18 мая 2018

Я решил вышеуказанную проблему с небольшими исправлениями и получаю токен доступа, как и ожидалось. изменил запрос как показано ниже (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 >>
...