针对LDAP的验证方法( 五 )


在认证的第一阶段,当客户正在执行在[4]部分2.1中定义的"initialauthentication"
(初始化认证)时,客户发送请求绑定,其版本数字是3、认证选择(authenticationchoice)
是sasl、sasl机制名字是"DIGEST-MD5"、以及证实(credentials)不在场 。客户然后等待
服务对这个请求做出的回答 。
服务将以resultCode是saslBindInProgress、以及serverSaslCreds字段存在的绑定
回答做出回答 。这个字段的内容是在[4]部分2.1.1中定义的字符串 。服务应该(SHOULD)包
括域指示(MUST)和必须指明支持UTF-8 。
客户将发送有区别报文id(distinctmessageid)的绑定请求,其版本数字是3、认证
选择是sasl、sasl机制名字是"DIGEST-MD5",以及证实包含在[4]部分2.1.2中
"digest-response"定义的字符串 。serv-type是"ldap" 。
服务将回答其resultCode或者是成功,或者是错误指示(errorindication)的回答
绑定 。假如认证是成功的和服务不支持随后的(subsequent)认证,那么证实字段中包含[4]
部分2.1.3中"response-auth"定义的字符串 。在客户和服务之间支持随后的认证是可选的
(OPTIONAL) 。
6.2.TLS加密下的简单认证选择("simple"authentication
choice)
一个拥有包含用户口令(userPassword)属性的目录实体可以(MAY)通过执行简单口令
绑定序列验证到目录,其随着TLS密码适配组(ciphersuite)提供的机密连接[6]的协商进
行 。
客户将使用启动TLS操作[5]去协商在连接到LDAP服务之上的TLS安全[6]的使用 。客户
不需要事先已绑定到目录 。
对于这个认证过程的成功进行,客户和服务必须(MUST)协商其包含大量适当强度的加
密算法的密码适配组 。在部分10中描述推荐的密码适配组 。
随着TLS协商的成功的完成,客户必须(MUST)发送其版本数字是3、名字字段包含用
户的实体名字,和简单("simple")认证选择、包含口令的LDAP绑定的请求 。
服务将对每一个在用户的实体命名中的用户口令(userPassword)属性的值和客户提出
的口令按照大小写敏感相等比较 。假如比配,那么服务将发送resultCode为成功的回答,
否则服务将发送resultCode为invalidCredentials的回答 。
6.3.随TLS的其它认证选择
随着TLS的协商,执行其没有涉及明文可再用口令的交换的SASL认证也是可能的 。在这
种情况下,客户和服务不需要协商其提供机密性的密码适配组,假如仅当服务必需是数据完
整性的 。
7.基于证书的认证(Certificate-based
authentication)
LDAP工具应该(SHOULD)支持在TLS中通过客户证书的认证,在部分7.1中定义 。
7.1.随TLS基于证书的认证
一个拥有公/私密钥对的用户,其公钥已经被证书认证中心(CertificationAuthority)
签发,可以使用这个密钥对验证到目录服务,假如用户的证书被服务需求 。用户的证书的主
题字段应该(SHOULD)是用户的目录实体的名字,并且证书认证中心必须被目录服务充分信
任以便(目录)服务能够处理被签发的证书(译者注:目录服务通过证书认证中心验证证书
的有效性) 。关于服务(验证)有效证书路径的方法不在本文档讨论范围之内 。
服务可以(MAY)支持其主题字段名不同于用户的目录实体名的证书映射 。支持名字映射
的服务必须(MUST)有能力被配置为支持无映射证书 。
在连接LDAP服务之上的客户将使用启动TLS操作[5]去协商TLS安全的使用 。在这之前
客户不需要已经绑定到目录 。
在TLS协商中,服务必须(MUST)请求证书 。客户将提供它的证书给服务,并且必须(MUST)

推荐阅读