| 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 envenv提供者允許訪問控制服務器基于一個環境變量的存在。當需要指定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
新聞熱點
疑難解答