Microsoft Active Directory User Managementコネクタのトラブルシューティング

この章では、Microsoft Active Directory User Managementコネクタのデプロイ後や使用中に発生する可能性がある問題の解決方法を説明します。

表5-1 Microsoft Active Directory User Managementコネクタのトラブルシューティング

問題 解決策

次のエラーが発生します。

java.net.UnknownHostException:

コネクタ・サーバーのITリソースのホスト名が正しく指定されていることを確認します。

次のエラーが発生します。

InvalidCredentialException: リモート・フレームワーク・キーが無効です。

コネクタ・サーバーのITリソースのKeyパラメータの値が正しく指定されていることを確認します。

次のエラーが発生します。

ConnectorException: java.net.ConnectException: 接続が拒否されます。

コネクタ・サーバーのITリソースのポート番号が正しく指定されていることを確認します。

次のエラーが発生します。

oracle.iam.connectors.icfcommon.exceptions.OIMException: Thor.API.Exceptions.tcAPIException: 子表がアカウントレベルでしかサポートされません。

ターゲット・システムITリソースのConfiguration Lookupパラメータの値がLookup.Configuration.ActiveDirectoryに設定されていることを確認します。Lookup.Configuration.ActiveDirectory.Trustedではありません

次のエラーが発生します。

oracle.iam.connectors.icfcommon.exceptions.OIMException: Thor.API.Exceptions.tcAPIException: oracle.iam.reconciliation.exception.InvalidDataFormatException: 必須の列名RECON_UNIQUEID575B37CAと値が存在していません。

ターゲット・システムITリソースのConfiguration Lookupパラメータの値がLookup.Configuration.ActiveDirectoryに設定されていることを確認します。Lookup.Configuration.ActiveDirectory.Trustedではありません

スケジュール済ジョブで次のエラーが発生します。

org.identityconnectors.framework.common.exceptions.ConnectorException: リクエストされたクリティカルな拡張がサーバーでサポートされません。

このエラーが発生する理由を次に示します。

  • コネクタがMicrosoft AD LDS用に構成されている場合に、スケジュール済ジョブの属性が、Microsoft AD LDSユーザー・スキーマに存在する属性を示していません。たとえば、sAMAccountName属性はMicrosoft AD LDSの有効な属性ではありません。

    したがって、Microsoft AD LDSに存在しない属性が、スケジュール済ジョブの属性値として指定されないようにします(Sort Byなど)。

  • フェッチされるレコードが大量にあります。

    この問題を解決するには、スケジュール済ジョブのBatch Size、Number of Batches、Batch Start、Sort DirectionおよびSort By属性に指定された値を削除します。

    粒度レベルの設定には、常にLookup.Configuration.ActiveDirectoryまたはLookup.Configuration.ActiveDirectory.Trusted参照定義のPageSizeエントリを使用できます。コネクタはOracle Identity Managerにデータを送信するためにICFハンドラを使用します。ICFおよびICFINTGレイヤーが、データの処理とリコンシリエーション・イベントの生成を行います。

  • ターゲット・システムの複数値フィールドが、Oracle Identity ManagerのADユーザー・フォームの単一値フィールドにマップされています。

    この問題が発生しないようにするには、ターゲット・システムの複数値フィールドが、ADユーザー・フォームの対応する複数値フィールドにマップされるようにします。

コネクタ・サーバーを起動するときに、次の例外が発生します。

Unhandled Exception: System.Net.Sockets.SocketException: 各ソケット・アドレス(プロトコル/ネットワーク・アドレス/ポート)の使用は通常1回しか許可されません。

この例外が発生するのは、コネクタ・サーバーが使用するポートがすでに使用されているためです(多くの場合、コネクタ・サーバーの別のインスタンスによって使用されています)。次のいずれかのステップを実行してこの問題を修正できます。

  • コネクタ・サーバー・サービスが実行している場合は停止します。

  • ConnectorServer.exe.Configファイルを検索して開き、ポート値を8758または8755に変更してから、コネクタ・サーバーを起動します。ConnectorServer.exe.Configファイルのデフォルトの場所はC:\Program Files\Identity Connectors\Connector Serverです。

Active Directory Target Reconciliationスケジュール済ジョブの実行中に、次のエラーが発生します。

ADP ClassLoader failed to load: Script1 java.lang.ClassNotFoundException: ADP ClassLoaderがロードに失敗しました: Script1

スケジュール済ジョブのフィルタ構文属性の値が正しく指定されていることを確認します。詳細は、「フィルタを使用する制限付きリコンシリエーションの実行」を参照してください。

すべてのリコンシリエーションの実行は正常ですが、プロビジョニング操作の実行中に次のエラーが発生します。

プライマリ・ドメイン・コントローラおよびバックアップ・ドメイン・コントローラに接続できません。

ITリソースのLDAPHostNameパラメータの値が正しく指定されていることを確認します。

ホスト名を判別するには、ターゲット・システムをホストするコンピュータで「コンピューター」を右クリックして「プロパティ」を選択します。「システムのプロパティ」ダイアログ・ボックスの「コンピューター名」タブで、ホスト名が「フル コンピューター名」フィールドの値として示されます。

コネクタ・サーバーがメモリー不足例外をスローします。

Microsoft .NET Framework 3.5では、メモリー・リークの問題が発生します。この問題を修正するには、コネクタ・サーバーをホストするコンピュータにホットフィックス(次のWebサイトに示されています)を適用する必要があります。

http://support.microsoft.com/kb/981575

CONNECTOR_SERVER_HOMEディレクトリにコネクタ・バンドルのコンテンツを解凍した後に、コネクタ・サーバーを起動できません。次の例外が発生します。

ConnectorServer.exe Information: 0 : コネクタ・サーバーを起動します: C:\Program Files\Identity Connectors\Connector Server

ConnectorServer.exe Error: 0 : コネクタ・サーバーの起動中に例外が発生しました

System.IO.FileNotFoundException: ファイルまたはアセンブリ'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'、またはその依存関係の1つが読み込めませんでした。指定されたファイルが見つかりません。

ファイル名: 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' at Org.IdentityConnectors.Common.CollectionUtil.NewSet[T,U](IEnumerable`1 collection)

ノート: このエラーは、コマンド・プロンプトを使用してコネクタ・サーバーを起動した場合にのみ発生します。services.mscを使用してコネクタ・サーバーを起動した場合、コネクタ・サーバーは起動するとすぐに停止します。

この例外は、Microsoft .NET Frameworkが存在しない場合に発生します。コネクタ・サーバーをホストするコンピュータに.NET Framework 3.5以降をインストールする必要があります。

ノート: .NET Framework 3.5をインストールしている場合は、次のパッチをインストールしてメモリー・リークの問題を回避してください。

http://support.microsoft.com/kb/981575

すべてのコネクタ操作(リコンシリエーション操作、プロビジョニング操作など)が失敗して、次のエラーが発生します。

oracle.iam.connectors.icfcommon.exceptions.IntegrationException: コネクタConnectorKey( bundleName=ActiveDirectory.Connector bundleVersion=1.1.0.6380 connectorName=Org.IdentityConnectors.ActiveDirectory.ActiveDirectoryConnector)が見つかりません

また、同じエラー・メッセージがコネクタ・サーバーのログ・ファイルに書き込まれます。

このエラーが発生する理由を次に示します。

  • コネクタ・バンドルがCONNECTOR_SERVER_HOMEディレクトリに解凍されていません。

  • コネクタ・バンドルのコンテンツを解凍する前に、コネクタ・サーバーが起動されました。

  • Oracle Identity Managerのキャッシュ関連の問題。

この問題を解決するには、次のステップを実行します:

  1. コネクタ・サーバーを停止します。

  2. コネクタ・バンドルのコンテンツをCONNECTOR_SERVER_HOMEディレクトリに解凍します。

  3. コネクタ・サーバーを起動します。

  4. Oracle Identity ManagerをホストするコンピュータでPurgeCacheユーティリティを実行します。

  5. Oracle Identity Managerを再起動します。

コネクタ操作の実行中に、次のエラーが発生します。

ローカル・エラーが発生しました

このエラーは、DirectoryAdminName ITリソース・パラメータの値を不正な形式で指定した場合に発生します。このパラメータの値を指定するには、次の形式を使用する必要があります。

DOMAIN_NAME\USER_NAME

コネクタ・サーバーをホストしているコンピュータおよびターゲット・システムを使用できません。ITリソースのBDCHostNamesパラメータの値を指定しても何も動作しません。

コネクタ・サーバーをホストするコンピュータは、常に起動および実行されている必要があります。コネクタ・サーバーをPDCホストおよびBDCホストにデプロイするかわりに、次のガイドラインに従ってこのエラーを回避します。

  • コネクタ・サーバー用に専用のコンピュータを使用します。コネクタ・サーバーが専用のコンピュータで実行されていても、BDCHostNames ITリソース・パラメータの値を指定できます。

  • コネクタ・サーバーをホストするコンピュータは、ターゲット・システムと同じドメインにある必要があります。

  • コネクタ・サーバーをデプロイして、Active Directoryコネクタ・サーバーのITリソースを構成します。

ターゲット・リソースのリコンシリエーションの実行が次のエラーで失敗します。

行索引が範囲外です

ただし、ユーザーはOracle Identity Managerに取り込まれ、正常にリンクされます。

この問題は、スケジュール済ジョブがターゲット・システムのusNChanged属性を更新した場合に発生します。回避策としては、新しいスケジュール済ジョブを作成して、リコンシリエーションの実行を行います。

コネクタ・サーバーのログ・ファイルに次のエラーが書き込まれます。

org.identityconnectors.framework.common.exceptions.ConnectorException: java.net.ConnectException: 接続がタイムアウトしました

このエラーが発生する理由は次の2つです。

  • コネクタ・サーバーとOracle Identity Managerとの間の接続がタイム・アウトしました。

    この問題を修正するには、コネクタ・サーバーITリソースのTimeoutパラメータの値に0を設定するか、既存の値を増やします。

  • コネクタ・サーバーのポートがファイアウォールによってブロックされています。

    この問題を修正するには、Telnetプロトコルを使用して、コネクタ・サーバーがデフォルト・ポート(8795)をリスニングしているかどうかを確認します。ポートが開いていない場合は、そのポートを開くか、コネクタ・サーバー用に別のポートを選択できます。ポート名を変更するには、ConnectorServer.exe.Configファイルを編集して、次の行のように新しいポートを指定し、コネクタ・サーバーを再起動します。

    <add key ="connectorserver.port" value="8759"/>

ユーザーのリコンシリエーションが失敗して、Oracle Identity Managerのログ・ファイルに次のエラーが書き込まれます。

必須列名がRECON_OBJECTGUIDで値が存在しません

このエラーは、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectoryが設定されている場合に発生します。

このエラーを回避するには、信頼できるユーザーのリコンシリエーションの実行の際に、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectory.Trustedを設定します。

グループと組織の参照フィールド同期、およびグループのリコンシリエーションは、正常に実行されます。ただし、組織のリコンシリエーションを実行すると(つまり、Active Directory Organization Reconスケジュール済ジョブを実行すると)、次のエラーが発生します。

oracle.iam.reconciliation.exception.InvalidDataFormatException: 必須列名がRECON_ORGNAME4EAE4287で値が存在しません

また、次のエラーがOracle Identity Managerのログ・ファイルに書き込まれます。

必須列名がRECON_ORGNAME<……>で値が存在しません

このエラーは、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectoryが設定されている場合に発生します。

このエラーを回避するには、Xellerate Userリソース・オブジェクトを使用して組織のリコンシリエーションを実行している場合、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectory.Trustedを設定します。

参照フィールド同期(グループおよび組織)のスケジュール済ジョブを実行すると、次の例外が発生します。

ディレクトリ・エントリを取得できません

また、次のエラーがコネクタ・サーバーのログ・ファイルに書き込まれます。

Org.IdentityConnectors.Framework.Common.Exceptions.ConnectorException: ディレクトリ・エントリを取得できません

次のいずれかのステップを実行すると、このエラーの原因を判別できます。

  • コネクタ・サーバーのログ・ファイルのエラー・メッセージを確認して、根本原因を見つけます。

  • イベント ビューアを確認します。イベント ビューアを開くには、「スタート」メニューで「コントロール パネル」を選択して「管理ツール」をダブルクリックし、「イベント ビューア」をダブルクリックします。

このエラーが発生するいくつかの理由を次に示します。

  • DomainName ITリソース・パラメータに不正な値が指定されています。

    この問題を修正するには、DomainName ITリソース・パラメータに正しい値を指定します。このパラメータの値を指定するには、次の形式を使用する必要があります。

    DOMAIN_NAME\USER_NAME

  • コネクタ・サーバーをホストするコンピュータがADドメイン内にありません。

    この問題を修正するには、コネクタ・サーバーが同じADドメインの一部であるコンピュータにインストールされていることを確認します。

スケジュール済ジョブを実行したときに、Oracle Identity Managerのログ・ファイルに次のエラーが書き込まれます。

java.net.SocketException: 接続リセット

このエラーが発生する理由は次の2つです。

  • LDAPSがドメイン・コントローラで有効にされていません。

    この問題を修正するには、LDAPSを有効にします。

  • Oracle Identity ManagerにSSLが設定されていません。つまり、ターゲット・システムおよびコネクタのITリソースのUseSSLパラメータが、それぞれnoおよびfalseに設定されています。ただし、コネクタ・サーバーではSSLが有効になっています。

    この問題を修正するには、ターゲット・システムおよびコネクタ・サーバーのITリソースのUseSSLパラメータの値に、それぞれyesおよびtrueを設定します。

コネクタ操作(リコンシリエーションまたはプロビジョニング)が失敗して、次の例外が発生します。

ドメイン'SAMPLEDOMAIN.com'にドメイン・コントローラが見つかりません

また、次のエラーがコネクタ・サーバーのログ・ファイルに書き込まれます。

org.identityconnectors.framework.common.exceptions.ConnectorException: ドメインにドメイン・コントローラが見つかりません

このエラーが発生する理由は次の2つです。

  • DomainName ITリソース・パラメータに不正な値が指定されています。

    この問題を修正するには、DomainName ITリソース・パラメータに正しい値を指定します。このパラメータの値を指定するには、次の形式を使用する必要があります。

    DOMAIN_NAME\USER_NAME

  • コネクタ・サーバーをホストするコンピュータがADドメイン内にありません。

    この問題を修正するには、コネクタ・サーバーが同じADドメインの一部であるコンピュータにインストールされていることを確認します。

プロビジョニング操作中に、次のエラーがOracle Identity Managerのログ・ファイルに書き込まれます。

java.lang.IllegalArgumentException: パラメータ'lookupName'は空白にできません

このエラーは、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectory.Trustedが設定されているか、空白のままである場合に発生します。

この問題を修正するには、Active Directory ITリソースのConfiguration Lookupパラメータの値にLookup.Configuration.ActiveDirectoryを設定します。

コネクタ・サーバーのログ・ファイルに次のエラーが書き込まれます。

org.identityconnectors.framework.common.exceptions.ConnectorException: プライマリ・ドメイン・コントローラおよびバックアップ・ドメイン・コントローラに接続できません。

このエラーは、LDAPHostName ITリソース・パラメータに不正な値が指定された場合に発生します。

この問題を修正するには、LDAPHostName ITリソース・パラメータに正しい値を指定する必要があります。このパラメータの正しい値を判別するには、ターゲット・システムをホストするコンピュータで「コンピュータ」を右クリックして「プロパティ」を選択します「システムのプロパティ」ダイアログ・ボックスの「コンピューター名」タブで、ホスト名が「フル コンピューター名」フィールドの値として示されます。

コネクタ・サーバーのログ・ファイルに次のエラーが書き込まれます。

System.IO.IOException: 予期しないパケット形式のため、ハンドシェイクに失敗しました

このエラーは、Oracle Identity ManagerにSSLが設定されていない場合に発生します。つまり、ターゲット・システムおよびコネクタのITリソースのUseSSLパラメータが、それぞれnoおよびfalseに設定されています。ただし、コネクタ・サーバーではSSLが有効になっています。

この問題を修正するには、ターゲット・システムおよびコネクタ・サーバーのITリソースのUseSSLパラメータの値に、それぞれyesおよびtrueを設定します。

コネクタ・サーバーのログ・ファイルに次のエラーが書き込まれます。

System.DirectoryServices.ActiveDirectory.DomainController.FindOneWithCredentialValidation(DirectoryContext context, String siteName, LocatorOptions flag)(コネクタ・サーバー・ログ内)

このエラーは、ターゲット・システムのITリソースのSyncDomainControllerパラメータに値が指定されていない場合に発生します。

この問題を修正するには、SyncDomainController ITリソース・パラメータに値を指定します。

バルク・ユーザー用のActive Directory User Target Reconスケジュール済ジョブで、ターゲット・システムからすべてのユーザーがフェッチされません。

この問題は、リコンシリエーション一致ルールが変更された場合に発生します。

この問題を修正するには、更新した一致ルールでリコンシリエーション・プロファイルを次のように作成します。

  1. Design Consoleにログインします。

  2. 「Resource Management」を開き、「Resource Objects」をダブルクリックします。

  3. AD Userリソース・オブジェクトを検索し、開きます。

  4. オブジェクトのリコンシリエーション・タブで、リコンシリエーション・プロファイルの作成をクリックして、最新のアップデートを含むリコンシリエーション・プロファイルを生成します。

次のフィルタが適用されていると、レコードがまったくリコンサイルされません。

contains('memberOf','PGMGroup')

この問題は、「memberOf」がターゲット・システムの複数値属性であるために発生しています。複数値属性にフィルタを適用する場合は、「containsAllValues」フィルタを使用します。

ADユーザー子フォームのグループの表示で、すべてのグループが表示されるまでに長い時間がかかります。このため、ADユーザーへのADグループの追加に、非常に長い時間がかかります。

グループ・ページの表示の遅延を短縮するには、Oracle Identity Managerでキャッシュを有効にします。

コネクタ・サーバーのログ・ファイルに次のエラーが書き込まれます。

System.NotSupportedException: サーバー・モードSSLは関連付けられた秘密キーを使用した証明書を使用しなければなりません。

この問題は、秘密キーを使用して証明書をエクスポートしたが(たとえば、.pfxファイル)、MMCコンソールを使用してsslstoreという名前の証明書ストアにインポートしない場合に起こります。この問題を回避するには、証明書を秘密キー付き(.pfxファイル)でエクスポートした場合、MMCコンソールを使用して証明書を「sslstore」にインポートします。

プロビジョニング操作(作成または更新)が失敗して、次のエラーがコネクタ・サーバーのログ・ファイルに書き込まれます。

指定されたディレクトリ・サービス属性または値が存在しません。

この問題は、Lookup.ActiveDirectory.UM.ProvAttrMap参照定義に不正なデコード値が含まれている場合に発生します。この参照定義のデコード値は、ターゲット・システムの属性名です。

この問題を修正するには、Lookup.ActiveDirectory.UM.ProvAttrMap参照定義を精査して、デコード値を正しいターゲット・システムの属性名で更新します。

バルク・プロビジョニング操作中に、次のエラーがコネクタ・サーバーのログ・ファイルに書き込まれることがあります。

オブジェクトの最大数を超えています

この問題を修正するには、接続プーリング・プロパティ、最大プール・サイズおよびプール最大待機時間の値を増やします。

Active Directory User Trusted Reconスケジュール済ジョブを実行した後に、OIMユーザーが作成されていません。ユーザーに対して生成されるリコンシリエーション・イベントに、次のメッセージが表示されます。

現在のステータスは'Data Validation Failed'で、メッセージは'Invalid ManagerLogin : <Manager ID>'です。

この問題は、ユーザーのマネージャ情報の依存関係に起因して発生します。ユーザーのマネージャがOracle Identity Managerにまだ存在しない場合、OIMユーザーの作成は失敗します。この問題を修正するには、次のようにします。

Design Consoleにログインして、マネージャ・フィールドのマッピングを次のように削除します。

  1. AD User Trustedプロセス定義を検索して開きます。リコンシリエーション・フィールドのマッピング・タブで、「マネージャID」フィールドのマッピングを削除します。

  2. AD User Trustedリソース・オブジェクトを検索して開きます。オブジェクトのリコンシリエーション・タブで、「マネージャID」フィールドを削除します。

  3. Lookup.ActiveDirectory.UM.ReconAttrMap.Trusted参照定義を検索して開きます。コード・キーが「Manager ID」でデコード値が「Manager Id」のエントリを削除します。

Active Directory User Trusted Reconスケジュール済ジョブを実行します。

Design Consoleにログインして、マネージャ・フィールドのマッピングを次のように追加します。

  1. AD User Trustedプロセス定義を検索して開きます。リコンシリエーション・フィールドのマッピング・タブで、「フィールド名」としてManager IDを、「ユーザー属性」としてManager Loginを指定してフィールド・マッピングを追加します。

  2. AD User Trustedリソース・オブジェクトを検索して開きます。オブジェクトのリコンシリエーション・タブで、文字列タイプの「マネージャID」フィールドを追加します。

  3. Lookup.ActiveDirectory.UM.ReconAttrMap.Trusted参照定義を検索して開きます。コード・キー値にManager ID、デコード値にManager Id.を指定してエントリを追加します。

Active Directory User Trusted Reconスケジュール済ジョブの最新のトークン属性の値をクリアして、ジョブを実行します。

プロビジョニング操作中に、次のエラーがコネクタ・サーバーのログ・ファイルで発生しました。

リモート・プロシージャ・コールが失敗し、実行されませんでした。(HRESULTからの例外: 0x800706BF)

この問題は、ユーザーの作成またはパスワードの更新のプロビジョニング操作中に、同時に存在するリクエスト数が多すぎる場合に発生します。

たとえば、この問題は、トリガーされるアカウント作成が多すぎる場合に、アクセス・ポリシーベースのプロビジョニング操作中に発生することがあります。

このエラーは、サービス・パックも含む、Microsoft Windows 2003、2008、2008 R2またはWindows 2012ドメイン・コントローラで発生する可能性があります。

この問題を修正するには、Microsoft Supportに問い合せて、次のWebサイトに示されたホットフィックスを適用する必要があります。

http://support.microsoft.com/kb/2781049

ノート: Microsoft Supportに問い合せずにホットフィックスを適用しないでください。

Active Directory APIでは次のエラーが発生しますが、あまり意味はありません。

DirectoryServicesCOMExceptionが発生しました: システムに接続しているデバイスが機能していません。

DirectoryServicesCOMExceptionが発生しました: システムに接続しているデバイスが機能していません。ターゲット・システム内のsAMAccount属性(Oracle Identity Managerの「ユーザー・ログイン」フィールドに対応する)が20文字を超える場合、このエラーが発生します。

回避策としては、プロビジョニング中に、「ユーザーID」フィールドが20文字を超えているかをチェックする検証javaコード(「リコンシリエーションおよびプロビジョニング中のデータ検証の構成」を参照)を記述し、該当するエラー・ログ・メッセージを記録します。