基本HTTP身份验证是否需要username:password?

时间:2020-07-02 10:17:38

标签: http basic-authentication http-authentication

RFC 7617指定客户端应如何在“基本”身份验证中构造Authorization标头:

要获得授权,客户端

  1. 从用户那里获取用户名和密码,

  2. 通过连接用户ID(单个)来构造用户通道 冒号(“:”)和密码,

  3. 将用户密码编码为一个八位字节序列(请参见下文以获取 字符编码方案的讨论),

  4. 并通过对该八位字节序列进行编码来获得基本证书 使用Base64([RFC4648],第4节)转换为US-ASCII序列 字符([RFC0020])。

因此,从客户端的角度来看,用户名和密码共同构成了标头的凭据部分。但是,RFC似乎对标头的实际值没有任何要求。因此-从理论上讲-我可以使用“基本”身份验证来创建自定义方案。例如,携带API令牌:

Authorization: Basic APITOKEN

有什么可以阻止我推广此功能的吗?客户端和服务器都是内部工具,都可以通过Internet进行部署,并且该服务器永远无法获得其他客户端。

请注意,我知道这不符合RFC的精神,还有更好的选择,例如Bearer /空用户名。

0 个答案:

没有答案