Пересылка куки между серверами для аутентификации - PullRequest
0 голосов
/ 15 января 2020

Мне нужно проанализировать следующий сценарий аутентификации.

Вовлечены три системы:

  • Элемент списка
  • Система "A" на стороне клиента веб приложение. Он связывается со своим сервером через REST.
  • Система "B" является серверным веб-приложением (JSF). Он должен получить доступ к серверной части A через REST.
  • Поставщик удостоверений, который используется для аутентификации пользователей в обеих системах. Все системы развернуты на разных серверах / доменах.

Система "A" использует SAML 2.0 для аутентификации пользователей через провайдера идентификации. Когда пользователь проходит проверку подлинности, он создает сеанс пользователя и сопоставляет его с браузером пользователя с помощью файлов cookie. Любой последующий вызов REST содержит файлы cookie пользователя.

Система «B» также использует тот же поставщик удостоверений для аутентификации. Бэкэнд B должен вызывать бэкэнд A через REST. Он должен проходить проверку подлинности «под капотом», без участия пользователя. Я отвечаю за разработку этой системы. Теперь вопросы:

  • Могу ли я получить со стороны "Система B" файлы cookie браузера, установленные "Системой A"?
  • Предполагается, что я могу получить их: если я переадресую их в моих вызовах REST этого будет достаточно для аутентификации?
  • Видите ли вы какое-либо другое решение? (не требуется, чтобы пользователь снова входил в систему)

Заранее спасибо.

1 Ответ

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

Обычно я решаю подобные проблемы одним из следующих способов. Вариант 1: обмен токенами. Преобразуйте токен SAML в JWT и отправьте JWT в бэкэнд. Вариант 2: распространение токена SAML. Отправьте SAML бэкэнду, а бэкэнд примет SAML в качестве токена аутентификации. В этой реализации интерфейсная карта готовит ie к токену SAML или создает JWT из cookie / saml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...