Я пытаюсь заставить приложение работать с платформой Microsoft Identity.
Отправка запроса OAuth через Postman, похоже, работает, но когда я пытаюсь самостоятельно ввести тип разрешения authorizaton_code, несмотря на получение доступатокен, API, к которому я пытаюсь получить доступ, всегда выдает мне неавторизованную ошибку.
Я отправляю запрос POST
по адресу:
https://login.windows.net/<tenant_id>/oauth2/authorize?resource=<resource_uri>
С данными тела:
grant_type=authorization_code&
client_id=<client_id>&
redirect_uri=<redirect_uri>&
response_type=code
Это дает мне перенаправление на мой URI с кодом в строке запроса
Затем я запрашиваю токен доступа с кодом, отправив POST
по адресу:
https://login.windows.net/<tenant_id>/oauth2/token?resource=<resource_uri>
Со следующим содержимым:
grant_type=authorization_code&
client_id=<client_id>&
redirect_uri=<redirect_uri>&
code=<the_code_from_the_redirect>&
client_secret=<client_secret>
Это возвращает мне токен доступа:
{
"token_type": "Bearer",
"expires_in": "3599",
"ext_expires_in": "3599",
"expires_on": "1557783183",
"not_before": "1557779283",
"resource": "00000002-0000-0000-c000-000000000000",
"access_token": "<access_token_here>",
"refresh_token": "<refresh_token>",
"id_token": "<id_token>"
}
Но этот токен нене работает при вызове ресурса:
{
"error": {
"code": "Unauthorized",
"message": "The credentials provided are incorrect"
}
}
То же самое с использованием функции Get New Access Token
в Postman, похоже, создает тот же запрос post в консоли Postman (хотя и с другим кодом, но он долженполучить новый код, потому что я уже выкупилили он ничего не знает об этом, верно?) но возвращаемый маркер доступа работает:
{
"error": {
"code": "NoLicense",
"message": "User has no license"
}
}
(не обращайте внимания на тот факт, что это ошибка - у пользователя нет лицензии на приложение, которое я пробуюна запрос, но это нормально)
Я делаю что-то в корне неправильно?Из того, что я вижу, я правильно слежу за потоком OAuth.