AzureAD и IOS12 SameSite Cookie бесконечный цикл - PullRequest
0 голосов
/ 06 ноября 2018

У меня та же проблема с cookie-файлами на сайте, которую я замечал во время обхода. Я использую AzureAD, и когда я применяю исправления, которые там есть, я все еще не могу остановить бесконечный цикл в IOS12.

Я прочитал эту страницу и эту детализацию, установив SameSiteMode в None. Я что-то пропустил?

.NET Core 2.1, AzureAD

Вот мой класс запуска:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
            .AddAzureAD(options => Configuration.Bind("AzureAd", options))
            .AddCookie(options=>options.Cookie.SameSite = SameSiteMode.None)
            .Services.ConfigureExternalCookie(options =>
            {
                options.Cookie = new Microsoft.AspNetCore.Http.CookieBuilder()
                {
                    SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None
                };
            });

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

    }



    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {


        app.UseCors(builder =>
        {
            // cannot be set to AllowAnyOrigin, because then the response is not accepted, because the credentials are included
            builder.WithOrigins("https://*.sharepoint.com")
                .SetIsOriginAllowedToAllowWildcardSubdomains()
                .AllowCredentials();
        });

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy(new CookiePolicyOptions()
        {
            MinimumSameSitePolicy = SameSiteMode.None
        });

        app.UseAuthentication();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });


    }

РЕДАКТИРОВАТЬ: у меня есть другое приложение, развернутое в том же окне, у которого нет той же проблемы бесконечного цикла. Я скопировал конфигурацию, чтобы соответствовать этому приложению, и она все еще не работает. Оба новых приложения .NET Core 2.1.

        services.AddAuthentication(sharedOptions =>
    {
        sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        sharedOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
    })
    .AddAzureAd(options => Configuration.Bind("AzureAd", options))
    .AddCookie();

И

app.UseAuthentication();

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 16 июля 2019

Похоже, что он работает с новейшими обновлениями от MS и Apple.

...