Я хотел бы знать, есть ли у кого-нибудь пример, как реализовать технику "Token Exchange" с помощью Spring Cloud Security (с OAuth2).
В настоящее время я реализовал технику "Token Relay" в среде Microservices, используя ZuulProxy для "ретрансляции" маркера OAuth2 и реализации единого входа. Это замечательно, но подразумевает, что каждый микросервис использует один и тот же clientId (который указан в настройке ZuulProxy, поскольку ZuulProxy ретранслирует токен только с типом grantization_code и предоставленным clientId). Однако для вызовов внутри микросервисов я хотел бы "обменять" токен. Это означает, что в некоторых случаях токен, который не поддерживает ZuulProxy, не тот, который мне нужно использовать для аутентификации/авторизации Microservice A в качестве клиента Microservice B.
В справочной документации Spring Cloud в настоящее время говорится: "Основываясь на Spring Boot и Spring Security OAuth2, мы можем быстро создавать системы, которые реализуют общие шаблоны, такие как единый вход, ретранслятор токенов и обмен токенами". (http://cloud.spring.io/spring-cloud-security/spring-cloud-security.html)
Я предполагаю, что с "Token Exchange" в справочной документации это означает реализацию этого расширения OAuth2, объясненного в этой спецификации, что в основном является тем, что мне нужно: https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-03
Как я уже сказал, я понимаю, как использовать SSO и Token Relay, но я не могу больше узнать о том, как реализовать "Обмен токенов" в справочной документации. Я также не смог найти пример реализации.
Кто-нибудь знает, где я могу найти дополнительную информацию или пример?
Большое спасибо!