У меня есть приложение 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?