Кросс-доменные куки на Azure - PullRequest
0 голосов
/ 12 июня 2019

Мои приложения состоят из 2 частей:

  • Веб-API, написанный на .NET Core
  • Веб-приложение, написанное на React и отображаемое с использованием сервера nodejs express

Я размещаю эти части на Azure, каждая на своем поддомене, поэтому мы имеем:

  • api.azurewebsites.net
  • app.azurewebsites.net

Когда пользователь входит в систему, я устанавливаю cookie-файл, насколько я понимаю, cookie-файл можно использовать в разных поддоменах.Файл cookie устанавливается следующим образом:

Response.Cookies.Append("token", "token value", new CookieOptions
{
    Expires = DateTimeOffset.Now.AddDays(7),
    SameSite = SameSiteMode.None,
    Domain = "azurewebsites.net"
});

Но файл cookie не отправляется вместе с запросами ни в один из поддоменов.Как это может быть?

Если это неправильный подход, как мне пройти аутентификацию с помощью приложения SSR и API остальных?Когда приложение отображается в узле, оно извлекает данные точно так же, как в браузере, используя isomorphic-fetch, cookie передается вместе с ним.

Все это работает безупречно на localhost, проблема начинается, когда приложениев другом поддомене от API.

ОБНОВЛЕНИЕ:

Заголовок cookie выглядит следующим образом:

Set-Cookie: token=<token>; expires=Sat, 22 Jun 2019 05:35:18 GMT; domain=azurewebsites.net; path=/; secure

В Firefox это работаетотличается от хрома.В Chrome я выполняю запрос API аутентификации, получаю токен, получающий заголовок cookie, и затем cookie не отправляется вместе с любыми последующими запросами.

В Firefox cookie действительно отправляется с последующими запросами, однако после обновлениястраница cookie исчезла.

1 Ответ

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

Я нашел этот файл cookie идентификации общего ядра ASP.NET в веб-приложениях Azure на домене по умолчанию (* .azurewebsites.net)

Кросс-доменные куки заблокированы для azurewebsites.netдомен по соображениям безопасности.

...