Oracle Application Serverリリース・ノート 10g(10.1.4.0.1) for Microsoft Windows(64-bit)on Intel Itanium B31752-05 |
|
戻る |
この章では、Oracle Directory Integration Platformに関連する問題について説明します。内容は次のとおりです。
この項では、Oracle Directory Integration Platformに関する構成の問題およびその回避方法について説明します。内容は次のとおりです。
13.1.2項「追加の構成情報ファイルのアップロード時にディレクトリ統合アシスタントによって「LDAP: エラー・コード2 - デコード・エラー」がスローされる」
13.1.3項「Oracle Password Filter for Microsoft Active Directoryを再構成するとエラーが生成される」
13.1.4項「マルチマスター・レプリケーションを使用する高可用性環境において、プロビジョニング・イベントが伝播または複製されないことがある」
13.1.5項「Oracle Enterprise ManagerからOracle Directory Integration Platformを構成した後に必要な手動操作」
13.1.6項「Oracle Password Filter for Microsoft Active Directoryのインストール前のWindowsレジストリの保護」
13.1.7項「ソース・ディレクトリ内の同期する属性の数が10を超えるとDIP_GEN_CREATECHG_EXCEPTIONが発生する」
13.1.9項「Sun Java System Directoryからmodrdnを同期するとスタック・トレースがスローされる」
13.1.11項「追加操作が同期されず、トレース・ファイルに「objclsがNULLです」メッセージが出力されて同期に失敗する」
同期中にドメインレベル・マッピングを使用する場合、およびdn
値を含む属性を同期化する場合、OpenLDAPを使用したインポート同期とエクスポート同期、およびSun Java System Directoryへのエクスポート同期を行うために、マッピング・ルールを変更する必要があります。たとえば、ドメインレベル・マッピングを使用してグループを同期化するには、member
、uniquemember
およびowner
エントリ(通常はdn
値が含まれる)のマッピングを変更する必要があります。
ディレクトリ統合アシスタントのExpress構成操作を使用して同期プロファイルを作成する場合は、次の手順を実行します。
同期化に使用するサード・パーティのディレクトリ用のマッピング・ファイルをテキスト・エディタで開きます。
OpenLDAPエクスポート同期: $ORACLE_HOME
/ldap/odi/samples/openldapexp.domainmap.master
OpenLDAPエクスポート同期: $ORACLE_HOME
/ldap/odi/samples/openldapimp.domainmap.master
Sun Java System Directoryエクスポート同期: $ORACLE_HOME
/ldap/odi/samples/iplanetexp.domainmap.master
同期化に使用するサード・パーティのディレクトリ用の前述のマッピング・ファイルの内容を、次のように変更します。
member: : :groupofnames:member: :groupofnames: dnconvert(member) uniquemember: : :groupofuniquenames:uniquemember: :groupofuniquenames: dnconvert(uniquemember) owner: : :groupofuniquenames:owner: :groupofuniquenames: dnconvert(owner)
サード・パーティのディレクトリ用の同期プロファイルをすでに作成してある場合は、次の手順を実行します。
同期化に使用するサード・パーティのディレクトリ用のインポート・マッピング・ファイルおよびエクスポート・マッピング・ファイルをテキスト・エディタで開きます。
インポートおよびエクスポート同期マッピング・ファイルの内容を、次のように変更します。
member: : :groupofnames:member: :groupofnames: dnconvert(member) uniquemember: : :groupofuniquenames:uniquemember: :groupofuniquenames: dnconvert(uniquemember) owner: : :groupofuniquenames:owner: :groupofuniquenames: dnconvert(owner)
このエラーは、同期プロファイルの追加構成情報ファイルのファイル・サイズが4KBを超えることができないために発生します。この問題を解決するには、次の手順を実行して、OrclODIPAgentConfigInfo
属性のタイプをDirectoryString
からBinary
に変更します。
次のコマンドを実行して、Oracle Directory Managerを起動します。
oidadmin
ナビゲータ・ペインで、「Oracle Internet Directoryサーバー」→<ディレクトリ・サーバー・インスタンス>を開きます。
「スキーマ管理」を選択します。右ペインに「スキーマ管理」タブ・ページが表示されます。
右ペインで「属性」を選択します。
「名前」列をクリックして、属性をアルファベット順に並べ替えます。
OrclODIPAgentConfigInfo属性を見つけて選択し、「編集」をクリックします。
「構文」オプションをDirectoryString
からBinary
に変更し、「OK」をクリックします。
ディレクトリ統合アシスタントを使用して、追加構成情報ファイルをアップロードします。
Oracle Password Filter for Microsoft Active Directoryをインストールまたは再構成すると、コマンドラインに次のエラーが表示されることがあります。
User created failed Delete failed failed
前述のエラーは、Oracle Password Filter for Microsoft Active Directoryの再構成で使用されるデフォルトのパスワードが、Microsoft Active Directoryドメインのパスワード・ポリシー要件を満たしていないために発生します。この問題を解決するには、Oracle Password Filter for Microsoft Active Directoryをインストールしたディレクトリ内にpassword.txtという名前のファイルを作成します。Microsoft Active Directoryドメインのパスワード・ポリシー要件を満たすパスワードを含む1行を、password.txtファイルに追加します。password.txtファイルを保護するには、管理ユーザーのみがアクセスできるようにそのファイル権限を設定します。password.txtファイルに保存されているパスワードは、Oracle Password FilterとMicrosoft Active Directoryの間の接続性をテストするためにユーザーを作成してから削除することのみを目的としているので、このパスワードが大きなセキュリティ・リスクになることはありません。
マルチマスター・レプリケーションにおいては、最後の変更番号がOracle Internet Directoryノード上にローカルに格納されます。高可用性環境においては、そのノードに障害が発生し、プロビジョニング・プロファイルが別のOracle Internet Directoryノードに移動されると、プロファイル内で最後に適用された変更番号は無効になります。この場合、フェイルオーバー・ノード上でプロファイル内のその番号を手動でリセットする必要があります。ただし、それでもイベントが伝播されない、または複製されないことがあります。
Oracle Enterprise ManagerからOracle Directory Integration Platformを構成した後、targets.xml内のOracle Directory Integration PlatformのConnectDescriptor
プロパティには空白の値が割り当てられます。次の手順を実行して、適切なデータベース接続記述子をConnectorDescriptor
プロパティに割り当てる必要があります。
Oracleディレクトリ統合サーバーを実行しているコンピュータ上で、テキスト・エディタで$ORACLE_HOME
/network/admint/tnsnames.ora
ファイルを開きます。
tnsnames.oraファイル内のデータベース接続記述子情報に注目してください。たとえば、次のtnsnames.oraファイル内のデータベース接続記述子情報は、ASDB
プロパティに割り当てられた値になっています。
ASDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = host.mycompany.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = database.mycompany.com)))
前述の文におけるデータベース接続記述子は、次の値になります。
DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = host.mycompany.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = database.mycompany.com)))
Oracleディレクトリ統合サーバーを実行しているコンピュータ上で、テキスト・エディタで$ORACLE_HOME
/sysman/emd/targets.xml
ファイルを開きます。
タイプがoracle_eps_server
で名前属性がiasinstance_name
_DIP
のターゲットを探します。
エントリ内で、ConnectDescriptor
プロパティを見つけ、tnsnames.oraファイルからのデータベース接続記述子情報にその値を割り当てます。
次のコマンドを実行して、Oracle Enterprise Managerを再起動します。
$ORACLE_HOME/bin/emctl stop iasconsole $ORACLE_HOME/bin/emctl start iasconsole
『Oracle Identity Management統合ガイド』の指示に従って、Oracle Directory Integration Platformを再起動します。
Oracle Password Filter for Microsoft Active Directoryでは、Windowsレジストリ内に操作情報が格納されます。Oracle Password Filter for Microsoft Active Directoryをインストールまたは構成する前に、次の手順を実行してWindowsレジストリを保護することを強くお薦めします。
次のテキストを含む、orclidmpwf.txtという名前のテキスト・ファイルを作成します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\orclidmpwf [1 5 17]
Windowsの「スタート」メニューをクリックし、「ファイル名を指定して実行」を選択します。「ファイル名を指定して実行」ダイアログ・ボックスが表示されます。
「ファイル名を指定して実行」ダイアログ・ボックスにcmdと入力し、「OK」をクリックします。コマンド・プロンプト・ウィンドウが開きます。
次のコマンドを実行して、Windowsレジストリを保護します。
regini path\orclidmpwf.txt
exitと入力して[Enter]を押すと、コマンド・プロンプト・ウィンドウが閉じます。
ソース・ディレクトリ内の同期する属性の数が10を超えると、例外DIP_GEN_CREATECHG_EXCEPTION
で同期に失敗します。この問題を解決するには、パッチ5710021を適用します。
ドメイン編集ルールが存在する場合、マッピング・ファイル内でドメイン構成ルールに必要なすべての属性を必須として指定しないかぎり、削除は同期されません。必須属性が指定されている場合は、ソース・ディレクトリから必須属性が取得されていないため、dn値が構成されません。この問題を解決するには、パッチ6263156を適用します。
Oracle Internet DirectoryとSun Java System Directoryの同期をとる場合、modrdn
を変更タイプとして指定すると、Sun Java System Directoryのスタック・トレース・ファイルで例外が検出されます。この問題を解決するには、パッチ6263156を適用します。
Active Directory、eDirectoryまたはOpenLDAPと同期化する場合、SearchDeltaSize
パラメータは無視されます。この問題を解決するには、パッチ5913124を適用します。
場合によっては、追加操作が同期されず、トレース・ファイルに「objclsがNULLです」メッセージが出力されて同期に失敗することがあります。この問題を解決するには、パッチ6319399を適用します。
この項では、Oracle Directory Integration Platformに関する管理の問題およびその回避方法について説明します。内容は次のとおりです。
13.2.1項「シングル・ドメインのMicrosoft Active Directoryデプロイではデフォルトのマッピング・ルールを単純化できる」
13.2.2項「パージされた変更ログ・エントリのためにOracle Directory Integration Platformがプロビジョニング・イベントを送信しない」
13.2.3項「Oracle Identity Manager Grid ControlプラグインでOracle Internet Directoryのフィールドが使用できない」
13.2.4項「Oracle Internet Directoryコンテナがデフォルトのレルム内にある場合に、Novell eDirectoryまたはOpenLDAPからの同期が失敗する」
シングル・ドメインのMicrosoft Active Directoryのみを含むデプロイでは、Oracle Directory Integration Platformとともにインストールされたデフォルトのマッピング・ルールを単純化できます。
デフォルトのマッピング・ルールは次のとおりです。
sAMAccountName,userPrincipalName: : :user:orclSAMAccountName: :orclADUser:toupper(truncl(userPrincipalName,'@'))+"$"+sAMAccountname
シングル・ドメインのActive Directoryがあるデプロイでは、デフォルトのマッピング・ルールを次のように単純化できます。
sAMAccountName: : :user:orclSAMAccountName::orclADUser
バージョン3.0のプロビジョニング・プロファイルで時間ベースの変更ログ・パージを使用している場合、Oracle Directory Integration Platformがプロビジョニング統合アプリケーションに変更を伝播する前に、変更ログ・エントリがパージされます。これは、Oracle Directory Integration Platformによってデフォルトの変更ログ・サブスクライバ・コンテナcn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory
内にバージョン3.0のプロビジョニング・プロファイル・エントリが作成されないために発生します。
この問題を解決するには、デフォルトの変更ログ・サブスクライバ・コンテナ内に、バージョン3.0のプロビジョニング・プロファイルごとにコンテナを作成し、各プロファイルのorclLastAppliedChangeNumber
属性に0の値を割り当てます。次のサンプルLDIFファイルでは、デフォルトの変更ログ・サブスクライバ・コンテナ内にプロビジョニング・プロファイル・コンテナが作成され、orclLastAppliedChangeNumber
属性に0の値が割り当てられています。
dn: cn=profile_name,cn=changelog subscriber,cn=oracle internet directory
orclsubscriberdisable: 0
orcllastappliedchangenumber: 0
objectclass: orclChangeSubscriber
Oracleディレクトリ統合サーバーおよびOracle Internet Directory LDAPサーバーが別々のコンピュータにインストールされている場合、Oracle Internet DirectoryフィールドはOracle Identity Manager Grid Controlプラグインで使用できなくなります。この問題を解決するには、次の手順を実行します。
Oracle Internet Directory LDAPサーバーを実行しているコンピュータ上で、テキスト・エディタで$ORACLE_HOME
/sysman/emd/targets.xml
ファイルを開きます。
タイプがoracle_ldap
のターゲットを探し、name
属性に割り当てられている値に注目します。この値は、通常はiasinstance_name
_LDAP
という形式になっています。
Oracleディレクトリ統合サーバーを実行しているコンピュータ上で、テキスト・エディタで$ORACLE_HOME
/sysman/emd/targets.xml
ファイルを開きます。
タイプがoracle_eps_server
で名前属性がiasinstance_name
_DIP
のターゲットを探します。
エントリ内で、AssocTargetInstance
ノードの下のASSOC_TARGET_NAME
属性を見つけます。ASSOC_TARGET_NAME
属性に割り当てられた値は、iasinstance_name
_LDAP
という形式になります。
Oracle Internet Directory LDAPサーバーを実行しているコンピュータ上で、targets.xmlファイル内のoracle_ldap
ターゲットのname
属性に割り当てられた値と同じ値をASSOC_TARGET_NAME
に割り当てます。
Oracle Internet Directoryコンテナがデフォルトのレルム内にあるとき、Novell eDirectoryまたはOpenLDAPからOracle Internet Directoryへの同期は失敗します。この問題を解決するには、次の手順を実行して必要なACLを作成します。
テキスト・エディタで新しいファイルを作成します。
次の文を入力します。これによって、Oracle Internet Directoryコンテナがcn=odipgroup,cn=odi,cn=oracle internet directory
グループに追加されます。必ず、hostは、Oracleディレクトリ統合サーバーを実行しているホスト名(ドメイン名なし)で置き換えてください。
dn: cn=odipgroup,cn=odi,cn=oracle internet directory
changetype: modify
add: uniquemember
uniquemember: cn=odisrv+orclhostname=host,cn=registered instances,cn=directory integration platform,cn=products,cn=oraclecontext
ファイルをreconacls.ldifという名前で保存します。
次のコマンドを実行して、reconacls.ldifファイルをアップロードします。
$ORACLE_HOME/bin/ldapmodify -h OID_host -p OID_port -D "DN of privileged OID user" -w "password of privileged OID user" -v -f reconacls.ldif