Процедура аутентификации Keycloak в среде на основе микросервисов - PullRequest
1 голос
/ 10 февраля 2020

Я хочу использовать Keycloak в среде на основе микросервисов, где аутентификация основана на вызовах REST оконечных точек OpenID ("/ token", без перенаправления на страницу входа в keycloak), поток, о котором я подумал, будет примерно таким:

1. Front-end SPA получает токены из конечной точки "/ token" и сохраняет их в localStorage браузера, а затем отправляет их при каждом запросе.

2. Аутентификация на уровне шлюза: токен доступа передается от внешнего интерфейса к шлюзу, шлюз консультируется с сервером Keycloak, чтобы проверить, все еще ли токен действителен (не аннулирован ли вызовом конечной точки выхода из системы).

3. Авторизация на основе микросервисов: токен доступа передается от шлюза к микросервисам. С помощью адаптера Spring Boot микросервисы проверяют подпись токена в автономном режиме (клиент только для канала?), А затем на основе роли в токен выполняет авторизацию.

Мои вопросы: имеет ли смысл этот поток или вы можете предложить другой поток? Какой тип клиентов Keycloak использовать? Какой идеальный способ передать токены с помощью Spring Boot Adapter, и нужно ли это делать в первую очередь? Пожалуйста, имейте в виду, что я не эксперт по Keycloak, я провел свое исследование, но у меня все еще есть сомнения.

1 Ответ

1 голос
/ 12 февраля 2020

Ваш Front-end SPA должен быть общедоступным c -клиент и микро-сервис Springboot должны быть только клиентом на предъявителя, а шлюз может быть конфиденциальным клиентом.

Вы можете проверить предоставленный Keycloak oid c адаптеры . Для Springboot вы используете адаптер Keycloak

Подобное решение с использованием API-шлюза обсуждается здесь

...