ASP.NET Core 2 Cookie Auth не работает с JWT + OIDC (регистрация приложения AzureAD v2) - PullRequest
0 голосов
/ 25 марта 2019

У меня есть следующие настройки для моего приложения:

services
    .AddAuthentication(options =>
    {
        options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultForbidScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    })
    .AddOpenIdConnect(options =>
    {
        options.ClientId = Configuration["ClientId"];
        options.Authority = $"https://login.microsoftonline.com/{Configuration["TenantId"]}";
        options.ClientSecret = Configuration["ClientSecret"];
    })
    .AddJwtBearer(options =>
    {
        options.Audience = Configuration["ClientId"];
        options.Authority = $"https://login.microsoftonline.com/{Configuration["TenantId"]}";
    })
    .AddCookie();

services.AddAuthorization();

OIDC и JWT работают просто отлично.Звонки от клиентов, использующих токены JWT, проходят аутентификацию.При звонках через браузер без токена пользователь перенаправляется на портал авторизации AzureAD;возвращается к конечной точке 'signin-oidc';OIDC, используя указанную SignInScheme, помещает значения cookie в ответ и перенаправляется на URL-адрес, сгенерировавший запрос.

После перенаправления я могу просмотреть файлы cookie в запросе и найти значения .AspNetCore.Cookiesв запросе, но для этих запросов не происходит аутентификация.Они перенаправляются обратно на портал AzureAD для аутентификации.

Есть идеи?

...