指南真简单教程 —— HTTP Basic鉴权框架

标准/规范

RFC7617

概念

HTTP基本鉴权框架提供了一种通过HTTP Header发送用户名/密码信息到服务器进行登录的简单身份鉴定方法。同时定义了与方法匹配的交互方式,比如鉴权失败时服务器应返回401状态码
由于不使用form提交也不会出现在请求体内容中,减少了一部分CSRF攻击可能性,更重要的是支持跨域授权(比如OAuth2.0),常用于需要开放资源给域外客户的场景。

实现

一个标准的HTTP Basic Auth头规则并不复杂

Authorization: Basic aG9seWhpZ2g6aGlnaGx5aG9sZQ==
  • 协议头为:标准HTTP协议值 Authorization
  • 协议内容为:(Basic scheme(方案) + 空格*1 + 鉴权信息)三部分组成
  • 鉴权信息为:经过Base64编码的 username:password 格式的字符串,比如上例进行解码后的身份信息为
    holyhigh:highlyhole
    

风险

  1. 显然,Base64并不属于加密范畴,明码传输很容易被拦截,所以这种方法通常会与TLS一起使用
  2. 相比跨域登录,基本鉴权更适合数据交换场景,比如将访问码放在header中进行资源请求。但如果作为同域内的登录方式 —— 比如独立构建的web服务请求资源服务授权是可以的
  3. 如果你已经确定将基本鉴权作为跨域数据交换的方式,显然,你需要对协议值进行各种程度的加密处理,比如与基础鉴权相关的摘要鉴权(Digest Access Authentication)。当然,你还有其他选择:OAuth2.0JWT
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容