与第三方提供商的REST API上的OAuth 2.0

问题描述 投票:1回答:2

我是OAuth 2.0的新手,我正在尝试使用授权代码授权流程作为ny授权服务器和Spring Security的第三方OAuth提供程序开发应用程序。这个提供程序给了我两个端点/authorize/token,这两个端点在用户授权访问后,将返回一个访问令牌。

到目前为止,我已经保护了“/”端点,因此应用程序将用户重定向到授权页面,然后在回调端点中存储令牌,以便可以通过每个请求中的过滤器对其进行验证。

但是,由于应用程序主要是一组REST API,我们希望能够使用Postman进行测试,据说,在Postman上,我通过将Authorization设置为OAuth 2.0并直接从第三方端点但是,由于Postman有自己的回调URI,我的应用程序不会存储生成的令牌。

所以,我的两个问题是:

  1. 使用/ callback端点存储令牌并在过滤器的每个请求之前验证它是常用的方法吗?
  2. 要使用Postman,我应该创建一个端点来存储在应用程序上下文之外生成的令牌,还是应该创建一个自己的Authorization Server作为第三方AS之上的附加层?
oauth-2.0 spring-security-oauth2
2个回答
0
投票

由于您的应用程序是一组REST API,因此您需要将其作为资源服务器(就OAuth2而言)。 资源服务器本身不执行身份验证,它只验证来自Authorization头(Resource Server in a nutshell)的令牌。

您可以在Spring Security示例中找到一个示例:oauth2resourceserver


0
投票

我最终得出结论,我一直在使用Postman错误。因此,最后,当用户登录时,我们将令牌保存在数据库中,然后将其返回给调用者,无论是前端应用程序还是邮递员本身。然后,在每次调用API时,调用者应该在标头上包含令牌作为Authorization,而Spring上的Filter将根据数据库检查令牌。

© www.soinside.com 2019 - 2024. All rights reserved.