Oauth 2.0 OAuth2客户和赠款

Oauth 2.0 OAuth2客户和赠款,oauth-2.0,Oauth 2.0,说: 注册客户时,客户开发商应: o指定客户端类型 但是没有指定如何定义可用的授权类型 我无法理解如何为客户机定义可用的授权。客户是否可以使用所有授权、多个授权或仅一个授权 规范部分定义了机密(web应用程序)和公共(基于用户代理的应用程序和本机应用程序)客户端类型Public客户端无法保护任何客户端身份验证凭据,因此对于此类客户端,必须仅为隐式授予,或者可能是密码为资源所有者可信客户端授予?但我没有发现这样的限制。哪些授权可供客户端使用是授权服务器做出的部署决定。原则上(根据规范),客户端可以

说:

注册客户时,客户开发商应:

o指定客户端类型

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

我无法理解如何为
客户机
定义可用的
授权。客户是否可以使用所有授权、多个授权或仅一个授权


规范部分定义了
机密
(web应用程序)和
公共
(基于用户代理的应用程序和本机应用程序)客户端类型
Public
客户端无法保护任何客户端身份验证凭据,因此对于此类客户端,必须仅为
隐式
授予,或者可能是
密码
资源所有者
可信客户端授予?但我没有发现这样的限制。

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

隐式按定义授予只能由公共客户端使用,因为没有选项将自身作为协议流的一部分进行身份验证。然而,公共客户和机密客户都可以使用其他授权,因为这些授权可以与客户机密一起使用,也可以不与客户机密一起使用,并且如上所述,定义哪些客户可以使用哪种授权将是部署决策

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

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