Я пытаюсь зарегистрировать пользователей в своем приложении с помощью Azure AD, но не могу получить разрешение offline_access (scope) на моем сервере.
Мой начальный запрос:
https://login.microsoftonline.com/{tenant}/oauth2/authorize?client_id={client_id}&response_type=code&redirect_uri=https%3A%2F%2Fservice%2Emyserver%2Ecz&scope=user.read%20openid%20profile%20offline_access&response_mode=form_post&state=azure_login
Как видите, я прошу user.read
, openid
, profile
и offline_access
.Но когда я получаю токен, я получаю ответ:
{
"token_type": "Bearer",
"scope": "profile openid email User.Read",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "ey...",
"id_token": "ey..."
}
Во-первых, я не просил электронную почту, а во-вторых, нет refresh_token
и expires_on
.
Самое интересное, если я запускаю приложение локально на моем компьютере (redirect_uri - http://localhost:8080), я получаю совершенно другой ответ:
{
"token_type": "Bearer",
"expires_in": "3599",
"ext_expires_in": "3599",
"expires_on": "1568980038",
"access_token": "AQ...",
"refresh_token": "AQ...",
"id_token": "ey..."
}
Локально у меня есть разрешение offline_access
, с другой стороны, я не получаюУ меня нет других разрешений. Например, я не могу получить доступ к https://graph.microsoft.com/v1.0/me
из http://localhost:8080.
Что мне нужно сделать, чтобы получить разрешение offline_access
на моем сервере?