【问题标题】:Resource Owner Password Credentials Grant - Public Client资源所有者密码凭证授予 - 公共客户端
【发布时间】:2015-01-27 23:45:32
【问题描述】:

我正在尝试使用 Python oauthlib 为网站实现 Oauth2。我决定使用授权类型“ResourceOwnerPasswordCredentialsGrant”,这是因为网站和 API 是我自己的,不会向第三方开放。

在“resource_owner_password_credentials.py”中,为什么“client_authentication_required”被硬编码为返回“True”?

我需要对我的客户(网站)进行身份验证吗?据我了解,这将是“公共”而不是机密客户。

【问题讨论】:

    标签: python oauth-2.0 flask-oauthlib


    【解决方案1】:

    看起来 oauthlib 的作者是这样解释规范的。资源所有者密码凭据授予类型 (https://www.rfc-editor.org/rfc/rfc6749#section-4.3) 部分说:

    (B) 客户端向授权请求访问令牌 服务器的令牌端点,包括收到的凭据 来自资源所有者。发出请求时,客户端 通过授权服务器进行身份验证。

    请注意,它建议客户端进行身份验证,但它没有在最后一句中使用 MUST 关键字。就在其下方,有稍微复杂一点的文字 (https://www.rfc-editor.org/rfc/rfc6749#section-4.3.2) 说:

    如果客户类型是保密的或者客户是发给客户的
    凭据(或分配的其他身份验证要求),
    客户端必须按照所述向授权服务器进行身份验证
    在第 3.2.1 节中。

    注意“如果客户是机密的”,这一次暗示公共客户也可以使用这种授权类型,这是有道理的。

    所以我认为这是由于对规范中的措辞过于严格的解释。

    【讨论】:

    • 谢谢,有道理
    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 2018-05-25
    • 2016-12-31
    • 2015-05-30
    • 2016-03-03
    • 2014-07-09
    • 2015-04-01
    • 2014-07-25
    相关资源
    最近更新 更多