OAuth 2.0多个范围(客户端凭据案例)

时间:2012-10-19 13:20:32

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

在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. 如果无法做到这一点,管理类似案件是否有最佳做法?

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

    谢谢和亲切的问候,

    Corraz

1 个答案:

答案 0 :(得分:1)

  1. 是的,这当然是可能的。
  2. From the specification

      

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

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

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

  3. 见1.;)