Home Archives Categories Tags

HTTP 认证方式

发布时间: 更新时间: 总字数:895 阅读时间:2m 作者: 分享

通过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 AuthenticationHTTP提供的一种验证方式,因为明文传输用户名和密码,非HTTPS环境下很不安全,一般用的非常少

HTTP Basic Auth使用两个HTTP Header实现,分别是WWW-AuthenticateAuthorization

流程如下:

  • 客户端请求服务器页面,服务器返回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 UnauthorizedWWW-Authenticate指定认证算法,realm指定安全域
  • 客户端重新发起请求,Authorization指定用户名和密码信息
  • 服务器认证成功,响应200,可选Authentication-Info

不以明文发送密码,在上述第1步时服务器响应返回随机字符串nonce,而客户端发送响应摘要 =MD5(HA1:nonce:HA2),其中HA1=MD5(username:realm:password),HA2=MD5(method:digestURI)

HTTP摘要认证中使用MD5加密是为了达成不可逆的

最新评论
加载中...