【问题标题】:Connect to 3rd party rest api with oAuth2 security server when using own oauth2 implementing使用自己的 oauth2 实现时,使用 oAuth2 安全服务器连接到 3rd 方 rest api
【发布时间】:2020-12-12 03:51:46
【问题描述】:

我试图找到一些关于如何解决我的问题的最佳实践。

我有一个带有 oauth2 和 firebase 的微服务应用程序,用于身份验证和授权。 我们的应用程序需要连接到同样受 oauth2 保护的第 3 方 rest api。

是否可以集成这两种实现,还是我需要自己制定解决方案?

我的一位同事实现了访问 api 所需的授权代码流程,我们基本上将 access 和 refresh_tokens 存储在数据库中以访问此第 3 方 api。但是感觉不对,我也找不到任何最佳做法,有人可以帮帮我吗?

【问题讨论】:

    标签: spring-boot oauth-2.0 microservices


    【解决方案1】:

    您的同事实施的做法非常典型:将您自己的应用程序(您使用 Firebase 管理)的身份验证和授权与授权您使用 3rd 方 API 的用户分开。

    以下是您在实施 OAuth 流程时应遵循的一些最佳做法:

    • 使用state参数避免CSRF攻击。将其存储在您的数据库中,并将回调 state 与您为用户随机生成的回调进行比较
    • 加密访问和刷新令牌。刷新令牌尤其提供长期访问权限
    • 验证您请求的scope 是否为返回的scope:某些提供商允许用户调整权限,这可能会导致意外错误
    • 确保您的刷新令牌不会过期。请查阅提供者的文档以了解刷新令牌是如何被取消授权的。有些是基于时间的,有些是基于发布的新刷新令牌,但无论如何,请确保您的刷新令牌保持有效,如果不是,您必须让用户重新授权您的应用程序

    您还可以使用托管 OAuth 提供程序来抽象出所有这些元素。我从事的Xkit 与 Firebase 身份验证集成,因此您的用户可以授权您的应用,并且您可以通过一次 API 调用检索每个用户的令牌。

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2017-07-03
      • 2018-07-16
      • 2021-09-03
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多