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

调试资源服务器和授权服务器之间的接口(oauth 2.0.验证访问令牌)

曹骞仕
2023-03-14

有两个< code >Spring启动应用程序。

  1. 客户
  2. 资源服务器 有用作身份验证服务器的 dev okta 帐户

(这两个应用程序是标准的< code>Spring Boot客户端-

客户端-安全地将消息发送到--

(它按预期工作)

但我试图弄清楚他们之间发生了什么,交通明智

我试图发现resource-server检查它从从auth server获取的客户端令牌的那一刻。

这是标准< code>oauth 2.0流程和我想调试部分的序列图(箭头)

身份验证服务器

客户端之间有一个通信,资源切断器:

我似乎无法确认资源服务器(从右边)是否使用auth-Server(okta)进行任何令牌验证。。?

问题:为什么?根据我的理解,它应该(以某种方式)验证它。

我希望看到从资源服务器到身份验证服务器(otka)的调用,其中包含令牌验证请求(2015年10月的ETF RFC 7662),如下所示:

如何验证资源服务器的OAuth 2.0访问令牌?

我希望,比方说,对于每个客户端调用,资源服务器都会检查客户端传递的令牌是否有效。然而,我看不到任何来自资源服务部门对okta的调用会在其对okta请求中使用令牌。

共有1个答案

赵飞雨
2023-03-14

这归结为JWT和不透明令牌之间的区别。

根据我看到的对< code>/keys的调用,看起来您的应用程序正在使用JWTs。

使用JWT身份验证时,资源服务器将在启动时查询jwks_url(在本例中为/key)以检索一组公钥,它可用于验证JWT编码的承载令牌。

然后,当资源服务器在来自客户端的请求中收到持有者令牌时,它将根据从jwks_url终结点获取的公钥验证其签名。

这意味着资源服务器不必对每个请求都查询授权服务器。< br >您可以在Spring Security reference文档的OAuth 2.0 Resource Server JWT部分中了解有关此过程的更多信息。

您链接到的问题涉及不透明令牌。< br >在此设置中,资源服务器每次都必须调用授权服务器自检endpoint来验证令牌。您可以在Spring Security参考文档的OAuth 2.0 Resource Server Opaque Token一节中了解关于这个过程的更多信息。

 类似资料:
  • 当客户端请求资源服务器使用OAuth2.0访问令牌获取受保护的资源时,该服务器如何验证该令牌?OAuth 2.0刷新令牌协议?

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

  • 我目前正在学习OAuth 2.0和OpenID Connect,我对授权服务器和访问令牌有疑问。规范将授权服务器定义为: 服务器在成功验证资源所有者并获得授权后向客户端发放访问令牌。 因此,据我所知,客户端将用户重定向到授权服务器,用户在授权服务器上进行身份验证,授权服务器向客户端发出访问令牌。 现在有一件事发生了,直到现在我才明白。有两种可能的方法来理解这一点,我正在努力找到正确的方法: > 授

  • 我需要了解在我的项目范围内使用autheorizaion服务器的便利性。 我们正在实现我们的服务并将其部署到客户环境中。 客户基础结构已经提供了一种身份验证机制,以便对用户进行身份验证。 此机制拦截所有通信并将用户重定向到“登录”表单。 之后,用户被重定向到我们的服务,我们必须处理和消化它,并使用JWT令牌进行响应。 这是我感到迷茫的地方: 我在想: 使用Spring oauth2 向授权服务器请

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

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