首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法获取Azure AD OpenID身份验证交换邮件字段作为声明

无法获取Azure AD OpenID身份验证交换邮件字段作为声明
EN

Stack Overflow用户
提问于 2018-09-05 20:15:28
回答 1查看 378关注 0票数 1

我们的电子邮件不同于UPN。

为了检查并确保我拥有邮件属性,我通过PowerShell连接到Azure AD并运行以下命令。

代码语言:javascript
复制
Get-AzureADUser -objectid upn@domain.com | Select-Object Mail

Mail                
----                
useremail@domain.com

因此,在Azure AD中,我创建了一个新的应用程序注册。在应用程序清单中,我启用了"acceptMappedClaims": true,

然后在Visual Studio中,我创建一个ASP.NET Web应用程序,并选择工作或学校帐户进行身份验证,指向我的云域,在它创建之后,更新ClientId以指向应用程序注册,等等。

然后添加一个映射策略:

代码语言:javascript
复制
New-AzureADPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"mail","JwtClaimType":"email"}]}}') -DisplayName "CustomClaims" -Type "ClaimsMappingPolicy"

然后我通过PowerShell将策略添加到应用程序中:

代码语言:javascript
复制
Add-AzureADServicePrincipalPolicy -Id [Enterprise Application Object Id] -RefObjectId [policy id]

Startup.Auth.cs中,我添加了包含emailScope列表

代码语言:javascript
复制
app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions
    {
        ClientId = clientId,
        Authority = authority,
        PostLogoutRedirectUri = postLogoutRedirectUri,
        Scope = "openid profile email roles"
    });

似乎什么都不起作用。我肯定在这里遗漏了一些配置步骤……

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 07:33:42

Azure团队已经开始在V2端点上工作,以支持id令牌的电子邮件范围。它可以通过可选声明( https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims )在V1端点上(或在V2端点访问令牌中)提供

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52184884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档