ヘッダーをスキップ
Oracle Application Serverリリース・ノート
10g(10.1.4.0.1) for Linux on POWER
E05288-03
  目次
目次

戻る
戻る
 
次へ
次へ
 

9 Oracle Internet Directory

この章では、Oracle Internet Directoryに関連する問題について説明します。内容は次のとおりです。

9.1 一般的な問題および回避方法

この項では、一般的な問題およびその回避方法について説明します。内容は次のとおりです。

9.1.1 Oracle Internet Directoryの管理変更後に全体データベース・バックアップを実行

Oracle Application Serverのバックアップおよびリカバリ・ツールなど、標準的なデータベース・バックアップおよびリストアの手順を使用する場合、次の管理タスクを実行した後に全データベース・バックアップを実行する必要があります。

  • bulkloadバルク管理ツールの使用

  • catalogバルク管理ツールの使用

  • Oracle Internet Directoryのインストール

  • メジャー・リリースまたはパッチセットへのOracle Internet Directoryのアップグレード

  • cn=catalogsエントリを変更してorclindexedattributeを追加するLDAPアプリケーション(Oracle Collaboration Suiteなど)をOracle Internet Directoryに対してインストール

bulkloadバルク管理ツールを使用した後に全体バックアップを実行しないと、リストアの実行時に回復不能なエラーが発生することがあります。bulkloadユーティリティは、REDOログを生成しないダイレクト・パス・ロードを実行します。bulkloadバルク管理ツールの使用後に全体バックアップを実行せず、後で、アーカイブ済REDOログの適用を試行するリストアを実行した場合、修正不可能なエラーが発生することがあります。

この他の4つのいずれかのタスクの後に全体バックアップを実行しない場合、リストアの実行時に回復可能なエラーが発生することがあります。これらのいずれかのタスクを実行すると、NOLOGGINGオプション付きで索引が作成されることがあります。つまり、索引にREDOログは作成されません。これらのいずれかの操作の後に全体バックアップを実行せず、後で、アーカイブ済REDOログの適用を試行するリストアを実行した場合、Oracle Internet Directoryの再起動時にエラーが発生することがあります。具体的には、oidmon.logまたはoidldapd*.logにORA-1578およびORA-2640エラーが示されます。この場合、次のように入力して、Oracle Internet Directoryを停止し、すべてのOracle Internet Directoryデータベース索引を再作成します。

 bulkload connect="conn_str" index="TRUE"

9.1.2 スキーマ内に定義されていないACL属性のコメントアウト

Oracle Internet Directoryの10g(10.1.4.0.1)リリースでは、アクセス制御リストに新しい制限(orclaci属性およびorclentrylevelaci属性)が追加されました。具体的には、ユーザーはディレクトリ・スキーマ内に定義されていない属性名を指定できません。このため、以前のOracle Internet Directoryリリースからエントリを追加または移行するときに、ディレクトリ・スキーマ内に定義されていない属性名を持つエントリがあると、ロード操作は失敗します。

この問題を回避するには、LDIFファイル内で、定義されていない属性を持つACLをコメントアウトします。

たとえば、次の10gリリース2(10.1.2)エントリでは、太字テキストで示された未定義の属性が使用されています。

orclaci: access to attr=(orclUserApplnProvStatus,orclUserApplnProvStatusDesc,
 orclUserProvFailureCount) by group="cn=oracledasedituser,cn=groups,
 cn=OracleContext,dc=us,dc=oracle,dc=com" (read,search,write,compare) by
 group="cn=oracledascreateuser,cn=groups,cn=OracleContext,dc=us,dc=oracle,
 dc=com" (read,search,write,compare) by self (read,search,nowrite,compare)
 by * (none)

この問題を回避するには、LDIFファイルをロードまたは検証する前に、次のようにエントリをコメントアウトします。

# orclaci: access to attr=(orclUserApplnProvStatus,orclUserApplnProvStatusDesc,
# orclUserProvFailureCount) by group="cn=oracledasedituser,cn=groups,
# cn=OracleContext,dc=us,dc=oracle,dc=com" (read,search,write,compare) by
# group="cn=oracledascreateuser,cn=groups,cn=OracleContext,dc=us,dc=oracle,
# dc=com" (read,search,write,compare) by self (read,search,nowrite,compare)
# by * (none)

9.1.3 アドバンスト・レプリケーション・アグリーメントのディレクトリ・エントリをダンプするときにDITのDNを指定

新しいディレクトリをディレクトリ・レプリケーション・グループに追加する場合、ldifwriteおよびbulkloadツールを使用して既存のディレクトリから新しいディレクトリにエントリをコピーします。

通常、これを行うには、レプリケーション・アグリーメントDNをldifwriteへのbasedn引数として指定する方法が最も簡単です。これによって、ldifwriteツールは、指定されたレプリケーション・アグリーメントによりレプリケートされたすべてのエントリをダンプします。その後は、bulkloadツールを使用して、別のレプリケート済ディレクトリにエントリをロードできるようになります。

リリース10g(10.1.4.0.1)では、レプリケーション・アグリーメントDNがorclagreementid=000001,cn=replication configuration(アドバンスト・レプリケーション・アグリーメントのDN)の場合、これが機能しません。回避方法は、コピー対象のDITのDNを、ldifwriteへのベースDN引数として明示的に指定することです。

9.2 構成の問題および回避方法

この項では、構成の問題およびその回避方法について説明します。内容は次のとおりです。

9.2.1 bulkloadの使用前に言語を設定

サーバー・ロケールが英語以外の場合、bulkloadの実行前にNLS_LANGAMERICAN_AMERICA.AL32UTF8に設定します。

9.3 ドキュメントの訂正箇所

この項では、ドキュメントの訂正箇所を示します。内容は次のとおりです。

9.3.1 オンライン・ヘルプ・ページの不正なリンク

「関連ドキュメント」ヘルプ・ページで、Identity Management Grid ControlプラグインおよびOracle Internet Directoryサーバー管理性に関するドキュメントへのリンクが壊れています。これらのドキュメントへは、http://www.oracle.com/technology/documentationからアクセスしてください。

9.3.2 sqlplusコマンドの改行の欠落

HTMLバージョンの『Oracle Internet Directory管理者ガイド』では、付録IのI.6.2項「新規アドバンスト・レプリケーション・ノードで実行するタスク」の手順18に、次のコマンドラインが示されています。

$> sqlplus  rep_admin_db_account_name/password@db_conn_str_of_new_nodeSQL> exec dbms_repcat.drop_master_repgroup( gname => 'LDAP_REP' )

正しくは、SQL>の前に改行が必要です。つまり、コマンドは次のようになります。

$> sqlplus  rep_admin_db_account_name/password@db_conn_str_of_new_node
SQL> exec dbms_repcat.drop_master_repgroup( gname => 'LDAP_REP' )

9.3.3 oracle.ldap.util.Subscriber.createUser()に関するドキュメントの誤り

『Oracle Internet Directory API Reference』と『Oracle Identity Managementアプリケーション開発者ガイド』の「JNDIに対するJava API拡張機能の使用」で、oracle.ldap.util.Subscriber.createUser()メソッドの説明に誤りがあります。

  • 『Oracle Internet Directory API Reference』のcreatUser()の説明で、すべてのuseMandatoryAttrという語をuseMandatoryObjectclassesに変更する必要があります。

    『Oracle Internet Directory API Reference』の次の文は正しくありません。

    「オブジェクト・クラスは自動的に選択されるため、ModPropertySetに組み込む必要はありません。」

    useMandatoryObjectclassesがfalseに設定されている場合は、ModPropertySetにオブジェクト・クラスを組み込む必要があります。

  • 『Oracle Internet Directory API Reference』のコード・サンプルに次の行が含まれています。

    User newUser = sub.createUser( ctx, mps, false );
    

    この行は次のように変更する必要があります。

    User newUser = sub.createUser( ctx, mps, true );
    

    objectclass属性がないため、コードを変更しないと例外がスローされます。

  • 同様に、『Oracle Identity Managementアプリケーション開発者ガイド』の「JNDIに対するJava API拡張機能の使用」には次の行があります。

    User newUser = sub.createUser( ctx, mps );
    

    この行は次のように変更する必要があります。

    User newUser = sub.createUser( ctx, mps, true );
    

9.3.4 例の欠落: mod_ssoで設定されたMIMEエンコード・ヘッダーのデコード方法

ユーザー名または他のHTTPヘッダーがマルチバイトで、mod_ossoによって設定されている場合、そのヘッダーはMIMEデコーディングを使用してデコードする必要があります。『Oracle Identity Managementアプリケーション開発者ガイド』の「シングル・サインオン対応のアプリケーションの開発」には、この方法を示すJavaの例が必要です。

次のコード例は、サーブレット・リクエスト・オブジェクトから取得した、MIMEエンコードされたマルチバイトのユーザー名をデコードする方法を示します。

import javax.mail.internet.MimeUtility;
...
String mimeUserName = request.getRemoteUser();
String userName = MimeUtility.decodeText(mimeUserName);

9.3.5 Identity Management Grid Controlプラグインの状況依存ヘルプの誤り

「ディレクトリ・サーバー」の「ユーザー統計」の「ヘルプ」ページに、「Oracle Directory Monitorまたはコマンドラインを使用して、監視するユーザーを表に追加できます。」という文章があります。この文で、Oracle Directory MonitorをOracle Directory Managerに変更する必要があります。

9.3.6 「注意」の欠落: labeledURI属性のhost:portは構文表示専用

次の「注意」を、『Oracle Internet Directory管理者ガイド』の動的グループの章の「動的グループ作成のためのスキーマ要素」に追加する必要があります。


注意:

labeledURI属性のhost:portセクションは構文を表すためだけに示されています。labeledURI属性のhostとportの設定に関係なく、ディレクトリ・サーバーは常にローカル・ディレクトリ・サーバーから動的グループのメンバーを計算します。他のディレクトリ・サーバーからメンバーを取得することはできません。

9.3.7 例の欠落: ldapsearchを使用したディレクトリのすべての属性の表示

次の例を、『Oracle Internet Directory管理者ガイド』の「ディレクトリ・エントリの管理」に追加する必要があります。

次のコマンドラインを使用して、値がないものも含めてすべての属性を表示します。

ldapsearch -b "cn=subschemasubentry" -s base "objectclass=*"

9.3.8 プラグインのデバッグ例での環境変数の誤り

『Oracle Identity Managementアプリケーション開発者ガイド』の「PL/SQLサーバー・プラグイン」および『Oracle Internet Directory管理者ガイド』の「Oracle Internet Directoryのパスワード・ポリシー・プラグイン」で、パス名の先頭にあるすべての$ORACLE/$ORACLE_HOME/に変更する必要があります。

9.3.9 レプリケーションの概念に関する章での図の誤り

『Oracle Internet Directory管理者ガイド』の「Oracle Internet Directoryレプリケーションの概要」に次の誤りがあります。

  • 図29-10で、「4'」の矢印の方向を逆にしてください。また、この図の4つの番号を表9-1のように変更する必要があります。

表9-1 図29-12での番号の変更

間違っている番号 正しい番号

7

6

6

6'

7

7'

7'

8


  • 図29-12の説明で、「ノード4が失敗したら、ノード4にフェイルオーバーできます」で始まる文を「ノード2が失敗したら、ノード4にフェイルオーバーできます」に変更する必要があります。

  • 図29-14の説明で、除外されたサブツリーの記述をcn=user1,cn=hr,c=usからcn=users,cn=hr,c=usに変更する必要があります。

9.3.10 バックアップの章の不正なldifwriteパラメータ

『Oracle Internet Directory管理者ガイド』の「ディレクトリのバックアップとリストア」の章の最初のページには、手順1のコマンドラインが次のように記載されています。

ldifwrite connect="connect_string"  basedn="naming_context" file="backup.ldif"

これは次のように修正する必要があります。

ldifwrite connect="connect_string"  basedn="naming_context" ldiffile="backup.ldif"

9.3.11 Javaプラグインのサンプル・コードの誤り

『Oracle Identity Managementアプリケーション開発者ガイド』の「Javaサーバー・プラグイン」の章で、「例2: Active Directoryの外部認証プラグイン」にある次の記述を変更してください。

      // Retrieve the Base DN, Attribute and Attribute Value
           String bdn = opObj.getBaseDN().substring(0,
            opObj.getBaseDN().lastIndexOf("cn=users,dc=us,dc=oracle,dc=com")-1)
             +",cn=users,dc=dlin,dc=net";

次のように変更します。

      // Retrieve the Base DN, Attribute and Attribute Value
           LdapBaseEntry baseEntry = plgObj.getLdapBaseEntry();
           String bdn = baseEntry.getDN().substring(0,
             baseEntry.getDN().lastIndexOf("cn=users,dc=us,dc=oracle,dc=com")-1)
             +",cn=users,dc=dlin,dc=net";

9.3.12 SSL構成手順の廃止された手順

『Oracle Internet Directory管理者ガイド』の「Secure Sockets Layer(SSL)とディレクトリ」で、「SSL対応のOracle Internet Directoryの構成」の手順13から次の内容を削除してください。

  • Windowsシステムでは、追加の構成手順を実行する必要があります。Oracle Directory Serviceのログイン・アカウントを、ローカル・システム・アカウントからWalletを所有するユーザーのアカウントに変更します。このユーザーは、Administrator Groupのメンバーである必要があります。次の手順に従ってアカウントを変更します。

    1. Windowsの場合、「スタート」「設定」「コントロール パネル」「管理ツール」「サービス」を選択します。

    2. 「プロパティ」「ログオン」をクリックします。

    3. 「ローカル システム アカウント」から、ウォレットを作成した際にログインしたアカウントに変更します。サービスを停止して、再起動します。

9.3.13 Oracle Directory Managerヘルプおよび『Oracle Internet Directory管理者ガイド』の付録Aの誤り

Oracle Directory Managerのオンライン・ヘルプおよび『Oracle Internet Directory管理者ガイド』の付録Aに示されている一部の属性の定義に誤りがあります。属性の定義とデフォルトについては、『Oracle Identity Managementユーザー・リファレンス』および『Oracle Internet Directory管理者ガイド』の前半部分を参照してください。次の誤りが報告されています。

表9-2 Oracle Directory Managerヘルプおよび付録Aの誤り

属性 正しい定義 ヘルプおよび付録Aの間違っている定義

パージの開始(orclpurgestart

ガベージ・コレクタの実行開始時間。形式はyyyymmddhhmmss。デフォルト値は、Oracle Internet Directoryのインストール日の午前12:00です。

ガベージ・コレクタの最初の実行時間(秒単位)。形式はYYYYMMDDHH24MISS。この属性はオプションです。デフォルト値は0です。この値は、ガベージ・コレクタがすぐに有効になることを示します。

パスワード有効期限(pwdMaxAge

パスワードの最大有効時間(秒単位)。この時間に達すると、パスワードは期限切れとみなされます。デフォルトは10368000秒(120日)です。

指定のパスワードが有効な秒数。この属性が存在しない場合、または値が0の場合、パスワードは期限切れになりません。デフォルトでは、ユーザー・パスワードは期限切れになりません。

パスワードの期限切れ警告(pwdExpireWarning

パスワードの期限が切れる前に、認証を受けるユーザーに期限切れの警告メッセージが返される最大秒数。デフォルト値は604800秒(7日)です。

パスワードの期限が切れる前に、ディレクトリ・サーバーがユーザーに警告を送信する秒数。パスワードの期限が有効である場合、ディレクトリ・サーバーは、デフォルトでパスワードの期限が切れる3日前にユーザーに警告を送信します。


9.3.14 pwdGraceLoginLimitの最大値が記載されていない

『Oracle Internet Directory管理者ガイド』にpwdGraceLoginLimitの最大値が指定されていません。最大値は250です。

9.3.15 orcldataprivacymodeを1に設定するとOC4J_SECURITYが起動しない

『Oracle Internet Directory管理者ガイド』の第16章の「受信した機密の属性のプライバシ」で、orcldataprivacymodeの値を0から1に変更してプライバシ・モードを有効にする必要があると説明されています。ただし、このように変更すると、OC4J_SECURITYが起動されません。OC4J_SECURITYまたはOracle Application Server Single Sign-Onを使用する場合は、値を1に変更しないでください。