Apache2.4 LDAP 身份验证突然不起作用

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

我们有一个 Web 界面,可通过 API 调用配置负载均衡器集群。该 Web 界面使用三个 (python) 脚本。第一个脚本显示负载均衡器的当前设置,第二个脚本显示可以更改设置的菜单,第三个脚本将配置所选设置并执行一些日志记录。由于大多数用户只对设置感兴趣,因此任何人都可以访问该脚本。为了访问第二个和第三个脚本,我们需要对用户进行身份验证。第一个脚本位于

<root>/cgi-bin/RO
中,第二个和第三个脚本位于
<root>/cgi-bin/RW
中。
<root>/cgi-bin/RO
的目录权限为
Require all granted
。 ldap 配置和
<root>/cgi-bin/RW
的目录权限是:

<AuthnProviderAlias ldap LDAP>
  AuthLDAPBindDN "CN=SVC_APIACCESS,OU=Service Accounts,OU=ACCOUNTS,OU=BEHEER,DC=example,DC=org"
  AuthLDAPBindPassword <password>
  AuthLDAPURL "ldap://1.2.3.4 6.7.8.9/OU=ACCOUNTS,OU=APPS,DC=ont,DC=example,DC=org?sAMAccountName?sub?(objectClass=*)"
</AuthnProviderAlias>


<Directory "/<root>/cgi-bin/RW">
  Options +ExecCGI
  Require valid-user
  AllowOverride AuthConfig
  AuthType Basic
  AuthName "Enter LDAP credentials"
  AuthBasicProvider LDAP
  AuthUserFile /dev/null
</Directory>

这个想法是在成功身份验证后捕获 REMOTE_USER 设置,并在出现问题时在日志记录中使用该设置以进行审核。访问第二个脚本时,会出现一个弹出窗口,要求输入用户名和密码。身份验证成功后,将显示配置页面。

这曾经有效。由于某种原因,不再显示要求身份验证的弹出窗口,并且脚本在访问用于包含 REMOTE_USER 值的变量时提前终止。奇怪的是没有生成日志记录,当脚本尝试访问未定义的变量时似乎没有抛出错误,selinux 不会记录任何策略违规,httpd 也不会记录联系 ldap 服务器的失败。有谁知道这里发生了什么吗?

ldap apache2.4
1个回答
0
投票

事实上,您没有看到 LDAP 服务器的任何流量,这可能意味着

AuthLDAPURL
没有像我们想象的那样被解析。

您添加了一个空格来分隔两个 LDAP 主机,如 文档所示,但也许您应该按照 AuthCore 模块示例中的建议创建两个别名:

<AuthnProviderAlias ldap LDAP-region-A>
  AuthLDAPBindDN "CN=SVC_APIACCESS,OU=Service Accounts,OU=ACCOUNTS,OU=BEHEER,DC=example,DC=org"
  AuthLDAPBindPassword <password>
  AuthLDAPURL "ldap://1.2.3.4/OU=ACCOUNTS,OU=APPS,DC=ont,DC=example,DC=org?sAMAccountName?sub?(objectClass=*)"
</AuthnProviderAlias>

<AuthnProviderAlias ldap LDAP-region-B>
  AuthLDAPBindDN "CN=SVC_APIACCESS,OU=Service Accounts,OU=ACCOUNTS,OU=BEHEER,DC=example,DC=org"
  AuthLDAPBindPassword <password>
  AuthLDAPURL "ldap://6.7.8.9/OU=ACCOUNTS,OU=APPS,DC=ont,DC=example,DC=org?sAMAccountName?sub?(objectClass=*)"
</AuthnProviderAlias>
© www.soinside.com 2019 - 2024. All rights reserved.