从Oauth2中的其他资源获取资源

时间:2018-05-08 08:55:57

标签: spring-security oauth identityserver4 spring-security-oauth2 openid-connect

所以这是一个案例: 我有身份服务器,客户端应用程序和资源(API)。身份服务器在端点http://identityserver:8080/connect/userinfo上提供用户信息。如果您发送带有效访问令牌的请求,您将获得有关用户的其他信息。 如果我需要资源上的这些信息我将如何获得它。我有两个想法:

  1. 获取客户的用户信息。 (客户端在userinfo端点上发送请求并获取信息,然后使用请求调用API发送它。)
  2. Resource API使用访问令牌在userinfo端点本身上创建请求。这里的问题是,如果我想从令牌存储中获取令牌值,那么它是不受支持的信息(Java Spring),所以基本上我在resurce服务器上没有访问令牌。
  3. 我知道userinfo端点基本上是资源,所以我的问题是如果我想从其他资源获取资源并保持OAuth2和OpenID连接的所有最佳实践,该如何继续。

2 个答案:

答案 0 :(得分:1)

解决方案是使用其他授予类型。最合适的是客户端凭据。需要使用身份服务器来注册新的客户端ID和密码,以用于交换API的访问令牌。

答案 1 :(得分:0)

访问令牌(我假设)可用于您的API,因此您可以将其传递给其他API(例如userinfo端点),假设令牌包含正确的范围。

我建议您创建自己的抽象,以便获取当前请求中使用的原始环境令牌,以便您可以使用它来调用其他API。

相关问题