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

Spring oauth2:没有授权服务器的资源服务器

岳研
2023-03-14

我需要了解在我的项目范围内使用autheorizaion服务器的便利性。

我们正在实现我们的服务并将其部署到客户环境中。

  1. 客户基础结构已经提供了一种身份验证机制,以便对用户进行身份验证。
  2. 机制拦截所有通信并将用户重定向到“登录”表单。
  3. 之后,用户被重定向到我们的服务,我们必须处理和消化它,并使用JWT令牌进行响应。

这是我感到迷茫的地方:

我在想:

  1. 使用Spring oauth2 向授权服务器请求 JWT 令牌,或者
  2. 使用Spring oauth2 自动生成 JWT 令牌并对其进行验证。我不知道这是否可能。

我的问题是,既然用户已经通过了身份验证,那么使用oAuth2授权服务器,使用客户端凭据来对我们的资源服务进行客户端身份验证是否有意义?

简短的问题是,我可以使用spring-oauth 2 libre ries在没有授权服务器的情况下生成JWT吗?

共有1个答案

傅高逸
2023-03-14

从技术上讲,你可以做到这一点,但我会劝阻你这样做。系统中的访问令牌应该由专门的服务集中发布。否则,将很难维护基础设施。如果您的服务将开始发布jwt,那么它们也必须为其他人提供公钥来验证这些jwt。密钥管理、访问令牌内容管理以及将用户信息映射到声明的任何规则现在都将成为您的服务的一部分,这将不必要地使其实现复杂化。

如果客户的身份验证机制发出JWT,为什么不使用该机制进行请求授权?如果该机制不足,我建议使用授权服务器(或专用服务),它可以执行令牌交换并将原始JWT交换为新的。

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

  • 我们正在开发一个微服务架构中的应用程序,该应用程序在多个OAuth2提供商(如Google和Facebook)上使用Spring Cloud OAuth2实现登录。我们还在开发自己的授权服务器,并将在下一个版本中集成。 现在,在我们的微服务(即资源服务器)上,我想知道如何处理多个< code>token-info-uri或< code>user-info-uri到多个授权服务器(例如脸书或谷歌)。

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

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

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

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