Microsoft Azure не возвращает электронную почту через поток Oauth2 - PullRequest
0 голосов
/ 31 октября 2019

Я выполняю Oauth2 с помощью ruby ​​и Microsoft Azure Active Directory. В основном аутентификация работает нормально, за исключением того факта, что когда я декодирую токен, я не получаю электронную почту пользователя. Вот что я получаю от Azure после аутентификации:

{
"token_type"=>"Bearer",
"scope"=>"profile openid email https://graph.microsoft.com/User.Read",
"ext_expires_in"=>3599,
"id_token"=> id_token_here,
"access_token"=> access_token_here,
"refresh_token"=>nil,
"expires_at"=>1572529008
}

Когда я пытаюсь декодировать "id_token" через, я получаю такой объект:

{
"aud"=>"fa792156-3c62...",
"iss"=>"https://login.microsoftonline.com/some_sensitive_data/v2.0",
"iat"=>1572525194,
"nbf"=>1572525194,
"exp"=>1572529094,
"sub"=>"1ML3cHqqyg_...",
"tid"=>"fa024876-4da...",
"uti"=>"wvSdJLUxI0W...",
"ver"=>"2.0"
}

Так что у меня нет электронной почтыили что-то вроде этого. Когда я пытаюсь войти в систему с другой учетной записью, я получаю ключи «предпочитаемый_пользователь» или «электронная почта». Любая помощь приветствуется

1 Ответ

1 голос
/ 01 ноября 2019

Я пробовал как одного арендатора, так и мультитенанта, а также пользователя-арендатора и гостя. Но я не воспроизвел вашу проблему. Вот мои шаги.

Используйте код проверки подлинности кода для получения кода:

https://login.microsoftonline.com/xx.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=cbc32712-ac27-4532XXXd-303998a6e712
&response_type=code
&redirect_uri=http://localhost
&response_mode=query
&scope=profile openid email https://graph.microsoft.com/User.Read
&state=12345

Используйте код для получения идентификатора токена

enter image description here

enter image description here

Расшифровать идентификатор токена

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...