基于用户的访问控制;
客户端访问带有访问控制的网页时,需要进过2个阶段的认证;
1>认证质询:
由服务端发出”WWW-Authenticate”首部信息,响应码为401,拒绝客户端请求,并说明要求客户端提供账号、密码;
2>认证:
由客户端发出”Authorization”首部信息,客户端用户填入账号、密码后再次发送请求报文;认证通过后,服务端发送响应的资源;
认证方式有2种:basic(明文密码)、digest(消息摘要认证);
安全域:需要用户认证后才能访问的路径;应该通过名称对其进行标识,以便告知用户认证的原因;
用户认证的账号是虚拟账号,仅用于访问某服务时用到的认证标识;可存储在文本文件、SQL数据库、LDAP目录存储;
basic认证配置步骤:
————————
>> 基于用户的认证配置:
1>定义安全域:
<Directory ""> Options None AllowOverride None AuthType Basic AuthName "string..." AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" Require user username1 username2 ... </Directory>
Require user username1 username2 … 允许指定用户可通过认证进行访问;
Require valid-user 允许账号文件中的所有用户登录访问;
2>提供账号、密码的存储(文本文件):
第一次创建访问的用户,需要使用’-c’选项,’-b’选项表示可以在命令行中,用户名后面直接输入密码;
~]# htpasswd -c -b /PATH/TO/HTTPD_USER_PASSWD_FILE USER_NAME USER_PASSWD
htpasswd命令常用选项:
-c:自动创建指定的文件(用于存储用户名、密码),第一次创建时才使用此选项;
-m:密码以md5加密方式,默认选项;
-s:密码以sha加密方式;
-b:批模式添加用户;即,用户名后面可直接跟密码,中间空格隔开;
-D:删除指定用户;
账号密码文件可指定放在httpd的安装目录下,以隐藏方式存储文件:
/etc/httpd/conf.d/.htpasswd
>> 基于组的认证配置:
<Directory ""> Options None AllowOverride None AuthType Basic AuthName "string..." AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" AuthGroupFile "/PATH/TO/HTTPD_GROUP_PASSWD_FILE" Require group group_name1 group_name2 ... </Directory>
创建用户、用户密码,以及保存其信息的文件,命令操作跟上面相同;
组文件内容格式:每一行定义一个组;
GROUP_NAME:user1 user2 user3 …