この節では、Directory Proxy Server 6.3.1 Update 1 のリリース時に判明していた既知の問題点と制限事項の一覧を示します。
Directory Proxy Server 6.3.1 の既知の問題点と制限事項は、Directory Proxy Server 6.3.1 Update 1 のパッチを適用したあとも残ります。これらの問題点の詳細については、「Directory Proxy Server の既知の問題点と制限事項」を参照してください。
この節では、Directory Proxy Server 6.3.1 Update 1 のリリース時に判明していた既知の制限事項の一覧を示します。
『Sun Java System Directory Server Enterprise Edition 6.3 Reference』の「JDBC Object Classes」で説明されているとおり、JDBC テーブルの定義には一次テーブルと二次テーブルが使用されます。Directory Proxy Server では、二次テーブルが 3 番目のテーブルの一次テーブルとなることは許可されません。つまり、Directory Proxy Server では 1 レベルを超える結合ルールはサポートされません。
この節では、Directory Proxy Server 6.3.1 Update 1 のリリース時に判明していた既知の問題の一覧を示します。
リリース 6.3 では、エントリに 3 つ以上のオブジェクトクラスがある場合、結合ビュー (LDAP と JDBC) からエントリを追加しようとすると、CR 6636463 の修正が原因で失敗します。このようなエントリを追加するには、次の ldapmodify により、jdbc-object-class 設定エントリでこれらのオブジェクトクラスをスーパークラスとして定義する必要があります。これは、dpconf set-jdbc-object-class-prop で追加できるスーパークラスは 1 つだけだからです。
この例では、次のエントリを追加します。
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 の両方が存在するため、次の 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 に設定されます。このプロパティーをほかの値に設定しないことをお勧めします。
脆弱性に関する注意 VU#836068「MD5 が衝突攻撃に対して脆弱」 で説明されている問題のため、Directory Proxy Server で署名付き証明書に MD5 アルゴリズムを使用することは避けるべきです。
証明書の署名アルゴリズムを調べるには、次の手順を使用します。
次のコマンドを実行して、特定の Directory Proxy Server インスタンスに定義されている証明書の一覧を表示します。
$ 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 |
次の例は、MD5 署名アルゴリズムで署名されている証明書に対して dsadm show-cert コマンドを実行した場合の一般的な出力を示しています。
Certificate: Data: ... Signature Algorithm: PKCS #1 MD5 With RSA Encryption ... |
次のコマンドを実行して、MD5 署名されたすべての証明書をデータベースから削除します。
$ dsadm remove-cert instance-path cert-alias |
次の手順を使用して、証明書データベースのパスワードを更新します。(dpadm コマンドは、ディレクトリプロキシサーバーインスタンスの作成時にデフォルトの証明書データベースパスワードを生成します。)
Directory Proxy Server インスタンスを停止します。
次のコマンドを実行します。
$ dpadm set-flags instance-path cert-pwd-prompt=on |
パスワードの入力を求めるメッセージが表示されます。
8 文字以上のパスワードを入力します。
Directory Proxy Server インスタンスを再起動し、入力が求められたら 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) から証明書を取得し、保存します。
次のコマンドを実行して、認証局によって署名されたサーバー証明書の要求を発行します。
$ dpadm request-cert --sigalg SHA1withRSA instance-path cert-alias |
認証局で MD5 署名アルゴリズムが使用されなくなっていることを確認してから、認証局によって署名されたサーバー証明書を受け取るための証明書要求を認証局 (使用している規則に応じて社内または社外の) に送信します。詳細については、『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 管理ガイド』の「Directory Proxy Server 用の証明書の作成、要求、インストール」を参照してください。
信頼できる認証局証明書がまだ証明書データベースに保存されていない場合は、次のコマンドを実行して追加します。
$ dpadm add-cert --ca instance-path trusted-cert-alias |
この手順については、『Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド』の「Directory Proxy Server 用の証明書の作成、要求、インストール」を参照してください。
次のコマンドを実行して、新しい証明書が使用されていることを確認します。
$ 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 です。