Oracle Identity Managerがターゲット・システムに接続できるようにコネクタを構成する必要があります。また、コネクタを構成して、リコンシリエーション操作およびプロビジョニング操作を実行するように設定する必要があります。
ターゲット・システムのITリソースは、コネクタのインストール後に作成されます。ITリソースは、ターゲット・システムに関する接続やその他の汎用情報を格納するパラメータで構成されます。Oracle Identity Managerは、この情報を使用して、特定のインストールやターゲット・システムのインスタンスに接続し、リコンシリエーション操作およびプロビジョニング操作を実行します。
Generic RESTコネクタのITリソース・パラメータのリストは、次のカテゴリに分けることができます。
接続関連のパラメータ
認証パラメータ
パーサー・パラメータ
追加の構成パラメータ
この項では、ITリソースの構成に関する次の各トピックについて説明します:
ターゲット・システムのITリソースには、ターゲット・システムに関する接続情報が含まれます。Oracle Identity Managerでは、プロビジョニングおよびリコンシリエーション時にこの情報を使用します。
メタデータ・ジェネレータを実行すると、このコネクタに対応するITリソースがOracle Identity Managerで自動的に作成されます。次のようにして、このITリソースのパラメータの値を指定する必要があります。
接続パラメータは、Oracle Identity Managerとターゲット・システム間の接続を確立してアイデンティティ情報を交換するために、コネクタによって使用されます。
表4-1 接続のITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
Configuration Lookup |
コネクタ操作で使用されるコネクタ構成エントリ含む参照定義の名前。 ノート: これは必須パラメータです。 |
Connector Server Name |
コネクタ・サーバーにGeneric RESTコネクタをデプロイした場合は、コネクタ・サーバーのITリソース名を入力します。 |
host |
ターゲット・システムのホストであるコンピュータのホスト名またはIPアドレス。 サンプル値: ノート: これは必須パラメータです。 |
port |
ターゲット・システムがリスニングしているポート番号。 サンプル値: ノート: これは必須パラメータです。 |
proxyHost |
外部のターゲット・システムへの接続に使用するプロキシ・ホストの名前。 サンプル値: |
proxyPort |
プロキシ・ポート番号 サンプル値: |
proxyUser |
ターゲット・システムに接続するために、Oracle Identity Managerにより使用されるターゲット・システム・ユーザー・アカウントのプロキシ・ユーザー名。 |
proxyPassword |
ターゲット・システムに接続するために、Oracle Identity Managerにより使用されるターゲット・システム・ユーザー・アカウントのプロキシ・ユーザーIDのパスワード。 |
connectionTimeOut |
ターゲット・システムとOracle Identity Managerとの間の接続確立の試行がタイムアウトするまでのミリ秒数を指定する整数値。 サンプル値: |
socketTimeOut |
ターゲット・システムからのレスポンス待機がタイムアウトするまでのミリ秒数を指定する整数値。 サンプル値: |
認証パラメータは、ターゲット・システムがアプリケーションを認証するために使用します。値の指定が必要なITリソース・パラメータのセットは、authenticationTypeパラメータに入力した値によって決まります。
authenticationTypeパラメータには、ターゲット・システムで使用される認証のタイプが保持されます。デフォルトでは、コネクタは次のタイプの認証をサポートします。
HTTP Basic認証
OAuth 2.0 JWT
OAuth 2.0クライアント資格証明
OAuth 2.0リソース所有者のパスワード
アクセス・トークンおよびリフレッシュ・トークンの手動入力
ここに示した認証タイプの他に、ターゲット・システムで使用されている認証タイプがある場合は、独自の実装を開発して作成する必要があります。次にauthenticationTypeパラメータで可能な値を示します。
ノート:
この項では、すべての認証タイプのITリソース・パラメータについて説明します。指定する認証タイプに対応するITリソース・パラメータの値のみを入力します。HTTP Basic認証
basicに設定されている場合に、値を指定する必要があるITリソース・パラメータのセットを示します。表4-2 HTTP基本認証のITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
username |
リコンシリエーション操作およびプロビジョニング操作の間に、Oracle Identity Managerがターゲット・システムに接続してアクセスするために使用する必要がある、アカウントのユーザー名またはユーザーID。 サンプル値: |
password |
リコンシリエーション操作およびプロビジョニング操作の間に、Oracle Identity Managerがターゲット・システムに接続してアクセスするために使用する必要があるアカウントのパスワード。 サンプル値: |
OAuth 2.0 JWT
jwtに設定されている場合に、値を指定する必要がある一連のITリソース・パラメータを示します。表4-3 OAuth 2.0 JWTのITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
aud |
JWTの対象を入力します。この値には、認証サーバーのURIまたはトークン・エンドポイントのURLを指定できます。 サンプル値: |
iss |
JWTを発行したエンティティを一意に識別する値を入力します。 サンプル値: |
scope |
発行されるアクセス・トークンの有効範囲を入力します。 サンプル値: |
sub |
JWTの発行先プリンシパルを識別する値を入力します。 サンプル値: |
privateKeyLocation |
アクセス・トークンへの署名に使用される秘密キーへの絶対パスを入力します。 サンプル値: |
privateKeySecret |
アクセス・トークンへの署名に使用される秘密キーの値を入力します。 |
tokenLifespan |
アクセス・トークンの有効期限を入力します(ミリ秒単位)。 サンプル値: |
signatureAlgorithm |
アクセス・トークンへの署名に使用されるアルゴリズムを入力します。 サンプル値: |
privateKeyFormat |
アクセス・トークンへの署名に使用される秘密キーの形式を入力します。 サンプル値: |
OAuth 2.0クライアント資格証明
client_credentialsに設定されている場合に、値を指定する必要がある一連のITリソース・パラメータを示します。表4-4 OAuth2.0クライアント資格証明のITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
clientId |
登録プロセス中に認証サーバーがクライアントに発行するクライアント識別子(一意の文字列)を入力します。 サンプル値: |
clientSecret |
クライアント・アプリケーションのアイデンティティを認証するために使用する値を入力します。 サンプル値: |
authenticationServerURL |
クライアントを認証し(クライアントIDとクライアント・シークレットを検証)、有効だった場合はアクセス・トークンを発行する認証サーバーのURLを入力します。 サンプル値: |
OAuth 2.0リソース所有者のパスワード
表4-5 OAuth 2.0リソース所有者のパスワードのITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
username |
リソース所有者のリソース名またはユーザーIDを入力します。 サンプル値: |
password |
リソース所有者のパスワードを入力します。 サンプル値: |
clientId |
登録プロセス中にクライアントに発行されるクライアント識別子を入力します。 サンプル値: ノート: このパラメータはオプションです。 |
clientSecret |
クライアント・アプリケーションのアイデンティティを認証するのに使用されるクライアント・シークレットを入力します。 サンプル値: ノート: このパラメータはオプションです。 |
authenticationServerUrl |
クライアント(クライアントIDとクライアント・シークレットを検証)とリソース所有者の資格証明を認証し、有効だった場合はアクセス・トークンを発行する認証サーバー(トークン・エンドポイント)のURLを入力します。 サンプル値: |
アクセス・トークンおよびリフレッシュ・トークンの手動入力
この項では、authenticationTypeパラメータがotherに設定されている場合に、値を指定する必要があるITリソース・パラメータについて説明します。
この認証メカニズムでは、コネクタは、customAuthHeaders ITリソース・パラメータを介して直接渡されるアクセス・トークンおよびリフレッシュ・トークンの値を使用します。customAuthHeadersパラメータは、HTTP認証ヘッダーを介して渡す必要がある、アクセス・トークンおよびリフレッシュ・トークンの値を保持する必要があります。
カスタム認証
この項では、authenticationTypeパラメータがcustomに設定されている場合に、値を指定する必要があるITリソース・パラメータについて説明します。
カスタム認証を実装した場合は、customAuthClassNameパラメータの値を入力する必要があります。customAuthClassNameパラメータは、カスタム解析の実装で説明した手順の実行中に作成したカスタム解析ロジックを実装するクラスの名前を保持する必要があります。
デフォルトでは、Generic RESTコネクタはリコンシリエーションの実行中にJSON解析のみをサポートします。ターゲット・システムのリコンシリエーション・データがJSON形式でない場合は、使用するデータ形式に合わせてカスタム・パーサーの実装を作成する必要があります。
表4-6は、解析に関連したITリソース・パラメータを示します。
表4-6 パーサーのITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
| jsonResourcesTag | レスポンス・ペイロードを解析するために使用されるJSONタグの値を入力します。コネクタでは、レスポンスの解析中にこのパラメータに入力した値が不要な外部タグとみなされます。レスポンス・ペイロードに不要な外部タグがない場合には、このパラメータ値の入力をスキップできます。 このパラメータの値は次の形式で入力します。 OBJ_CLASS=OUTER_ATTR_NAME この形式のOBJ_CLASSは、解析対象となっているレスポンス・ペイロードのオブジェクト・クラスの名前です。OUTER_ATTR_NAMEは、レスポンス・ペイロードに含まれる外部タグの名前です。 たとえば、ユーザー・オブジェクトの次のJSON値について考えます。"Resources":"{
"user1":"{value1}",
"user2":"{value2}"
}
ユーザー・オブジェクト用のオブジェクト・クラスの名前は__ACCOUNT__であるため、この例ではjsonResourcesTagパラメータの値は ノート: このパラメータの値は、ターゲット・システムのデータがJSON形式の場合にのみ入力する必要があります。JSONタグが複数の場合は、値をカンマで区切る必要があります。 |
| customParserClassName | カスタム解析の実装で説明した手順の実行中に作成したカスタム・パーサー・ロジックを実装するクラスの名前を入力します。 ノート: このパラメータの値は、カスタム・パーサーの実装を使用している場合にのみ入力します。 |
追加構成のITリソース・パラメータはすべてターゲット・システムに固有です。表4-7は、ターゲット・システム構成に関連するITリソース・パラメータを示します。この表に含まれるすべてのパラメータでサポートされる操作タイプは、CREATEOP、DELETEOP、SEARCHOP、UPDATEOP、ADDATTRIBUTEおよびREMOVEATTRIBUTEです。ADDATTRIBUTE操作またはREMOVEATTRIBUTE操作は、子表の追加および削除操作ごとに別個のリクエスト・ペイロードを使用する場合にのみ、使用する必要があります。それ以外の場合は、UPDATEOP操作またはDELETEOP操作を使用します。
ノート:
このドキュメントでは、オブジェクト・クラスの属性のうち、ベース・オブジェクト・クラスと同じエンドポイントではなく、個別のRESTエンドポイントを通じてのみ管理できるオブジェクト・クラスの属性を、特殊属性と呼びます。表4-7 構成のITリソース・パラメータ
| パラメータ | 説明 |
|---|---|
simpleMultivaluedAttributes |
コネクタで管理する単純な複数値属性のカンマ区切りリストを入力します。 このパラメータの値は、次の形式で入力する必要があります。 サンプル値: |
opTypes |
コネクタで管理する各オブジェクト・クラス用のHTTP操作タイプを入力します。 値は、カンマで区切り、次の形式にする必要があります: この形式では、OBJ_CLASSはコネクタ・オブジェクト・クラス、OPERATIONはコネクタ操作(CreateOp、UpdateOp、SearchOpなど)、さらにHTTP_OPはHTTP操作(GET、PUTまたはPOST)です。 サンプル値: |
relURIs |
各オブジェクト・クラスの全操作に対する相対URLを入力します。 このパラメータの値は次の形式のいずれかで入力します。
サンプル値: |
nameAttributes |
コネクタによって処理されるすべてのオブジェクト・クラスの名前属性を入力します。この値は、コネクタが扱う各オブジェクト・クラスの_NAME_コネクタ属性と対応するターゲット・システム属性間のマッピングを指定します。 形式: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
uidAttributes |
コネクタが処理する各オブジェクト・クラスの__UID__属性を入力します。__UID__属性は、ターゲット・システム内のアカウントを一意に識別するターゲット・システム属性です。このターゲット・システム属性名は一意である必要がありますが、自動生成する必要はありません。 形式: この形式では、OBJ_CLASSはコネクタ・オブジェクト・クラスであり、ATTR_NAMEはターゲット・システム内のアカウントを一意に識別する属性の名前です。 ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
statusAttributes |
このコネクタが扱う各オブジェクト・クラスの_ENABLE_コネクタ属性と、ステータスを保持するターゲット属性間のマッピングを入力します。 形式: サンプル値: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
statusDisableValue |
無効化操作の間にターゲット・システムに送信する必要がある値を示すブール値を入力します。 ノート: このパラメータの値は、OIMがデフォルトで送信する無効化操作用の値とは異なる値の送信がターゲット・システムで求められる場合にのみ入力する必要があります。 サンプル値: |
statusEnableValue |
有効化操作の間にターゲット・システムに送信する必要がある値を示すブール値を入力します。 ノート: このパラメータの値は、OIMがデフォルトで送信する有効化操作用の値とは異なる値の送信がターゲット・システムで求められる場合にのみ入力する必要があります。 サンプル値: |
specialAttributeHandling |
ターゲット・システムに1回に1つずつ個別のコールで送信する必要がある特殊属性のリストを入力します。このパラメータの値を指定しない場合、コネクタは、指定した特殊属性のすべての値を1回のコールで送信します。 形式: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 サンプル値: |
specialAttributeTargetFormat |
ターゲット・システムでの特殊属性の形式を入力します。 形式: この例のTARGET_FORMATは、ターゲット・システムの特殊属性の形式です。 たとえば、次のターゲット・エンドポイントの値について考えてみます。 {
"kind": "admin#directory#aliases",
"etag": etag,
"aliases": [
"kind": "admin#directory#alias",
"id": string,
"etag": etag,
"primaryEmail": string,
"alias": string
]
}
この例では、別名属性は、ターゲット・システム・エンドポイントでaliases.aliasとして表されます。そのため、このパラメータの値は サンプル値: |
httpHeaderContentType |
このパラメータは、ターゲット・システムがヘッダーに求めるコンテンツ・タイプを保持します。コンテンツ・タイプは |
httpHeaderAccept |
このパラメータは、ターゲット・システムがヘッダーに求める許容タイプを保持します。コンテンツ・タイプは |
sslEnabled |
ターゲット・システムでSSL接続が必要な場合、このパラメータの値を |
customHeaders |
ターゲット・システムに送信する必要があるカスタム値または追加のヘッダー値を入力します。 形式: |
customAuthHeaders |
認証中にのみターゲット・システムに送信する必要がある追加のヘッダー値を入力します。 |
customPayload |
標準のJSON形式に従わないターゲット・システム属性のリクエスト・ペイロードの形式をカンマ区切りのリストで入力します。 形式: ノート: カスタム・ペイロードの一部としてユーザーの一意のIDを渡す必要がある場合は、 サンプル値: |
targetObjectIdentifier |
リコンシリエーション中に必要なターゲット・オブジェクトを識別するために使用する属性の名前を入力します。 形式: |
passwordAttribute |
OIMでコネクタの__PASSWORD__属性にマッピングされたターゲット・システム属性の名前を入力します。 |
uriPlaceHolder |
relURIsのプレースホルダを置き換えるためのキーと値のペアをカンマ区切りリストで入力します。 形式: |
customAuthConfigParams |
カスタム認証クラスで使用できる構成パラメータを入力します。 形式: |
customParserConfigParams |
カスタム・パーサー・クラスで使用できる構成パラメータを入力します。 形式: |
enableEmptyString |
null値ではなく、空白の文字列をターゲット・システムに送信する必要があることを示すブール文字列を入力します。 |
コネクタのインストール後の作業には、Oracle Identity Managerの構成、すべてのコネクタ・イベントに関する情報を追跡するためのロギングの有効化、およびSSLの構成が含まれます。また、ユーザー・インタフェースのローカライズなどのオプションの構成も行います。
この項では、次のインストール後の手順について説明します。
リコンシリエーションおよびプロビジョニング操作を実行するリソースに対し、UIフォームおよびアプリケーション・インスタンスを作成する必要があります。さらに、権限とカタログの同期ジョブを実行する必要があります。
ノート:
この項で説明されている手順は、ターゲット・リソース構成モードでコネクタを使用する場合にのみ実行してください。これらの手順について、次の各項で説明します。
カスタマイズおよびフォーム管理機能の使用を開始するには、サンドボックスを作成してアクティブにする必要があります。 次に、サンドボックスを公開してそのカスタマイズを他のユーザーが使用できるようにします。
Oracle Fusion Middleware Oracle Identity Managerのためのアプリケーションの開発とカスタマイズのサンドボックスの作成に関する項 および サンドボックスのアクティブ化および非アクティブ化に関する項を参照してください。
UIフォームの新規作成の手順は、『Oracle Fusion Middleware Oracle Identity Managerの管理』のフォーム・デザイナを使用したフォームの作成に関する項を参照してください。UIフォームを作成するときは、必ずそのフォームを関連付けるGeneric RESTコネクタに対応するリソース・オブジェクトを選択します。また、「権限フォームの生成」チェック・ボックスを選択します。
デフォルトでは、コネクタをインストールすると、アプリケーション・インスタンスが自動的に作成されます。このアプリケーション・インスタンスの名前は、GenericRestConfiguration.groovyファイルのapplicationInstanceNameエントリの値に指定された名前です。applicationInstanceNameエントリに値を指定しなかった場合、アプリケーション・インスタンス名はITResourceDefNameエントリの値と同じになります。このアプリケーション・インスタンスは、UIフォームの新規作成で作成したフォームと関連付ける必要があります。
フォームと関連付けるためのアプリケーション・インスタンスの変更の詳細は、Oracle Fusion Middleware Oracle Identity Managerの管理のアプリケーション・インスタンスの管理を参照してください。
アプリケーション・インスタンスを更新したら、それを組織に公開して、アプリケーション・インスタンスのリクエストとそれに続くユーザーへのプロビジョニングを可能にする必要があります。ただし、ベスト・プラクティスとして、アプリケーション・インスタンスを公開する前に次の手順を実行します。
Oracle Java Diagnostic Loggingに基づいてログ・レベルを設定し、Oracle WebLogic Serverへのログインを有効にできます。
次の各トピックでは、詳細を説明します。
Oracle Identity Managerでは、ロギングにOracle Java Diagnostic Logging (OJDL)が使用されます。OJDLは、java.util.loggerに基づいています。ロギングを行うイベントのタイプを指定するには、ログを次のいずれかのレベルに設定します。
SEVERE.intValue()+100
このレベルでは、致命的エラーに関する情報のロギングが有効化されます。
SEVERE
このレベルでは、Oracle Identity Managerの実行を続行できる可能性があるエラーに関する情報のロギングが有効化されます。
WARNING
このレベルでは、障害を引き起こす可能性のある状況に関する情報のロギングが有効化されます。
INFO
このレベルでは、アプリケーションの進行状況を示すメッセージのロギングが有効化されます。
CONFIG
このレベルでは、デバッグに役立つ詳細なイベントに関する情報のロギングが有効化されます。
FINE、FINER、FINEST
これらのレベルでは詳細なイベントに関する情報のロギングが有効化され、FINESTではすべてのイベントに関する情報が記録されます。
表4-8に示すように、これらのログ・レベルはODLのメッセージ・タイプとレベルの組合せにマップされます。
表4-8 ログ・レベルおよびODLメッセージ・タイプ: レベルの組合せ
| ログ・レベル | ODLメッセージ・タイプ:レベル |
|---|---|
SEVERE.intValue()+100 |
INCIDENT_ERROR:1 |
SEVERE |
ERROR:1 |
WARNING |
WARNING:1 |
INFO |
NOTIFICATION:1 |
CONFIG |
NOTIFICATION:16 |
FINE |
TRACE:1 |
FINER |
TRACE:16 |
FINEST |
TRACE:32 |
OJDLの構成ファイルはlogging.xmlであり、次のパスにあります。
DOMAIN_HOME/config/fmwconfig/servers/OIM_SERVER/logging.xml
ここで、DOMAIN_HOMEとOIM_SERVERは、Oracle Identity Managerのインストール時に指定されたドメイン名とサーバー名です。
Oracle WebLogic Serverのロギングを有効化するには、次のようにします。
次のようにしてlogging.xmlファイルを編集します。
ファイル内に次のブロックを追加します。
<log_handler name='genericrest-handler' level='[LOG_LEVEL]' class='oracle.core.ojdl.logging.ODLHandlerFactory'> <property name='logreader:' value='off'/> <property name='path' value='[FILE_NAME]'/> <property name='format' value='ODL-Text'/> <property name='useThreadName' value='true'/> <property name='locale' value='en'/> <property name='maxFileSize' value='5242880'/> <property name='maxLogSize' value='52428800'/> <property name='encoding' value='UTF-8'/> </log_handler>
<logger name="ORG.IDENTITYCONNECTORS.GENERICREST" level="[LOG_LEVEL]" useParentHandlers="false">
<handler name="genericrest-handler"/>
<handler name="console-handler"/>
</logger>
[LOG_LEVEL]が出現したら両方を必要なODLのメッセージ・タイプとレベルの組合せに置き換えます。表4-8にサポートされるメッセージ・タイプおよびレベルの組合せを示します。
同様に、[FILE_NAME]を、記録するコネクタ操作に特有のメッセージを記録するログ・ファイルの名前とフルパスに置き換えます。
次のブロックは、[LOG_LEVEL]および[FILE_NAME] のサンプル値を示しています。
<log_handler name='genericrest-handler' level='NOTIFICATION:1' class='oracle.core.ojdl.logging.ODLHandlerFactory'> <property name='logreader:' value='off'/> <property name='path' value='/<%OIM_DOMAIN%>/servers/oim_server1/logs/genericrestLogs.log>" <property name='format' value='ODL-Text'/> <property name='useThreadName' value='true'/> <property name='locale' value='en'/> <property name='maxFileSize' value='5242880'/> <property name='maxLogSize' value='52428800'/> <property name='encoding' value='UTF-8'/> </log_handler> <logger name="ORG.IDENTITYCONNECTORS.GENERICREST" level="NOTIFICATION:1" useParentHandlers="false"> <handler name="genericrest-handler"/> <handler name="console-handler"/> </logger>
Oracle Identity Managerをこれらのサンプル値とともに使用すると、このコネクタに対して生成された、ログ・レベルがNOTIFICATION:1レベル以上のすべてのメッセージが、指定したファイルに記録されます。
保存してファイルを閉じます。
サーバー・ログをファイルにリダイレクトするには、次の環境変数を設定します。
Microsoft Windowsの場合:
set WLS_REDIRECT_LOG=FILENAME
UNIXの場合:
export WLS_REDIRECT_LOG=FILENAME
FILENAMEを、出力のリダイレクト先ファイルの場所と名前に置き換えます。
アプリケーション・サーバーを再起動します。
ターゲット・システム・フィールドのローカライズ・バージョンが含まれるファイルを作成して使用することで、UIフォーム・フィールド・ラベルをローカライズできます。
コネクタをデプロイすると、リソース・バンドルがインストール・メディアのresourcesディレクトリからOracle Identity Managerデータベースにコピーされます。connectorResourcesディレクトリに新しいリソース・バンドルを追加したり、既存のリソース・バンドルに変更を加えた場合は、コネクタ・リソース・バンドルに関連するコンテンツをその都度サーバー・キャッシュから消去する必要があります。
サーバー・キャッシュからコネクタ・リソース・バンドル関連コンテンツを消去するには、Oracle Identity Managerを再起動するか、PurgeCacheユーティリティを実行します。次に、PurgeCacheユーティリティを実行してサーバー・キャッシュを消去する手順を示します。