【问题标题】:OAuth 2.0 multiple scopes (client credentials case)OAuth 2.0 多范围(客户端凭据案例)
【发布时间】:2012-10-10 02:56:45
【问题描述】:

在 OAuth 2.0 设置中,假设您有一个应用程序按照“客户端凭据授予”流程执行“访问令牌请求”。换句话说,我们有一个应用程序 A 访问了其他应用程序公开的一些 API;根据 Oauth 2.0 的规定,在这种情况下,“应用程序 A”仅使用其客户端凭据,而不是用户的凭据。

现在,假设应用程序 A 想要访问从两个或多个应用程序公开的 API,假设应用程序 B 和 C(例如:应用程序 A 编排对 B 和 C 的 API 的访问以提供组合服务)。 B 和 C 也在不同的域中,例如 b.com 和 c.com,但 A、B 和 C 共享一个共同的 OAuth 授权服务器。

  1. A 是否可以请求在其范围内同时具有 b.com 和 c.com 域中的资源的单个访问令牌,以便 A 可以使用相同的令牌访问 B 和 C?

  2. 你如何获得这个?

  3. 如果不可能,是否有管理类似案例的最佳实践?

请注意,我知道 OAuth 2.0 规范允许在请求或发出令牌时指定多个范围,但这里的重点是 B 和 C 位于不同的域中,例如 b.com 和 c.com。

感谢和亲切的问候,

科拉兹

【问题讨论】:

    标签: web-services api oauth-2.0 soa orchestration


    【解决方案1】:
    1. 是的,这当然是可能的。
    2. From the specification:

    资源服务器用于验证访问令牌(以及任何错误响应)的方法超出了本规范的范围,但通常涉及资源服务器和授权服务器之间的交互或协调。

    所以这完全取决于您的实现和令牌的类型,您只需确保访问令牌是由您的授权服务器颁发的并且仍然有效。拥有不同的域对此没有任何影响。

    可能最广泛使用的做法是在您的资源服务器上进行数据库查找,以查看访问令牌是否存储在那里(因此有效)并将该表与您的授权服务器同步(或直接使用相同的数据库 A , B 和 C)。 3. 见 1. ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      相关资源
      最近更新 更多