基于用户的访问控制
认证质询:
www-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码;
认证:
Authorizatich:客户端用户填入账号和密码后,再次发送请求报文;认证通过时,则服务器发送响应的资源;
- **认证的方式有两种:
- basic:明文
- digest:消息摘要认证
安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因;
用户账号和密码存储
- 虚拟账号:仅用于访问某服务时用到的认证标识
-
存储方式:
- 文本文件;
- SQL数据库;
- ladp目录存储;
-
basic认证配置示例:
- 定义安全域:
注意:如果要允许账号文件中的所有用户登录访问:<Directory " "> Options None AllowOverride None AuthType Basic AuthName "String" AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" Require user username1 username2 ... </Directory>
Require valid-user
- 提供账号和密码存储(文本文件):
使用专用的命令完成此类文件的创建及用户管理:
htpasswd [options] /PATH/TO/HTTP_PASSWD_FILE username
-c
:自动传教此处指定的文件,因此,仅应该在此文件不存在时使用;
-m
:md5格式加密;
-s
:sha格式加密;
-b
:直接在命令行尾部给出一个参数作为密码传给指定用户;
-D
:删除指定用户;
-
另外:基于组账号进行认证;
- 定义安全域:
<Directory " "> Options None AllowOverride None AuthType Basic AuthName "String" AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE" AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE" Require group grpname1 grpname2 ... </Directory>
- 创建用户账号和组账号文件;
组文件:每一行定义一个组
GRP_NAME: username1 username2 ...
- 定义安全域:
- 定义安全域:
网友评论