具有 Kerberos 身份验证和 LDAP 授权的 Apache 2.4

具有 Kerberos 身份验证和 LDAP 授权的 Apache 2.4

我正在尝试设置一个具有 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

相关内容