《图解HTTP》确认访问用户身份的认证
一、何为认证
核对信息:密码、动态令牌、数字证书、生物认证、IC卡
HTTP使用的认证方式:BASIC认证(基本认证)、DIGEST认证(摘要认证)、SSL客户端认证、FormBase认证(基于表单认证)
二、BASIC认证
是web端与客户端进行认证的方式(不常用)
将密码以base64编码储存在 authorization 首部字段 (不安全)
认证步骤:
1、客户端请求认证资源,服务器返回401
2、客户端接收401,请求服务器(包含用户名和密码)
3、服务器确认用户名和密码正确,返回响应
三、DIGEST认证
使用质询响应方法,DIGEST认证内容存放在 Authorization 首部中
认证步骤:
1、客户端请求认证资源,服务器返回401+ 临时质询码(数字,nonce)
2、客户端接收401,请求服务器(包含DIGEST认证信息)
3、服务器确认DIGEST认证信息的正确性,返回响应
四、SSL客户端认证
1、SSL客户端认证的认证步骤
(1)首先客户端安装客户端认证证书
(2)客户端请求认证资源,服务器发送 Certificate Request 报文+提供客户端证书
(3)客户端会把证书以 Client Certificate 报文发送服务器
(4)服务器验证证书并领取密钥,然后通信
2、SSL客户端认证采用双因素认证
双因素认证:验证时需要密码+其他信息
3、SSL客户端认证必要的费用
客户端证书需要一定的费用才能使用
五、基于表单认证
认证多半为基于表单认证
Session管理及Cookie应用。一般会使用Cookie来管理Session对话
认证步骤:
1、客户端用post方法把用户ID和密码发送给服务器
2、服务器发放识别用户的SessionID(服务器需做有效期管理,Cookie加上httponly属性)
3、客户端收到SessionID后,作为Cookies保存在本地。
4、下次客户端发请求自动发送Cookie