Azure AD для ASP. NET Ядро в iframe - PullRequest
0 голосов
/ 24 марта 2020

У меня есть приложение ASP. NET Core 2.2, которое я представляю в iframe. Приложение настроено для аутентификации AzureAD с использованием пакета Microsoft.AspNetCore.Authentication.AzureAD.UI NuGet, версия 2.2.0. Соответствующий код в моем методе Startup class ConfigureServices выглядит следующим образом.

services.Configure<CookiePolicyOptions>(options =>
{
    options.MinimumSameSitePolicy = SameSiteMode.None;
});

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

services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.Authority = options.Authority + "/v2.0/";         // Microsoft identity platform
    options.TokenValidationParameters.ValidateIssuer = false; // accept several tenants (here simplified)
});

services.AddMvc(options =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    options.Filters.Add(new AuthorizeFilter(policy));
})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddControllersAsServices();

Проблема, с которой я сталкиваюсь, - это когда приложение в iframe перенаправляет на login.microsoft.online.com, браузер отказывается отображать страницу, потому что для его параметров X-Frame установлено значение «Запретить».

Как мне преодолеть это? Например, как я могу представить это приложение в iframe, но при этом использовать Azure аутентификацию AD?

...