Redhat AS4下的Apache+SVN的LDAP认证详解
AD环境:
Windows2003 DC一台 活动目录结构如下: domainname.com - Builtin - Computers - Domain Controllers - ForeignSecurityPrincipals - Users - Developer (OU,组织单元) - test (帐户) - user1 (帐户) - user2 (帐户) - user3 (帐户) - project1 (组) user1,user2,user3都属于project1组中的成员 前提条件: 1) linux操作系统Redhat AS4,应该AS3也可以 2) Apache, Subversion, dav_svn模块必须是要rpm包安装的,如果对linux不了解的话推荐在安装系统时选择安装所有组件,我的情况是在安装系统时选择了所有组件 # rpm -qa | grep httpd httpd-suexec-2.0.52-28.ent httpd-devel-2.0.52-28.ent httpd-manual-2.0.52-28.ent httpd-2.0.52-28.ent # rpm -qa | grep subversion subversion-debuginfo-1.3.2-1 subversion-devel-1.3.2-1 subversion-1.3.2-1 subversion-perl-1.3.2-1 # rpm -qa | grep svn mod_dav_svn-1.3.2-1 # rpm -aq | grep ldap
php-ldap-4.3.9-3.22.3 openldap-devel-2.2.13-6.4E openldap-2.2.13-6.4E compat-openldap-2.1.30-6.4E python-ldap-2.0.1-2 openldap-servers-2.2.13-6.4E openldap-clients-2.2.13-6.4E openldap-servers-sql-2.2.13-6.4E nss_ldap-226-17 mod_authz_ldap-0.26-2 #我的redhat AS4已经升级到官方最新版本,可以上面信息可能有所出入,但应该不会影响LDAP验证 # cat /etc/httpd/conf/httpd.conf //查看开启的模块 LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_dbm_module modules/mod_auth_dbm.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule ldap_module modules/mod_ldap.so LoadModule auth_ldap_module modules/mod_auth_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule asis_module modules/mod_asis.so LoadModule info_module modules/mod_info.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule imap_module modules/mod_imap.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule file_cache_module modules/mod_file_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule cgi_module modules/mod_cgi.so LDAPSharedCacheSize 200000 LDAPCacheEntries 1024 LDAPCacheTTL 600 LDAPOpCacheEntries 1024 LDAPOpCacheTTL 600 #项目project1的设置参数 <location /project1> DAV svn SVNPath /svn/project1/ AuthzSVNAccessFile /svn/project1-access #project1项目的权限文件,与原来的SVN权限配置一样,唯一不一样的是域中的帐户名 AuthType Basic AuthName "Project1" AuthLDAPEnabled on #开启LDAP认证 AuthLDAPBindDN "CN=test,OU=developer,DC=domainname,DC=com" #绑定一个域中的用户为test,使这个帐户能够得到验证来得到域中的其他的人的帐户和密码,CN的意思"显示名称",在域中个人帐户信息中可以找到 AuthLDAPBindPassword "test" #test的帐户的密码为test AuthLDAPURL "ldap://ldapserver:389/ou=developer,dc=domainname,dc=com?sAMAccountName?sub?(objectClass=*)" #ldap://是LDAP通讯的方式;ldapserver:389是LDAP的服务器名或IP地址,389为LDAP协议的端口;ou是组织单元(如果下面还有ou的话,应该在此后面再加上ou=xxx,用逗号隔开);dc=后面跟域名,有多少点就有多少dc=xxx,也要用逗号隔开,再举个例子LDAP服务器名为shanghai.domain.com.cn,那shanghai应该是主机的实际名字,domain.com.cn才是真正的域名,参数应该是这样"ldap://shanghai.domain.com.cn:389/ou=developer,dc=domain,dc=com,dc=cn?sAMAccountName?sub?(objectClass=*)";sAMAccountName?sub?(objectClass=*)参数是指明所有验证的是windows域中独特的帐户形式sam AuthLDAPAuthoritative on //开启LDAP权限继承 Require group cn=project1,ou=developer,dc=domainname,dc=com #Require group参数是指定域中可以访问的组,参数还可以改成Require user user1 user2 user3,,Require valid-user参数为如果没有权限文件,那会导致域中所有帐户都可以访问 </location> # service httpd restart //重起apache,测试. 详细LDAP模块参数可以从apache官方网站内找到。http://httpd.apache.org/ |


windymax
博客统计信息
热门文章
最新评论
友情链接