前言
以前经常看到一些开源软件的管理后台,都是基于浏览器弹框实现的认证登录;比如: haproxy管理后台,elastic-job管理后台等。在此梳理下其实现原理,进一步加深自己的理解。
Authorization
在http协议中请求头Authorization专门用于请求认证使用,用于透传凭证信息。Authorization有多种认证方式,最常见的一种就是Basic方式;通常开源软件管理后台也都是基于此方式实现的。
Basic方式具体形式:Authorization: 认证方式 认证信息
示例:Authorization: Basic xxxxxx
其中xxxxxx是基于Base64编码的认证信息,具体格式为Base64.encode(“username:pwd”)
WWW-authenticate
WWW-authenticate 用于当用户认证失败后,告知用户浏览器的弹框提示来自何处。Http-Code=401 表示认证失败。
具体格式如下:response.setHeader("WWW-authenticate", "Basic Realm=\"Elastic Job Console Auth\"");
Elastic-Job管理后台代码认证
|
总结
基于Http协议的认证方式,在http方式访问下是非常不安全的,毕竟只是采用了Base64编码处理,在公网环境下传输,无疑是裸奔。在https环境下传输还可以。Http协议认证方式一般用于一些仅供内网可以访问的后台系统,例如:haproxy管理后台,elastic-job管理后台等。