我正在使ruby和Microsoft Azure Active Directory成为Oauth2。基本上,身份验证工作正常,但事实是,当我解码令牌时,我没有收到用户的电子邮件。这是我在身份验证后从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"
}
所以我没有电子邮件或类似的东西。当我尝试使用另一个帐户登录时,会收到“ preferred_username”或“ email”键。感谢您的帮助
答案 0 :(得分:1)
我尝试了单租户和多租户,也尝试了租户用户和来宾用户。但我没有重提您的问题。这是我的步骤。
使用代码身份验证流程获取代码:
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
使用代码获取ID令牌
解码ID令牌