使用 Apache HTTPSever 2 的活动目录 SASL 身份验证。4.x

Active directory SASL Authentication using Apache HTTPSever 2.4.x

2020 年,Microsoft 将解决 CVE-2017-8563 Active Directory 域控制器上存在的一组 LDAP 通道绑定和 LDAP 签名的不安全默认配置,这些配置允许 LDAP 客户端在不强制 LDAP 通道绑定的情况下与其通信,并且LDAP 签名。

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

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

因此,LDAP 简单绑定现在需要像 DIGEST-MD5 一样转换为 SASL,并添加对通过 qop 作为 "auth-int" 进行签名的支持。但是,在大型应用程序中,ldap 身份验证发生在 HTTP 服务器级别而不是 java 程序,在我的例子中它是 Apache HTTPServer 2.4.x.

目前,我在 Apache HTTPServer (Windows & Linux platforms) 中配置了基本身份验证提供程序,需要更换使用 SASL 身份验证机制,如 GSSAPI、GSS-SPNEGO 或 DIGEST-MD5:

# 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>

我正在寻找适用于 Apache 和活动目录的 SASL 的以下 3 个选项中的任何一个的 POC 示例:
1。 DIGEST-MD5 using mod_auth_digest: 这种机制不在ldap中查找,它还没有实现qop "auth-int".
digest_md5 是否有任何其他第三方 apache 2.4.x 模块将在 ldap 中查找并支持 qop "auth-int"?

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

3。 mod_authn_sasl & Cyrus SASL:第三方库,现在正在为 Windows 平台发展。
我正在寻找一个具有任何 SASL 机制的具体 documentation/POC 示例,以使用 Apache(Windows & Linux 平台) 使用活动目录。

或者是否有任何其他方法可以使用 Active Directory 为 Apache HTTPServer 启用 SASL?

此外,检查 (Here, LDAPS is used) AND 的 SO(尽管 Apache 不提供 SASL 作为 OOB 配置,但可以使用 mod_auth_gssapi SASL 等模块)

注:

1.应用已经支持LDAP(simple binds) & LDAPS配置,所以我们不希望用户强行使用LDAPS。相反,我们想要 enable/implement 非 SSL/TLS 配置的 SASL 机制。

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

我已详细发布此内容,以便对受 Microsoft 2020 通道绑定和签名更新影响的其他人有所帮助。

谢谢。

  • Microsoft 早些时候决定在 2020 年注册安全更新,以启用 LDAPChannel Binding 和 LDAP Server Signing 作为 default 配置,如下面的截图。

  • 但是,由于客户对此更新和 SASL 限制表示担忧(不支持 Apache HTTPServer 等第 3 方身份验证机制)。 Microsoft 现已回滚 此强制执行,并让客户决定是否强制执行设置。

  • 此外,Microsoft 还确认将没有 更多与 LDAPChannel 绑定和 LDAP 服务器签名[的实施相关的更新] =41=] 将来。

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

  • Microsoft 已将其有关安全公告的文章更新如下:ADV190023

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