Наши электронные письма отличаются от UPN.
Чтобы проверить и убедиться, что у меня есть свойство mail, я подключаюсь через PowerShell к Azure AD и запускаю следующую команду.
Get-AzureADUser -objectid upn@domain.com | Select-Object Mail
Mail
----
useremail@domain.com
Итак, в Azure AD я создаю новую регистрацию приложения. В манифесте приложения я включаю "acceptMappedClaims": true,
.
Затем в Visual Studio я создаю веб-приложение ASP.NET и выбираю Рабочие или школьные учетные записи для аутентификации, указываю на мой облачный домен и после его создания обновляю 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
я добавляю Scope
список для включения email
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
Scope = "openid profile email roles"
});
Кажется, ничего не работает. Я определенно пропускаю какой-то шаг настройки здесь ...