HTTP Basic Authentication_基本认证机制
HTTP为认证提供了一种原生工具。
尽管我们可以在HTTP的认证形式和cookie的基础上运行自己的认证工具,但在很多情况下,HTTP的原生认证功能就可以很好的满足要求
HTTP的质询/响应认证框架
简化的质询/响应认证框架:
分为四步-请求、质询、认证、成功
认证协议与首部
认证协议是在HTTP认证首部中指定的。
请求:第一条请求没有认证信息
GET /family/jeff.jpg HTTP/1.1
质询:(服务器端的质询)首部是WWW-Authenticate服务器用401状态拒绝了请求,说明需要用户提供用户名和密码。认证算法是在WWW-Authenticate首部中指定的。
HTTP/1.1 401 Authorization Required
WWW-Authentication: Basic realm=”Family”
授权:首部是Authorization 客户端重新发送请求,但这一次会附加一个Authorization首部,用来说明认证算法,用户名和密码。
GET /family/jeff.jpg HTTP/1.1
Authorization: Basic YnssdjJlsdsdsdfsfsdfI
成功:首部是Authentication-Info 如果授权证书是正确的,服务器就会将200 OK文档返回。有些授权算法会在可选的Authentication-Info首部返回一些与授权会话相关的附加信息
HTTP/1.0 200 OK
Content-Type:image/jpeg
<img data include>
Authorization - 授权
Authentication - 认证
安全域
HTTP怎样允许服务器为不同的资源使用不同的访问权限的:
WWW-Authenticate质询中包含了一个realm指令。web服务器会将受保护的文档组织成一个安全域(security realm)。每个安全域都可以有不同的授权用户集。
比如:web服务器有两个安全域,一个用于公司的财务信息,另一个用户个人的家庭文档。
代理认证
中间的代理服务器也可以实现认证功能
通过代理服务器提供对某组织内部资源的统一访问控制是一种很便捷的方式。
代理认证的步骤与WEB服务器身份认证的步骤相同,但首部和状态码有所不同
代理服务器的认证首部
Unauthorized Status Code:407
Proxy-Authenticate
Proxy-Authorization
Proxy-Authentication-Info
======================END======================