Как настроить «Zuul Gateway», вызвать «Auth server» для проверки токена - PullRequest
0 голосов
/ 29 марта 2019

Я использую «Zuul» в качестве шлюза API для моих микросервисов API на основе весенней загрузки.Я также реализовал автономный «Сервер аутентификации» для создания и проверки токена JWT.

Я пытаюсь добиться, чтобы «Zuul» вызывал «Сервер аутентификации» для проверки токена, прежде чем разрешать запросы переходить налюбой сервис.

Таким образом, базовый поток будет выглядеть следующим образом:

  1. Zuul будет служить только в качестве шлюза
  2. Когда дело касается проверки JWT, "Zuul" будетспросите «Auth Server», если токен действителен или нет
  3. Если он действителен, то Zuul продолжит «Нисходящую маршрутизацию».Если нет, то запрос будет отклонен как обычно

Из-за скорости, проблем с задержкой я ищу разумный способ сделать это.Существует множество примеров, основанных на «Предварительной фильтрации Zuul перед нисходящей микросервисной маршрутизацией».И трудно понять, какой из них лучше подходит для моего случая.Есть ли какой-нибудь стандартный способ сделать это, кроме пользовательских подходов?

Ниже приведен лучший пример, который я нашел до сих пор.Из-за отсутствия опыта я действительно не знаю, является ли эта архитектура хорошим вариантом для продолжения.

https://github.com/spring-cloud/spring-cloud-netflix/issues/1392#issuecomment-253267241

1 Ответ

0 голосов
/ 02 апреля 2019

Дело в том, чтобы знать, как настроить сервер авторизации, для этого начните с этого https://www.baeldung.com/spring-security-zuul-oauth-jwt.

https://docs.spring.io/spring-security-oauth2-boot/docs/current/reference/html/boot-features-security-oauth2-authorization-server.html

После правильной настройки, настройка в zuul не так сложна, в aplication.yaml вы должны установить его следующим образом:

security:
  oauth2:
    client:
      clientId: your_clientId
      clientSecret: your_clientSecret
      accessTokenUri: your_accessTokenUri
      userAuthorizationUri: your_userAuthorizationUri
    resource:
      userInfoUri: your_userInfoUri
      preferTokenInfo: true/false
...