Azure Аутентификация на основе токена AD для WebAPI - PullRequest
0 голосов
/ 06 января 2020

Мы разработали веб-API в. net Core 2.1 без аутентификации.

Но сейчас мы пытаемся добавить аутентификацию Azure AD на основе токенов.

мы зарегистрировали приложение в azure AD и сделали необходимые изменения в файле startup.cs. и добавил тег авторизации

Когда мы тестируем API в почтальоне, мы сгенерировали токен, в результате мы получаем страницу входа Microsoft в формате Html.

, когда мы проверяем API в браузере, его запрос имя пользователя и пароль домена, предоставив пароль имени пользователя, мы получаем результат.

Кажется, что в настройках или коде Azure отсутствует какая-либо конфигурация или настройка.

Может кто-нибудь помочь с этим , в противном случае кто-нибудь поделится шагами по реализации аутентификации на основе токенов для API.

1 Ответ

0 голосов
/ 07 января 2020

Если у вас уже есть API, вы должны сначала зарегистрировать приложение на Azure Portal.

В вашем приложении API вы можете выполнить следующие шаги:

  1. Установить пакет Microsoft.AspNetCore.Authentication.AzureAD.UI
  2. Зарегистрируйте службу аутентификации на предъявителя Azure AD в функции ConfigureServices:

    services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
            .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));
    
  3. В appsettings.json, установите правильная конфигурация API от Azure Portal:

    "AzureAd": {
        "Instance": "https://login.microsoftonline.com/",
        "Domain": "YourDomain.onmicrosoft.com",
        "TenantId": "cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac",
        "ClientId": "83bf146d-4948-4596-a4b3-b7b2e68ac3e0"
    },
    

    Идентификатор клиента, имя домена и идентификатор клиента API можно найти в Azure Portal. Затем можно добавить атрибут Authorize на защищенных контроллерах / действиях. Если у вас несколько схем аутентификации, вы можете авторизоваться с указанной c схемой .

. Ваше клиентское приложение будет использовать промежуточное ПО OpenID Connect и ADAL / MSAL. получить токен-носитель JWT для вошедшего в систему пользователя с использованием протокола OAuth 2.0. Маркер-носитель передается в веб-API, который проверяет токен и авторизует пользователя с использованием промежуточного программного обеспечения для аутентификации канала-носителя JWT.

...