使用 LDAP 授权进行 Apache Kerberos 身份验证

问题描述 投票:0回答:1

我被这个问题困扰: 我在 SLES15 机器上使用 kerberos 身份验证配置了 apache 2.4。到目前为止,一切都很好。作品。现在我想再次授权 LDAP 组,这变得有点混乱:

我的 apache 配置如下所示:

<Directory "/srv/www/htdocs/protected">
    Options FollowSymLinks SymLinksIfOwnerMatch
    LogLevel debug
    AuthType Kerberos
    AuthName "Kerberos Login"
    KrbMethodNegotiate On
    KrbMethodK5Passwd Off
    KrbAuthRealms MY.COMPANY.COM
    Krb5KeyTab /etc/apache2/keytab/my.keytab
    KrbSaveCredentials Off
    AuthLDAPRemoteUserAttribute sAMAccountName
    AuthLDAPCompareAsUser on
    AuthLDAPUrl "ldap://myldapserver/OU=Users,OU=Company,DC=company,DC=com?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPBindDN "CN=binduser,CN=Users,DC=company,DC=com"
    AuthLDAPBindPassword "password"
    AuthUserFile /dev/null
    Require ldap-filter "(&(objectClass=user)(sAMAccountName=myuser)(memberOf=CN=MyGroup,CN=Users,DC=company,DC=com))"

无论我尝试什么,都行不通。在调试日志中我看到这个:

[Wed Dec 27 17:09:03.539584 2023] [authnz_ldap:debug] [pid 55004] mod_authnz_ldap.c(1331): [client 10.200.xxx.xxx:14134] AH01741: auth_ldap authorise: User DN not found with filter (&(objectClass=*)([email protected])): User not found
[Wed Dec 27 17:09:03.539588 2023] [authz_core:debug] [pid 55004] mod_authz_core.c(818): [client 10.200.xxx.xxx:14134] AH01626: authorization result of Require ldap-filter "(&(objectClass=user)(sAMAccountName=myuser)(memberOf=CN=mygroup,CN=Users,DC=company,DC=com))": denied

我什至编写了一个小 python 程序来根据 LDAP 系统检查我的过滤器。在那里,用户发现具有完全相同的过滤器。

我几乎尝试了一切:多次更改过滤器、更改 AuthLDAPURL、简化事情......

非常感谢任何帮助!

问候 马可

apache ldap authorization kerberos
1个回答
0
投票

首先,从 mod_auth_kerb (这是古老的)切换到 mod_auth_gssapi (这不是古老的)。

使用 mod_auth_gssapi,启用

GssapiLocalName On
以将主体名称转换为本地操作系统帐户名称。 (默认情况下,它是 1:1 转换,只是剥离系统默认领域。)

(据我所知,mod_auth_kerb没有等效的选项。)

© www.soinside.com 2019 - 2024. All rights reserved.