spring-security – Spring Cloud OAuth2:具有多个授权服务器的资源服务器

我们正在微服务架构中开发一个应用程序,该架构使用Spring Cloud OAuth2在Google和Facebook等多个OAuth2提供商上实现签名登录.我们还在开发自己的授权服务器,并将在下一版本中集成.

现在,在我们的微服务(资源服务器)上,我想知道如何处理多个token-info-uri或user-info-uri到多个授权服务器(例如Facebook或Google).

最佳答案
这种情况通常由一个中间人解决;资源服务器信任的单个实体,可用于规范化用户可能使用不同提供程序进行身份验证的任何可能的差异.这有时称为联合提供程序.

Auth0就是这种实现的一个很好的例子.披露:我是Auth0工程师.

Auth0 sits between your app and the identity provider that authenticates your users. Through this level of abstraction, Auth0 keeps your app isolated from any changes to and idiosyncrasies of each provider’s implementation.

(重点是我的)

并不是说您的资源服务器在技术上不能信任多个授权服务器,只是将该逻辑从各个资源服务器移动到一个中心位置将使其更易于管理和解耦.

还要记住,虽然我们习惯于将身份验证和授权结合在一起,但身份验证和授权是不同的.如果您要实现自己的授权服务器,则应该将其作为可以的中心点:

>处理多种类型的身份验证提供程序
>向下游资源服务器提供用户配置文件的规范化视图
>提供客户端应用程序可以使用的访问令牌,以向您的微服务发出授权请求

转载注明原文:spring-security – Spring Cloud OAuth2:具有多个授权服务器的资源服务器 - 代码日志