我通过使用StartTLS连接获得了OpenLDAP流量,现在我被告知使用LDAPS协议进行绑定,我们这样做是为了连接到AD服务器(我们使用的是简单绑定).
所以我的问题是,是否有必要使用LDAPS与AD进行通信,因为OpenLDAP已经在使用StartTLS?
我对OpenLDAP和AD知之甚少,所以只想要这些建议.
我使用以下配置添加后端ldap [轻量级目录访问协议(代理)后端]数据库.
dn: olcDatabase=ldap,cn=config objectClass: olcDatabaseConfig objectClass: olcLDAPConfig olcDatabase: ldap olcSuffix: ou=xyz,dc=xyz,dc=xyz olcSubordinate: TRUE olcAccess: to dn.subtree="ou=xyz,dc=xyz" by * read olcAddContentAcl: FALSE olcLastMod: FALSE olcMaxDerefDepth: 15 olcReadOnly: FALSE olcSyncUseSubentry: FALSE olcMonitoring: FALSE olcDbURI: "ldap://xx.xx.xx.xx" olcDbStartTLS: none starttls=no olcDbACLBind: bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,ou=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx" olcDbIDAssertBind: mode=legacy flags=prescriptive,proxy-authz-non-critical bindmethod=simple timeout=0 network-timeout=0 binddn="cn=xyz,dc=xyz" credentials="xxxxxxxxxxxxxxxxxxxxxx" olcDbRebindAsUser: TRUE olcDbChaseReferrals: TRUE olcDbNoRefs: FALSE olcDbNoUndefFilter: FALSE
LDAP简单绑定仅可通过SSL / TLS / LDAPS接受.
要在Active Directory域控制器上启用LDAPS,您只需在AD域控制器上安装带有私钥的合适证书:
请务必阅读上述文章的要求部分,了解可接受的证书的构成.
在域控制器上安装可接受的证书后,Active Directory将自动检测其存在并通过端口636启用LDAPS.
您可以从您希望的任何证书颁发机构获取证书,只要该参与通信的所有各方都信任该证书.它可以是现有的AD集成PKI,也可以是公司网络上的非Microsoft CA,或者甚至可以是Godaddy,Symantec等公共的,全球可信的CA,只要它能够生产符合要求的证书:
> LDAPS证书位于本地计算机的个人证书存储区(以编程方式称为计算机的MY证书存储区).
>与证书匹配的私钥存在于本地计算机的存储中,并且与证书正确关联.私钥不得启用强私钥保护.
>增强型密钥用法扩展包括服务器身份验证(1.3.6.1.5.5.7.3.1)对象标识符(也称为OID).
>域控制器的Active Directory完全限定域名(例如,DC01.DOMAIN.COM)必须出现在以下位置之一:
>“主题”字段中的“公用名”(CN).
>主题备用名称扩展名中的DNS条目.
>证书由域控制器和LDAPS客户端信任的CA颁发.通过将客户端和服务器配置为信任发布CA链的根CA来建立信任.
>您必须使用Schannel加密服务提供程序(CSP)来生成密钥.
(从技术上讲,它甚至可能是一个自签名证书,但这不是一个安全的解决方案.)
安装此证书后,域控制器将在端口636上自动启用LDAPS服务.(以及3269上的全局编录服务.)
到目前为止,我只描述了LDAPS,但没有具体描述StartTLS.
如果您愿意,可以对Microsoft LDAP服务器使用startTLS:
https://msdn.microsoft.com/en-us/library/aa366997(v=vs.85).aspx
它不需要在服务器上进行任何其他配置.它只涉及客户端向服务器发送正确的LDAP控件(命令). (startTLS的控件OID为“1.3.6.1.4.1.1466.20037”.)