Не удалось получить почтовое поле Azure AD OpenID Authentication Exchange в качестве претензии - PullRequest
0 голосов
/ 05 сентября 2018

Наши электронные письма отличаются от 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"
    });

Кажется, ничего не работает. Я определенно пропускаю какой-то шаг настройки здесь ...

1 Ответ

0 голосов
/ 14 сентября 2018

Команда Azure начала работу на конечной точке V2 для поддержки области электронной почты для идентификаторов токенов. Он может быть предоставлен на конечной точке V1 (или в токенах доступа к конечной точке V2) через необязательное требование (https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims)

...