Не удается пройти проверку подлинности с помощью политики Azure AD: авторизация завершилась неудачно из-за запрета - PullRequest
0 голосов
/ 02 апреля 2020

Мы мигрируем с Windows Аутентификация на Azure AD.

У нас есть такая политика:

    services.AddAuthorization(options =>
    {
        options.AddPolicy("Test", policy => policy.RequireClaim(ClaimTypes.Role, "Test"));
    });

    services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
            .AddAzureAD(options => this.Configuration.Bind("AzureAd", options))
            .AddCookie();

Мой контроллер украшен

[Authorize(Policy = "Test")]

вот манифест json:

    "appRoles": [
    {
        "allowedMemberTypes": [
            "User"
        ],
        "description": "Security group for Test.",
        "displayName": "Test",
        "id": "5500dd65-c64b-400e-98dd-8e255563aefe",
        "isEnabled": true,
        "lang": null,
        "origin": "Application",
        "value": "Test"
    }
],

Мы присвоили этой роли приложения действительную группу из портала azure.

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

проверил логи, мы нашли что-то вроде ниже:

AuthenticationScheme: AzureADCookie was not authenticated.
AuthenticationScheme: AzureADCookie was forbidden.
Authorization failed for the request at filter 'Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter'.

Для всех, кто читал это далеко - заранее спасибо !

1 Ответ

1 голос
/ 02 апреля 2020

Наконец, я обнаружил проблему: ничего плохого в коде ...

В настоящее время мы используем Windows Аутентификация.

После перехода с Windows Аутентификация на Azure Аутентификация AD и опубликованные изменения кода в нашей среде Dev, нам нужно изменить конфигурацию IIS на сервере Dev: на:

  1. Отключено Windows Аутентификация
  2. Включить анонимную аутентификацию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...