Как получить доступ к дополнительным данным из Azure Active Directory из моего приложения ASP.NET Core? - PullRequest
1 голос
/ 23 сентября 2019

Я использовал активный каталог нашей компании с нашей платформы Azure в своем основном приложении ASP.NET.Я настроил это как модель аутентификации, когда впервые создал свой проект.Мне необходимо получить доступ к дополнительной информации о пользователях, помимо только их адреса электронной почты или имени, например, их country, department и usage location.Я не уверен, как вы это делаете, и мне было интересно, может ли кто-нибудь помочь.

Настройка по умолчанию для проверки подлинности Azure AD не включает модели или страницы учетной записи, она просто добавляет информацию о регистрации приложения в ваш appsettings.json и добавляет частичное представление входа в систему, использующее идентификатор:

@using System.Security.Principal

<ul class="navbar-nav">
@if (User.Identity.IsAuthenticated)
{
        <li class="nav-item">
            <span class="nav-text text-dark">Hello @User.Identity.Name!</span>
        </li>
        <li class="nav-item">
            <a class="nav-link text-dark" asp-area="AzureAD" asp-controller="Account" asp-action="SignOut">Sign out</a>
        </li>
}
else
{
        <li class="nav-item">
            <a class="nav-link text-dark" asp-area="AzureAD" asp-controller="Account" asp-action="SignIn">Sign in</a>
        </li>
}
</ul>

Можно ли как-нибудь расширить это, чтобы получить вышеуказанные поля, или мне нужно создать что-то новое?ТИА.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

По умолчанию только несколько пользовательских свойств включаются в токен и затем сопоставляются с принципом заявки пользователя вашего приложения.Вы можете использовать Microsoft Graph Api для удаления свойств пользователя:

Примечание. Получение пользователя возвращает только набор свойств по умолчанию (businessPhones, displayName, данное имя, id, jobTitle, почта, mobilePhone, officeLocation, предпочитаемый язык, фамилия, userPrincipalName).Используйте $ select, чтобы получить другие свойства и отношения для пользовательского объекта .

Здесь - это документ Microsoft Graph Auth, а здесь пример кода для ASP.NET Core.

0 голосов
/ 23 сентября 2019

Это должно быть в Заявках принципала.

Поместите точку останова в один из ваших контроллеров или представлений.В окне просмотра вы можете привести пользователя к ClaimsPrincipal и просмотреть утверждения, возвращаемые из Azure AD.

См. Отображение утверждений Active Directory для списка утверждений и сопоставления.

Кроме того, ASP.Net Core 2.1 перемещал AccountController и представления в библиотеки классов Razor, поэтому вы не увидите их в своих обычных каталогах, за исключением частичного представления.Вы можете перетащить их обратно в свои каталоги, используя инструмент идентификации лесов здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...