Авторизация запросов через весенний шлюз с zool через сервер oauth - PullRequest
0 голосов
/ 08 февраля 2019

Мое приложение имеет микросервисы за (весенним) шлюзом с прокси zuul.Также есть внутренний (весенний) сервер авторизации oauth2.Я хочу реализовать тип предоставления client_credentials для моих вызовов на микросервисах извне - для связи M2M.

Когда я настраиваю для шлюза client_id и client_secret в его application.yml, запросы приходят через шлюз, но нет проверки запрашивающей стороны -oauth авторизует сам шлюз, в результате чего авторизация вообще отсутствует.Я мог бы использовать тип предоставления кода авторизации, но тогда потребовалась бы авторизация веб-клиента, которого пользователь (веб-клиент) мог бы не иметь.

Если я запрашиваю токен аутентификации из микросервиса oauth, я получаю правильный токен для этого приложения.

Как заставить шлюз использовать запрашивающий client_id и client_secret для получения токена от oauth?Например, я могу предоставить их в качестве базовой авторизации через заголовок.Или я могу предоставить шлюзу токен, полученный запрашивающей стороной из oauth?

Вопрос очень похож на другой: Реализация аутентификации и авторизации с использованием Zuul Proxy, Oauth2 на REST Microservices за исключением того, что может быть не веб-клиент, а внешний микросервис.

1 Ответ

0 голосов
/ 21 марта 2019

Я ответил на вопрос Реализация аутентификации и авторизации с использованием Zuul Proxy, Oauth2 на REST Microservices .

В моем случае самым важным было настроить прокси-сервер zuul для пересылки заголовка авторизации напоследующие услуги.Сначала я думал об использовании фильтров zuul, но решение было намного проще - просто настройте чувствительные заголовки для zuul:

server:
  port: 8080
zuul:
  sensitiveHeaders: Cookie,Set-Cookie # <--- this line
  routes:
    spring-security-oauth-resource:
      path: /spring-security-oauth-resource/**
      url: http://localhost:8081/spring-security-oauth-resource
    oauth:
      path: /oauth/**
      url: http://localhost:8083/spring-security-oauth-server/oauth

После успешной аутентификации клиента / пользователя с помощью oauth токен JWT будет перенаправлен шлюзу в нисходящий поток.,Разумеется, для этого шлюза необходимо разрешить доступ к ресурсу oauth без аутентификации и требовать аутентификацию для всех остальных.

Более подробную информацию по темам можно найти в статье https://www.baeldung.com/spring-security-zuul-oauth-jwt

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