本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知问题和限制。
目录代理服务器 6.3.1 中的已知问题和限制即使在应用了 目录代理服务器 6.3.1 update 1 的修补程序以后仍然存在。有关这些问题的信息请参考 目录代理服务器 中的已知问题和限制。
本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知限制。
按照 《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“JDBC Object Classes” 的说明,定义 JDBC 表格使用主表和从表。目录代理服务器 不允许从表为第三张表格的主表。即 目录代理服务器 不支持 1 级以上的联接规则。
本节列出了在发行 目录代理服务器 6.3.1 update 1 时发现的已知问题。
在发行版 6.3 中,如果一个条目拥有 2 个以上对象类,则由于 CR 6636463 修复程序的原因,通过联接视图(LDAP 和 JDBC)添加条目失败。要添加此类条目,这些对象类必须在 jdbc-object-class 配置条目中通过以下 ldapmodify 定义为超级类,因为 dpconf set-jdbc-object-class-prop 仅能添加一个超级类。
此示例添加以下条目:
dn: uid=test,ou=people,o=join sn: User cn: Test User objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson uid: test userpassword: password givenname: Test mail: test@example.com telephonenumber: 8888-8888 roomnumber: 8000
JDBC 视图按以下示例中所示方式定义,这在发行版 6.3 之前原可以正常发挥功能。
dn: cn=person,cn=example-view,cn=data views,cn=config secondaryTable: country1 secondaryTable: phone1 primaryTable: employee1 objectClass: top objectClass: configEntry objectClass: jdbcObjectClassMapping dnPattern: uid cn: person superclass: top
由于 objectClass:organizationalPerson 和 objectClass:inetOrgPerson 均存在于正被添加的条目中,因此需要将 2 个对象类指定为超级类,如以下 ldapmodify 命令所示。
$ ldapmodify -p dpsPort -D "cn=Proxy manager" -w password dn: cn=person,cn=example-view,cn=data views,cn=config changetype: modify add: superClass superClass: inetOrgPerson - add: superClass superClass: organizationalPerson |
此 ldapmodify 示例运行后,jdbc-object-class 按以下示例中所示方式定义。
dn: cn=person,cn=example-view,cn=data views,cn=config secondaryTable: country1 secondaryTable: phone1 primaryTable: employee1 objectClass: top objectClass: configEntry objectClass: jdbcObjectClassMapping dnPattern: uid cn: person superclass: top superclass: inetOrgPerson Added superclass: organizationalPerson Added
尽管 log-level-data-sources-detailed 属性的默认设置被记录为 none,实际默认值为 all。然而,将 log-level-data-sources-detailed 设置为 none 以外的任何值会影响服务器性能,并使 access 文件迅速增长。 由于该原因,DPS 服务器实例被创建时 log-level-data-sources-detailed 设置的值被自动设置为 none。建议您不要将此项设置设置为某个其他值。
由于 Vulnerability Note VU#836068, MD5 vulnerable to collision attacks 中所描述问题的原因,目录代理服务器 应当避免在签名证书中使用 MD5 算法。
执行以下步骤确定证书的签名算法。
运行以下命令,显示特定 目录代理服务器 实例中定义的证书列表。
$ dpadm list-certs instance-path |
在每个被定义的证书上运行以下命令,确定证书是否采用 MD5 算法签名。
$ dpadm show-cert -F ascii -o cert-output-file \ dps-instance-path cert-alias $ dsadm add-cert ds-instance-path cert-alias \ cert-output-file $ dsadm show-cert ds-instance-path cert-alias |
以下示例显示了 dsadm show-cert 命令针对采用 MD5 签名算法的证书的典型输出信息:
Certificate: Data: ... Signature Algorithm: PKCS #1 MD5 With RSA Encryption ... |
运行以下命令从数据库删除任何 MD5 签名证书:
$ dsadm remove-cert instance-path cert-alias |
执行以下步骤更新证书数据库密码。(创建目录代理服务器实例时 dpadm 命令生成默认证书数据库密码。)
停止 目录代理服务器 实例。
运行以下命令:
$ dpadm set-flags instance-path cert-pwd-prompt=on |
显示消息,提示您输入密码。
输入一个至少 8 个字符长的密码。
重新启动 目录代理服务器 实例并在提示时提供 Internal (Software) Token。
将使用 MD5 功能的任何证书替换为使用 SHA-1 签名算法的证书。根据您的安装是否使用自签名证书,还是从证书授权机构获得的证书,执行以下过程之一。
执行以下步骤生成并储存一个自签名证书:
运行以下命令:
$ dpadm add-selfsign-cert --sigalg SHA1withRSA \ dps-instance-path cert-alias |
默认签名算法为 MD5withRSA。
显示以下提示:
[Password or Pin for "NSS Certificate DB"] |
输入新证书数据库密码。
执行以下步骤生成并储存从证书授权机构 (CA) 获得的证书:
运行以下命令发布 CA 签名的服务器证书请求:
$ dpadm request-cert --sigalg SHA1withRSA instance-path cert-alias |
确保您的证书授权机构不再使用 MD5 签名算法,然后将证书请求发送到证书授权机构(公司内部或外部,取决于您的规则)以获取 CA 签名的服务器证书,在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“请求 CA 签名的服务器证书” 中有介绍。
当证书授权机构向您发送新证书时,请运行以下命令将证书添加到证书数据库:
$ dpadm add-cert instance-path cert-alias |
在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。
如果受信任的证书授权机构证书尚未存储在证书数据库中,请运行以下命令将其添加:
$ dpadm add-cert --ca instance-path trusted-cert-alias |
在 《Sun Java System Directory Server Enterprise Edition 6.3 管理指南》中的“创建、请求和安装目录代理服务器的证书” 中对此步骤有介绍。
运行以下命令验证新证书是否正在被使用。
$ dpadm show-cert -F ascii -o cert-output-file \ dps-instance-path cert-alias $ dsadm add-cert ds-instance-path cert-alias \ cert-output-file $ dsadm show-cert ds-instance-path cert-alias |
对于 Microsoft SQL Server 后端,使用 smalldate 字段时,仅支持长整型版的日期,否则会发生转换错误,如以下示例中所示。
ldap_modify: Operations error ldap_modify: additional info: java.lang.Exception: \ com.microsoft.sqlserver.jdbc.SQLServerException: \ Conversion failed when converting datetime from character string. |
长整型版日期使用形式 YYYY -MM-DD HH:MM。