我正在尝试设置一个具有 Kerberos 身份验证和 LDAP 组成员身份授权的 Apache SVN 存储库,以便只有属于特定组的用户才能访问它。Kerberos 身份验证本身可以正常工作,就像 LDAP 本身一样。但我想以这种方式将它们组合起来,这样我就没有纯文本凭据可以绑定到 apache 配置中的 LDAP 目录。我当前的配置(不起作用)是:
LDAPVerifyServerCert Off
<Location /svn01>
DAV svn
SVNParentPath /var/www/svn01
AuthType Kerberos
Authname "Test Repo"
KrbMethodK5Passwd On
KrbAuthRealms KOUKOU.LOCAL
KrbSaveCredentials On
KrbServiceName HTTP
Krb5KeyTab /etc/httpd/conf.d/svnusr.http.keytab
AuthLDAPUrl ldaps://ad01.koukou.local:636/dc=koukou,dc=local?krbPrincipalName
Require ldap-group CN=admins,CN=Users,DC=koukou,DC=local
</Location>
我在网上看到过这种配置,但对我来说不起作用。我在浏览器中得到的是“未授权”,在 Apache 错误日志中我得到:
[Thu Mar 02 09:55:21.817559 2017] [authnz_ldap:debug] [pid 10314] mod_authnz_ldap.c(838): [client 172.21.11.13:57737] AH01711: auth_ldap authorise: User DN not found, User not found
和
[Thu Mar 02 09:55:21.817605 2017] [authz_core:error] [pid 10314] [client XXX.XXX.XXX.XXX:57737] AH01631: user [email protected]: authorization failure for "/svn01/repo":
我是不是搞错了什么?即使在配置中添加了与凭据绑定的段,我仍然会收到上述错误。
Apache 版本是 2.4.6,Centos 是 7.2,Windows AD 是 2012R2,功能级别为 2008。
提前致谢,尼克
答案1
对于这个特定的问题,这对我有用:
KrbLocalUserMapping 开启
您至少需要这个版本:mod_auth_kerb-5.4
更多信息:
https://bugzilla.redhat.com/show_bug.cgi?id=970678
我也在用这个:
需要有效用户
更多内容:
https://cwiki.apache.org/confluence/display/HTTPD/PasswordBasicAuth