У меня есть 2 приложения JHipster, каждое из которых работает на одном поддомене (app1.domain.tld & app2.domain.tld).
В обоих приложениях пользователи входят через Keycloak.Последовательность такова:
- Приложение Angular отправляет / аутентифицирует запрос с учетными данными в Keycloak
- В случае успешного ответа возвращает cookie аутентификации
- Запрос POST is isотправляется в бэкэнд-приложение Jhipster, которое генерирует файл cookie JSessionID
- Затем JSessionID используется для каждого запроса к поддерживаемому приложению.
Каков наилучший способ автоматического входа пользователя в систему (без запроса имени пользователя ипароль), если они уже зарегистрированы в одном из приложений домена (* .domain.tld)?
Я пытался использовать JSessionID в качестве глобального токена, прежде чем понять, что он работает только в приложении, которое было сгенерированоon ...
Может быть, перехватить файл cookie аутентификации Keycloak (возвращенный на шаге 2) и выполнить аутентификацию во втором приложении, это поможет?
Из того, что я видел во время тестирования, после аутентификации в первом приложении, когда я перехожу ко второму, HTTP-перехватчик Angular 401 перенаправляет на страницу входа в Keycloak с сеансоммаркер.Таким образом, в это время Keycloak должен видеть, что я уже вошел в систему, и должен перенаправить меня на домашнюю страницу моего второго приложения.
Я прав?