gpt4 book ai didi

spring-boot - 如何在 Spring 中使用 OAuth2 和 JWT token 代表特定用户调用 protected 资源?

转载 作者:行者123 更新时间:2023-12-05 07:41:51 27 4
gpt4 key购买 nike

所以我们有一个身份验证服务器,UI 应用程序在其中获取访问 token ,然后它与 API 服务器通信,这一切都很好。现在我们正在构建第三个应用程序,它需要 SSO 来验证同一用户,这也很好。

但是,在某些情况下,第三个应用程序需要使用 API 服务器上的一些资源,根据我的理解,我们需要使用 client-id/secret 从 auth 服务器获取 token ,然后使用访问权限发送请求 token 。这看起来也不错,但我不确定 API 服务器将如何授权该 token (对此的提示会很棒)。

但主要问题是我们希望代表用户发送此请求。这是因为 API 服务器需要审计所有用户的事件。 我们如何使用 Spring Boot/OAuth2 和 JWT Token 实现这一点?

我浏览了文档并且知道 @EnableOauth2Sso @EnableAuthorisationServer 等,但这种情况尚不清楚,我什至不确定它是否已在 Spring 中实现。

如果这个场景没有实现,你有什么建议?您有这方面的经验吗,可以分享一下吗?

最佳答案

您的 API 服务器扮演资源服务器的角色。有一个为此目的设计的注释:@EnableResourceServer。然后,您的客户端应用程序将使用方便的 OAuth2RestTemplate 使用此资源。

有两种方法可以正确配置资源服务器并使其正常工作:

  1. 将公钥直接放在资源服务器应用程序中:这样当客户端应用程序尝试使用授权服务器提供的 token 从资源服务器获取资源时,这将验证 token 本身是否有效。
  2. 将资源服务器配置为询问授权服务器给定的访问 token 是否有效,并根据响应允许或拒绝获取资源。

我已经发布了 sample app on github使用第一种方法。在那里您可以看到授权服务器、客户端和资源服务器之间的交互,以及此实现所需的所有配置。希望对你有帮助。

关于spring-boot - 如何在 Spring 中使用 OAuth2 和 JWT token 代表特定用户调用 protected 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com