Есть ли способ применить атрибут SameSite к .AspNetCore.Correlation cook ie? - PullRequest
0 голосов
/ 17 января 2020

После недавних изменений в Chrome 80 теперь необходимо указать SameSite=None для файлов cookie, которые необходимо отправлять на разные сайты.

Я определил проблема с моим Asp. Net базовым сайтом при размещении на фрейме другого сайта. Аутентификация WS-Federation в настоящее время не работает, поскольку в .AspNetCore.Correlation cook отсутствует атрибут SameSite=None. ie:

Set-Cookie: .AspNetCore.Correlation.WsFederation.qG-dtdsIcVBHSRW4SpPpqpMYMrueIrLfWLvElKrbyXg=N; expires=Fri, 17 Jan 2020 09:17:08 GMT; path=/signin-wsfed; secure; httponly

Я нашел способ добавить SameSite=None к cook ie с использованием Cook ie Policy Middleware :

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

Это работает нормально, но это приводит к созданию ВСЕХ cookie с этим атрибутом, которых я бы хотел избежать. Будет ли менее навязчивое решение, которое можно применить только к корреляционной повара ie?

1 Ответ

1 голос
/ 17 января 2020

Когда вы определяете схему аутентификации, вы можете изменить настройки для корреляции Cook ie. Например:

.AddWsFederation(o =>
{
    o.CorrelationCookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Lax;
})

Примечание от OP :

Обратите внимание, что вам необходимо установить . NET Core Ноябрь 2019 на вашем сервере, чтобы это работало (иначе атрибут SameSite не выдается). См. эту статью .

...