繁体   English   中英

安全Oauth 2.0资源所有者密码凭据授予类型

[英]Secure Oauth 2.0 Resource Owner Password Credentials Grant Type

为了在资源所有者密码凭据授予类型 OAuth 2.0中获取访问令牌 ,您需要POST类似的东西

https://oauth.example.com/token?grant_type=password&username=USERNAME&password=PASSWORD&client_id=CLIENT_ID

我不喜欢在纯文本中发布用户名和密码(附加安全层),鉴于我们将使用SSL,建议采用哪些方法来处理它?

我想先从服务器获取一个nonce,然后用它来在POST请求中散列用户名和密码。

首先要注意几点:

  1. 您描述的授权类型的正式名称是Resource Owner Password Credentials grant

  2. 您提供的示例将参数显示为查询字符串的一部分,该字符串通常与HTTP GET请求一起使用

  3. 一个真正的POST会在HTTP主体中显示参数,当使用SSL时,参数将无法在连接的两端之外访问,因此原则上只对发送者和接收者可见,这对大多数用例来说都很好

ROPC授权由OAuth规范定义,并将用户凭证作为明文传递。 你的建议是(相对较小的)安全改进,因为它不会逐字传递任何秘密,而只会传递该秘密的“证据”。

然而,对现有流程的任何修改都将依赖于客户端和授权服务器端上的非标准协议功能的支持,这超出了规范,因此只有在您控制双方时才能使其工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM