当前位置: 首页 > 知识库问答 >
问题:

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

籍弘伟
2023-03-14

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

现在,在我们的微服务(即资源服务器)上,我想知道如何处理多个< code>token-info-uri或< code>user-info-uri到多个授权服务器(例如脸书或谷歌)。

共有1个答案

莫欣悦
2023-03-14

这种情况通常通过中间人来解决;资源服务器信任的单一实体,可用于规范化任何可能出现的差异,这些差异源于用户可能向不同的提供者进行身份验证。这有时被称为联合提供者。

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

Auth0位于应用程序和身份提供程序之间,用于对用户进行身份验证。通过这种抽象级别,Auth0使您的应用程序与每个提供者实现的任何更改和特性保持隔离。

(重点是我的)

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

还要记住,身份验证和授权是不同的东西,尽管我们习惯于将它们放在一起。如果你要实现自己的授权服务器,你应该把它作为中心点,可以:

  • 处理多种类型的身份验证提供程序
  • 向下游资源服务器提供用户配置文件的规范化视图
  • 提供客户端应用程序可用于向微服务发出授权请求的访问令牌
 类似资料:
  • 我需要了解在我的项目范围内使用autheorizaion服务器的便利性。 我们正在实现我们的服务并将其部署到客户环境中。 客户基础结构已经提供了一种身份验证机制,以便对用户进行身份验证。 此机制拦截所有通信并将用户重定向到“登录”表单。 之后,用户被重定向到我们的服务,我们必须处理和消化它,并使用JWT令牌进行响应。 这是我感到迷茫的地方: 我在想: 使用Spring oauth2 向授权服务器请

  • 我有以下场景:一个客户端应用程序试图访问API网关后面的APIendpoint。我想验证(使用id和秘密)应用程序,如果它是应用程序A允许它访问endpoint/信用,如果它是应用程序B允许它访问endpoint/借方。 我假设API网关应该验证一个调用是否应该被拒绝。你能告诉我我的工作流应该是什么样子,我应该使用什么Keycloak功能吗?

  • 我想用Spring授权服务器项目构建一个授权服务器。现在我想使用AuthorizationGrantType.PASSWORD. 我从Spring授权服务器项目的示例中开发了一个演示项目。但是,当我尝试使用http://localhost:9000/oauth2/token?grant_type=password获取令牌时 我在这里错过了什么? 依赖项:spring boot starter we

  • 我正在使用以下内容: Spring 4.2 Spring security 4.0.2 Spring oauth2 2.0.7 null 资源服务器配置似乎不限于/rest/**,而是覆盖了所有的安全配置。即对受保护的非OAuth资源的调用不受保护(即筛选器没有捕获它们并重定向到登录)。 配置(为了简单起见,我删除了一些内容):

  • 我在下面设置Spring配置: 和Maven设置如下:

  • 我已经实现了SpringBoot2OAuth2OAuthorization服务器。我只想使用Client_凭证来保护资源服务器,我可以从Auth Server获取访问令牌,但当我将其传递给access rest api时,资源服务器不会从授权服务器验证它,并给出无效的访问令牌错误,我正在使用postman来获取访问令牌并访问quest资源服务器。 授权服务器 授权服务器配置 授权服务器Web配置