您的位置:首页 > 运维架构 > Apache

Redhat AS4下的Apache+SVN的LDAP认证详解

2007-04-13 09:55 423 查看
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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: