2 Generic RESTコネクタを使用したアプリケーションの作成
コネクタを使用したアプリケーションのオンボードについて学習します。
ターゲット・アプリケーションまたは認可アプリケーションを作成して、コネクタ・パッケージからOracle Identity Governanceにターゲット・システムのアプリケーションをオンボードできます。これを行うには、Identity Self Serviceにログインして、「管理」タブで「アプリケーション」ボックスを選択する必要があります。
2.1 アプリケーションの作成の前提条件
コネクタを使用したアプリケーションのオンボードのプロセス・フローとその前提条件について学習します。
2.1.1 コネクタを使用したアプリケーション作成のプロセス・フロー
Oracle Identity Governanceリリース12.2.1.3.0以降、コネクタ・デプロイメントはIdentity Self Serviceのアプリケーション・オンボード機能を使用して処理されます。
図2-1は、コネクタのインストール・パッケージを使用してOracle Identity Governanceでアプリケーションを作成するステップの概要を示すフローチャートです。
図2-1 コネクタを使用したアプリケーション作成プロセスの全体フロー
![このイメージは、コネクタを使用してアプリケーションを作成するプロセスの全体的なフローを示すフローチャートです。 このイメージは、コネクタを使用してアプリケーションを作成するプロセスの全体的なフローを示すフローチャートです。](img/new-grest-process-flow.png)
2.2 「アプリケーションの作成」画面への移動
「アプリケーションの作成」画面に移動するには、Identity Self Serviceにログインして、「管理」タブで「アプリケーション」ボックスを選択します。
- システム管理アカウントまたはApplicationInstanceAdministrator管理ロールを持つアカウントを使用して、Identity Self Serviceにログインします。
- 「アプリケーション」ページで、ツールバーの「作成」メニューをクリックして、次のいずれかのオプションを選択します。
- ターゲット - ターゲット・アプリケーションを作成します。
- 管理 - 認可アプリケーションを作成します。
2.3 基本情報の理解と更新
「基本情報」ページで入力する必要がある構成関連の詳細情報について学習します。コネクタは、これらの詳細情報を使用して、ターゲット・システムとの接続を確立し、リコンシリエーションまたはプロビジョニング操作を実行します。
アプリケーションの作成(ターゲットまたは認可)には、接続情報、スキーマの詳細など、アプリケーションの関連詳細の提供が含まれています。「基本情報」ページで、オンボードするアプリケーションの様々な詳細を指定します。たとえば、コネクタ・バンドルを選択し、作成するアプリケーションの名前を入力し、Oracle Identity Governanceとターゲット・システムの接続およびコネクタ操作の実行のために、コネクタで使用される接続関連のパラメータを入力します。
次のトピックでは、「基本情報」ページの様々なセクションのパラメータについて詳しく説明し、これらのパラメータの値を指定するプロセスを示します:
2.3.1 基本構成パラメータ
これらは、RESTベースのターゲット・システムへの接続にOracle Identity Governanceで必要となる接続関連のパラメータです。
表2-1 基本構成パラメータ
パラメータ | 必須 | 説明 |
---|---|---|
authenticationType |
はい |
ターゲット・システムにより使用される認証のタイプを入力します。 このパラメータには、次の値を指定できます。
デフォルト値: ノート: デフォルト値のclient_credentials以外の値を使用している場合は、ターゲット・システムで使用している認証タイプに対応するパラメータを追加してください。 |
host |
はい |
ターゲット・システムのホストであるコンピュータのホスト名またはIPアドレス。 サンプル値: |
port |
はい |
ターゲット・システムがリスニングしているポート番号。 サンプル値: |
authenticationServerUrl |
いいえ |
クライアントを認証し(クライアントIDとクライアント・シークレットを検証)、有効だった場合はアクセス・トークンを発行する認証サーバーのURLを入力します。 サンプル値: |
clientId |
いいえ |
登録プロセス中に認証サーバーがクライアントに発行するクライアント識別子(一意の文字列)を入力します。 サンプル値: |
clientSecret |
いいえ |
クライアント・アプリケーションのアイデンティティを認証するために使用する値を入力します。 サンプル値: |
Connector Server Name |
いいえ |
コネクタ・サーバーにGeneric RESTコネクタをデプロイした場合は、コネクタ・サーバーのITリソース名を入力します。 |
proxyHost |
いいえ |
外部のターゲット・システムへの接続に使用するプロキシ・ホストの名前。 サンプル値: |
proxyPort |
いいえ |
プロキシ・ポート番号 サンプル値: |
proxyUser |
いいえ |
ターゲット・システムに接続するために、Oracle Identity Managerにより使用されるターゲット・システム・ユーザー・アカウントのプロキシ・ユーザー名。 |
proxyScheme |
いいえ |
|
proxyPassword |
いいえ |
ターゲット・システムに接続するために、Oracle Identity Governanceにより使用されるターゲット・システム・ユーザー・アカウントのプロキシ・ユーザーIDのパスワード。 |
sslEnabled |
いいえ |
ターゲット・システムでSSL接続が必要な場合、このパラメータの値を デフォルト値: |
uriPlaceHolder |
いいえ |
relURIsのプレースホルダを置き換えるキーと値のペアを入力します。すべての相対URLにおいて繰り返される値で構成されるURIプレースホルダです。値はカンマで区切る必要があります。 たとえば、テナントIDおよびAPIバージョン値はすべてのリクエストURLにおいてその一部となっています。そのため、これをキーと値のペアで置き換えます。 サンプル値: |
2.3.2 拡張設定パラメータ
これらは、コネクタでリコンシリエーション操作およびプロビジョニング操作時に使用される構成関連のエントリです。
表2-2 拡張設定パラメータ
パラメータ | 必須 | 説明 |
---|---|---|
Bundle Name |
はい |
このパラメータは、コネクタ・クラスの名前を保持します。 デフォルト値: |
Bundle Version |
はい |
このパッケージには、コネクタ・バンドル・クラスのバージョンが保持されます。 デフォルト値: |
Connector Name |
はい |
このパラメータは、コネクタ・バンドル・パッケージの名前を保持します。 デフォルト値: |
relURIs |
はい |
各オブジェクト・クラスの全操作に対する相対URLを入力します。 このパラメータの値は次の形式のいずれかで入力します。
サンプル値: ノート: ターゲット・システムに応じて、オフセット値またはページ数を使用してページ区切りを実行できます。次に、両方のオプションのサンプル値を示します。
ページ・サイズを使用したページ区切りをサポートするために、ページ・オフセットと同じ構成可能な属性のページ増分が導入されました。rel URIに ページ増分属性数は1から始まり、最後のページに達するまで1ずつ増加します。たとえば、 PAGE_SIZEは構成可能なパラメータであるため、100としてみます。リクエストURIは次のようになります:
ここでは、すべてのページに100人のユーザーが存在し、最後のページまでデータを追加し続けます。ターゲット・システムに1000件のアカウントがある場合、10件のコールがトリガーされます。 OFFSETを使用したページ区切りをサポートするために、構成可能な属性ページ・オフセットがあります。rel URIで ページ・オフセット属性数は0から始まり、最後のページに到達するまでページ・サイズ単位に増加します。たとえば、 PAGE_SIZEは構成可能なパラメータであるため、100としてみます。リクエストURIは次のようになります:
ここでは、すべてのページに100人のユーザーが存在し、最後のページまでデータを追加し続けます。ターゲット・システムに1000件のアカウントがある場合、10件のコールがトリガーされます。 |
opTypes |
いいえ |
コネクタで管理する各オブジェクト・クラス用のHTTP操作タイプを入力します。 値は、カンマで区切り、次の形式にする必要があります: この形式のOBJ_CLASSはコネクタ・オブジェクト・クラス、OPERATIONはコネクタ操作(CreateOp、UpdateOp、SearchOpなど)、さらにHTTP_OPERATIONはHTTP操作(GET、PUTまたはPOST)です。 サンプル値: |
nameAttributes |
はい |
コネクタによって処理されるすべてのオブジェクト・クラスの名前属性を入力します。この値は、コネクタが扱う各オブジェクト・クラスの_NAME_コネクタ属性と対応するターゲット・システム属性間のマッピングを指定します。 形式: サンプル値: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
uidAttributes |
はい |
コネクタが処理する各オブジェクト・クラスの__UID__属性を入力します。__UID__属性は、ターゲット・システム内のアカウントを一意に識別するターゲット・システム属性です。このターゲット・システム属性名は一意である必要がありますが、自動生成する必要はありません。 形式: サンプル値: この形式では、OBJ_CLASSはコネクタ・オブジェクト・クラスであり、ATTR_NAMEはターゲット・システム内のアカウントを一意に識別する属性の名前です。 ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
statusAttributes |
いいえ |
このコネクタが扱う各オブジェクト・クラスのステータスを保持するターゲット・システム属性の名前を入力します。 形式: サンプル値: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 |
passwordAttribute |
いいえ |
OIMでコネクタの__PASSWORD__属性にマッピングされたターゲット・システム属性の名前を入力します。 |
pageSize |
いいえ |
検索操作に対して1ページに表示されるリソースおよびユーザーの数。 デフォルト値: 100 |
pageTokenAttribute |
いいえ |
次のページ・トークンを示すレスポンス・ペイロード内の属性。 デフォルト値: |
pageTokenRegex |
いいえ |
この属性は、ページ区切りをサポートするリコンシリエーション中にURLで使用されます。 デフォルト値: |
Any Incremental Recon Attribute Type |
いいえ |
デフォルトでは、増分リコンシリエーション中に、Oracle Identity Governanceではターゲット・システムから送信されるタイムスタンプ情報はLongデータ型形式のみを受け入れます。このパラメータの値を デフォルト値: |
jsonResourcesTag |
はい(カスタム・パーサーを実装している場合) |
レスポンス・ペイロードを解析するために使用されるJSONタグの値を入力します。コネクタでは、レスポンスの解析中にこのパラメータに入力した値が不要な外部タグとみなされます。レスポンス・ペイロードに不要な外部タグがない場合には、このパラメータ値の入力をスキップできます。 このパラメータの値は次の形式で入力します。 OBJ_CLASS=OUTER_ATTR_NAME この形式のOBJ_CLASSは、解析対象となっているレスポンス・ペイロードのオブジェクト・クラスの名前です。OUTER_ATTR_NAMEは、レスポンス・ペイロードに含まれる外部タグの名前です。 たとえば、ユーザー・オブジェクトの次のJSON値について考えます。
ユーザー・オブジェクト用のオブジェクト・クラスの名前は__ACCOUNT__であるため、この例ではjsonResourcesTagパラメータの値は ノート: このパラメータの値は、ターゲット・システムのデータがJSON形式の場合にのみ入力する必要があります。JSONタグが複数の場合は、値をカンマで区切る必要があります。 |
httpHeaderContentType |
はい |
このパラメータは、ターゲット・システムがヘッダーに求めるコンテンツ・タイプを保持します。 デフォルト値: |
httpHeaderAccept |
はい |
このパラメータは、ターゲット・システムがヘッダーに求める許容タイプを保持します。 デフォルト値: |
specialAttributeTargetFormat |
いいえ |
ターゲット・システムでの特殊属性の形式を入力します。 オブジェクト・クラスの属性のうち、ベース・オブジェクト・クラスと同じエンドポイントではなく、個別のRESTエンドポイントを通じてのみ管理できるオブジェクト・クラスの属性を、特殊属性と呼びます。 形式: この例のTARGET_FORMATは、ターゲット・システムの特殊属性の形式です。 たとえば、次のターゲット・エンドポイントの値について考えてみます。
この例では、別名属性は、ターゲット・システム・エンドポイントでaliases.aliasとして表されます。そのため、このパラメータの値は サンプル値: |
specialAttributeHandling |
いいえ |
ターゲット・システムに1回に1つずつ個別のコールで送信する必要がある特殊属性のリストを入力します。このパラメータの値を指定しない場合、コネクタは、指定した特殊属性のすべての値を1回のコールで送信します。 形式: ノート: このパラメータのすべての値はカンマ区切りにする必要があります。 サンプル値: |
customPayload |
いいえ |
標準のJSON形式に従わないターゲット・システム属性のリクエスト・ペイロードの形式をカンマ区切りのリストで入力します。 形式: ノート: カスタム・ペイロードの一部としてユーザーの一意のIDまたは名前属性を渡す必要がある場合は、それぞれ サンプル値: |
targetObjectIdentifier |
いいえ |
リコンシリエーション中に必要なターゲット・オブジェクトを識別するために使用する属性の名前を入力します。 形式: |
statusEnableValue |
いいえ |
このエントリには、ステータスが |
statusDisableValue |
いいえ |
このエントリには、ステータスが |
2.3.3 認証パラメータ
認証パラメータは、ターゲット・システムがアプリケーションを認証するために使用します。値の指定が必要なパラメータのセットは、「基本構成」セクションのauthenticationType
パラメータに入力した値によって決まります。
authenticationTypeパラメータには、ターゲット・システムで使用される認証のタイプが保持されます。このコネクタでは次のタイプの認証がサポートされます:
-
HTTP基本認証
-
OAuth 2.0 JWT
-
OAuth 2.0クライアント資格証明
-
OAuth 2.0リソース所有者のパスワード
-
アクセス・トークンの手動入力
ターゲット・システムで前述の認証タイプ以外の認証タイプを使用する場合は、独自の実装を開発して作成する必要があります。デフォルトでは、UIにはOAuth 2.0クライアント資格証明認証タイプのパラメータが含まれています。その他の認証タイプの場合は、「拡張設定」セクションで対応するパラメータを作成して追加する必要があります。
次に、authenticationType
パラメータで可能な値を示します:
- HTTP基本認証: basic
- OAuth 2.0 JWT: jwt
- OAuth 2.0クライアント資格証明: client_credentials
- OAuth 2.0リソース所有者のパスワード: password
- アクセス・トークンの手動入力: other
- カスタム認証の実装: custom
ノート:
この項では、すべての認証タイプのパラメータについて説明します。指定する認証タイプに対応するパラメータの値のみを入力します。HTTP基本認証
表2-3 HTTP基本認証パラメータ
パラメータ | 説明 |
---|---|
username |
リコンシリエーション操作およびプロビジョニング操作の間に、Oracle Identity Governanceがターゲット・システムに接続してアクセスするために使用する必要がある、アカウントのユーザー名またはユーザーIDを入力します。 サンプル値: |
password |
リコンシリエーション操作およびプロビジョニング操作の間に、Oracle Identity Governanceがターゲット・システムに接続してアクセスするために使用する必要があるアカウントのパスワードを入力します。 サンプル値: |
OAuth 2.0 JWT
表2-4 OAuth 2.0 JWTパラメータ
パラメータ | 説明 |
---|---|
aud |
JWTの対象を入力します。この値には、認証サーバーのURIまたはトークン・エンドポイントのURLを指定できます。 サンプル値: |
iss |
JWTを発行したエンティティを一意に識別する値を入力します。 サンプル値: |
scope |
発行されるアクセス・トークンの有効範囲を入力します。 サンプル値: |
sub |
JWTの発行先プリンシパルを識別する値を入力します。 サンプル値: |
privateKeyLocation |
アクセス・トークンへの署名に使用される秘密キーへの絶対パスを入力します。 サンプル値: |
privateKeySecret |
アクセス・トークンへの署名に使用される秘密キーの値を入力します。 |
tokenLifespan |
アクセス・トークンの有効期限を入力します(ミリ秒単位)。 サンプル値: |
signatureAlgorithm |
アクセス・トークンへの署名に使用されるアルゴリズムを入力します。 サンプル値: |
privateKeyFormat |
アクセス・トークンへの署名に使用される秘密キーの形式を入力します。 サンプル値: |
OAuth 2.0クライアント資格証明
ノート:
デフォルトでは、これらのパラメータは「基本構成」セクションで使用できます。したがって、手動で追加する必要はありません。表2-5 OAuth2.0クライアント資格証明パラメータ
パラメータ | 説明 |
---|---|
clientId |
登録プロセス中に認証サーバーがクライアントに発行するクライアント識別子(一意の文字列)を入力します。 サンプル値: |
clientSecret |
クライアント・アプリケーションのアイデンティティを認証するために使用する値を入力します。 サンプル値: |
authenticationServerURL |
クライアントを認証し(クライアントIDとクライアント・シークレットを検証)、有効だった場合はアクセス・トークンを発行する認証サーバーのURLを入力します。 サンプル値: |
OAuth 2.0リソース所有者のパスワード
表2-6 OAuth 2.0リソース所有者のパスワード・パラメータ
パラメータ | 説明 |
---|---|
username |
リソース所有者のリソース名またはユーザーIDを入力します。 サンプル値: |
password |
リソース所有者のパスワードを入力します。 サンプル値: |
clientId |
登録プロセス中にクライアントに発行されるクライアント識別子を入力します。 サンプル値: ノート: このパラメータはオプションです。 |
clientSecret |
クライアント・アプリケーションのアイデンティティを認証するのに使用されるクライアント・シークレットを入力します。 サンプル値: ノート: このパラメータはオプションです。 |
authenticationServerUrl |
クライアント(クライアントIDとクライアント・シークレットを検証)とリソース所有者の資格証明を認証し、有効だった場合はアクセス・トークンを発行する認証サーバー(トークン・エンドポイント)のURLを入力します。 サンプル値: |
アクセス・トークンの手動入力
この項では、authenticationTypeパラメータがotherに設定されている場合に、値を入力する必要があるパラメータについて説明します。
この認証メカニズムでは、コネクタは、customAuthHeaders
パラメータを介して直接渡されるアクセス・トークンの値を使用します。customAuthHeaders
パラメータは、HTTP認証ヘッダーを介して渡す必要がある、access_token=<value>
などのアクセス・トークン値を保持する必要があります。
カスタム認証
この項では、authenticationTypeパラメータがcustomに設定されている場合に、値を入力する必要があるパラメータについて説明します。
カスタム認証を実装した場合は、customAuthClassName
パラメータの値を入力する必要があります。customAuthClassName
パラメータは、「カスタム認証の実装」で説明した手順の実行中に作成したカスタム認証ロジックを実装するクラスの名前を保持する必要があります。
2.3.4 基本情報の指定
「基本情報」ページでは、構成関連の詳細を指定する必要があります。コネクタは、リコンシリエーションの実行時にこれらの詳細を使用します。
- 「基本情報」ページで、「コネクタ・パッケージ」オプションが選択されていることを確認します。
- 「バンドルの選択」ドロップダウン・リストから、Generic RESTコネクタ12.2.1.3.0を選択します。
- アプリケーションの「アプリケーション名」、「表示名」および「説明」を入力します。
- 「基本構成」セクションで、必要に応じてパラメータの値を入力します。
authenticationType
パラメータの値をデフォルト値(client_credentials
)以外の値に設定する場合は、「拡張設定」セクションで対応する認証属性の値を追加および入力する必要があります。たとえば、authenticationType
パラメータの値をbasic (基本HTTP認証の場合)に設定した場合、このタイプの認証にはユーザー名とパスワードが必要です。このような属性はUIにないため、次のように手動で追加する必要があります: - 「拡張設定」セクションで、必要に応じてパラメータの値を入力します。
- 「次」をクリックして、「スキーマ」ページに進みます。
関連項目:
サポートされている認証タイプおよび対応するパラメータのリストは、「認証パラメータ」を参照してください2.4 「スキーマ」ページの理解と更新
「スキーマ」ページを使用して、コネクタがターゲット・システムの基礎となる構造を認識するのに役立つ属性を追加または更新します。
2.4.1 ターゲット・アプリケーションの「スキーマ」ページの理解
ターゲット・アプリケーションの「スキーマ」ページには、Oracle Identity Governanceの属性と対応するターゲット・システムの属性をマッピングするデフォルト・スキーマが表示されます。コネクタは、リコンシリエーションおよびプロビジョニングの操作中にこれらのマッピングを使用します。
RESTユーザー・セクションの下の表に、Oracle Identity Governanceとターゲット・システム間のユーザー固有の属性マッピングの基本セットが表示されます。表には、指定した属性のデータ型と、それがリコンシリエーションに必須であるかどうか、およびリコンシリエーション中にレコードをフェッチするための一致キー・フィールドであるかどうかも示されています。デフォルトでは、「スキーマ」ページに、__UID__、__NAME__および__ENABLE__コネクタ属性と対応するOracle Identity Governance属性のマッピングが表示されます。必要に応じて、デフォルトの属性マッピングを編集できます。
「スキーマ」ページには、デフォルトでグループ・オブジェクト・クラスの子フォームも表示されます。RESTユーザー・セクションの表と同様に、この表を使用して、グループ属性マッピング、特定の属性のデータ型、リコンシリエーションのキー・フィールドかどうかなどを指定できます。次を実行できます
コネクタはターゲット・システム・スキーマを認識しないため、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』の ターゲット・アプリケーションの作成に関する項の説明に従って、ターゲット・システム属性を手動で追加し、対応するOracle Identity Governance属性にマップする必要があります。
2.4.2 認可アプリケーションの「スキーマ」ページの理解
認可アプリケーションの「スキーマ」ページには、Oracle Identity Governanceの属性と対応するターゲット・システムの属性をマッピングするデフォルト・スキーマが表示されます。コネクタは、リコンシリエーションの実行中にこれらのマッピングを使用します。
REST信頼セクションの下の表には、Oracle Identity Governanceとターゲット・システム間のユーザー固有の属性マッピングの基本セットが表示されます。表には、指定した属性のデータ型と、それがリコンシリエーションに必須であるかどうか、およびリコンシリエーション中にレコードをフェッチするための一致キー・フィールドであるかどうかも示されています。デフォルトでは、「スキーマ」ページに、__UID__、__NAME__および__ENABLE__コネクタ属性と対応するOracle Identity Governance属性のマッピングが表示されます。必要に応じて、デフォルトの属性マッピングを編集できます。
「スキーマ」ページには、Oracle Identity Governanceのリコンシリエーション・フィールドとターゲット・システム属性間のユーザー固有の属性マッピングのデフォルト・セットがリストされます。この表では、指定した属性のデータ型と、リコンシリエーションの必須属性かどうかも示します。
必要に応じて、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』の認可アプリケーションの作成に関する項の説明に従って、「スキーマ」ページで新しい属性を追加したり既存の属性を削除して、これらの属性マッピングを編集できます。
「組織名」、「Xellerateタイプ」および「ロール」のアイデンティティ属性はOIGユーザー・フォームの必須フィールドで、リコンシリエーションの際に空白にしておくことはできません。ターゲット・システムには「組織名」、「Xellerateタイプ」および「ロール」のアイデンティティ属性に対応する属性が含まれていない場合があるため、これらはOracle identity Governanceの属性にマッピングされています。また、リコンシリエーションの際に使用できるデフォルト値(表2-7の「アイデンティティ表示名のデフォルト値」に表示)が指定されます。たとえば、「組織名」のターゲット属性のデフォルト値はXellerate Usersです。このことは、すべてのターゲット・システムのユーザー・アカウントがOracle Identity GovernanceのXellerate Usersという組織にリコンサイルされることを示しています。同様に、「Xellerateタイプ」属性のデフォルトの属性値はEnd-Userで、すべてのリコンサイルされたユーザー・レコードがエンド・ユーザーとしてマークされることを示しています。
表2-7 認可アプリケーション用のRESTの信頼できるユーザー・アカウント・スキーマ属性
アイデンティティ表示名 | ターゲット属性 | データ型 | 必須リコンシリエーション・プロパティ | リコンシリエーション・フィールド | アイデンティティ表示名のデフォルト値 |
---|---|---|---|---|---|
ユーザー・ログイン |
__NAME__ |
文字列 |
いいえ |
はい |
該当なし |
RESTユーザーGUID |
__UID__ |
文字列 |
いいえ |
はい |
該当なし |
ステータス |
__ENABLE__ |
文字列 |
いいえ |
はい |
該当なし |
姓 |
文字列 |
いいえ |
はい |
該当なし |
|
Xellerateタイプ |
文字列 |
いいえ |
はい |
End-User |
|
ロール |
文字列 |
いいえ |
はい |
Full-Time |
|
組織名 |
文字列 |
いいえ |
はい |
Xellerate Users |
次に、EloquaAppsUserSchema.properties (Eloquaターゲット・システムで使用されるサンプル・スキーマ・ファイルのプロパティ)を示します:
#Schema file for Eloqua
#List of fields
FieldNames=id,login,name,firstName,Active,lastName,senderDisplayName,emailAddress
#Unique ID Attribute
UidAttribute=id
#Account Name attribute
NameAttribute=login
#Account Status Attribute and Mapping
StatusAttribute=Active
Active.True=Enabled
Active.False=Disabled
次に、サンプルgroovyファイルGenericRestConfiguration.groovyを次に示します:
/*
* Run like:
* In Windows: GenericRestGenerator.cmd ..\resources\GenericRestConfiguration.groovy trusted
* In Linux/Unix: sh GenericRestGenerator.sh ../resources/GenericRestConfiguration.groovy trusted
*/
trusted {
/*
* ITResource name
*/
itResourceDefName='resttrust2' // This will be used as a base name for all metadata across the connector
// itResourceName="$itResourceDefName" //the same as itResourceDefName by default
/*
* Output files
*/
// connectorDir="../$itResourceDefName" // output dir of the connector, is the same as it resource name by default
// xmlFile='GenericRest-ConnectorConfig.xml' // name of the dm xml of the connector
// configFile='GenericRest-CI.xml' // name of the config xml
// propertiesFile='GenericRest-generator.properties' // name of the resources/properties file
// version='11.1.1.6.0' // connector version
/*
* Trusted/Target mode
* For trusted, we will not create forms, dataobjects and event handlers
* For target, we will create all above metadata
*/
trusted=true // Flag to denote if the mode is trusted or not
/*
* Location of the generic rest bundle jar
*/
bundleJar='../lib/org.identityconnectors.genericrest-12.3.0.jar'
/*
* The Configuration used to run the generic rest bundle mentioned above, get the schema from below mentioned schemaFile, which is required for generating metadata
*/
config = [
'schemaFile' : '../schema/EloquaAppsUserSchema.properties',
'authenticationType' : '',
'username' : '',
'password' : '',
'host' : '',
'port' : '',
'proxyHost' : '',
'proxyPort' : '',
'proxyUser' : '',
'proxyPassword' : '',
'sslEnabled' : '',
'relURIs' : '',
'nameAttributes' : '',
'uidAttributes' : '',
'opTypes' : '',
'jsonResourcesTag' : '',
'httpHeaderContentType' : '',
'httpHeaderAccept' : '',
'customPayload' : '',
'statusAttributes' : '',
'specialAttributeTargetFormat' : '',
'specialAttributeHandling' : '',
'statusEnableValue' : '',
'statusDisableValue' : '',
'passwordAttribute' : ''
]
/**
* Provide the attribute list that need to be handled as Date on process form
* Make sure these fields datatype in schema should be long
* dateAttributeList is not a mandatory field
**/
//dateAttributeList = ["JoiningDate"]
/**
* Alias are used to map the OIM User Form attributes with the Connector Attributes.
* The Format is of 'Connector Attribute':'OIM User Form Attribute'
* Mandatory alias shouldn't be removed. Customer can update these mandatory attributes but should not be removed
* Customer can add other aliases to the OIM User form fields
**/
// Mapping is mandatory for attributes User Login, Last Name,Organization, Xellerate Type and Role. One can modify the required mappings but shouldn't delete them.
//UID field is not required in trusted but if customer wanted to add UID field then one can map it to a valid OIM User Form Label
alias = ['__NAME__':'User Login', 'lastName':'Last Name','Organization':'Organization Name', 'Employee Type':'Xellerate Type', 'Role':'Role']
//Extend the aliases to include more connector attributes for trusted by mapping
alias += ['__ENABLE__':'Status', 'emailAddress':'Email']
}
/*
* Run like:
* In Windows: GenericRestGenerator.cmd ..\resources\GenericRestConfiguration.groovy target
* In Linux/Unix: sh GenericRestGenerator.sh ../resources/GenericRestConfiguration.groovy target
*/
target {
/*
* ITResource name
*/
itResourceDefName='restci2' // This will be used as a base name for all metadata across the connector
// itResourceName="$itResourceDefName" //the same as itResourceDefName by default
/**
* Give the name of the Application Instance that need to be generated. By default Application Instance name is taken as itResourceDefName
* Application Instance is not a mandatory field
**/
//applicationInstanceName="$itResourceDefName"
/*
* Output files
*/
// connectorDir="../$itResourceDefName" // output dir of the connector, is the same as it resource name by default
// xmlFile='GenericRest-ConnectorConfig.xml' // name of the dm xml of the connector
// configFile='GenericRest-CI.xml' // name of the config xml
// propertiesFile='GenericRest-generator.properties' // name of the resources/properties file
// version='11.1.1.6.0' // connector version
/*
* Location of the generic rest bundle jar
*/
bundleJar='../lib/org.identityconnectors.genericrest-12.3.0.jar'
/*
* The Configuration used to run the generic rest bundle mentioned above, and get the schema from the below mentioned schemaFile, which is required for generating metadata
*/
config = [
'schemaFile' : '../schema/GoogleAppsUserSchema.properties',
'authenticationType' : '',
'username' : '',
'password' : '',
'host' : '',
'port' : '',
'proxyHost' : '',
'proxyPort' : '',
'proxyUser' : '',
'proxyPassword' : '',
'sslEnabled' : '',
'relURIs' : '',
'nameAttributes' : '',
'uidAttributes' : '',
'opTypes' : '',
'jsonResourcesTag' : '',
'httpHeaderContentType' : '',
'httpHeaderAccept' : '',
'customPayload' : '',
'statusAttributes' : '',
'specialAttributeTargetFormat' : '',
'specialAttributeHandling' : '',
'statusEnableValue' : '',
'statusDisableValue' : '',
'passwordAttribute' : ''
]
/**
* Lookup List is the list of attributes for which we need to create lookups and map those fields as lookup in form.
* For Main Process Form Fields and a Multivalued field the format is
* lookupAttributeList=["FieldName"]
* For Embedded Multi Valued field the format is
* lookupAttributeList=["ObjectClassName.SubFieldName"]
* lookups will be generated with the FieldNames in format Lookup.${ITResource}.${FieldName}
*
* lookupList is not a mandatory field
*/
//lookupAttributeList=['Currency']
/* entitlementAttributeList is the list of fully Qualified field names to which entitlements need to be tagged.
* If you require entitlements for a multi valued attribute which is embedded then the format should be as
* entitlementAttributeList=["${ObjectClass}.SubFieldName"]
* If the attribute is just a MultiValued then the format is
* entitlementAttributeList=["MultiValuedFieldName"]
*
* entitlementAttributeList is not a mandatory attribute
*/
entitlementAttributeList=['__GROUPS__.id']
/**
* Provide the attribute list that need to be handled as Date on process form
* Make sure these fields datatype in schema should be long
* dateAttributeList is not a mandatory field
**/
//dateAttributeList = ["JoiningDate"]
/*
* Target attribute to user fields alias
*/
//Mandatory alias
alias = ['__UID__':'id', '__NAME__':'login']
//Optional aliases if any (Can also be used to give short names for lengthy attribute names)
//alias += ['Generic Rest Target':'GENREST', 'Family Name':'Last name']
/*
* Generate prepopulate adapters
*/
prepopulate = ['__UID__':'User Login']
}
2.4.3 「スキーマ」ページの更新
「スキーマ」ページを更新して、Oracle Identity Governanceとターゲット・システム間の属性マッピングを確認および更新します。
- 「スキーマ」ページで、コネクタによって提供されるデフォルト・マッピングを確認します。
- ターゲット・アプリケーションを作成する場合は、次のようにします:
- 認可アプリケーションを作成する場合、「アイデンティティ表示名」列の「姓」属性に、「ターゲット属性」列の対応するターゲット・システム属性名を入力します。次に、「必須」、「リコンシリエーション・フィールド」などの列にリコンシリエーション・プロパティを指定します。更新が必要な他の属性についても、この手順を繰り返します。必要に応じて、「属性の追加」をクリックして新しい属性を追加します。
- 「次」をクリックして、「設定」ページに進みます。
2.5 設定の更新
作成するアプリケーションのデフォルトのプロビジョニングおよびリコンシリエーション設定を確認し、必要に応じてカスタマイズします。
2.5.1 相関ルール、レスポンスおよび状況
ターゲット・アプリケーションおよび認可アプリケーションの事前定義済ルール、レスポンスおよび状況について学習します。コネクタは、リコンシリエーションの実行にこれらのルールおよびレスポンスを使用します。
2.5.1.1 ターゲット・アプリケーションの相関ルール、レスポンスおよび状況
ターゲット・アプリケーションを作成する場合、コネクタは、Oracle Identity Governanceがリソースを割り当てる先のアイデンティティを決定するために相関ルールを使用します。
事前定義済アイデンティティ相関ルール
デフォルトでは、Generic RESTコネクタにより、ターゲット・アプリケーション作成時の単純相関ルールが提供されます。コネクタはこの相関ルールを使用して、Oracle Identity Governanceリポジトリとターゲット・システム・リポジトリのエントリを比較して、2つのリポジトリの相違を判断し、最新の変更内容をOracle Identity Governanceに適用します。
表2-8に、RESTベースのターゲット・システムのデフォルトの単純相関ルールを示します。必要に応じて、デフォルト相関ルールを編集するか、新しいルールを追加できます。複合相関ルールを作成することもできます。単純相関ルールまたは複合相関ルールの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』のアイデンティティ相関ルールの更新に関する項を参照してください。
表2-8 ターゲット・アプリケーションの事前定義済アイデンティティ相関ルール
ターゲット属性 | 要素演算子 | アイデンティティ属性 | 大/小文字区別 |
---|---|---|---|
__NAME__ |
次と等しい |
ユーザー・ログイン |
いいえ |
-
__NAME__は、ユーザー・アカウントを識別するターゲット・システムの単一値属性です。
-
User Loginは、OIMユーザー・フォームのフィールドです。
事前定義済の状況およびレスポンス
コネクタにより、ターゲット・アプリケーションの作成時にデフォルトの一連の状況およびレスポンスが提供されます。これらの状況とレスポンスによって、リコンシリエーション・イベントの結果に基づいてOracle Identity Governanceが実行する必要があるアクションが指定されます。
表2-9に、このコネクタのデフォルトの状況とレスポンスを示します。必要に応じて、これらのデフォルトの状況とレスポンスを編集するか、新しい状況とレスポンスを追加できます。状況とレスポンスの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』の状況とレスポンスの更新に関する項を参照してください。
表2-9 ターゲット・アプリケーションの事前定義済の状況とレスポンス
状況 | レスポンス |
---|---|
一致が見つからない場合 |
なし |
1つのエンティティ一致が見つかった場合 |
リンクの確立 |
1つのプロセス一致が見つかった場合 |
リンクの確立 |
2.5.1.2 認可アプリケーションの相関ルール、レスポンスおよび状況
認可アプリケーションを作成する場合、コネクタは、Oracle Identity Governanceにリコンサイルする必要があるアイデンティティを決定するために相関ルールを使用します。
事前定義済アイデンティティ相関ルール
デフォルトでは、Generic RESTコネクタにより、認可アプリケーションの作成時に単純相関ルールが提供されます。コネクタはこの相関ルールを使用して、Oracle Identity Governanceリポジトリとターゲット・システム・リポジトリのエントリを比較して、2つのリポジトリの相違を判断し、最新の変更内容をOracle Identity Governanceに適用します。
表2-10に、認可アプリケーション用のデフォルトの単純相関ルールを示します。必要に応じて、デフォルト相関ルールを編集するか、新しいルールを追加できます。複合相関ルールを作成することもできます。単純相関ルールまたは複合相関ルールの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』のアイデンティティ相関ルールの更新に関する項を参照してください。
表2-10 認可アプリケーションの事前定義済アイデンティティ相関ルール
ターゲット属性 | 要素演算子 | アイデンティティ属性 | 大/小文字区別 |
---|---|---|---|
__UID__ |
次と等しい |
RESTユーザーGUID |
いいえ |
__NAME__ |
次と等しい |
ユーザー・ログイン |
いいえ |
認可アプリケーションのアイデンティティ相関ルールは次のとおりです:
(__UID__ Equals REST User GUID) OR (__NAME__ Equals User Login)
-
__UID__は、ユーザー・アカウントを一意に識別するターゲット・システムの属性です。
-
RESTユーザーGUIDは、OIGユーザーに割り当てられるリソースの一意の識別子です。
-
__NAME__は、ユーザー・アカウントを識別するターゲット・システムの単一値属性です。
-
「ユーザー・ログイン」は、OIGユーザー・フォームのフィールドです。
両方のルール・コンポーネントは、OR論理演算子で結合されます。
事前定義済の状況およびレスポンス
コネクタにより、認可アプリケーションの作成時にデフォルトの一連の状況およびレスポンスが提供されます。これらの状況とレスポンスによって、リコンシリエーション・イベントの結果に基づいてOracle Identity Governanceが実行する必要があるアクションが指定されます。
表2-11に、認可アプリケーションのデフォルトの状況およびレスポンスを示します。必要に応じて、これらのデフォルトの状況とレスポンスを編集するか、新しい状況とレスポンスを追加できます。状況とレスポンスの追加または編集の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』の状況とレスポンスの更新に関する項を参照してください。
表2-11 認可アプリケーションの事前定義済の状況とレスポンス
状況 | レスポンス |
---|---|
一致が見つからない場合 |
ユーザーの作成 |
1つのエンティティ一致が見つかった場合 |
リンクの確立 |
1つのプロセス一致が見つかった場合 |
リンクの確立 |
2.5.2 リコンシリエーション・ジョブ
アプリケーションのプロビジョニング、リコンシリエーションおよび組織の設定を確認し、必要に応じてカスタマイズするほかに、リコンシリエーション・ジョブの必須パラメータの値を指定する必要があります。
「設定」ページには、プロビジョニング、リコンシリエーションおよび組織に関連するすべての設定のプレビューが表示されます。これらの設定を確認し、必要に応じてカスタマイズできます。「設定」ページの「リコンシリエーション」タブで、「リコンシリエーション・ジョブ」セクションを開いて、ターゲット・アプリケーションまたは認可アプリケーションの作成後にコネクタによって自動的に作成されたリコンシリエーション・ジョブを表示します。この時点では、使用しないリコンシリエーション・ジョブを削除できます。必要に応じて、リコンシリエーション・ジョブを編集したり、要件にあわせてカスタム・リコンシリエーション・ジョブを作成することもできます。これらの事前定義済のジョブの編集または新しいジョブの作成の詳細は、『Oracle Fusion Middleware Oracle Identity Governanceでのセルフ・サービス・タスクの実行』のリコンシリエーション・ジョブの更新に関する項を参照してください。
ノート:
すべてのリコンシリエーション・ジョブの必須パラメータ(アスタリスク(*)記号が付いています)の値を入力して、「適用」をクリックします。
デフォルトでは、ユーザー、削除ユーザーおよび権限のリコンシリエーション・ジョブは、アプリケーションの作成後に使用できます。
ユーザー・リコンシリエーション・ジョブ
-
RESTアプリケーション・ターゲット・ユーザー・リコンシリエーション: このリコンシリエーション・ジョブを使用して、ターゲット・アプリケーションからユーザー・データをリコンサイルします。
-
RESTアプリケーションの信頼できるユーザー・リコンシリエーション: このリコンシリエーション・ジョブを使用して、認可アプリケーションからユーザー・データをリコンサイルします。
これらのジョブのパラメータはどちらも同じです。
表2-12 ユーザー・リコンシリエーション・ジョブのパラメータ
パラメータ | 説明 |
---|---|
Application Name |
使用するターゲット・システム用に作成したアプリケーションの名前。この値は、アプリケーションの作成時に「アプリケーション名」フィールドで指定した値と同じです。 この値は変更しないでください。 |
Filter |
スケジュール済ジョブによってリコンサイルする必要があるレコードをフィルタ処理する式を入力します。 サンプル値: |
Incremental Recon Attribute |
ユーザー・レコードが変更された時点のタイムスタンプを保持するターゲット・システム属性の名前。 |
Object Type |
リコンサイルするオブジェクトのタイプ。 デフォルト値: |
Latest Token |
このパラメータは、Incremental Recon Attributeパラメータの値として指定されたターゲット・システム属性の値を保持します。Latest Tokenパラメータは内部目的で使用されます。デフォルトでは、この値は空です。 ノート: この属性には値を入力しないでください。リコンシリエーション・エンジンにより、値はこの属性に自動的に入力されます。 |
Scheduled Task Name |
スケジュールされたジョブの名前。 ノート: このコネクタに組み込まれているスケジュール済ジョブについては、この属性の値を変更することはできません。ただし、新しいジョブまたはジョブのコピーを作成した場合は、この属性の値として、そのスケジュール済ジョブに一意の名前を入力します。 |
削除ユーザーのリコンシリエーション・ジョブ
-
RESTアプリケーション・ターゲット・ユーザー削除リコンシリエーション: このリコンシリエーション・ジョブを使用して、ターゲット・アプリケーションから削除されたユーザー・アカウントに関するデータをリコンサイルします。
-
RESTアプリケーションの信頼できるユーザー削除のリコンシリエーション: このリコンシリエーション・ジョブを使用して、認可アプリケーションから削除されたユーザー・アカウントに関するデータをリコンサイルします。
これらのジョブのパラメータはどちらも同じです。
表2-13 削除ユーザーのリコンシリエーション・ジョブのパラメータ
パラメータ | 説明 |
---|---|
Application Name |
使用するターゲット・システム用に作成したアプリケーションの名前。この値は、使用するターゲット・アプリケーションの作成の際、「アプリケーション名」フィールドで指定した値と同じです。 この値は変更しないでください。 |
Object Type |
リコンサイルするオブジェクトのタイプ。 デフォルト値: |
Scheduled Task Name |
スケジュールされたジョブの名前。 ノート: このコネクタに組み込まれているスケジュール済ジョブについては、この属性の値を変更することはできません。ただし、新しいジョブまたはジョブのコピーを作成した場合は、この属性の値として、そのスケジュール済ジョブに一意の名前を入力します。 |
権限のリコンシリエーション・ジョブ
「スキーマ」ページで使用または追加した(参照タイプの)子フォームに応じて、権限に対応するリコンシリエーション・ジョブが表示されます。たとえば、「スキーマ」ページの「グループ」子フォームを使用すると、RESTアプリケーションのグループ参照リコンシリエーション・ジョブを使用して権限をリコンサイルできます。
これらのリコンシリエーション・ジョブは、ターゲット・アプリケーションに対してのみ使用できます。このようなリコンシリエーション・ジョブのパラメータはすべて同じです。
表2-14 権限のリコンシリエーション・ジョブのパラメータ
パラメータ | 説明 |
---|---|
Application Name |
使用するターゲット・システム用に作成したアプリケーションの名前。この値は、使用するターゲット・アプリケーションの作成の際、「アプリケーション名」フィールドで指定した値と同じです。 この値は修正しないでください。 |
Lookup Name |
このパラメータは、値のフェッチ元である必要のあるデータ・ソースに各参照定義をマップする参照定義の名前を保持します。 デフォルト値は、使用するリコンシリエーション・ジョブに応じて次のようになります:
たとえば、グループ権限ジョブの場合、デフォルト値は |
Object Type |
同期させる必要のある値を含むオブジェクトのタイプを入力します。 たとえば、グループ権限をリコンサイルする場合は、__GROUPS__と入力します。 ノート: この属性の値は変更しないでください。 |
Code Key Attribute |
参照定義のコード・キー列を移入するのに使用する、コネクタの名前またはターゲット・システム属性を入力します(「参照名」属性の値として指定)。 デフォルト値: ノート: この属性の値は変更しないでください。 |
Decode Attribute |
参照定義(Lookup Name属性の値として指定される)のデコード列に値を移入するために使用される、コネクタまたはターゲット・システムの属性の名前を入力します。 デフォルト値: |