我正在尝试尽可能接近单一凭证。我们有一个 Web 应用程序,它的可用身份验证机制相当有限,但(幸运的是)允许管理员告诉它信任REMOTE_USER
由httpd
.
有没有办法将 mod_authnz_ldap 配置为使用请求用户的凭据进行身份验证,而不是仅在匿名绑定或共享凭据之间进行选择?
这就是我目前所拥有的:
<Location />
AuthzLDAPLogLevel debug
AuthType Basic
AuthBasicProvider ldap
AuthName "Active Directory"
AuthzLDAPAuthoritative off
AuthLDAPBindDN CN=jad,DC=xxx,DC=com
AuthLDAPBindPassword xxx
AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub
require valid-user
</Location>
xxx
的标记编辑。基本上上面的方法可以对用户进行身份验证,但它使用我的帐户绑定到 AD。如果我尝试注释掉它AuthLDAPBindDN
,AuthLDAPBindPassword
它似乎试图执行匿名绑定,AD 管理员已将其配置为拒绝。
我的问题是,是否可以将 apache 配置为使用身份验证用户的凭据,而不是让我在匿名绑定或使用共享帐户之间进行选择(考虑到 AD 人员设置的策略,这也是不可能的)。在人员被解雇或离职的情况下,使用个人帐户显然也不是理想的选择。
答案1
或许AuthLDAPInitialBindAsUser(Apache 2.3.6) 可以帮助:
确定服务器是否使用基本 DN 进行初始 DN 查找 身份验证用户自己的用户名,而不是匿名或使用 服务器的硬编码凭据
结合AuthLDAPInitialBindPattern,像这样的东西可能会起作用(未经测试):
AuthType 基本 AuthBasicProvider LDAP 验证名称“Active Directory” AuthzLDAP权威关闭 AuthLDAPInitialBindAsUser 开启 AuthLDAPInitialBindPattern (.+) cn=$1,dc=com AuthLDAPURL ldap://xxx.xxx.64.71/DC=xxx,DC=com?samaccountname?sub 需要有效用户