背景描述:
HTTP认证
当一个客户端向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中, 如当用户名为anjuta,密码为:123456时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64加密为密文,并于每次请求数据时,将密文附加于请求头(Request Header)中。HTTP服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64加密的用户名和密码),解开请求包,对用户名及密码进行验证,如果用户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。
BASIC认证的过程
基本认证步骤:
1、客户端访问一个受http基本认证保护的资源。
2、服务器返回401状态,要求客户端提供用户名和密码进行认证。(验证失败的时候,响应头会加上WWW-Authenticate: Basic realm=“请求域”。)
401 Unauthorized
WWW-Authenticate: Basic realm=“WallyWorld”
3、客户端将输入的用户名密码用Base64进行编码后,采用非加密的明文方式传送给服务器。
Authorization: Basic xxxxxxxxxx.
4、服务器将Authorization头中的用户名密码解码并取出,进行验证,如果认证成功,则返回相应的资源。如果认证失败,则仍返回401状态,要求重新进行认证。
实验环境:
操作系统环境 | 用户名 | 密码 |
---|---|---|
Centos6.8 | root | 123456 |
实验步骤:
打开虚拟机进入centos系统,打开虚拟机进入centos系统
进入到conf文件夹中,并且对http.conf文件进行。
找到“AllowOverride all”在添加如下内容。
添加HTTP认证用户user1和user2并且创建文件.htpasswd。
查看.htpasswd文件内容
创建http用户认证用户组文件,并在文件中写入用户。
将apache服务重启。
输入“ifconfig”看查本地地址
打开firefox浏览器,输入服务器地址192.168.248.128,或者在服务器中输入localhost,进行用户认证测试。