zoukankan      html  css  js  c++  java
  • Apache2.4 authz_core_module模块使用

    Description: Core Authorization
    Status: Base
    Moduledentifier: authz_core_module
    Sourceile: mod_authz_core.c
    Compatibility: Available in Apache HTTPD 2.3 and later

    这个模块提供了核心授权功能,通过身份验证的用户可以允许或拒绝访问部分网站。mod_authz_core各种授权提供程序提供了注册的功能。它通常是 与

    身份验证提供者模块一起使用,如mod_authn_file mod_authz_user等和授权模块。它还允许高级逻辑应用于授权处理。

    Example

    下面的示例创建两个不同的ldap授权供应商基于ldap-group授权提供者的别名。这个示例允许一个授权的位置检查主机内部多个ldap组成员:

    <AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx>
        AuthLDAPBindDN cn=youruser,o=ctx
        AuthLDAPBindPassword yourpassword
        AuthLDAPURL ldap://ldap.host/o=ctx
    </AuthzProviderAlias>
    
    <AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev>
        AuthLDAPBindDN cn=yourotheruser,o=dev
        AuthLDAPBindPassword yourotherpassword
        AuthLDAPURL ldap://other.ldap.host/o=dev?cn
    </AuthzProviderAlias>
    
    Alias /secure /webpages/secure
    <Directory /webpages/secure>
        Require all granted
        
        AuthBasicProvider file
        
        AuthType Basic
        AuthName LDAP_Protected_Place
        
        #implied OR operation
        Require ldap-group-alias1
        Require ldap-group-alias2
    </Directory>

    Authorization Containers

    授权容器指令< RequireAll >、< RequireAny >和< RequireNone >可以相互结合,需要指令来表达复杂的授权逻辑。

    下面的例子表达以下授权逻辑。为了访问资源,用户必须是superadmin用户,或者是管理组和管理员LDAP组和属于销售组或LDAP属性销售部门。此外,为了访问资源,用户必须不属于临时工组或LDAP组临时员工。

    <Directory /www/mydocs>
        <RequireAll>
            <RequireAny>
                Require user superadmin
                <RequireAll>
                    Require group admins
                    Require ldap-group cn=Administrators,o=Airius
                    <RequireAny>
                        Require group sales
                        Require ldap-attribute dept="sales"
                    </RequireAny>
                </RequireAll>
            </RequireAny>
            <RequireNone>
                Require group temps
                Require ldap-group cn=Temporary Employees,o=Airius
            </RequireNone>
        </RequireAll>
    </Directory>

    mod_authz_core提供了一些通用的授权提供程序可用于的指令。

    Require env

    env提供者允许访问控制服务器基于一个环境变量的存在。当需要指定env这个env-variable时候,然后请求被允许访问环境变量是否env-variable存在。服务器能够以灵活的方式设置环境变量基于客户机请求的特性使用 mod_setenvif提供的指令。因此,该指令可用于允许访问基于等因素客户用户代理(浏览器类型),推荐人或其他HTTP请求头字段。

    SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
    <Directory /docroot>
        Require env let_me_in
    </Directory>

    在这种情况下,浏览器的用户代理字符串,KnockKnock / 2.0将被允许访问,和其他所有人将被拒绝。

    当 服务器查找路径通过寻找等内部subrequest DirectoryIndex mod_autoindex或生成一个目录清单,每请求subrequest环境变量并不是遗传的。此外,SetEnvIf指令不单独评估 subrequest由于API阶段mod_setenvif所使用。

    原文:http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html

  • 相关阅读:
    怎样进行产品定位(上)
    crm2011创建货币Money类型的字段
    Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()
    Linux显示全部执行中的进程
    How to Copy and Paste in the Ubuntu Gnome Terminal
    [LeetCode] Summary Ranges
    【Python】 做一个简单的 http server
    使用Visual Studio创建简单的自己定义Web Part 部件属性
    【windows socket+TCPserverclient】
    ACM-经典DP之Monkey and Banana——hdu1069
  • 原文地址:https://www.cnblogs.com/gredswsh/p/Apache24-authz_core_module.html
Copyright © 2011-2022 走看看