通过
HTTP
协议访问各种web应用,认证是必不可少的部分,本文介绍常见的Http Authentication
。
常见的HTTP认证协议
- Basic authentication
- Bearer(token) Authentication
- Digest authentication
- WSSE(WS-Security) HTTP authentication
- OAuth1.0 Authentication
- OAuth2.0 Authentication
- Hawk Authentication
- AWS Signature
- …
Basic Authentication
Basic Authentication
是HTTP
提供的一种验证方式,因为明文传输用户名和密码,非HTTPS
环境下很不安全,一般用的非常少
HTTP Basic Auth
使用两个HTTP Header
实现,分别是WWW-Authenticate
和Authorization
。
流程如下:
- 客户端请求服务器页面,服务器返回
401
以及WWW-Authenticate: Basic realm="site"
。 - 浏览器弹出对话框,提示用户输入用户名和密码。
- 浏览器再次请求页面,携带
Authorization: Basic <str>
,其中,str=base64(username:password)
。 - 服务器返回正常页面。
说明:
base64
只是一个编码过程,而不是加密过程。因此,HTTP Basic Auth
是在明文传输用户名和密码,中间设备很容易通过检查数据包获取用户名和密码。realm
属性用来标注页面所属的域
Bearer Authentication
Bearer authentication
(也称 token authentication
) 是 HTTP authentication scheme
涉及到称为bearer tokens
的安全令牌。Bearer authentication
可以理解为“授予对该令牌持有者的访问权”。bearer token
是一个加密的字符串,通常由服务器响应登录请求生成。客户端向受保护资源发出请求时,必须在授权头中发送此令牌,格式为:
Authorization: Bearer <token>
Digest authentication
流程如下:
- 客户端发起GET请求,服务器响应
401 Unauthorized
,WWW-Authenticate
指定认证算法,realm指定安全域 - 客户端重新发起请求,
Authorization
指定用户名和密码信息 - 服务器认证成功,响应
200
,可选Authentication-Info
不以明文发送密码,在上述第1步时服务器响应返回随机字符串nonce
,而客户端发送响应摘要 =MD5(HA1:nonce:HA2)
,其中HA1=MD5(username:realm:password),HA2=MD5(method:digestURI)
在HTTP
摘要认证中使用MD5
加密是为了达成不可逆的
。
- 上一页:cli
- 下一页:Linux PAM 可插拔认证模块介绍
专栏文章
- HTTP 专题
- HTTP API 设计格式
- HTTP 响应码
- HTTP 认证方式(当前)
- Web 服务中 Session 和 Cookie 的区别
- JWT与SSO的关系
- HTTP Transfer-Encoding详解
- HTTPS中的加密算法相关概念
- HTTP 缓存策略
- CDN 介绍
最近更新
最新评论