首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 TM1 9.5 配置 LDAP 身份验证 -7

为 TM1 9.5 配置 LDAP 身份验证 -7

使用 LDAP 凭证登录 TM1既然设置已经完成了,现在应该能够通过任何客户机使用 LDAP 凭证登录 TM1。要记住,TM1 管理员必须把用户分配给组(如果还没有完成这一步的话),因为 LDAP 导入步骤并没有建立组成员关系。
排除故障本节尝试为在为 TM1 9.5 设置 LDAP 身份验证时最常出现的问题提供解决方法。
到目前为止,最常见的错误是错误码为 0x51 /81 的 “Connection Error”。这几乎总是意味着 SSL 握手问题。下面几项措施可能有助于解决这些问题。
为 LDAPAuth 添加调试日志记录器如果把 TM1 配置为自己检查证书,可以在 tm1s-log.properties 文件中添加日志记录器。通过使用这个日志记录器,tm1.log 会包含关于证书检查失败或其他错误的额外信息。如果由 Windows 检查服务器证书 (LDAPVerifyServerSSLCert=F),日志记录只显示 LDAP ERROR: 0x51 - ldap_connect failed。在这种情况下,最好让 TM1 检查 SSL 证书(改为 LDAPVerifyServerSSLCert=T)并启用日志记录器以收集更多信息。
通过编辑 <TM1_SERVER_ROOT>/ tm1s-log.properties 启用日志记录器。
紧挨在 log4j.logger.TM1=INFO, S1 行后面添加下面一行:
1
2
log4j.logger.TM1=INFO, S1
log4j.logger.TM1.LDAPAuth=DEBUG




保存文件并停止 TM1 服务器。移走或删除旧的 tm1.log 并重新启动服务器。再次尝试执行身份验证,查看日志中新的错误消息。
检查证书为了确认 LDAP 服务器提供的证书确实是有效的,可以尝试在 Windows 中查看它(为了让 Windows 能够识别它,需要把扩展名改为 *.cert),或者使用某些 PKI 工具查看它。也可以使用 OpenSSL。要检查的内容是:
  • 主题/CN 是 LDAP 服务器的 Netbios 主机名,还是完全限定的域名?
  • 这是自签署的证书吗?自签署证书的特征是,主题和颁发者字段包含相同的字符串,而且没有设置表示这是 CA 证书的证书属性。
    如果它是自签署证书,要确认这个证书已经导入到 Windows 中了。
  • 每个证书都有过期日期。确认这个证书没有过期。
  • 确认证书没有被撤消。如果可信根 CA 提供 CRL,要确认撤消的证书列表中不包含这个证书。
  • 是否可以使用其他 LDAP 客户机(比如 Microsoft LDP、OpenSSL、Softerra LDAP)连接 LDAP?
检查 tm1s.cfg 设置排除故障的好方法之一是利用 tm1s.cfg 中的高级设置。通过修改配置让 TM1 处理证书检查,然后先跳过证书检查和 CRL 检查:
1
2
3
4
5
6
7
8
9
10
...
# Should TM1 verifiy the cert (=T)or Windows (=F)?
LDAPVerifyServerSSLCert=T
  # only if LDAPVerifyServerSSLCert=T
  # verify based on a  whitelist (=F)or simply default to true (=T)
  LDAPSkipSSLCertVerification=T
  # whitelist of accepted servers
  LDAPVerifyCertServerName=wcsfrkxp99.mydomain.com
  # skip CRL processing (=T) or process (=F)
  LDAPSkipSSLCRLVerification=T




如果这无效,说明问题不在于 SSL 握手,而是网络连接或者 BC 或 Service Account 的 LDAP 身份验证出了问题。对于使用 ServerAccount (LDAPUseServerAccount=T) 的情况,改为使用显式的 BC 并运行 tm1crypt 生成必需的文件。对于 AD,如果显式的 BC 有效,就说明不是 Windows 集成的身份验证的问题。
如果上面的配置有效,那么重新启用 SSLCertVerification 并启用 LDAPAuth 日志记录器(如果还没有启用的话)。查看 tm1.log 中的错误码。
在启用 LDAPAuth 日志记录器的情况下 tm1s.log 中最常见的错误码
  • LDAP ERROR: 0x800b0109
    下面的错误组合表明可接受的服务器名白名单有问题。
    1
    2
    3
    LDAP ERROR: 0x800b0109 - Error verifying server certificate chain validity
    LDAP ERROR: Error verifying server certificate no match for <server>
    LDAP ERROR: 0x51 - ldap_connect failed.





    这基本上意味着提供的服务器证书的主题(错误中的 <server>)与白名单中的任何条目都不匹配。纠正措施是复制证书的主题字符串,把它粘贴到白名单中的 LDAPVerifyCertServerName=<subject> 条目中。
  • LDAP ERROR: 0x800b010f
    下面的错误组合表明 Windows 不信任这个证书。
    1
    2
    3
    LDAP ERROR: 0x800b010f - Error verifying server certificate chain validity
    LDAP ERROR: Error verifying server certificate no match for <server>
    LDAP ERROR: 0x51 - ldap_connect failed.





    这表明 Windows 对 LDAP 服务器证书的信任有问题。建议的纠正措施是确保把证书正确地导入 Windows,参见 2.2.6 节。
  • LDAP ERROR: 0x80092012
    下面的错误组合表明 CRL 处理有问题。
    1
    2
    3
    LDAP ERROR: 0x80092012 - Error verifying server certificate chain validity
    LDAP ERROR: Error verifying server certificate no match for <server>
    LDAP ERROR: 0x51 - ldap_connect failed.





    要么是这个证书被撤消了,要么是 TM1 寻找 CRL 证书但在 Windows 信任存储中无法找到它。建议的纠正措施是跳过 CRL 处理(设置 LDAPSkilSSLCRLVerification=T),即不从 CA 导入 CRL 证书。
在 ETLDAP 工具中没有显示任何属性如果 ETLDAP 映射对话框中的下拉列表没有显示任何要映射的 LDAP 属性,这表明 BC 有权限问题。如果无法用具有足够特权的 BC 运行 ETLDAP,可以通过在配置文件中指定映射来解决此问题。当然,这要求知道要映射的属性名。
实现方法是,在连接 LDAP 并运行搜索之后,选择:
File -> save as
这可以把在 ETLDAP 工具中设置的配置保存到一个文件中。指定一个有意义的名称,比如 ETLDAP.conf。
打开保存的配置文件,添加以下设置(如果已经存在,就修改它们)。
1
2
3
mapval:tm1client || <client_mapping>
mapval:tm1group || <group_mapping>
mapval:rep.email || <email_mapping>




保存文件。
现在再次打开 ETLDAP,通过 File -> Open 装载配置文件。
返回列表