使用ApacheHttpSever 2.4.x的Active directory SASL身份验证 2020年,Microsoft将解决Active Directory域控制器上存在的一组LDAP通道绑定和LDAP签名的不安全默认配置,这些配置允许LDAP客户端在不强制LDAP通道绑定和LDAP签名的情况下与其通信。

使用ApacheHttpSever 2.4.x的Active directory SASL身份验证 2020年,Microsoft将解决Active Directory域控制器上存在的一组LDAP通道绑定和LDAP签名的不安全默认配置,这些配置允许LDAP客户端在不强制LDAP通道绑定和LDAP签名的情况下与其通信。,apache,authentication,active-directory,kerberos,sasl,Apache,Authentication,Active Directory,Kerberos,Sasl,由于上述更改,不启用或不支持签名的LDAP客户端将不连接。 如果需要LDAP签名,则非TLS连接上的LDAP简单绑定将不起作用 这并不意味着我们必须将所有LDAP应用程序移动到端口636并切换到SSL/TLS。当使用带有签名的SASL时,确实启用或支持签名的LDAP客户端将通过端口389进行连接 因此,LDAP简单绑定现在需要转换为类似SASL的绑定,并添加对通过qop作为“auth int”进行签名的支持。然而,在大型应用程序中,ldap身份验证发生在HTTP服务器级别,而不是java程序,在

由于上述更改,不启用或不支持签名的LDAP客户端将不连接。 如果需要LDAP签名,则非TLS连接上的LDAP简单绑定将不起作用

这并不意味着我们必须将所有LDAP应用程序移动到端口636并切换到SSL/TLS。当使用带有签名的SASL时,确实启用或支持签名的LDAP客户端将通过端口389进行连接

因此,LDAP简单绑定现在需要转换为类似SASL的绑定,并添加对通过qop作为“auth int”进行签名的支持。然而,在大型应用程序中,ldap身份验证发生在HTTP服务器级别,而不是java程序,在我的例子中,它是ApacheHttpServer

目前,我在Apache HTTPServer(Windows和Linux平台)中配置了以下基本身份验证提供程序,需要用GSSAPI、GSS-SPNEGO或DIGEST-MD5等SASL身份验证机制来替换:

# Basic Authentication provider

<AuthnProviderAlias ldap MyEnterpriseLdap>
  AuthLDAPURL "ldap://machine1.abcd.com:389/CN=Users,DC=abcd,DC=com?sAMAccountName?sub?(objectClass=*)"
  AuthLDAPBindDN "CN=rohit,CN=Users,DC=abcd,DC=com"
  AuthLDAPBindPassword "abc123"
  LDAPReferrals Off
</AuthnProviderAlias>

# Authenticated resources

<LocationMatch ^/+WebApp/+(;.*)?>
  AuthName "WebApp"
  AuthType Basic
  AuthBasicProvider MyEnterpriseLdap 
  Require valid-user
</LocationMatch>
#基本身份验证提供程序
:此机制未在ldap中查找,并且尚未实现qop“auth int”。
是否有其他第三方apache 2.4.x digest_md5模块将在ldap中查找并支持qop“auth int”

2。GSSAPI:看起来像是使用mod_auth_GSSAPI,Apache HTTPServer可以在Active directory中查找用户及其凭据,从而使用GSSAPI机制进行身份验证。
是否有任何文档或POC示例说明在Windows和Linux中对Apache HTTPServer 2.4.x进行GSSAPI所需的配置,以便在Microsoft Active directory中使用GSSAPI机制进行身份验证?

3.&:正在为Windows平台开发的第三方库。
我正在寻找一个带有任何SASL机制的具体文档/POC示例,以使用Active directory在Apache(Windows和Linux平台)上实现该库。

或者是否有其他方法可以通过Active directory为Apache HTTPServer启用SASL?

另外,检查SO(此处使用LDAPS)和(尽管Apache不提供SASL作为OOB配置,但可以使用mod_auth_gssapi SASL等模块)

注: 1。应用程序已经支持LDAP(简单绑定)和LDAPS配置,因此我们不希望用户强制使用LDAPS。相反,我们希望为非SSL/TLS配置启用/实现SASL机制

2。禁用非TLS连接的LDAP签名不是一个选项,因为在使用带签名的SASL时,确实启用或支持签名的LDAP客户端可以通过端口389连接

我已经详细发布了这篇文章,以便对其他受微软2020年渠道绑定和签名更新影响的人有所帮助

谢谢。

  • 微软早些时候决定在2020年注册一个安全更新,以使LDAPChannel绑定和LDAP服务器签名成为默认配置,如下面的屏幕截图所示

  • 但是,由于客户对此更新提出了担忧&SASL限制(不受第三方身份验证机制(如apachehttpserver)的支持)。Microsoft现在已回滚此强制执行,并由客户决定是否强制执行设置

  • 此外,微软还确认,未来不会有更多与实施LDAPChannel绑定和LDAP服务器签名相关的更新

  • 这是2020年3月10日LDAPChannel绑定的安全更新,LDAP服务器签名将是这些设置的最后一次更新

  • Microsoft已将其关于安全咨询的文章更新如下:

强烈建议使用LDAP而不是LDAP或任何SASL协议。