为什么OAuth2支持grant_type =密码?

时间:2014-11-27 18:22:09

标签: oauth oauth-2.0

我见过几个使用OAuth 2.0进行身份验证的API使用密码grant_type。我发现这有点令人困惑,因为:

典型的OAuth 2模型的一个巨大优势是应用程序永远不需要为连接的服务处理用户的用户名/密码。授权类型密码失去了这个优势所以我不确定为什么要使用它而不是基本身份验证,特别是因为基本至少会对凭证进行编码,而您将它们作为纯文本发送,并带有授权类型密码。

我错过了什么使得这种OAuth成为有效用途?

2 个答案:

答案 0 :(得分:2)

官方名称是Resource Owner Password Credentials grant;它仅仅是一种迁移机制,而不是主要的OAuth 2.0流程,因为OAuth确实旨在缓解在客户端应用程序中输入用户凭据的问题;见http://tools.ietf.org/html/rfc6749#section-10.7

它允许资源服务器通过接受和验证访问令牌迁移到OAuth 2.0,稍后可以将客户端升级到允许更高安全性的授权

答案 1 :(得分:0)

密码grant_type有一个有效且重要的用例,而不仅仅是遗留系统:stack是实现官方第一方应用程序的好方法。这样,您就可以为第一方和第三方应用程序使用相同的oauth2授权服务器。

这是API优先设计的一个示例,其中您自己的应用程序是针对您公开供第三方应用程序使用的相同API构建的。