使用Active Directory进行安全LDAP身份validation

我们正在开发一个Web项目,我们需要能够绑定到一个活动的目录域,然后将用户的凭据传递给域,以确保用户在我们允许他们访问我们的Web应用程序之前成功通过身份validation。 我们有HTTPS正常工作的前端接受凭据。 我们遇到的问题是我们的服务器和活动目录服务器之间的连接。 活动目录服务器由IT部门的不同部门维护,我们无法访问它。 此活动目录服务器正在使用自签名证书,并且没有完全限定的域名(即people.local)。

我读了很多地方谈论设置TLS_REQCERTvariables永远不会; 然而,我担心中间人的攻击,并不愿意离开这样的设置。 我还阅读了一些文章,讨论如何从Linux命令行查询活动目录服务器,查看自签名证书,将自签名证书保存到本地Linux服务器,然后使用此证书作为信任所以您不必将TLS_REQCERT设置为从不。 我不确定如何从Linux命令行查看和保存自签名证书。 我有一些我们正在运行的CentOS服务器,我们需要使其运行。

任何帮助,你可以提供将不胜感激。 提前致谢。

我读了很多地方谈论设置TLS_REQCERTvariables永远不会; 然而,我担心中间人的攻击,并不愿意离开这样的设置。

考虑到安全性和理解设置TLS_REQCERT的含义,您将受到赞扬。

我也读过一些文章,讲述如何从Linux命令行查询活动目录服务器,查看自签名证书,将自签名证书保存到本地Linux服务器上。

你可以使用openssl工具来做到这一点。 假设您可以通过端口636上的LDAP-over-SSL访问Active Directory,则可以这样做:

 openssl s_client -connect server.example.com:636 > output < /dev/null 

当命令完成后,您会发现输出中包含PEM编码证书:

 00000003) --- Certificate chain 0 s:/CN=dc1.example.com i:/DC=com/DC=example/DC=dc1/CN=example-DC1-CA --- Server certificate -----BEGIN CERTIFICATE----- MIIGjDCCBXSgAwIBAgIKOxasfwAAAAAADDANBgkqhkiG9w0BAQUFADBaMRMwEQYK ... -----END CERTIFICATE----- ... 

您可以在BEGIN CERTIFICATE行之前和END CERTIFICATE LINE之后的所有内容中删除所有内容,并且您应该具有要查找的内容。

AD服务器也可能不使用自签名证书,而是使用AD证书颁发机构颁发的证书。 如果是这种情况,那么只需向AD人询问CA证书就可以了。

我build议您的组织中有一个专用的证书颁发机构服务器。 您将使用此服务器为公司中的所有服务器颁发证书。 要查看来自证书,密钥或证书请求的信息,可以使用openssl。 请参阅: http : //www.openssl.org/support/faq.html和http://www.madboa.com/geek/openssl/

为您的LDAP服务器颁发的证书(最好是根证书)应该导入到应用程序的SSL密钥库中。