【问题标题】:Why does OAuth2 support grant_type=password?为什么 OAuth2 支持 grant_type=password?
【发布时间】:2014-11-27 18:22:09
【问题描述】:

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

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

我遗漏了什么使这种 OAuth 成为有效用途?

【问题讨论】:

    标签: oauth oauth-2.0


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-03-19
        • 2020-05-26
        • 2015-04-10
        • 2016-11-14
        • 2011-04-13
        • 2018-10-04
        相关资源
        最近更新 更多