我有安装了 Apache 2.2 和 SVN 的 CentOs 5.5。此外,我还有带 Active Directory 的 Windows 2003 R2。
我尝试通过 AD 授权用户,以便每个用户(如果他是 AD 中通讯组的成员)都可以访问 repo。
这是我的 apache 配置:
加载模块 dav_svn_module 模块/mod_dav_svn.so 加载模块 authz_svn_module 模块/mod_authz_svn.so LDAPVerifyServerCert 关闭 服务器名称 svn.mydomain.com 文档根目录 /var/www/svn.mydomain.com/htdocs 重写引擎开启 [地点 /] AuthType 基本 AuthBasicProvider ldap AuthzLDAP授权 AuthLDAPURL ldaps://comp1.mydomain.com:636/DC=mydomain,DC=com?sAMAccountName?sub?(objectClass=*) 验证LDAP绑定DN[电子邮件保护] AuthLDAPBindPassword 绑定用户密码 [/地点] [位置 /repos/test] 目录 SVN路径 /var/svn/repos/test AuthName“用于测试的 SVN 存储库” 需要 ldap-group CN=test,CN=ProjectGroups,DC=mydomain,DC=com [/地点]
当我使用“Require valid-user”时,一切正常,“Require ldap-user”也能正常工作。
但是,当我使用“Require ldap-group”时,授权失败。apache
日志中没有错误,但 Active Directory 显示以下错误:
事件类型: 信息 事件来源:NTDS LDAP 事件类别:LDAP 接口 事件 ID:1138 日期:2010 年 10 月 9 日 时间:下午 1:28:52 用户:MYDOMAIN\binduser 计算机:COMP1 描述: 内部事件:函数 ldap_compare 已进入。 事件类型: 错误 事件来源:NTDS 常规 事件类别:内部处理 事件 ID:1481 日期:2010 年 10 月 9 日 时间:下午 1:28:52 用户:MYDOMAIN\binduser 计算机:COMP1 描述: 内部错误:对象上的操作失败。 附加数据 错误值: 2 0000208D:NameErr:DSID-031001CD,问题 2001 (NO_OBJECT),数据 0,最佳匹配: 'DC=我的域名,DC=com'
我对这个问题感到困惑。我做错了什么?
答案1
不确定这是否是您的问题,但 LDAPBindDN 对我来说看起来不像 DN。不知道您如何设置 AD 树,我猜它应该是 cn=binduser,dc=mydomain,dc=com 或 cn=binduser,ou=Users,dc=mydomain,dc=com 之类的。
答案2
我想到两个步骤:
- 如果您从命令行对提供的 sAMAccountName 执行 ldapsearch,会返回什么?它是您期望的对象吗?
- 如果使用全局目录端口(3268 未加密,3269 SSL)会发生什么情况?
答案3
当使用带有 mod_authnz_ldap 的 Active Directory 时,这些是必需的;它们在这里也可能有帮助:
AuthLDAPGroupAttribute member
AuthLDAPGroupAttributeISDN on