【问题标题】:oAuth Server to Server grant flowoAuth 服务器到服务器授权流程
【发布时间】:2020-12-17 23:11:04
【问题描述】:

我已经为我正在开发的 Web 应用程序实现了 OAuth 2.0 服务器到服务器身份验证。

这两个服务都是我公司内部的,所以我从服务器 A 向服务器 B 发送一个包含用户名、密码、client_id 和 client_secret 的请求,然后我收到一个 access_token 作为响应。

之后,我可以从 A 向 B 发送第二个请求,其中包含标头中的 access_token 以提取一些数据。

从服务器 B 检索到服务器 A 的数据最终传递到服务器 A 中的视图并显示给最终用户。 因此,我从不向最终用户要求任何输入,因为我使用上面的“服务帐户”来提取我需要的数据。最终用户甚至对后台的这种连接一无所知。

话虽如此,我现在很生气地向我的同事解释这是一种安全的方法。 我想知道是否有人可以与我分享任何官方文档或最佳实践,以帮助向 IT 垂直行业证明这种方法是正确的。我被告知公司不允许使用基本身份验证方法,但这不是真正的基本身份验证,不是吗?! 我什至找不到正确的名称,有人将此方法称为密码授予流程,其他人称为两足 OAuth。事实上,在我的情况下,所有交互都发生在服务器与服务器之间,最终用户不需要任何输入。

非常感谢任何帮助!

【问题讨论】:

    标签: oauth-2.0


    【解决方案1】:

    资源所有者密码授予

    您在服务器 A 和服务器 B 之间使用此流程,不建议这样做,因为 OAuth 应用程序不应访问最终用户的密码。使用Client Credentials Flow 进行服务器到服务器调用更为标准。

    OAUTH 令牌发行者

    另一个非标准的方面是服务器 B 不应该发布自己的令牌。使用现成的授权服务器 (AS) 来处理 OAuth 消息和令牌发布更为标准。 AS 是唯一能看到凭证的一方——你的 UI 和 API 只使用令牌,与凭证相比,令牌的有效期很短。

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 2015-01-15
      • 2016-08-12
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2014-07-26
      • 2018-05-09
      • 2015-06-06
      相关资源
      最近更新 更多