httpd网页身份认证

要教会 阅读:1002 2025-02-27 09:00:10 评论:0

身份认证类基本指令

AuthType:指定web身份认证的类型。有效值为none、basic、digest以及form。通常最基本的认证使用的是文件认证,所以通常使用basic。
AuthName:设置身份认证时的提示信息。
AuthUserFile file-path:指定web用户认证列表。由htpasswd命令生成。
AuthGroupFile file-path:指定组认证文件,文件中分组格式为"mygroup: Jim Bob Alice"。如果文件路径为相对路径,则相对于ServerRoot

基于basic类型的认证就这么几个指令,最主要的还是require指令的使用。更多的认证方法见官方手册的auth类模块。

Require指令

该指令只能放在Directory容器中,用于控制对目录的访问权限。它的主要功能是由mod_authz_core模块提供,但有些身份认证类模块也提供它额外的功能,这时它可以放在< Directory >、< Files >或< Location >容器中。

主要功能:

  • Require all granted
    无条件允许所有人访问该目录

  • Require all denied
    无条件拒绝所有人访问该目录

  • Require env env-var [env-var] ...
    只有给定的环境变量var-env已经定义才允许访问该目录

  • Require method http-method [http-method] ...
    只有给定的HTTP请求方法才允许访问该目录,如只允许GET才能访问

  • Require expr expression
    只有给定的表达式为true才允许访问该目录

身份认证类模块提供的require指令功能包括:

  • mod_authz_user为require指令提供的功能:

    • Require user userid [userid] ...:认证列表中只有指定的userid才能访问

    • Require valid-user:认证列表中的所有用户都可以访问

  • mod_authz_groupfile为require指令提供的功能:

    • Require group group1 [group2] ...:指定组内的用户都可以访问

  • 本地文件系统身份参考类:

    • Require file-owner:要求web用户名必须和请求文件的uid对应的username完全相同

    • Require file-group:要求web用户名必须为请求文件的gid组中的一员

  • mod_authz_host为require指令提供的ip和host功能:

    • Require ip 192.168.1.104 192.168.1.205

    • Require ip 10.1

    • Require ip 10 172.20 192.168.2

    • Require ip 10.1.0.0/255.255.0.0

    • Require ip 10.1.0.0/16

    • Require host www.yaojiaohui.net

    • Require host yaojiaohui.net

    • Require host .net yaojiaohui.edu

    • Require local

可以在require指令后紧跟not关键字,表示取反。例如"require not group group1"、"require not local"等。

还支持require条件容器,包括< RequireAll >、< RequireAny >和< RequireNone >,当require指令没有写在任何Require容器中时,它们隐式包含在一个< RequireAny >容器中。

    • < RequireAll >:其内封装的Require指令必须全都不能失败,且至少有一个成功时,该容器成功。如果其内所有指令既不成功又不失败,则该容器中立。其余所有情况都会导致该容器失败。

    • < RequireAny >:其内封装的Require指令只要有一个成功,该容器就成功。如果其内所有指令既不成功又不失败,则该容器中立。其余所有情况(即全部失败时)都会导致该容器失败。

    • < RequireNone >:其内封装的Require指令只要有一个成功时该容器就失败,否则就中立。

web身份认证示例

 以最常见的Basic认证方式为例。支持基于用户的认证和基于组的认证

先创建一个web用户及其密码列表文件。

[root@localhost ~]# htpasswd -cb /usr/local/apache/yaojiaohui_net.pass lisi 123456
Adding password for user lisi
[root@localhost ~]# htpasswd -b /usr/local/apache/yaojiaohui_net.pass wanwu 123456
Adding password for user wanwu

修改httpd配置文件,假设只有www.yaojiaohui.net中的www.yaojiaohui.net目录才需要认证且只有Jim和Bob可以认证,而其他目录以及yaojiaohui.net不需要认证,其他用户认证不通过。

#DocumentRoot "/usr/local/apache/htdocs"
    #关闭中心主机<VirtualHost 192.168.1.222:80>
     #ServerName www.yaojiaohui.net
     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中的所有用户都允许认证。

然后重启http

要教会

本文为要教会原创,欢迎转载分享。转载时请务必在文章页面明显位置提供本文链接并注明出处。感谢您对知识的尊重和对本文的肯定!本文链接网址:https://yaojiaohui.net/gongjuruanjian/1193.html

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容