我想知道是否有人有一个示例,展示如何使用Spring Cloud Security(带有OAuth2)实现“令牌交换”技术。
目前,我已经在微服务环境中使用ZuulProxy实现了“令牌中继”技术,以“中继”OAuth2令牌并实现SSO。这很好,但意味着每个微服务都使用相同的clientId(指定在ZuulProxy设置中,因为ZuulProxy仅中继授权码授权类型和提供的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://datatracker.ietf.org/doc/html/draft-ietf-oauth-token-exchange-03
正如我所说,我懂得如何使用SSO和Token Relay,但我无法找到关于如何在参考文档中实现“Token Exchange”的更进一步的说明。我也没有找到实现示例。
有人知道在哪里可以找到更多信息或示例吗?
非常感谢!