Отдельный модуль от приложения JSF - PullRequest
0 голосов
/ 26 апреля 2018

У нас большое монолитное приложение JSF. Мы хотим изменить архитектуру этого приложения. В настоящее время моя цель - изменить один модуль в нашем приложении. Мне нужно переместить логику из одного модуля в другое приложение, которое будет реализовано в другом стеке технологий (это будет rest-service с некоторыми js-framework на веб-интерфейсе).

Приложение должно работать так же. У нас должна быть ссылка на страницу, как это было раньше, но эта страница должна быть предоставлена ​​другим сервисом. У нас должен быть один и тот же сеанс между этими двумя приложениями. Пользователь должен иметь возможность отправлять страницы без дополнительного шага аутентификации.

Мы планируем переместить и другие модули, не только этот. Мне нужна помощь Есть ли у вас мысли, как это должно быть реализовано? какие-нибудь примеры?

1 Ответ

0 голосов
/ 01 мая 2018

Идеальный способ сделать это для меня - использовать службу единого входа, такую ​​как keycloak , в качестве поставщика удостоверений.Это включает портирование вашей логики аутентификации на нее и отделение ее от вашего монолита.Но если вы полагаетесь на него как на свой IdP, вы делите токены только между своими приложениями и IdP.Keycloak имеет много адаптеров, для клиентов Java, Javascript, NodeJs и т. Д.Это имеет огромное преимущество, заключающееся в том, что вы можете продолжать отделять логику от своего монолита, и вам даже не нужны новые модули для написания на Java.Вы даже можете интегрировать его со службами, не написанными вами, для них достаточно интеграции Open Id Connect или SAML.

KC поддерживает протоколы SAML и OIDC Auth.С OIDC (способ работы с совершенно новыми приложениями) адаптер, расположенный в каждом из приложений, проверяет, имеет ли пользователь действующий веб-сеанс или нет.Если нет, он будет перенаправлен на страницу входа в KC.Результатом действительного входа в систему является код, который вы можете использовать для получения токена доступа (действительного токена для получения ресурсов из вашего приложения).Кроме того, адаптер связывает этот токен доступа с веб-сеансом браузера, который также хранится в KC.Поэтому, если вы пытаетесь получить доступ к другой веб-странице, адаптер проверяет ваш веб-сеанс, который считается действительным.

Вы также можете использовать его для доступа к своим приложениям с мобильного устройства, заботясь о доступеУправление токенами / обновление в мобильном приложении самостоятельно.

enter image description here

См. также:

...