我们的电子邮件不同于UPN。
为了检查并确保我拥有邮件属性,我通过PowerShell连接到Azure AD并运行以下命令。
Get-AzureADUser -objectid upn@domain.com | Select-Object Mail
Mail
----
useremail@domain.com
因此,在Azure AD中,我创建了一个新的应用程序注册。在应用程序清单中,我启用了"acceptMappedClaims": true,
。
然后在Visual Studio中,我创建一个ASP.NET Web应用程序,并选择工作或学校帐户进行身份验证,指向我的云域,在它创建之后,更新ClientId
以指向应用程序注册,等等。
然后添加一个映射策略:
New-AzureADPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"mail","JwtClaimType":"email"}]}}') -DisplayName "CustomClaims" -Type "ClaimsMappingPolicy"
然后我通过PowerShell将策略添加到应用程序中:
Add-AzureADServicePrincipalPolicy -Id [Enterprise Application Object Id] -RefObjectId [policy id]
在Startup.Auth.cs
中,我添加了包含email
的Scope
列表
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
Scope = "openid profile email roles"
});
似乎什么都不起作用。我肯定在这里遗漏了一些配置步骤……
发布于 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端点访问令牌中)提供
https://stackoverflow.com/questions/52184884
复制相似问题