Тихое продление с кросс-доменом oidc-client, если сторонние файлы cookie заблокированы

У нас есть два приложения SPA, которые взаимодействуют с одним и тем же IdentityProvider. Мы реализовали oidc-client, и система единого входа работала нормально. Теперь мы поняли, что тихая аутентификация не работает, если сторонние файлы cookie заблокированы, что является большой проблемой.

Такие браузеры, как Safari, Firefox, уже по умолчанию блокируют сторонние файлы cookie. Каков рекомендуемый способ управления Session_Management и Access_Token в приложении SPA.

Мы не хотим, чтобы пользователи снова входили в систему, если сеанс в IdentityProvider все еще активен (сеанс активен в течение 14 дней с скользящим истечением срока действия).

Какие у меня варианты?


person user11934885    schedule 16.08.2019    source источник
comment
Можете ли вы подтвердить, что проблема заключается в том, что файл cookie проверки подлинности для вашего сервера идентификации не отправляется в сценарии тихого входа?   -  person mackie    schedule 16.08.2019
comment
Файлы cookie на IDP не играют никакой роли, если вы используете автоматическое обновление, также известное как refresh_token, для получения новых access_tokens.   -  person Vidmantas Blazevicius    schedule 16.08.2019
comment
@VidmantasBlazevicius вы не используете токены обновления в SPA - это запрос prompt = none авторизовать конечную точку в iframe и, следовательно, требует cookie аутентификации.   -  person mackie    schedule 16.08.2019
comment
Да, хороший момент, мне следовало прочитать пост внимательнее. Я думаю, что это как бы нарушает Silent Authentication неявного потока, если честно. Я мог видеть попытку определить, включены ли / отключены сторонние файлы cookie и, по крайней мере, предлагать пользователю сообщить ему о последствиях, что может быть разумным подходом ...   -  person Vidmantas Blazevicius    schedule 16.08.2019
comment
@mackie Я могу это подтвердить. Думаю, в переднем канале с этим не справиться. Сейчас мы пробуем следующий подход: lessprivilege.com/2019/01/18/   -  person user11934885    schedule 20.08.2019
comment
@ user11934885 из интереса, что вы сделали, что нарушает этот (поддерживаемый) процесс?   -  person mackie    schedule 20.08.2019


Ответы (1)


Основываясь на комментариях к OP и немного поэкспериментировав ... Если я установил для cookie аутентификации значение SameSite = Lax, тогда тихие вызовы на основе iframe не работают, но перенаправления верхнего уровня не затронуты. Следовательно, SameSite = Lax нарушает OIDC, и, следовательно, необходимо иметь комплексное решение CSRF вместо этого, если вы хотите использовать стандартный шаблон на стороне клиента.

person mackie    schedule 20.08.2019