apache / Web Service

1.5 httpd:基于用户、组的访问控制

 

基于用户的访问控制;

客户端访问带有访问控制的网页时,需要进过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   …

Leave a Reply

Your email address will not be published. Required fields are marked *