首页 > 解决方案 > 为什么我们需要在 oauth 协议中从客户端应用程序传递grant_type?

问题描述

为什么我们在使用 oauth 协议时需要从客户端应用程序传递授权类型?

  1. 有时,当我使用错误的授权类型时,它会说不正确的授权类型,所以如果我只能传递支持的值,那么传递这个值是多余的。服务器可以简单地选择支持的一个。客户端应用程序不必通过它。

  2. 如果客户端应用程序可以通过多个授权类型,那么客户端不能简单地通过限制最少的授权类型吗?为什么客户应该关心什么是最合适的授权类型。客户是否必须遵守某些标准或法律问题?

标签: securityauthenticationoauth-2.0oauthauthorization

解决方案


授权类型是 Oauth2 规范rfc6749的一部分,它旨在用于告诉授权服务器您打算使用哪种类型的授权。每种授权类型都适用于不同的用例。

  • 在 Web 服务器上运行的应用程序、基于浏览器的应用程序和移动应用程序的授权代码
  • 使用用户名和密码登录的密码(仅适用于第一方应用程序)
  • 在没有用户的情况下用于应用程序访问的客户端凭据
  • 以前建议没有秘密的客户使用隐式,但已通过使用授权码授权和 PKCE 取代。

要求授权猜测您要使用哪种类型的授权将是 IMO 的一大安全风险。有问题的开发人员最好直接告诉授权服务器他们正在尝试使用哪种授权类型。这样,授权服务器就可以验证您所做的事情是否正确。


推荐阅读