AuthType
:指定web身份认证的类型。有效值为none、basic、digest以及form。通常最基本的认证使用的是文件认证,所以通常使用basic。AuthName
:设置身份认证时的提示信息。AuthUserFile file-path
:指定web用户认证列表。由htpasswd命令生成。AuthGroupFile file-path
:指定组认证文件,文件中分组格式为"mygroup: Jim Bob Alice"。如果文件路径为相对路径,则相对于ServerRoot
基于basic类型的认证就这么几个指令,最主要的还是require指令的使用。更多的认证方法见官方手册的auth类模块。
该指令只能放在Directory容器中,用于控制对目录的访问权限。它的主要功能是由mod_authz_core模块提供,但有些身份认证类模块也提供它额外的功能,这时它可以放在< Directory >、< Files >或< Location >容器中。
主要功能:
身份认证类模块提供的require指令功能包括:
可以在require指令后紧跟not关键字,表示取反。例如"require not group group1"、"require not local"等。
还支持require条件容器,包括< RequireAll >、< RequireAny >和< RequireNone >,当require指令没有写在任何Require容器中时,它们隐式包含在一个< RequireAny >容器中。
以最常见的Basic认证方式为例。支持基于用户的认证和基于组的认证
先创建一个web用户及其密码列表文件。
[root@localhost ~]# htpasswd -cb /usr/local/apache/a_com.pass lisi 123456 Adding password for user lisi [root@localhost ~]# htpasswd -b /usr/local/apache/a_com.pass wanwu 123456 Adding password for user wanwu
修改httpd配置文件,假设只有www.a.com中的a.com目录才需要认证且只有Jim和Bob可以认证,而其他目录以及www.b.com不需要认证,其他用户认证不通过。
#DocumentRoot "/usr/local/apache/htdocs" #关闭中心主机
<VirtualHost 192.168.1.222:80> #ServerName www.a.com DocumentRoot /usr/local/apache/htdocs/ <Directory /usr/local/apache/htdocs/> AllowOverride Authconfig AuthType Basic AuthName "please enter your name & passwd" AuthUserFile a_com.pass Require user lisi wanwu </Directory> </VirtualHost>
此处AuthUserFile使用的相对路径,所以该文件必须放在ServerRoot(我的测试环境ServerRoot为/usr/local/apache)下。且Require user行可以替换为"Require valid-user"表示a_com.pass中的所有用户都允许认证。
然后重启httpd,
原文:https://www.cnblogs.com/liujunjun/p/12050243.html