Web services OAuth 2.0多作用域(客户端凭据案例)

Web services OAuth 2.0多作用域(客户端凭据案例),web-services,api,oauth-2.0,soa,orchestration,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授权

在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授权服务器

  • A是否可以请求一个在其作用域中同时具有b.com和c.com域中的资源的单个访问令牌,以便A可以使用相同的令牌访问b和c

  • 你怎么能得到这个

  • 如果无法做到这一点,是否有管理类似案例的最佳实践

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

    谢谢和亲切的问候

    科拉兹

  • 是的,这当然是可能的
  • :

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

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

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

  • 见第1条