【问题标题】:OAuth2 Clients and GrantsOAuth2 客户端和授权
【发布时间】:2016-01-03 18:07:51
【问题描述】:

2. Client Registration 说:

注册客户端时,客户端开发者应:

o 指定客户端类型

但没有指定如何定义可用的授权类型。

我不明白如何为client 定义可用的grants。客户可以使用所有授权、多个授权还是只使用一个。

2.1. Client Types 规范部分定义了confidential(Web 应用程序)和public(基于用户代理的应用程序和本机应用程序)客户端类型。 Public 客户端无法保护任何客户端身份验证凭据,因此对于此类客户端必须仅可用 implicit 授权,或者对于 resource owner 受信任的客户端可能是 password 授权?但是我没有发现这样的限制。

【问题讨论】:

    标签: oauth-2.0


    【解决方案1】:

    向客户端提供哪些授权是授权服务器做出的部署决策。原则上(按规范)对客户端可以使用的授权类型没有限制。一种典型的工作方式是授权服务器的管理员注册一个客户端,然后为其分配可用的授权类型。正如您所建议的,这可以是一项授权、多项授权或全部授权(嗯,取决于客户端密钥的可用性,见下文)。

    根据定义,隐式授权只能由公共客户端使用,因为没有选项可以将自己作为协议流的一部分进行身份验证。然而,公共客户端和机密客户端都可以使用其他授权,因为它们可以在有或没有客户端机密的情况下使用,并且如上所述,定义哪个客户端可以使用哪个授权将是一个部署决策。

    作为后者的一个示例:授权代码授权除了可用于机密客户端外,还完全可用于公共客户端。公共客户端将以常规方式接收授权代码,并将其呈现给令牌端点,而无需像机密客户端那样对自己进行身份验证。因为与隐式授权相比,它不会提供任何明显的安全优势,但确实需要到授权服务器的额外往返,所以它没有被广泛部署,但肯定不被禁止。

    资源所有者密码凭据授权是机密客户端和公共客户端都可以使用的授权的另一个示例。客户端不会向令牌端点验证自己,而只是传递资源所有者密码来获取访问令牌。

    【讨论】:

      猜你喜欢
      • 2020-03-27
      • 2013-09-05
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多