我被这个问题困扰: 我在 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、简化事情......
非常感谢任何帮助!
问候 马可
首先,从 mod_auth_kerb (这是古老的)切换到 mod_auth_gssapi (这不是古老的)。
使用 mod_auth_gssapi,启用
GssapiLocalName On
以将主体名称转换为本地操作系统帐户名称。 (默认情况下,它是 1:1 转换,只是剥离系统默认领域。)
(据我所知,mod_auth_kerb没有等效的选项。)