Fusion Middleware Oracle Identity Manager開発者ガイド

11g リリース1(11.1.1)

B66705-01(原本部品番号:E14309-08)

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

第I部 概念

1 Design Consoleの概要

- 1.1 Design Consoleの起動

- 1.2 Design Consoleのナビゲート

- 1.2.1 Design Consoleメニュー・バー

- 1.2.1.1 「ファイル」メニュー

- 1.2.1.2 「編集」メニュー

- 1.2.1.3 ツールバー・メニュー

- 1.2.1.4 「ヘルプ」メニュー

- 1.2.1.5 Design Consoleのキーボード・ショートカット

- 1.2.2 Design Consoleツールバー

- 1.2.3 Design Consoleエクスプローラ

- 1.2.3.1 フォームの開始

- 1.2.3.2 フォームのリストのリフレッシュ

- 1.2.4 Design Consoleワークスペース

- 1.2.4.1 フォーム・ビュー

- 1.2.4.2 表ビュー

- 1.3 特殊フィールドおよびフォーム・タイプ

- 1.3.1 データ・フィールド

- 1.3.2 参照フィールド

- 1.3.3 日時フィールド

- 1.3.4 リスト

- 1.3.5 「注意」ウィンドウ

- 1.3.6 フォームのタブ

- 1.4 「割当て」ウィンドウ

- 1.5 検索操作

- 1.5.1 検索の開始

- 1.5.2 検索フィルタの構成

- 1.5.3 検索の結果

- 1.5.4 一連の問合せ結果の操作

- 1.5.5 問合せパフォーマンスの最適化

- 1.5.6 結果セットの制限の超過

- 1.6 Design Consoleからアクセス可能なフォーム

- 1.6.1 ユーザー管理

- 1.6.2 リソース管理

- 1.6.3 プロセス管理

- 1.6.4 管理

- 1.6.5 開発ツール

- 1.6.5.1 ビジネス・ルール定義

2 アダプタの開発

- 2.1 アダプタの概要

- 2.2 アダプタのタイプ

- 2.3 アダプタ環境とツール

- 2.3.1 アダプタ環境の構成

- 2.3.2 Remote Manager

- 2.3.3 アダプタ・ファクトリ

- 2.3.4 アダプタのコンパイル

- 2.3.4.1 アダプタの自動コンパイル

- 2.3.4.2 アダプタの手動コンパイル

- 2.4 アダプタの定義

- 2.5 「アダプタ・ファクトリ」フォームのタブ

- 2.5.1 アダプタ・タスク

- 2.5.2 実行スケジュール

- 2.5.3 リソース

- 2.5.4 変数リスト

- 2.5.5 使用状況参照

- 2.5.6 レスポンス

- 2.6 アダプタの無効化と再有効化

- 2.7 アダプタ変数について

- 2.7.1 アダプタ変数の作成

- 2.7.2 アダプタ変数の変更

- 2.7.3 アダプタ変数の削除

- 2.8 アダプタ・タスクの作成

- 2.8.1 アダプタ・タスクのタイプ

- 2.8.2 Javaタスクの作成

- 2.8.3 リモート・タスクの作成

- 2.8.4 ストアド・プロシージャ・タスクの作成

- 2.8.5 ユーティリティ・タスクの作成

- 2.8.6 Oracle Identity Manager APIタスクの作成

- 2.8.7 アダプタ変数の値の再割当て

- 2.8.8 エラー・ハンドラ・タスクの追加

- 2.8.9 ロジック・タスクの作成

- 2.9 アダプタ・タスクの変更

- 2.10 タスクの順序とネストの変更

- 2.11 アダプタ・タスクの削除

- 2.12 レスポンスの使用

- 2.12.1 レスポンスの作成

- 2.12.2 レスポンスの変更

- 2.12.3 レスポンスの削除

- 2.13 ルール・ジェネレータおよびエンティティ・アダプタのスケジューリング

- 2.13.1 ルール・ジェネレータおよびエンティティ・アダプタのスケジューリング

3 アダプタの使用

- 3.1 ルール・ジェネレータ・アダプタの使用

- 3.1.1 ルール・ジェネレータのアダプタ変数のマッピング

- 3.1.2 ルール・ジェネレータとプロセスの関連付け

- 3.1.3 ルール・ジェネレータのフォーム・フィールドからの削除

- 3.2 エンティティ・アダプタの使用

- 3.3 タスク割当てアダプタの使用

- 3.3.1 タスク割当てアダプタのプロセス・タスクへのアタッチ

- 3.3.2 タスク割当てアダプタのプロセス・タスクからの削除

- 3.3.2.1 タスク割当てアダプタのプロセス・タスクからの削除

- 3.4 事前移入アダプタの使用

- 3.4.1 事前移入アダプタのフォーム・フィールドへのアタッチ

- 3.4.2 事前移入アダプタのフォーム・フィールドからの削除

- 3.5 プロセス・タスク・アダプタの使用

- 3.5.1 プロセス・タスク・アダプタを使用するためのガイドライン

- 3.5.2 プロセス・タスク・アダプタのプロセス・タスクへのアタッチ

- 3.5.3 プロセス・タスク・アダプタのプロセス・タスクからの削除

- 3.5.3.1 プロセス・タスク・アダプタのプロセス・タスクからの削除

- 3.6 アダプタ・マッピング情報

- 3.6.1 アダプタ・タスク・マッピング情報

- 3.6.1.1 アダプタ変数

- 3.6.1.2 アダプタ・タスク

- 3.6.1.3 リテラル

- 3.6.1.4 アダプタ参照

- 3.6.1.5 組織定義

- 3.6.1.6 プロセス定義

- 3.6.1.7 ユーザー定義

- 3.6.2 アダプタ変数マッピング情報

- 3.6.2.1 「変数リスト」タブ

- 3.6.2.2 プロセス・タスク・アダプタ変数マッピング

- 3.6.2.3 タスク割当てアダプタ変数マッピング

- 3.6.2.4 ルール・ジェネレータおよびエンティティ・アダプタ変数マッピング

- 3.6.2.5 事前移入アダプタ変数マッピング

4 コールバック・サービスの使用

- 4.1 コールバック・サービスの概要

- 4.1.1 コールバックの使用

- 4.1.2 イベント処理の理解

- 4.1.3 コールバックの再試行

- 4.2 Oracle Identity Manager属性のマッピング

- 4.3 イベント・コールバックの送信

- 4.4 コールバック・サービスの構成

- 4.4.1 CallbackConfiguration.xmlの理解

- 4.4.2 CallbackConfiguration.xmlのインポート

- 4.5 コールバック・サービスのトラブルシューティング

5 ルールの開発

- 5.1 「ビジネス・ルール定義」の概要

- 5.2 「イベント・ハンドラ・マネージャ」フォーム

- 5.3 「データ・オブジェクト・マネージャ」フォーム

- 5.3.1 「データ・オブジェクト・マネージャ」フォームのタブ

- 5.3.1.1 ハンドラのアタッチ・タブ

- 5.3.1.2 アダプタのマップ・タブ

- 5.4 「リコンシリエーション・ルール」フォーム

- 5.4.1 リコンシリエーション・ルールの定義

- 5.4.2 ルール要素の追加

- 5.4.3 ルール内でのルールのネスト

- 5.4.4 ルール要素またはルールの削除

6 スケジュール済タスクの開発

- 6.1 タスク作成の概要

- 6.1.1 タスク作成の手順

- 6.1.2 スケジュール済タスクの例

- 6.2 スケジュール済タスクのメタデータの定義

- 6.3 スケジュール済タスクXMLファイルの構成

- 6.4 スケジュール済タスク・クラスの開発

- 6.5 プラグインXMLファイルの構成

- 6.6 スケジュール済タスクのディレクトリ構造の作成

7 プラグインの開発

- 7.1 プラグイン・フレームワークのバックグラウンド

- 7.1.1 プラグイン・フレームワークについて

- 7.1.2 プラグイン・ストアについて

- 7.1.2.1 ファイル・ストア

- 7.1.2.2 データベース・ストア

- 7.1.3 プラグイン開発の手順

- 7.2 プラグインの構成

- 7.3 プラグインの定義と使用

- 7.3.1 プラグインの宣言

- 7.3.2 プラグイン・メタデータの指定

- 7.3.3 プラグインの開発

- 7.4 プラグインの登録

- 7.4.1 APIを使用したプラグインの登録および登録解除

- 7.4.2 プラグイン登録ユーティリティを使用したプラグインの登録および登録解除

- 7.5 マップされた値について

- 7.5.1 マップされた値へのアクセス

- 7.6 プラグイン・ポイント

8 ユーザー管理操作の拡張のためのイベント・ハンドラの開発

- 8.1 ユーザー管理操作の概要

- 8.2 イベント・ハンドラによるユーザー管理操作の拡張

- 8.2.1 イベント・ハンドラXMLファイルの要素の理解

- 8.2.2 カスタム・イベント・ハンドラの作成

- 8.2.2.1 カスタム・イベント・ハンドラの実装

- 8.2.2.2 カスタム・イベント・ハンドラのプラグインの作成

- 8.2.2.3 カスタム・イベントの定義

- 8.3 イベント・ハンドラのトラブルシューティング

9 LDAPコンテナ・ルールの構成

10 コンテキストの理解

- 10.1 子コンテキスト

- 10.2 コンテキスト・タイプ

第II部 アプリケーション固有のコネクタ

11 リソース・オブジェクトの開発

- 11.1 リソースの詳細の表示

- 11.2 リソースに関連付けられているユーザーおよび組織に関する作業

- 11.3 「リソース管理者」オプションの使用

- 11.3.1 リソースの管理者としてのロールの割当て

- 11.3.2 管理ロールの権限の更新

- 11.4 「リソース認可者」オプションの使用

- 11.5 「リソース・ワークフロー」オプションを使用したワークフローの表示

- 11.5.1 ワークフロー・ビジュアライザを開く

- 11.5.2 ワークフロー・ビジュアライザの要素

- 11.5.2.1 ワークフロー定義の「プロビジョニング」イベント・タブの使用

- 11.5.3 ワークフロー・ビジュアライザの操作

- 11.5.3.1 要素の並べ替え

- 11.5.3.2 展開ノードの使用

- 11.5.3.3 タスク詳細へのアクセス

- 11.6 「リソース・ワークフロー」オプションを使用したワークフローの作成および変更

- 11.6.1 ワークフロー・デザイナを開く

- 11.6.2 ワークフローの作成

- 11.6.3 ワークフロー・デザイナのメイン・ページ

- 11.6.3.1 情報

- 11.6.3.2 ツールバー

- 11.6.3.3 デザイナ・ページ

- 11.6.3.4 メニュー・セクション

- 11.6.4 タスクおよびレスポンスの作成と管理

- 11.6.4.1 一般メニュー・オプション

- 11.6.4.2 タスク・オプション

- 11.6.4.3 レスポンス・オプション

- 11.6.4.4 リンク・オプション

- 11.6.4.5 タスクの構成

- 11.6.4.6 レスポンスの構成

- 11.6.5 データ・フローの構成

- 11.7 ITリソースの作成

- 11.8 ITリソースの管理

- 11.8.1 ITリソースの表示

- 11.8.2 ITリソースの変更

- 11.8.3 ITリソースの削除

- 11.9 Design Consoleを使用したリソースの管理

- 11.9.1 リソース管理の概要

- 11.9.2 「ITリソース・タイプ定義」フォーム

- 11.9.2.1 ITリソース用のテンプレート(リソース・タイプ)の定義

- 11.9.2.2 「ITリソース・タイプ定義」フォームのタブ

- 11.9.2.3 ITリソース・タイプ定義表

- 11.9.3 「ルール・デザイナ」フォーム

- 11.9.3.1 ルールの作成

- 11.9.3.2 「ルール・デザイナ」フォームのタブ

- 11.9.3.3 ルール・デザイナ表

- 11.9.4 「リソース・オブジェクト」フォーム

- 11.9.4.1 リソース・オブジェクトの作成

- 11.9.4.2 「リソース・オブジェクト」フォームのタブ

- 11.9.4.3 複数の信頼できるソースのリコンシリエーション

- 11.9.5 サービス・アカウントの管理

12 プロビジョニング・プロセスの開発

- 12.1 プロセス管理の概要

- 12.2 「電子メール定義」フォーム

- 12.2.1 電子メール・サーバーの指定

- 12.2.2 「電子メール定義」フォーム

- 12.2.3 電子メール定義の作成

- 12.3 「プロセス定義」フォーム

- 12.3.1 プロセス定義の作成

- 12.3.2 「プロセス定義」フォームのタブ

- 12.3.2.1 「タスク」タブ

- 12.3.2.2 リコンシリエーション・フィールド・マッピング・タブ

- 12.3.2.3 「管理者」タブ

- 12.3.3 プロセス・タスクの変更

- 12.3.3.1 「一般」タブ

- 12.3.3.2 統合タブ

- 12.3.3.3 タスク依存性タブ

- 12.3.3.4 「レスポンス」タブ

- 12.3.3.5 取消し/リカバリ・タブ

- 12.3.3.6 「通知」タブ

- 12.3.3.7 タスクとオブジェクトのステータス・マッピング・タブ

- 12.3.3.8 タスクの編集ウィンドウの「割当て」タブ

13 プロセス・フォームの開発

- 13.1 「フォーム・デザイナ」フォーム

- 13.1.1 フォームの作成

- 13.1.2 「フォーム・デザイナ」フォームのタブ

- 13.1.2.1 「追加列」タブ

- 13.1.2.2 子表タブ

- 13.1.2.3 オブジェクト権限タブ

- 13.1.2.4 「プロパティ」タブ

- 13.1.2.5 「管理者」タブ

- 13.1.2.6 「使用方法」タブ

- 13.1.2.7 「事前移入」タブ

- 13.1.2.8 デフォルト列タブ

- 13.1.2.9 「ユーザー定義フィールド」タブ

- 13.1.3 フォームの追加バージョンの作成

- 13.2 「エラー・メッセージ定義」フォーム

- 13.2.1 エラー・メッセージの作成

14 リコンシリエーション操作のカスタマイズ

- 14.1 リコンシリエーションのスケジュール済タスクの開発

- 14.2 リコンシリエーションAPIの理解

- 14.3 信頼できるリコンシリエーションの後処理

- 14.4 リコンシリエーションのトラブルシューティング

- 14.4.1 一般的なリコンシリエーション問題のトラブルシューティング

- 14.4.2 信頼できるソースのリコンシリエーションのトラブルシューティング

- 14.4.3 ターゲット・リソース・リコンシリエーションのトラブルシューティング

- 14.4.4 データベース関連のリコンシリエーション問題のトラブルシューティング

15 参照定義、UDFおよびRemote Managerの開発

- 15.1 概要

- 15.2 「参照定義」フォーム

- 15.2.1 参照定義の作成

- 15.2.2 参照コード情報タブ

- 15.2.2.1 参照値の作成および変更

- 15.2.2.2 参照値の削除

- 15.2.3 ユーザーのチャレンジ質問の構成

- 15.3 「ユーザー定義フィールドの定義」フォーム

- 15.3.1 ユーザー定義フィールドのターゲット・フォームの選択

- 15.3.2 「ユーザー定義フィールドの定義」フォームのタブ

- 15.3.2.1 ユーザー定義列タブ

- 15.3.2.2 「プロパティ」タブ

- 15.3.2.3 「管理者」タブ

- 15.4 「Remote Manager」フォーム

第III部 Identity Connector Framework

16 Identity Connector Frameworkの理解

- 16.1 ICFアーキテクチャの概要

- 16.2 ICF APIの使用

- 16.2.1 ConnectorInfoManagerFactoryクラス

- 16.2.2 ConnectorInfoManagerインタフェース

- 16.2.3 ConnectorKeyクラス

- 16.2.4 ConnectorInfoインタフェース

- 16.2.5 APIConfigurationインタフェース

- 16.2.6 ConfigurationPropertiesインタフェース

- 16.2.7 ConnectorFacadeFactoryクラス

- 16.2.8 ConnectorFacadeインタフェース

- 16.3 ICF SPIの概要

- 16.3.1 必須インタフェースの実装

- 16.3.1.1 org.identityconnectors.framework.spi.Connector

- 16.3.1.2 org.identityconnectors.framework.spi.Configuration

- 16.3.2 機能ベースのインタフェースの実装

- 16.3.2.1 org.identityconnectors.framework.spi.PoolableConnector

- 16.3.2.2 org.identityconnectors.framework.spi.AttributeNormalizer

- 16.3.3 処理インタフェースの実装

- 16.3.3.1 SchemaOpインタフェースの実装

- 16.3.3.2 CreateOpインタフェースの実装

- 16.3.3.3 DeleteOpインタフェースの実装

- 16.3.3.4 SearchOpインタフェースの実装

- 16.3.3.5 UpdateOpインタフェースの実装

- 16.3.4 共通クラス

- 16.4 アイデンティティ・コネクタ・バンドルの拡張

- 16.5 アイデンティティ・コネクタ・サーバーの使用

- 16.5.1 Javaコネクタ・サーバーの使用

- 16.5.1.1 Javaコネクタ・サーバーのインストールおよび構成

- 16.5.1.2 Microsoft WindowsでのJavaコネクタ・サーバーの実行

- 16.5.1.3 SolarisおよびLinuxでのJavaコネクタ・サーバーの実行

- 16.5.1.4 Javaコネクタ・サーバーへのアイデンティティ・コネクタのインストール

- 16.5.1.5 SSLを使用したコネクタ・サーバーとの通信

- 16.5.2 Microsoft .NET Frameworkコネクタ・サーバーの使用

- 16.5.2.1 .NETコネクタ・サーバーのインストール

- 16.5.2.2 .NETコネクタ・サーバーの構成

- 16.5.2.3 トレース設定の構成

- 16.5.2.4 .NETコネクタ・サーバーの実行

- 16.5.2.5 .NETコネクタ・サーバーへの複数のコネクタのインストール

17 アイデンティティ・コネクタの開発

- 17.1 フラット・ファイル・コネクタの開発

- 17.1.1 ファイル入力および出力処理のサポート・クラス

- 17.2 Oracle Identity Managerデータベースへのアイデンティティ・コネクタ・バンドルのアップロード

- 17.2.1 Oracle Identity Managerへのコネクタ・バンドルの登録

- 17.2.2 基本的なアイデンティティ・コネクタ・メタデータの作成

- 17.2.2.1 ITリソース・タイプ定義の作成

- 17.2.2.2 リソース・オブジェクトの作成

- 17.2.2.3 参照の作成

- 17.2.3 プロビジョニング・メタデータの作成

- 17.2.3.1 プロセス・フォームの作成

- 17.2.3.2 アダプタの作成

- 17.2.3.3 プロセス定義の作成

- 17.2.3.4 プロビジョニング属性マッピング参照の作成

- 17.2.4 リコンシリエーション・メタデータの作成

- 17.2.4.1 リコンシリエーション・スケジュール・タスクの作成

- 17.2.4.2 リコンシリエーション・プロファイルの作成

- 17.2.4.3 リコンシリエーション・アクション・ルールの設定

- 17.2.4.4 リコンシリエーション・マッピングの作成

- 17.2.4.5 リコンシリエーション一致ルールの定義

- 17.3 フラット・ファイル・アカウントのプロビジョニング

第IV部 汎用テクノロジ・コネクタ

18 汎用テクノロジ・コネクタの理解

- 18.1 汎用テクノロジ・コネクタの必要性

- 18.2 汎用テクノロジ・コネクタの機能アーキテクチャ

- 18.2.1 リコンシリエーション・モジュールのプロバイダおよびデータセット

- 18.2.2 プロビジョニング・モジュールのプロバイダおよびデータセット

- 18.2.3 Oracle Identity Managerデータセット

- 18.3 汎用テクノロジ・コネクタの機能

- 18.3.1 リコンシリエーション・モジュールに固有の機能

- 18.3.1.1 信頼できるソースのリコンシリエーション

- 18.3.1.2 ユーザー・アカウント・ステータスのリコンシリエーション

- 18.3.1.3 完全リコンシリエーションおよび増分リコンシリエーション

- 18.3.1.4 バッチ・リコンシリエーション

- 18.3.1.5 複数値属性データ(子データ)の削除のリコンシリエーション

- 18.3.1.6 リコンシリエーション停止の失敗しきい値

- 18.3.2 その他の機能

- 18.3.2.1 カスタム・データ・フィールドおよびフィールド・マッピング

- 18.3.2.2 カスタム・プロバイダ

- 18.3.2.3 多言語サポート

- 18.3.2.4 カスタム日付書式

- 18.3.2.5 Oracle Identity Managerユーザー属性に対する変更のターゲット・システムへの伝播

- 18.4 汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト

- 18.4.1 「リコンシリエーション」と「プロビジョニング」の両方の選択

- 18.4.2 「リコンシリエーション」のみの選択

- 18.4.3 「プロビジョニング」のみの選択

- 18.5 このマニュアルでの汎用テクノロジ・コネクタに関する情報のロードマップ

19 汎用テクノロジ・コネクタ用事前定義済プロバイダ

- 19.1 共有ドライブ・リコンシリエーション・トランスポート・プロバイダ

- 19.2 CSVリコンシリエーション・フォーマット・プロバイダ

- 19.3 SPMLプロビジョニング・フォーマット・プロバイダ

- 19.3.1 ランタイム・パラメータ

- 19.3.2 設計パラメータ

- 19.3.3 必須でないパラメータ

- 19.3.4 値が事前定義済のパラメータ

- 19.4 Webサービス・プロビジョニング・トランスポート・プロバイダ

- 19.4.1 Oracle Identity Managerとターゲット・システムWebサービスの間のSSL通信の構成

- 19.5 変換プロバイダ

- 19.5.1 連結変換プロバイダ

- 19.5.2 翻訳変換プロバイダ

- 19.5.2.1 アカウント・ステータスのリコンシリエーションの構成

- 19.6 検証プロバイダ

20 汎用テクノロジ・コネクタ用カスタム・プロバイダの作成

- 20.1 プロバイダの役割

- 20.1.1 汎用テクノロジ・コネクタ作成中のプロバイダの役割

- 20.1.2 リコンシリエーション中のプロバイダの役割

- 20.1.3 プロビジョニング中のプロバイダの役割

- 20.2 カスタム・プロバイダの作成

- 20.2.1 プロバイダ要件の確認

- 20.2.1.1 リコンシリエーション・プロバイダ要件の確認

- 20.2.1.2 プロビジョニング・プロバイダ要件の確認

- 20.2.2 プロバイダ・パラメータの識別

- 20.2.3 値オブジェクトのJavaコード実装の開発

- 20.2.4 プロバイダSPIメソッドのJavaコード実装の開発

- 20.2.5 ロギングおよび例外処理のJavaコードの開発

- 20.2.6 プロバイダXMLファイルの作成

- 20.2.7 プロバイダのリソース・バンドル・エントリの作成

- 20.2.8 プロバイダのデプロイ

- 20.3 プロバイダの再利用

- 20.3.1 リコンシリエーション・プロバイダの再利用

- 20.3.2 プロビジョニング・プロバイダの再利用

- 20.4 カスタム・プロバイダのデプロイ

21 汎用テクノロジ・コネクタの作成および管理

- 21.1 概要

- 21.2 汎用テクノロジ・コネクタの作成

- 21.2.1 プロバイダ要件の確認

- 21.2.2 組み込むプロバイダの選択

- 21.2.3 前提条件への対応

- 21.2.4 管理およびユーザー・コンソールを使用したコネクタの作成

- 21.2.4.1 「ステップ1: 基本情報の指定」ページ

- 21.2.4.2 「ステップ2: パラメータ値の指定」ページ

- 21.2.4.3 「ステップ3: コネクタ構成の変更」ページ

- 21.2.4.4 「ステップ4: コネクタ・フォーム名の検証」ページ

- 21.2.4.5 「ステップ5: コネクタ情報の検証」ページ

- 21.2.5 リコンシリエーションの構成

- 21.2.6 プロビジョニングの構成

- 21.2.7 ロギングの有効化

- 21.3 汎用テクノロジ・コネクタの管理

- 21.3.1 汎用テクノロジ・コネクタの変更

- 21.3.2 汎用テクノロジ・コネクタのエクスポート

- 21.3.3 汎用テクノロジ・コネクタのインポート

- 21.4 カスタム・コネクタでの汎用接続プール・フレームワークの使用

- 21.4.1 ResourceConnectionインタフェースの具体的な実装の指定

- 21.4.2 追加のITResourceパラメータの定義

- 21.4.3 プールからの接続の取得およびリリース

- 21.4.4 サード・パーティ・プールの使用

- 21.4.5 例: ResourceConnectionの実装

- 21.5 ベスト・プラクティス

- 21.5.1 「基本情報の指定」ページの使用

- 21.5.2 「パラメータ値の指定」ページの使用

- 21.5.3 「コネクタ構成の変更」ページの使用

- 21.5.3.1 フィールドの名前

- 21.5.3.2 パスワード・フィールド

- 21.5.3.3 パスワード型フィールド

- 21.5.3.4 マッピング

- 21.5.3.5 「Oracle Identity Manager」データセット

- 21.5.4 共有ドライブ・リコンシリエーション・トランスポート・プロバイダの使用

- 21.5.5 カスタム・プロバイダの使用

- 21.5.6 コネクタ・オブジェクトの使用

- 21.5.7 汎用テクノロジ・コネクタの変更

22 汎用テクノロジ・コネクタのトラブルシューティング

- 22.1 汎用テクノロジ・コネクタに関する一般的な問題

- 22.1.1 作成の問題

- 22.1.2 多言語サポート

- 22.1.3 その他の一般的な問題

- 22.2 汎用テクノロジ・コネクタの構成に関する問題

- 22.2.1 汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前

- 22.2.2 「ステップ3: コネクタ構成の変更」ページ

- 22.2.3 コネクタ作成中のエラー

- 22.2.4 リコンシリエーション中のエラー

- 22.2.5 プロビジョニング中のエラー

第V部 リクエストおよび承認プロセス

23 リクエストの構成

- 23.1 手順1: リソースのリクエスト・データセットの作成

- 23.1.1 要素およびプロパティ

- 23.1.1.1 request-data-set要素

- 23.1.1.2 DataSetValidator要素

- 23.1.1.3 AttributeReference要素

- 23.1.1.4 Attribute要素

- 23.1.2 サンプル・リクエスト・データセット

- 23.1.3 子データ

- 23.1.4 共通リクエスト・データセット

- 23.1.5 リクエスト・データセットのローカライズされた値の構成

- 23.1.5.1 リクエスト・データセット属性のローカライゼーション

- 23.1.5.2 データセット属性のLookupQueryにおける列名のローカライゼーション

- 23.2 手順2: MDSへのリクエスト・データセットのアップロード

- 23.3 手順3: 承認に必要なSOAコンポジットの作成

- 23.4 手順4: Oracle Identity ManagerへのSOAコンポジットの登録

- 23.5 手順5: リクエスト承認の定義

- 23.5.1 承認ワークフロー

- 23.5.2 承認レベル

- 23.5.2.1 テンプレート・レベルの承認

- 23.5.2.2 リクエスト・レベルの承認

- 23.5.2.3 操作レベルの承認

- 23.5.3 承認ポリシーの作成

- 23.6 手順6: リクエスト・テンプレートの作成

- 23.7 リクエスト管理操作の拡張

- 23.7.1 リクエスト・ステータス変更に基づくカスタム・コードの実行

- 23.7.2 リクエスト・データの検証

- 23.7.3 リクエスト作成時の属性値の事前移入

24 Oracle SOA Suiteにおける承認プロセス開発の理解

- 24.1 Oracle SOA Suiteとの統合

- 24.1.1 統合の要件

- 24.1.2 統合コンポーネント

- 24.2 事前定義済SOAコンポジット

- 24.3 Oracle Identity Managerに対する承認プロセスの開発

- 24.4 Oracle Identity ManagerのSOAコンポジットの監視

- 24.5 Oracle Identity ManagerからSOAへの接続の有効化

25 SOAコンポジットの開発

- 25.1 新しいSOAコンポジットの作成

- 25.1.1 新しいSOAコンポジットの作成

- 25.1.2 SOAコンポジットのOracle SOAサーバーへのデプロイ

- 25.1.3 SSLモードでのOracle Identity Managerとの通信のための前提条件

- 25.1.4 SOAコンポジットのOracle Identity Managerへの登録

- 25.2 既存のSOAコンポジットの変更

- 25.2.1 JDeveloperでのSOAプロジェクトの変更

- 25.2.2 Oracle Identity ManagerでのSOAコンポジットの無効化

- 25.2.3 SOAコンポジットのOracle SOAサーバーへのデプロイ

- 25.2.4 Oracle Identity ManagerでのSOAコンポジットの有効化

26 SOAコンポジットでのOracle Identity Manager APIの使用

- 26.1 ソフトウェア要件

- 26.2 JDeveloperを使用したSOAコンポジットの構成

- 26.2.1 JDeveloperでのアプリケーション・サーバー接続の設定

- 26.2.2 JDeveloperでのSOAコンポジットの設定

- 26.2.3 SOAコンポジットの更新

- 26.2.4 SOAコンポジットのデプロイ

- 26.2.5 設定のテスト

第VI部 職務の分離

27 職務の分離(SoD)の使用

- 27.1 SoD検証プロセスの理解

- 27.2 SoD起動ライブラリの概要

- 27.3 SoD対応コネクタのインストール

- 27.4 SILおよびSILプロバイダのデプロイ

- 27.5 SoDエンジンの構成

- 27.5.1 Oracle Application Access Controls Governorの構成

- 27.5.2 SAP GRCの構成

- 27.5.3 Oracle Identity Analyticsの構成

- 27.6 SoDの有効化および無効化

- 27.6.1 SoDの有効化

- 27.6.2 SoDの無効化

- 27.7 SSL通信の有効化

- 27.7.1 Oracle Application Access Controls GovernorとOracle Identity Manager間のSSLの有効化

- 27.7.2 SAP GRCとOracle Identity Manager間のSSLの有効化

- 27.7.3 SSL経由でのSoDチェックWebサービスのコール

- 27.8 SoD非対応コネクタでのワークフローの構成

- 27.8.1 SoD用の承認ワークフローの変更

- 27.8.2 SoD用のプロビジョニング・ワークフローの変更

- 27.9 権限としてのフィールドのマーク

- 27.9.1 権限データを保持するリクエスト・データセット属性のマーク

- 27.9.2 権限データを保持する子プロセス・フォーム表のマーク

- 27.10 ターゲット・システムおよびSoDエンジンのカスタムの組合せ

- 27.10.1 カスタム・ターゲット・システムの使用

- 27.10.1.1 前提条件への対応

- 27.10.1.2 変換レイヤーの作成

- 27.10.1.3 変換レイヤーのデプロイ

- 27.10.1.4 登録XMLファイルの変更

- 27.10.1.5 新規ターゲット・システムの登録

- 27.10.2 カスタムSoDエンジンの追加

- 27.10.2.1 前提条件への対応

- 27.10.2.2 SoDエンジンの情報を保持するためのITリソースの作成

- 27.10.2.3 プロバイダ用サービス・コンポーネントの実装

- 27.10.2.4 サービス・コンポーネントのデプロイ

- 27.10.2.5 新規SoDエンジン用登録XMLファイルの変更

- 27.10.2.6 新規SILプロバイダの登録

- 27.11 Oracle Identity AnalyticsによるロールSoDチェックの実行

- 27.11.1 ロールSoDチェックの有効化

- 27.11.2 ロールSoDチェックの使用

- 27.11.2.1 ユーザーがロールを要求する場合のSoDチェック

- 27.11.2.2 ユーザーがロールを削除する場合のSoDチェック

- 27.11.2.3 管理者がロールの割当てを要求する場合のSoDチェック

- 27.11.2.4 管理者がロールの削除を要求する場合のSoDチェック

- 27.11.2.5 コールバック・ポリシーを持つロールの割当て/削除リクエストに対するSoDチェック

- 27.12 プロビジョニング・ワークフローでのSoDの使用

- 27.12.1 ダイレクト・プロビジョニング

- 27.12.2 権限の更新

- 27.12.3 リクエスト・プロビジョニング

- 27.12.4 プロビジョニング済リソースを変更するためのリクエストの作成

- 27.12.5 DefaultSODApprovalワークフローによるリクエスト・プロビジョニング

- 27.12.6 承認者専用フィールドおよびDefaultSODApprovalワークフローによるリクエスト・プロビジョニング

- 27.12.7 自分のためのリクエスト

- 27.12.8 アクセス・ポリシーに基づくプロビジョニング

- 27.12.9 アクセス・ポリシーに基づくプロビジョニングを使用した権限の更新

- 27.13 SoD関連イベントのロギングの有効化

- 27.14 SoDチェックのトラブルシューティング

第VII部 カスタマイズ

28 Oracle Identity Managerのインタフェースのカスタマイズ

- 28.1 ブランド・カスタマイズ

- 28.1.1 ログイン・ページ

- 28.1.2 アイデンティティ管理

- 28.1.3 認証されていないセルフ・サービス

- 28.1.4 認証されたセルフ・サービス

- 28.1.5 拡張管理

- 28.2 スタイルシートの変更

- 28.2.1 スタイルシートの概要

- 28.2.2 カスタム・スキンの作成およびスタイルシートの上書き

- 28.2.3 暫定UIにおけるスタイルシート

- 28.2.3.1 変更するファイル

- 28.2.3.2 暫定UIの外観のカスタマイズ

- 28.3 ボタン・ラベルの名前変更

- 28.3.1 アイデンティティ管理

- 28.3.2 その他のコンソール

- 28.3.3 暫定UIのポップアップ

- 28.3.3.1 変更するファイル

- 28.3.3.2 説明とラベルのカスタマイズ

- 28.4 メニューおよびタブの使用

- 28.4.1 Oracle Identity Administration

- 28.4.2 その他のコンソール

- 28.5 機能の無効化

- 28.5.1 認可ポリシーを介した機能へのアクセスの無効化

- 28.5.2 その他の管理機能

- 28.5.3 その他のコンソール

- 28.6 コンソールの表での列の追加または削除

- 28.6.1 アイデンティティ管理

- 28.6.2 暫定UI

- 28.6.2.1 検索ドロップダウン項目のカスタマイズ

- 28.6.2.2 検索ドロップダウン項目数および検索結果数のカスタマイズ

- 28.7 データ・カスタマイズ

- 28.7.1 拡張管理

- 28.7.2 認証されていないセルフ・サービス

- 28.7.3 認証されたセルフ・サービス

- 28.8 カスタムURLの挿入

- 28.8.1 アイデンティティ管理のカスタムURL

- 28.8.2 その他のコンソールのカスタムURL

- 28.9 ポップアップ・プロパティの変更

- 28.10 ワークフロー・デザイナのカスタマイズ

29 カスタムADFタブのセルフ・サービスへの追加

30 一般的なカスタマイズの概念

- 30.1 ルール要素、変数、データ型およびシステム・プロパティ

- 30.2 サービス・アカウント

- 30.2.1 サービス・アカウントのカスタマイズ: シナリオ1

- 30.2.2 サービス・アカウントのカスタマイズ: シナリオ2

- 30.3 Design Consoleのアクション

第VIII部 APIおよびWebサービス

31 APIの使用

- 31.1 Oracle Identity Managerサービスへのアクセス

- 31.1.1 OIMClientの使用

- 31.1.2 tcUtilityFactoryの使用

- 31.2 Oracle Identity Managerサービス

- 31.2.1 Oracle Identity Manager 11gリリース1(11.1.1)で導入されたサービス

- 31.2.2 従来のサービスまたはユーティリティ

- 31.3 よく使用されるサービス

- 31.3.1 従来のサービスと新規サービス間のマッピング

- 31.4 Oracle Identity Manager用クライアントの開発

- 31.4.1 クライアント開発の前提条件

- 31.4.2 設定と構成

- 31.5 従来のOracle Identity Manager APIの使用

- 31.5.1 結果セット・オブジェクトの使用方法

- 31.5.2 Oracle Identity Manager例外の処理

- 31.5.3 クリーンアップ

- 31.6 コード・サンプル

32 SPMLサービスの使用

- 32.1 概要

- 32.1.1 SPMLの相互作用について

- 32.1.2 統合インタフェース

- 32.2 アイデンティティの作成(SPMLコア・サービス: addRequest)

- 32.3 ユーザー、ロール、属性およびロール・メンバーシップの変更(SPMLコア・サービス: modifyRequest)

- 32.4 アイデンティティまたはロールの削除(SPMLコア・サービス: deleteRequest)

- 32.5 リクエスト・ステータスの確認(SPMLコア・サービス: statusRequest)

- 32.6 使用可能なターゲットのリスト(SPMLコア・サービス: listTargets)

- 32.7 ユーザーの無効化(SPML一時停止サービス: suspendRequest)

- 32.8 ユーザーの有効化(SPML一時停止サービス: resumeRequest)

- 32.9 ユーザーがアクティブであるかどうかの確認(SPML一時停止サービス: activeRequest)

- 32.10 ユーザー名の検証(SPMLユーザー名サービス: validateUsername)

- 32.11 ユーザー名の取得(SPMLユーザー名: suggestUsername)

- 32.12 SPML Webサービスの保護

- 32.12.1 Webサービスのセキュリティについて

- 32.12.2 リクエストの例

- 32.12.3 ポリシーの適用

- 32.13 サポートされていない操作

第IX部 ユーティリティ

33 MDSユーティリティとユーザーが修正可能なメタデータ・ファイル

- 33.1 MDSユーティリティの環境の設定

- 33.2 プロパティ・ファイルの構造

- 33.3 ユーザーが修正可能なメタデータ・ファイル

- 33.4 MDSユーティリティの使用例

34 バルク・ロード・ユーティリティの使用

- 34.1 バルク・ロード・ユーティリティの機能

- 34.2 バルク・ロード・ユーティリティのインストール

- 34.2.1 ユーティリティを構成するスクリプト

- 34.2.2 バルク・ロード操作中に使用される一時表

- 34.2.3 ユーティリティで提供されるオプション

- 34.3 バルク・ロード操作用のデータベースの準備

- 34.3.1 一時表の表領域の作成

- 34.3.2 Oracle Identity Manager表領域でのデータファイルの作成

- 34.4 ユーティリティの実行

- 34.5 OIMユーザー・データのロード

- 34.5.1 ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定

- 34.5.2 バルク・ロード操作用の入力ソースの作成

- 34.5.2.1 入力ソースとしてのCSVファイルの使用

- 34.5.2.2 入力ソースとしてのデータベース表の作成

- 34.5.3 ユーティリティの入力パラメータの値の確認

- 34.5.4 操作の進捗の監視

- 34.5.5 操作中に記録された例外の処理

- 34.5.6 例外の修正およびデータ・レコードのリロード

- 34.5.7 バルク・ロード操作の結果の検証

- 34.6 アカウント・データのロード

- 34.6.1 バルク・ロード操作用の入力ソースの作成

- 34.6.1.1 入力ソースとしてのCSVファイルの使用

- 34.6.1.2 入力ソースとしてのデータベース表の作成

- 34.6.2 ユーティリティの入力パラメータの値の確認

- 34.6.3 操作の進捗の監視

- 34.6.4 操作中に記録された例外の処理

- 34.6.5 例外の修正およびデータ・レコードのリロード

- 34.6.6 バルク・ロード操作の結果の検証

- 34.7 ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロード

- 34.7.1 バルク・ロード操作用の入力ソースの作成

- 34.7.1.1 入力ソースとしてのCSVファイルの使用

- 34.7.1.2 入力ソースとしてのデータベース表の作成

- 34.7.2 ユーティリティの入力パラメータの値の確認

- 34.7.3 操作の進捗の監視

- 34.7.4 操作中に記録された例外の処理

- 34.7.5 例外の修正およびデータ・レコードのリロード

- 34.7.6 バルク・ロード操作の結果の検証

- 34.8 操作中に記録されるデータ

- 34.9 バルク・ロード操作からのパフォーマンス・データの収集

- 34.10 バルク・ロード操作後のクリーンアップ

- 34.11 監査スナップショットの生成

35 JARおよびリソース・バンドルのアップロード・ユーティリティ

- 35.1 JARのアップロード・ユーティリティ

- 35.2 JARのダウンロード・ユーティリティ

- 35.3 JARの削除ユーティリティ

- 35.4 リソース・バンドルのアップロード・ユーティリティ

- 35.5 リソース・バンドルのダウンロード・ユーティリティ

- 35.6 リソース・バンドルの削除ユーティリティ

第X部 レポート作成

36 レポートの構成

- 36.1 Oracle Identity Managerレポートについて

- 36.2 Oracle BI Publisherについて

- 36.3 サポートされる製品

- 36.4 ライセンス

- 36.5 Oracle Identity Managerレポートのデプロイ

- 36.5.1 11gリリース1(11.1.1)へのアップグレード

- 36.5.2 11gリリース1(11.1.1)のインストール

- 36.5.2.1 Oracle Identity Managerレポート・ディレクトリについて

- 36.5.2.2 Oracle BI Publisherの入手およびインストール

- 36.5.2.3 Oracle Identity Managerレポートのインストール

- 36.6 Oracle Identity Managerレポートの構成

- 36.6.1 Oracle Identity Manager用のOracle Identity Managerレポートの構成

- 36.6.2 BPELベースのOracle Identity Managerレポートのセカンダリ・データソースの構成

- 36.7 Oracle Identity Managerレポートの生成

- 36.7.1 サンプル・データソースに対するサンプル・レポートの生成

- 36.7.2 本番JDBCデータソースに対するレポートの生成

- 36.7.3 BPELベースのJDBCデータソースに対するレポートの生成

37 権限の開発

- 37.1 使用可能権限および割り当てられた権限

- 37.2 権限データ取得プロセス

- 37.2.1 使用可能権限に関するデータの取得

- 37.2.2 割り当てられた権限に関するデータの取得

- 37.3 子プロセス・フォームでの権限属性のマーク

- 37.4 権限データを使用するためのスケジュール済タスクの構成

- 37.4.1 権限リスト

- 37.4.2 権限割当て

- 37.4.3 権限更新

- 37.5 割り当てられた権限に対する変更の取得の無効化

- 37.6 権限関連レポート

- 37.6.1 権限アクセス・リスト

- 37.6.2 権限アクセス・リスト履歴

- 37.6.3 ユーザー・リソース権限

- 37.6.4 ユーザー・リソース権限履歴

第XI部 付録

A スケジュール済タスクの構成ファイル

- A.1 スケジューラXMLファイルの構造

- A.2 scheduledTasks要素

- A.3 task要素

- A.4 name要素

- A.5 class要素

- A.6 description要素

- A.7 retry要素

- A.8 parameters要素

- A.9 string-param要素

- A.10 number-param要素

- A.11 boolean-param要素

B SPML属性とLDAPマッピング、およびOracle Identity Managerの属性

- B.1 アイデンティティのPSO属性

- B.1.1 カスタム・アイデンティティ属性

- B.2 ロールのPSO属性

- B.2.1 カスタム・ロール属性

- B.3 プリファレンス属性

- B.4 Oracle Identity Managerの属性における特殊文字制限

- B.4.1 すべての属性で使用可能な文字

- B.4.2 パスワード・フィールドにおける特殊文字

- B.4.3 一重引用符の使用

- B.4.4 セミコロンの使用

- B.4.5 サポートされていない特殊文字

- B.5 操作データ

- B.5.1 操作データを渡す場合

- B.5.2 参照データを渡す場合

C SPMLの例

- C.1 SPMLの例 - ユーザーの追加

- C.2 SPMLの例 - ユーザーの削除

- C.3 SPMLの例 - ユーザーの変更

- C.4 SPMLの例 - ユーザーの再開

- C.5 SPMLの例 - ユーザー名の提案

- C.6 SPMLの例 - ユーザーの一時停止

- C.7 SPMLの例 - ユーザー名の検証

- C.8 SPMLの例 - ユーザーがアクティブかどうかのチェック

- C.9 SPMLの例 - ユーザー名ポリシーの参照

- C.10 SPMLの例 - ユーザーの追加とロールの割当て

- C.11 SPMLの例 - ロール・メンバーシップの割当て

- C.12 SPMLの例 - ロール・メンバーシップの失効

- C.13 SPMLの例 - ロールの追加

- C.14 SPMLの例 - 親を持つロールの追加

- C.15 SPMLの例 - ロールの変更

- C.16 SPMLの例 - ロールへの親の追加

- C.17 SPMLの例 - ロールの付与

- C.18 SPMLの例 - ロールの削除

- C.19 SPMLの例 - ステータスのリクエスト

D メタデータ列コード

- D.1 メタデータ列コードの抽出

- D.2 メタデータ列コードのマッピング情報

索引

例一覧

- 4-1 サンプルCallbackConfiguration.xml

- 6-1 スケジュール済タスクのサンプルXML

- 6-2 スケジュール済タスクのディレクトリ構造

- 7-1 サンプルPlugin.xml

- 8-1 カスタム・イベント・ハンドラの必須の名前空間定義

- 8-2 カスタム検証ハンドラのサンプル

- 8-3 カスタム前処理イベント・ハンドラのサンプル

- 8-4 カスタム後処理イベント・ハンドラのサンプル

- 8-5 カスタム・イベント定義のサンプル・メタデータXMLファイル

- 16-1 ConnectorInfoManagerFactoryの実装

- 16-2 ConnectorInfoManagerの実装

- 16-3 ConnectorKeyの実装

- 16-4 ConnectorInfoの実装

- 16-5 APIConfiguration定義

- 16-6 setPropertyValueメソッド・シグネチャ

- 16-7 ConfigurationPropertiesの実装

- 16-8 ConnectorFacadeFactoryの定義

- 16-9 ConnectorFacadeの実装

- 16-10 フラット・ファイル・コネクタの実装

- 16-11 initメソッドの実装

- 16-12 disposeメソッドの実装

- 16-13 getConfigurationメソッドの実装

- 16-14 構成実装

- 16-15 validateメソッドの実装

- 16-16 setConnectorMessagesメソッドの定義

- 16-17 getConnectorMessagesメソッドの定義

- 16-18 フラット・ファイルPoolableConnectorの実装

- 16-19 checkAliveメソッドの実装

- 16-20 normalizeAttributeメソッドの定義

- 16-21 schemaメソッド・シグネチャ

- 16-22 schemaメソッドの実装

- 16-23 createメソッド・シグネチャ

- 16-24 createメソッドの実装

- 16-25 deleteメソッド・シグネチャ

- 16-26 deleteメソッドの実装

- 16-27 createFilterTranslatorメソッド・シグネチャ

- 16-28 createFilterTranslatorメソッドの実装

- 16-29 executeQueryメソッド・シグネチャ

- 16-30 executeQueryメソッドの実装

- 16-31 updateメソッド・シグネチャ

- 16-32 updateメソッドの実装

- 16-33 トレース設定の定義

- 17-1 AbstractConfigurationの実装

- 17-2 PoolableConnectorの実装

- 17-3 AbstractFilterTranslator<T>の実装

- 17-4 MANIFEST.MFファイル

- 17-5 FlatFileIOFactory

- 17-6 FlatFileMetadata

- 17-7 FlatFileParser

- 17-8 FlatFileWriter

- 17-9 スケジュール済タスク詳細が含まれたデプロイメント・マネージャXML

- 21-1 ResourceConnection実装の例

- 23-1 ADリソースのプロビジョニング

- 23-2 Create Userデータセット

- 23-3 E-Businessリソース・データセットのプロビジョニング

- 26-1 埋込みJavaソース・コード

- 27-1 登録スクリプトの実行例

- 31-1 Oracle Identity Manager情報の取得

- 34-1 OIMユーザー・データのロード後に生成されるログ・ファイルの例

- 34-2 アカウント・データのロード後に生成されるログ・ファイルの例

- 34-3 OIMロール・データのロード後に生成されるログ・ファイルの例

図一覧

- 1-1 Design Consoleのメイン画面

- 1-2 Design Consoleツールバー

- 1-3 Design Consoleエクスプローラ

- 1-4 Design Consoleワークスペース

- 1-5 表ビュー

- 1-6 「参照」ダイアログ・ボックス

- 1-7 日時ウィンドウ

- 1-8 リスト・フィールド

- 1-9 「注意」ウィンドウ

- 1-10 Design Console - フォームのタブ

- 1-11 ユーザー・フォームの「割当て」ウィンドウ

- 1-12 検索問合せでのフィルタの使用

- 1-13 複数のレコードが返される

- 1-14 問合せサイズ超過ダイアログ・ボックス

- 1-15 Design Consoleのメイン画面

- 2-1 アダプタの機能

- 2-2 「アダプタ・ファクトリ」フォーム

- 2-3 「アダプタ・マネージャ」フォーム

- 4-1 コールバック・サービス・プロセス

- 5-1 「イベント・ハンドラ・マネージャ」フォーム

- 5-2 「データ・オブジェクト・マネージャ」フォーム

- 5-3 「リコンシリエーション・ルール」フォーム

- 11-1 「凡例」ページ

- 11-2 ワークフロー・ビジュアライザに表示されたサンプル・ワークフロー

- 11-3 ワークフロー・ビジュアライザでのドラッグ・アンド・ドロップの使用

- 11-4 タスク・ノードの使用(ショートカット・メニュー)

- 11-5 ワークフロー・ビジュアライザの閉じたレスポンス・サブツリー

- 11-6 「ワークフローの作成」ダイアログ・ボックス

- 11-7 ワークフロー・デザイナのメイン・ページ

- 11-8 「ワークフロー構成」ダイアログ・ボックス

- 11-9 「タスク・ライブラリ」ページ

- 11-10 「表示オプションの設定」ダイアログ・ボックス

- 11-11 「凡例」ダイアログ・ボックス

- 11-12 「ユーザー・イベント参照の追加」ダイアログ・ボックス

- 11-13 「参照イベントの作成」ダイアログ・ボックス

- 11-14 「参照イベントの編集」ダイアログ・ボックス

- 11-15 「参照イベントの削除」ダイアログ・ボックス

- 11-16 組織イベント参照の追加ダイアログ・ボックス

- 11-17 「参照イベントの作成」ダイアログ・ボックス

- 11-18 「参照イベントの編集」ダイアログ・ボックス

- 11-19 「参照イベントの削除」ダイアログ・ボックス

- 11-20 リソース・イベント参照の追加ダイアログ・ボックス

- 11-21 フォーム・イベント参照の追加ダイアログ・ボックス

- 11-22 「タスクの詳細」ダイアログ・ボックス

- 11-23 「一般」タブ

- 11-24 「自動化」タブ

- 11-25 「通知」タブ

- 11-26 「タスクの割当て」タブ

- 11-27 「タスク割当てルール」ダイアログ・ボックス

- 11-28 「タスクの詳細」ダイアログ・ボックス

- 11-29 「リソース・ステータス管理」タブ

- 11-30 「レスポンスの詳細」ダイアログ・ボックス

- 11-31 「リコンシリエーション・データ・フローの構成」ページ

- 11-32 「ITリソース・タイプ定義」フォーム

- 11-33 「ルール・デザイナ」フォーム

- 11-34 「ルール・デザイナ」フォームのルール要素タブ

- 11-35 ルール要素の編集ウィンドウ

- 11-36 「ルール・デザイナ」フォームの使用方法タブ

- 11-37 ルール・デザイナ表

- 11-38 「リソース・オブジェクト」フォーム

- 11-39 信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合

- 11-40 信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合

- 12-1 「電子メール定義」フォーム

- 12-2 「プロセス定義」フォーム

- 12-3 「プロセス定義」フォームの「タスク」タブ

- 12-4 「プロセス定義」フォームのリコンシリエーション・フィールド・マッピング・タブ

- 12-5 ハンドラの選択ダイアログ・ボックス

- 13-1 「フォーム・デザイナ」フォーム

- 13-2 「フォーム・デザイナ」フォームのオブジェクト権限タブ

- 13-3 「フォーム・デザイナ」フォームの「プロパティ」タブ

- 13-4 「プロパティの追加」ダイアログ・ボックス

- 13-5 値が入力された「プロパティの追加」ダイアログ・ボックス

- 13-6 「プロパティの追加」ダイアログ・ボックス

- 13-7 「プロパティの編集」ダイアログ・ボックス

- 13-8 「フォーム・デザイナ」フォームの「管理者」タブ

- 13-9 「エラー・メッセージ定義」フォーム

- 14-1 無効なアクション・ルール

- 14-2 有効なアクション・ルール

- 15-1 「参照定義」フォーム

- 15-2 「ユーザー定義フィールドの定義」フォームのユーザー定義列タブ

- 15-3 「ユーザー定義フィールド」ダイアログ・ボックス

- 15-4 値が入力された「ユーザー定義フィールド」ダイアログ・ボックス

- 15-5 「ユーザー定義フィールドの定義」フォームの「プロパティ」タブ

- 15-6 「ユーザー定義フィールドの定義」フォームの「管理者」タブ

- 15-7 「Remote Manager」フォーム

- 16-1 Identity Connector Frameworkのデプロイメント

- 16-2 ICFとコネクタ・バンドルの互換性

- 16-3 ICFコネクタおよびコネクタ・サーバー

- 17-1 Design ConsoleのITリソース・タイプ定義

- 17-2 Design Consoleの「リソース・オブジェクト」

- 17-3 Design Consoleの「参照定義」

- 17-4 Design Consoleの2番目の「参照定義」

- 17-5 Design Consoleの「フォーム・デザイナ」

- 17-6 Design Consoleの「フォーム・デザイナ」のプロパティ

- 17-7 Design Consoleの「アダプタ・ファクトリ」の変数リスト

- 17-8 Design Consoleの「アダプタ・ファクトリ」

- 17-9 Design Consoleの「プロセス定義」

- 17-10 Design Consoleのタスクの編集画面

- 17-11 Design Consoleの「統合」タブ

- 17-12 Design Consoleでのレスポンスの構成

- 17-13 タスクとオブジェクトのステータス・マッピング

- 17-14 拡張コンソールの「スケジュール・タスク」画面

- 17-15 Design Consoleのオブジェクト・リコンシリエーション

- 17-16 Design Consoleのリコンシリエーション・アクション・ルール

- 17-17 Design Consoleのリコンシリエーション・フィールド・マッピング

- 17-18 リコンシリエーション一致ルールの追加

- 18-1 汎用テクノロジ・コネクタの機能アーキテクチャ

- 19-1 SPMLプロビジョニング・フォーマット・プロバイダとターゲット・システムの間の通信

- 20-1 メタデータの検出プロセス

- 20-2 リコンシリエーション中のプロバイダの役割

- 20-3 プロビジョニング中のプロバイダの役割

- 21-1 「ステップ1: 基本情報の指定」ページ

- 21-2 「ステップ2: パラメータ値の指定」ページの最初のセクション

- 21-3 「ステップ2: パラメータ値の指定」ページの2番目のセクション

- 21-4 「ステップ2: パラメータ値の指定」ページの3番目のセクション

- 21-5 「ステップ3: コネクタ構成の変更」ページ

- 21-6 フィールド追加後の「ステップ3: コネクタ構成の変更」ページ

- 21-7 「ステップ4: コネクタ・フォーム名の検証」ページ

- 21-8 「ステップ5: コネクタ情報の検証」ページの最初のセクション

- 21-9 「ステップ5: コネクタ情報の検証」ページの2番目のセクション

- 23-1 リクエスト・サービスおよびSOAの統合

- 27-1 Oracle Identity ManagerでのSoD検証プロセス

- 27-2 Oracle Identity ManagerでのSoD実装のアーキテクチャ

- 27-3 SoDCheckAttributesシステム属性

- 27-4 TopologyNameパラメータ

- 27-5 非同期SoDチェックのリクエスト履歴

- 27-6 SoDCheck Webサービス・コールを含むワークフロー

- 27-7 承認タスクを含むSwitch Case

- 27-8 承認タスクの割当て

- 27-9 SoDチェックを実行するように変更されたワークフロー

- 27-10 SoDチェック・パートナ・リンク

- 27-11 最終的なAssignアクティビティ

- 27-12 「Invoke」ダイアログ・ボックス

- 27-13 「Receive」ダイアログ・ボックス

- 27-14 Switch Case

- 27-15 リクエストのためのWSポリシーの構成

- 27-16 クライアント・セキュリティ・ポリシーの選択

- 27-17 サーバー・セキュリティ・ポリシーの選択

- 36-1 Oracle Identity Managerレポートのアーキテクチャ

表一覧

- 2-1 「マップ先」メニューの項目

- 2-2 オブジェクト・インスタンスの選択ウィンドウのオプション

- 2-3 アダプタ・ファクトリ・タスクの追加ウィンドウの領域

- 2-4 アダプタ・ファクトリ・タスクの追加ウィンドウの領域

- 2-5 オペランドのタイプ

- 2-6 特定の条件文から発生するアクション

- 2-7 アダプタ・ファクトリ・ロジック・タスクの追加ウィンドウの領域

- 2-8 FOR条件文の場合のアダプタ・ファクトリ・ロジック・タスク・パラメータの追加

- 3-1 変数のデータ・マッピング・ダイアログ・ボックスのフィールド

- 3-2 変数のデータ・マッピングの編集ダイアログ・ボックスのフィールド

- 3-3 「事前移入アダプタ」ダイアログ・ボックスのフィールド

- 3-4 アダプタ変数のマップ・ウィンドウのフィールド

- 3-5 変数のデータ・マッピング・ウィンドウのフィールド

- 4-1 Oracle Identity Managerとコールバック・サービス・ユーザー属性のマッピング

- 4-2 Oracle Identity Managerとコールバック・サービス・ロール属性のマッピング

- 4-3 コールバック開始イベント

- 4-4 コールバック・サービスのトラブルシューティング

- 5-1 「イベント・ハンドラ・マネージャ」フォームのフィールド

- 5-2 「データ・オブジェクト・マネージャ」フォームのフィールド

- 5-3 変換プロパティ

- 7-1 プラグイン・ポイント

- 8-1 eventhandlers要素内の一般的なサブ要素

- 8-2 eventhandlers要素内のサブ要素の一般的な属性

- 8-3 カスタム・イベント・ハンドラを作成するためのSPI

- 11-1 ワークフロー・ビジュアライザの情報フィールド

- 11-2 ワークフロー・ビジュアライザのツールバーのメニュー項目

- 11-3 「一般」タブのフィールド

- 11-4 「自動化」タブのフィールド

- 11-5 「リソース・ステータス管理」タブのフィールド

- 11-6「ワークフローの作成」ダイアログ・ボックスのフィールド

- 11-7「ワークフロー構成」ダイアログ・ボックスのフィールド

- 11-8 「ITリソース・タイプ定義」フォームのフィールド

- 11-9 「ルール・デザイナ」フォームのフィールド

- 11-10 ルール要素の編集ダイアログ・ボックスのフィールド

- 11-11 ルール・デザイナ表の情報

- 11-12 「リソース・オブジェクト」フォームのフィールド

- 11-13 ルール条件と使用可能なルール・アクション

- 12-1 「電子メール定義」フォームのフィールド

- 12-2 「プロセス定義」フォームのフィールド

- 12-3 タスクの編集ダイアログ・ボックスの「一般」タブのフィールド

- 12-4 タスクの編集ウィンドウの「割当て」タブのフィールド

- 13-1 「フォーム・デザイナ」フォームのフィールド

- 13-2 「追加列」タブのフィールド

- 13-3 「プロパティの追加」ダイアログ・ボックスのフィールド

- 13-4 「プロパティの追加」ダイアログ・ボックスのフィールド

- 13-5 「エラー・メッセージ定義」フォームのフィールド

- 14-1 リコンシリエーションのトラブルシューティング

- 15-1 「参照定義」フォームのフィールド

- 15-2 「ユーザー定義フィールドの定義」フォームのフィールド

- 15-3 「ユーザー定義フィールド」ダイアログ・ボックスのフィールド

- 16-1 ConnectorServer.propertiesファイル内のプロパティ

- 16-2 ConnectorServer.batスクリプトでサポートされているオプション

- 16-3 connectorserver.shスクリプトでサポートされているオプション

- 17-1 「フォーム・デザイナ」のフィールド

- 19-1 検証プロバイダ

- 20-1 プロバイダ操作中に使用される値オブジェクト

- 20-2 サポートされる各プロバイダ・タイプに固有のロギング・モジュール

- 20-3 プロバイダXMLファイルの要素

- 21-1 「ステップ1: 基本情報の指定」ページのサンプル・エントリ

- 21-2 「ステップ2: パラメータ値の指定」ページのサンプル・エントリ

- 21-3 様々な入力条件によるデータセットおよびフィールドの表示

- 21-4 参照プロパティ

- 21-5 ResourceConnectionのメソッド

- 21-6 ITResourceパラメータ

- 21-7 GenericPoolインタフェースのメソッド

- 22-1 リコンシリエーション中に発生する一般的なエラー

- 22-2 プロビジョニング中に発生する一般的なエラー

- 23-1 Oracle Identity Managerに付属のデフォルトのリクエスト・データセット

- 23-2 リソース・エンティティのリクエスト・データセット

- 23-3 リクエスト・タイプおよび関連付けられているキー

- 24-1 事前定義済ワークフロー・コンポジット

- 25-1 デフォルトのSOAコンポジットの場所

- 27-1 割り当てる変数

- 27-2 SoDチェックのトラブルシューティング

- 28-1 アイデンティティ管理の表をカスタマイズするために変更するファイル

- 28-2 検索ページのメニュー数を決定するプロパティ

- 30-1 Oracle Identity Managerのルールを作成するためのルール要素

- 30-2 テンプレートを作成するための変数

- 30-3 Oracle Identity Managerフォーム作成用のデータ型に関連付けるプロパティ

- 30-4 サービス・アカウントの管理タスクと対応するAPI

- 30-5 Oracle Identity Managerのアクション、条件および結果

- 31-1 よく使用されるサービス

- 31-2 従来のサービスと新規サービス間のマッピング

- 32-1 addRequestによるアイデンティティ作成

- 32-2 modifyRequestによるロール・メンバーシップ管理

- 32-3 deleteRequestによるロール・メンバーシップの削除

- 32-4 リクエスト・ステータスの確認

- 32-5 listTargetsによるターゲットの取得

- 32-6 suspendRequestによるユーザーの一時停止

- 32-7 resumeRequestによるユーザーの再有効化

- 32-8 activeRequestによるユーザーが一時停止されているかどうかの確認

- 32-9 resumeRequestによるユーザー名の有効性の確認

- 32-10 suggestUsernameによるユーザー名の取得

- 33-1 プロパティ・ファイルのパラメータ

- 34-1 サンプル・データベース表の構造

- 34-2 サンプル・データベース表の構造

- 34-3 サンプルの子データベース表の構造

- 34-4 サンプル・データベース表の構造

- 34-5 OIM_BLKLD_LOG表の構造

- 36-1 サポートされる製品

- A-1 scheduledTasks要素のプロパティ

- A-2 task要素のプロパティ

- A-3 name要素のプロパティ

- A-4 class要素のプロパティ

- A-5 description要素のプロパティ

- A-6 retry要素のプロパティ

- A-7 parameters要素のプロパティ

- A-8 string-param要素のプロパティ

- A-9 number-param要素のプロパティ

- A-10 boolean-param要素のプロパティ

- B-1 アイデンティティのPSO属性

- B-2 employeeTypeの有効な値

- B-3 ロールのPSO属性

- B-4 プリファレンス属性

- D-1 メタデータ列コードのマッピング情報

Oracle® Fusion Middleware

Oracle Identity Manager開発者ガイド

11g リリース1(11.1.1)

B66705-01(原本部品番号:E14309-08)

2011年12月

Oracle Fusion Middleware Oracle Identity Manager開発者ガイド, 11gリリース1(11.1.1)

B66705-01

Copyright © 1991, 2011, Oracle and/or its affiliates.All rights reserved.

原本著者:  Debapriya Datta

原本協力著者:  Michael Teger

原本協力者:  Sid Choudhury

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle およびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

Oracle Fusion Middleware Oracle Identity Manager開発者ガイドでは、Oracle Identity Managerの様々なコンポーネントおよび機能を開発およびカスタマイズする方法について説明します。

対象読者

このガイドは、Oracle Identity Manager開発ツールを使用し、組織の要件に従って製品をカスタマイズする開発者を対象としています。カスタマイズには、APIの使用、リクエスト・データセットおよび承認ワークフローの構成、汎用テクノロジ・コネクタまたはアダプタ・ファクトリを使用したコネクタの開発、ユーザー・インタフェースのカスタマイズなどがあります。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。

関連ドキュメント

詳細は、次のドキュメントを参照してください。

- Oracle Fusion Middleware Oracle Identity Manager管理者ガイド

- Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイド

- Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド

- Oracle Identity ManagementのOracle Fusion Middlewareクイック・インストレーション・ガイド

- Oracle Fusion Middleware Oracle Identity Managementエンタープライズ・デプロイメント・ガイド

- Oracle Fusion Middlewareスイート統合概要

- Oracle Fusion Middleware Oracle Identity Managementユーザー・リファレンス

- Oracle Fusion Middleware高可用性ガイド

- Oracle Fusion Middleware Oracle Access Manager管理者ガイド

- Oracle Fusion Middleware Oracle Adaptive Access Manager管理者ガイド

- Oracle Fusion Middleware Oracle Adaptive Access Manager開発者ガイド

- Oracle Fusion Middleware Oracle Identity Navigator管理者ガイド

- Oracle Fusion Middleware Authorization Policy Manager管理者ガイド

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

第I部

概念

この部では、Oracle Identity Manager開発者向けのツールや機能について理解することを目的とし、概念をわかりやすくするための単純な例をいくつか示します。

次の章で構成されます。

- 第1章「Design Consoleの概要」

- 第2章「アダプタの開発」

- 第3章「アダプタの使用」

- 第16章「Identity Connector Frameworkの理解」

- 第4章「コールバック・サービスの使用」

- 第5章「ルールの開発」

- 第6章「スケジュール済タスクの開発」

- 第7章「プラグインの開発」

- 第8章「ユーザー管理操作を拡張するためのイベント・ハンドラの開発」

- 第9章「LDAPコンテナ・ルールの構成」

- 第10章「コンテキストの理解」

1 Design Consoleの概要

Design Consoleを使用すると、Oracle Identity Managerのシステム全体の動作を制御し、そのユーザーに影響を及ぼすシステム設定を構成できます。Design Consoleで、ユーザー管理、リソース管理、プロセス管理、その他の管理タスクおよび開発タスクを実行できます。

この章では、Oracle Identity Manager Design Consoleの概要を示し、このコンソールの基本的な操作について説明します。この章の情報を参照してから、Design Console機能の詳細を説明する以降の章に進むことをお薦めします。

この章には次の項が含まれます:

- Design Consoleの起動

- Design Consoleのナビゲート

- 特殊フィールドおよびフォーム・タイプ

- 「割当て」ウィンドウ

- 検索操作

- Design Consoleからアクセス可能なフォーム

1.1 Design Consoleの起動

Design Consoleを起動するには、次の手順を実行します。

1. デスクトップの「Oracle Identity Manager」クライアント・アイコンをダブルクリックします。
「ログイン」ウィンドウが表示されます。

2. ユーザーIDとパスワードを入力します。

3. 「ログイン」をクリックします。
Design Consoleのメイン画面が表示されます。

注意:

Oracle Identity Managerの基本機能には、Oracle Identity Manager管理およびユーザー・コンソールを使用してアクセスすることもできます。

1.2 Design Consoleのナビゲート

Design Consoleのメイン画面を使用して、ビジネス・プロセスを作成、追跡および分析できます。図1-1に、Design Consoleのメイン画面を示します。

図1-1 Design Consoleのメイン画面

Design Consoleのメイン画面は、次のリージョンで構成されています。

- Design Consoleメニュー・バー

- Design Consoleツールバー

- Design Consoleエクスプローラ

- Design Consoleワークスペース

1.2.1 Design Consoleメニュー・バー

メニュー・バーは、メイン画面の一番上に表示されます。メニュー・バーには、Design Consoleユーザー・インタフェースでのすべての操作を実行できるメニューが含まれています。

Design Consoleメニュー・バーには、次のメニューがあります。

- 「ファイル」メニュー

- 「編集」メニュー

- ツールバー・メニュー

- 「ヘルプ」メニュー

キーボード・ショートカットを使用して、Design Consoleで様々な操作を実行するためのメニュー項目を使用できます。Design Consoleで使用可能なキーボード・ショートカットの詳細は、「Design Consoleのキーボード・ショートカット」を参照してください。

1.2.1.1 「ファイル」メニュー

「ファイル」メニューには次のオプションがあります。

メニュー項目

アクション

印刷

アクティブなフォームを印刷します。

ログイン

Design Consoleからログアウトし、再度ログインします。

終了

Design Consoleを終了します。

1.2.1.2 「編集」メニュー

「編集」メニューには次のオプションがあります。

メニュー項目

アクション

切取り

編集可能なフィールドから選択したテキストを削除して、システム・クリップボードにコピーします。

コピー

選択したテキストをシステム・クリップボードにコピーします。

貼付け

システム・クリップボードのテキストを選択したフィールドに貼り付けます。

クリア

選択したテキストを消去します。

1.2.1.3 ツールバー・メニュー

次の表に、ツールバー・メニューの操作の説明を示します。

メニュー項目

アクション

新規

アクティブなフォームのコンテンツを消去します。

変更の保存

アクティブなフォームに対するすべての変更を保存します。

問合せ

アクティブなフォームに対する問合せを実行します。

注意

アクティブなフォームにアタッチされている注意を表示します。

リフレッシュ

アクティブなフォームのレコードをリフレッシュします。

閉じる

アクティブなフォームを閉じます。

削除

現在のレコードを削除します。

次

複数のレコードを問い合せた場合、次のレコードを表示します。

前へ

複数のレコードを問い合せた場合、前のレコードを表示します。

最初

複数のレコードを問い合せた場合、最初のレコードを表示します。

最後

複数のレコードを問い合せた場合、最後のレコードを表示します。

すべて閉じる

開いているフォームをすべて閉じ、Design Consoleワークスペースを消去します。

1.2.1.4 「ヘルプ」メニュー

「ヘルプ」メニューを使用すると、Design Consoleのバージョン番号およびコピーライト情報にアクセスできます。これらの情報は「ヘルプ」メニューの「バージョン情報」を選択すると表示されます。

1.2.1.5 Design Consoleのキーボード・ショートカット

Design Consoleでは、機能を迅速に実行し、メニュー・コマンドに簡単にアクセスするのに役立つ次のキーボード・ショートカットが用意されています。

ショートカット名

キーストロークの組合せ

説明

「ファイル」メニュー

[Alt]+[F]

「ファイル」メニューをアクティブ化します。

「編集」メニュー

[Alt]+[E]

「編集」メニューをアクティブ化します。

ツールバー・メニュー

[Alt]+[T]

ツールバー・メニューをアクティブ化します。

「ヘルプ」メニュー

[Alt]+[H]

「ヘルプ」メニューをアクティブ化します。

印刷

[Ctrl]+[P]

アクティブなフォームを印刷します。

切取り

[Ctrl]+[X]

編集可能なフィールドから選択したテキストを削除して、システム・クリップボードにコピーします。

コピー

[Ctrl]+[C]

選択したテキストをシステム・クリップボードにコピーします。

貼付け

[Ctrl]+[V]

システム・クリップボードのテキストを選択したフィールドに貼り付けます。

クリア

[Ctrl]+[Del]

選択したテキストを消去します。

新規

[Ctrl]+[N]

アクティブなフォームを消去します。

変更の保存

[Ctrl]+[S]

アクティブなフォームに対するすべての変更を保存します。

問合せ

[Ctrl]+[Q]

アクティブなフォームに対する問合せを実行します。

注意

[Ctrl]+[Shift]+[N]

アクティブなフォームにアタッチされている注意を表示します。

リフレッシュ

[Ctrl]+[R]

アクティブなフォームをリフレッシュします。

閉じる

[Ctrl]+[W]

アクティブなフォームを閉じます。

削除

[Ctrl]+[D]

現在のレコードを削除します。

次へ

テンキーの+(プラス)

複数のレコードを問い合せた場合、次のレコードを表示します。

前へ

テンキーの-(マイナス)

複数のレコードを問い合せた場合、前のレコードを表示します。

最初

[Ctrl]+[F]

複数のレコードを問い合せた場合、最初のレコードを表示します。

最後

[Ctrl]+[L]

複数のレコードを問い合せた場合、最後のレコードを表示します。

事前移入

[Ctrl]+[U]

カスタマイズされたフォームの指定されたフィールドに値を移入します。

ヘルプ

F1

アクティブなフォームの状況依存ヘルプを開きます。

エクスプローラ

F3

Design Consoleエクスプローラの一番上に表示されているDesign Consoleアイコンを選択します。

参照

F4

選択した参照フィールドの「参照」ウィンドウを表示します。

メニュー

F10

「ファイル」メニューをアクティブ化します。

1.2.2 Design Consoleツールバー

ツールバーは、メニュー・バーの下の一連のボタンで構成されています。これらのボタンを使用すると、シングルクリックで頻繁に使用するアクションにアクセスできます。ツールバーのボタンは、アクティブなフォームに適用されます。

図1-2に、Design Consoleツールバーを示します。

図1-2 Design Consoleツールバー

ツールバー・ボタンにマウスを数秒合わせると、ボタンについて説明するツールチップが表示されます。

次の表に、ツールバーのボタンの説明を示します。

ボタン

アクション

最初

複数のレコードを問い合せた場合、最初のレコードを表示します。

前へ

複数のレコードを問い合せた場合、前のレコードを表示します。

次

複数のレコードを問い合せた場合、次のレコードを表示します。

最後

複数のレコードを問い合せた場合、最後のレコードを表示します。

新規

アクティブなフォームを消去します。

保存

アクティブなフォームに対するすべての変更を保存します。

問合せ

アクティブなフォームに対する問合せを実行します。

注意

アクティブなフォームにアタッチされている注意を表示します。

リフレッシュ

アクティブなフォームをリフレッシュします。

閉じる

アクティブなフォームを閉じます。

削除

現在のレコードを削除します。

事前移入

指定されたフィールドに値を移入します。指定されたフィールドはユーザー定義されており、事前移入アダプタがアタッチされています。

注意: 事前移入アダプタの詳細は、Oracle Fusion Middleware Oracle Identity Manager開発者ガイドを参照してください。

1.2.3 Design Consoleエクスプローラ

Design Consoleエクスプローラには、アクセスする権限があるフォームを表すアイコンのリストが含まれています。

図1-3に、Design Consoleエクスプローラを示します。エクスプローラはカスタマイズできます。エクスプローラに表示されるアイコンは、割り当てられている権限によって異なります。権限のないフォーム・アイコンにアクセスしたい場合は、システム管理者にお問い合せください。

図1-3 Design Consoleエクスプローラ

ヒント:

- システム管理者によって権限が変更された場合は、エクスプローラ・ウィンドウをリフレッシュする必要があります。

- Design Consoleエクスプローラのサイズを調整するには、仕切線を右または左に移動します。

1.2.3.1 フォームの開始

フォームを開始するには、次の手順を実行します。

1. 必要なフォームが格納されているフォルダを展開します。

2. 開くフォームをダブルクリックします。
Design Consoleワークスペースに対応するフォームが表示されます。

1.2.3.2 フォームのリストのリフレッシュ

フォームのリストをリフレッシュするには、次の手順を実行します。

1. Oracle Identity Managerのエクスプローラ・ウィンドウの上部にあるOracle Identity Managerロゴを右クリックします。メニューが表示されます。

2. エクスプローラのリフレッシュをクリックします。
Design Consoleでは、システム管理者によって最近アクセス権限が付与されたフォームを含むアクセス可能なすべてのフォームとともにエクスプローラがリフレッシュされます。

1.2.4 Design Consoleワークスペース

Design Consoleワークスペースはメイン画面のリージョンで、エクスプローラを使用してアクセスするフォームが表示されます。

図1-4にワークスペースを示します。

図1-4 Design Consoleワークスペース

複数のフォームにアクセスすると、Design Consoleではアクティブなフォームが上部に配置され、残りのフォームはメイン画面の下部にタブとして階層化されます。フォームを切り替えるには、必要なフォームのタブをクリックします。

Design Consoleでは、各フォームをフォーム・ビューと表ビューの2つの方法で表示できます。

1.2.4.1 フォーム・ビュー

フォーム・ビューでは、シングル・レコードに関する詳細情報が提示されます。フォーム・ビューは、問合せを実行する前などにエクスプローラを使用して最初にフォームにアクセスしたときに表示されます。

1.2.4.2 表ビュー

表ビューでは、フォームの複数のレコードに関する概要のリストが表示されます。複数の結果が作成される問合せを送信すると、Design Consoleには、問合せの基準に一致するレコードを含む表が表示されます。

たとえば、「組織」フォームの問合せでは複数のレコードが返される可能性があります。「組織」フォームのフォーム・ビューおよび表ビューの両方のタブを表示できます。図1-5に、Design Consoleの表ビューを示します。

図1-5 表ビュー

次の事項は、すべての表ビューに適用されます。

- 表ビューのレコードを選択するには、そのレコードをクリックします。

- レコードに関連付けられているデータがセルに表示されます。
セルはフィールドとも呼ばれます。

- フォームには、各列の上にラベル付きのボックスである列ヘッダーがあります。
列ヘッダーには、列の名前が表示されます。列に、一部のフィールドまたは属性の受入れ可能な値を提供する「参照」ダイアログ・ボックスが含まれている場合は、列ヘッダーが青色で表示されます。

- Design Consoleのフォームには、各行の先頭に数値のラベルが付いたボックスである行ヘッダーがあります。
レコードの詳細なフォーム・ビューを表示するには、その行ヘッダーをダブルクリックします。レコードをフォーム・ビューで表示するには、表ビューでそのレコードを選択します。次に、ワークスペースの下部で、適切なフォーム・タブをクリックします。

- 問合せによってワークスペースに表示できる数を超える数のレコードが返された場合は、表ビューの右端に垂直スクロールバーが表示されます。
垂直スクロールバーの上矢印または下矢印をクリックして、表のレコードをスクロールします。

- ワークスペースに表示できる数を超える数の列が表ビューに含まれている場合は、表ビューの下端に水平スクロールバーが表示されます。
水平スクロールバーの左矢印または右矢印をクリックして、ワークスペースに最初は表示されていない追加の列を表示します。

- 表ビューの個別のセル(フィールド)でレコード情報を編集できます。
特定のフィールドの情報を編集するには、そのフィールドをクリックし、必要な変更を行います。

- 列ヘッダーが青色で表示されているフィールドには、「参照」ダイアログ・ボックスが含まれています。
これらのフィールドをダブルクリックすると、「参照」ダイアログ・ボックスにアクセスして必要な値を選択できます。任意のフィールドの値を編集すると、対応するレコードの行ヘッダーが黒色に変わります。これにより、そのフィールドのデータが変更され、保存する必要があることが示されます。

- 連続したレコードを選択するには、[Shift]キーを押しながらマウスを使用してレコードを選択します。

- 連続していないレコードを選択するには、[Ctrl]キーを押しながらマウスを使用してレコードを選択します。

- レコードをエクスポートするには、行ヘッダーを右クリックします。
複数のレコードを選択するには、[Shift]キーを押しながら行ヘッダーをクリックします。

ダイアログ・ボックスが表示されます。

- 選択したレコードをクリップボードにコピーするには、クリップボードにコピーを選択します。
コピーしたレコードは、Microsoft ExcelワークシートまたはMicrosoft Wordドキュメントに貼り付けることができます。

- レコードをタブ区切りファイルとして保存するには、ファイルへコピーを選択します。

- 表ビューに表示されるレコードの順序を制御するには、ソート機能を使用します。
表示されているレコードのソート順を変更するには、レコードのソート基準とする列のヘッダーをクリックします。列ヘッダー・テキストの横に三角形が表示されます。これにより、レコードがソートされた方向が昇順か降順かが示されます。

1.3 特殊フィールドおよびフォーム・タイプ

Design Consoleの基本機能のアクションは、すべてのフォームで標準です。この項では、Design Consoleの標準アクションおよびDesign Consoleメイン画面のフィールドとウィンドウのタイプについて説明します。

1.3.1 データ・フィールド

データ・フィールドは、特定のレコードに関する情報を示す、フォームの表示領域です。たとえば、「名」を「ユーザー」フォームのデータ・フィールドとすることができます。

フィールドのラベルは黒色または青色で表示されます。

- 黒色のラベルは、そのフィールドが標準フィールドであることを示しています。
標準フィールドの情報は、問合せ、作成、変更または削除することができます。

- 青色のラベルは、そのフィールドのデータが、「参照」ウィンドウまたは日時ウィンドウを使用して指定された事前定義済の値のリストから導出されたことを示しています。
このタイプのフィールドをダブルクリックすると、適切な日時ウィンドウまたは「参照」ウィンドウが表示されます。日付、時間または参照値を選択できます。

フィールドの値は黒色または赤色で表示されます。

- フィールド値が黒色で表示されている場合は、そのフィールドのデータがユーザーによって指定されています。
このようなタイプのフィールドの情報は問い合せたり、編集できます。

- フィールド値が赤色で表示されている場合は、そのフィールドのデータがOracle Identity Managerによって指定されています。
このような値は読取り専用です。これにより、重要な情報の上書きが回避されます。

1.3.2 参照フィールド

参照フィールドを使用すると、値を検索できます。参照フィールドは青色で表示されます。参照フィールドを使用する手順は、次のとおりです。

参照フィールドを使用するには、次の手順を実行します。

1. 参照フィールドをダブルクリックします。「参照」ダイアログ・ボックスが表示されます。

2. 「参照」ダイアログ・ボックスで値を選択するには、フィールドをクリックして「OK」をクリックします。
または、フィールドを選択して[F4]を押すこともできます。

何も選択せずに「参照」ウィンドウを閉じるには、「取消」をクリックします。

図1-6に、「参照」ダイアログ・ボックスを示します。

図1-6 「参照」ダイアログ・ボックス

3. 「参照」ダイアログ・ボックスに値の長いリストが含まれている場合は、「検索」ボックスに値の最初の数文字を入力してからアスタリスク(*)を入力し、「検索」をクリックします。または、値のリストをスクロールして値を見つけることもできます。
「参照」ダイアログ・ボックスに検索に一致する結果が表示されます。

1.3.3 日時フィールド

日時ウィンドウを使用すると、年、月、日および時刻を選択できます。このウィンドウは、このウィンドウを開くオプションがあるフィールドをダブルクリックすると、表示されます。日時フィールドのラベルは青色です。

日時を選択するには、次の手順を実行します。

1. 日時を入力するフィールドをダブルクリックします。
日時ウィンドウは、フィールドを選択し、[F4]を押して表示することもできます。

図1-7のように、日時ウィンドウが表示されます。

図1-7 日時ウィンドウ

図1-7 日時ウィンドウの説明

2. メニューから月を選択します。

3. 「日付」スクロール・ボックスから年を選択します。

4. カレンダの日付をクリックします。

5. 「時刻」ボックスから時刻を選択します。

6. 「OK」をクリックし、変更を保存します。
日時ウィンドウが閉じます。手順1でダブルクリックしたフィールドに、選択した日付が表示されます。

保存せずに終了する場合は、「取消」をクリックします。

1.3.4 リスト

リストには事前定義された値が含まれています。リストをクリックすると、そのリストの値が表示されます。リストに一度に表示できる数を超えた数の値が含まれている場合は、リストの右側に垂直スクロールバーが表示されます。図1-8では、「従業員タイプ」フィールドがリストです。

図1-8 リスト・フィールド

「図1-8 リスト・フィールド」の説明

値を選択すると、選択した値が表示されているフィールドでリストが置き換えられます。

1.3.5 「注意」ウィンドウ

「注意」ウィンドウには、レコードの補足情報を入力できます。このウィンドウをアダプタで使用すると、アダプタのコンパイル時にDesign Consoleによって生成されたコードも表示されます。アダプタの詳細は、第2章「アダプタの開発」および第3章「アダプタの使用」を参照してください。

注意:

次の手順では、「注意」ボタンが赤色の場合、現在のレコードに注意があります。注意を表示するには、ボタンをクリックします。このレコードに補足情報を入力できます。各エントリは、一意の日付、時刻およびユーザー・スタンプを受け取ります。

「注意」ウィンドウを使用するには、次の手順を実行します。

1. 必要なレコードを選択します。

2. 「注意」をクリックします。
図1-9のように、「注意」ウィンドウが表示されます。

図1-9 「注意」ウィンドウ

「図1-9 「注意」ウィンドウ」の説明

3. 「注意」ウィンドウのテキスト領域に情報を入力します。

4. 人の絵が示されたアイコンをクリックし、「注意」ウィンドウで情報を格納します。
または「閉じる」をクリックして、保存せずに「注意」ウィンドウを閉じます。

5. ツールバーの「保存」をクリックします。
「注意」ウィンドウに入力した情報が保存されます。

1.3.6 フォームのタブ

Design Consoleのほとんどのフォームには複数のタブが含まれています。タブは、通常、フォームの下部にあります。タグには、図1-10に示すように、組織に雇用されているユーザーなど、レコードに関する追加情報が表示されます。

図1-10 Design Console - フォームのタブ

各タブには、独自の表と機能ボタンがあります。通常、タブのボタンは、フォームの上部の情報が保存されるまでグレー表示されます。タブに表示される表では、そのタブ・アイテムに関連付けられているレコードを確認および編集できます。

タブの表の行の情報を変更するには、編集する情報が含まれているフィールドをダブルクリックするか、または関連する行ヘッダーをダブルクリックします。

1.4 「割当て」ウィンドウ

ユーザー・フォームの「割当て」ウィンドウを使用すると、エンティティを選択してレコードに割り当てることができます。「割当て」ウィンドウは、「割当て」ボタンをクリックすると表示されます。

図1-11に、ロールを選択してレコードに割り当てるユーザー・フォームの「割当て」ウィンドウを示します。

図1-11 ユーザー・フォームの「割当て」ウィンドウ

「図1-11 ユーザー・フォームの「割当て」ウィンドウ」の説明

左側のパネルには、「組織」など、レコードに割り当てることができる項目のリストが表示されます。右側のパネルには、レコードにすでに割り当てられている項目のリストが表示されます。左側と右側のパネルでの選択に使用可能な値は、割り当てられるものと割り当てられないものに一意ですが、ボタンおよびこのダイアログ・ボックスの一般的な使用はアプリケーション全体で一貫しています。

このウィンドウで作業する方法は、次のとおりです。

- 複数の連続しない項目を選択するには、[Ctrl]キーを押しながらマウスで項目を選択します。
たとえば、「ユーザー・グループ」、ITリソース・タイプの定義オブジェクトおよび「フォーム情報」オブジェクトを選択し、「プロセス定義」オブジェクトを選択しないことができます。

- 連続して表示されている複数の項目を選択するには、[Shift]キーを押しながら最初と最後の項目をマウスで選択します。

- 1つ以上の項目を割り当てるには、項目を選択し、右矢印をクリックします。

- 1つ以上の項目を割当て解除するには、項目を選択し、左矢印をクリックします。

完了したら「OK」をクリックします。「取消」をクリックすると、すべての割当て変更が破棄されます。

1.5 検索操作

この項では、Design Consoleで実行できる検索操作について説明します。この章には次の項目があります。

- 検索の開始

- 検索フィルタの構成

- 検索の結果

- 一連の問合せ結果の操作

- 問合せパフォーマンスの最適化

- 結果セットの制限の超過

1.5.1 検索の開始

Design Consoleでは、データベース内のレコードに対して検索(問合せ)を実行できます。Design Consoleのすべてのフォームに検索機能があります。検索機能は参照フィールドでも使用可能です。

空白のフォームに対する検索または検索フィルタの入力後の検索を実行するには、ツールバーの双眼鏡アイコンをクリックします。

問合せフィールドに検索基準を入力したら、双眼鏡記号をクリックするか、または[Ctrl]を押しながら[Q]を押します。

1.5.2 検索フィルタの構成

フォーム・フィールドで検索結果をフィルタリングできます。フィルタリングにより、返される結果は、入力した条件と一致するレコードのみに限定されます。検索の実行前にすべてのフォーム・フィールドを空白のままにしておくと、表のすべてのレコードが返されます。

検索には、ワイルドカード文字を使用できます。ワイルドカード文字のアスタリスク(*)は、検索条件の特定されていない部分を表します。ワイルドカード文字は、フィールドに入力する値の先頭、中央または最後に使用できます。たとえば、Design Consoleフォームの「場所」フィールドに「B*」と入力して検索を実行すると、文字Bから始まる地名のレコード(Burbank、Boston、Bristolなど)がすべて返されます。「B*on」のように検索値の中央にアスタリスクを配置すると、Bから始まりONで終了するレコード(Brighton、Bostonなど)がすべて戻されます。「*A」のように検索値の先頭にアスタリスクを配置すると、Aで終了するレコード(Philadelphia、Tampaなど)がすべて返されます。

図1-12では、組織デフォルト・フォームに対する問合せが実行され、「組織名」フィールドを使用して検索結果がフィルタリングされています。フィルタXell*によって、名前がXellで始まる組織のみが返されます。

図1-12 検索問合せでのフィルタの使用

1.5.3 検索の結果

ツールバー・アイコンをクリックして検索リクエストを送信すると(レコードに対する問合せ)、次のいずれか1つが発生します。

- レコードが返されない。このフォームの検索基準に一致するレコードがデータベースにありません。検索しているレコードがデータベースに存在しないか、または検索基準を変更する必要があります。

- レコードが1つ返される。このフォームの検索基準に一致するレコードがデータベースに1つあります。フォーム・ビューにこのレコードが表示されます。

- レコードが複数返される。このフォームの検索基準に一致するレコードがデータベースに複数あります。表ビューが表示され、検索基準を満たすすべてのレコードのリストが表示されます。図1-13のように、フォーム・ビューに最初のレコードが表示されます。

図1-13 複数のレコードが返される

1.5.4 一連の問合せ結果の操作

データベース内の複数のレコードが検索条件と一致する場合は、各レコードの詳細を表示できます。複数のボタンを使用して、フォーム・ビューでレコードを表示できます。VCRボタンと呼ばれるこれらの指示ボタンは、ツールバーにあります。次の表に、VCRボタンの説明を示します。

ボタン

説明

図arr.gifの説明

このボタンをクリックすると、フォーム・ビューに結果セットの最初のレコードが表示されます。

図rtarr.gifの説明

このボタンをクリックすると、表ビューの表示順で前のレコードが表示されます。レコードはフォーム・ビューの結果セットに表示されます。

図ltarr.gifの説明

このボタンをクリックすると、フォーム・ビューの結果セットに(表ビューの表示順で)次のレコードが表示されます。

このボタンをクリックすると、フォーム・ビューに結果セットの最後のレコードが表示されます。

1.5.5 問合せパフォーマンスの最適化

大きい結果セットを返す問合せは実行に非常に時間がかかり、コンピュータのパフォーマンスに影響を与える可能性があります。パフォーマンスを最適化するには、次の検索手法を使用します。

- 検索方針の範囲をできるだけ正確に定義します。
問合せの作成時にできるだけ具体的な情報を入力します。たとえば、連絡先の名がJOHNで姓がJACKSONの場合は、姓のJACKSONのみで検索するのではなく、両方の情報を入力します。

- 可能な場合は、アスタリスク(*)ワイルドカード文字を使用します。
アルファベットの前にアスタリスクを配置(*Aなど)すると、フィールドを空白にするよりも少ないレコードが返されます。

1.5.6 結果セットの制限の超過

Design Consoleのすべてのフォームおよびレコードに対する読取り権限と書込み権限がある場合(つまり、システム管理者である場合)、検索の結果セットに表示されるレコードの最大数を設定できます。検索で取得されたレコードの数がこの値を超えた場合、図1-14に示すように、Design Consoleに問合せサイズ超過ダイアログ・ボックスが表示されます。

図1-14 問合せサイズ超過ダイアログ・ボックス

表示される結果セットの特定の範囲またはサブセットの入力を求められます。図1-14では、最大結果セットの100を超過しています。レコード1から100のみが表示されます。

1.6 Design Consoleからアクセス可能なフォーム

Design Consoleのメイン画面の左側にはDesign Consoleエクスプローラがあります。エクスプローラは、アクセス権のあるフォームを示すアイコンのリストで構成されます。これらのアイコンは機能に基づいてフォルダに分類され、ユーザーに割り当てたアクセス権に応じてユーザーに表示されます。図1-15に、Design Consoleのメイン画面のエクスプローラを示します。

図1-15 Design Consoleのメイン画面

「図1-15 Design Consoleのメイン画面」の説明

Design Consoleエクスプローラの様々なフォルダのフォームは次の項で説明します。

- ユーザー管理

- リソース管理

- プロセス管理

- 管理

- 開発ツール

- ビジネス・ルール定義

1.6.1 ユーザー管理

「ユーザー管理」フォルダには、組織、ユーザーおよびロールについての情報を作成、管理するためのツールがあります。このフォルダには、次のフォームが含まれます。

- 組織デフォルト: このフォームは、特定のリソースに対して組織のユーザーが持つ必要のあるデフォルト値を設定するために使用します。組織デフォルトに指定されている値の取得時に組織階層の下位から上位にトラバースすることによって組織階層が考慮されます。

- ポリシー履歴: このフォームは、ポリシーを通じてユーザーに許可されているリソースと、許可されていないリソースを表示するために使用します。

- ロール: このフォームは、どのロールがどのDesign Consoleフォームを使用可能かを指定するために使用します。

1.6.2 リソース管理

「リソース管理」フォルダでは、Oracle Identity Managerリソースを管理するツールが提供されます。このフォルダには、次のフォームが含まれます。

- ITリソース・タイプ定義: このフォームは、「ITリソース」フォームに参照値として表示されるリソース・タイプを作成するために使用します。
ITリソース・タイプには特定のターゲットの型の接続性およびその他の構成を指定するために使用する一連のフィールドが格納されています。たとえば、「ADサーバー」ITリソース・タイプは、Microsoft Active Directoryに接続する場合に指定する必要があるフィールドを示します。このフィールドには、ホスト、ポート、ユーザー名、パスワード、ルート・コンテキストなどがあります。これは基本的にはパラメータのリストです。すべてのパラメータに具体的な値を指定して、このタイプからITリソース・インスタンスを作成できます。Active Directoryアカウントのプロビジョニング中、プロセス・フォームのフィールドの1つのタイプがADサーバーであり、このフィールドの値が、アカウントが作成される実際のターゲットを指すITリソース・インスタンスとなります。

- ルール・デザイナ: このフォームは、パスワード・ポリシーの選択、グループ・メンバーシップの自動処理、プロビジョニング・プロセスの選択、タスクの割当ておよびアダプタの事前移入に適用できるルールを作成するために使用します。

- リソース・オブジェクト: このフォームは、リソース・オブジェクトの作成と管理に使用します。これらのオブジェクトは、ユーザーや組織に対してどのリソースを利用可能にするかを表します。
リソース・オブジェクトによって、Oracle Identity Manager内のアカウント・タイプが指定されます。リソース・オブジェクトによって、次の事項がカプセル化されます。

- ADユーザー、ADグループなど、ターゲットでリソース・オブジェクトによって表されるエンティティのタイプ。

- プロビジョニング・メカニズム。これはリソース・オブジェクトに固有の構成ではなく、プロビジョニング・プロセス定義です。ただし、プロセス定義自体はリソース・オブジェクトに関連付けられます。

- 許可されるリソース、ユーザーがそのリソースの複数のインスタンスを取得できるかどうかおよびリソースをプロビジョニングできるユーザーを決定する権限に関連するフラグ。

- オブジェクト管理者およびオブジェクト認可者の構成。

- リコンシリエーション・フィールド、アクション・ルールなどのリコンシリエーション関連フラグ。

- リソース依存性。

- リソースの可能な状態を決定するリソースのステータス・フラグ。

- アテステーションで使用されるリソース監査目的。

リソース・オブジェクトの例として、ADユーザー、SAPユーザー、LDAPアカウントなどがあります。

関連項目:

「リソース管理」フォルダのフォームの詳細は、第11章「リソース・オブジェクトの開発」を参照してください。

1.6.3 プロセス管理

「プロセス管理」フォルダには、Oracle Identity Managerのプロセスや電子メール・テンプレートを作成および管理するためのツールが含まれています。

このフォルダには、次のフォームが含まれます。

- 電子メール定義: このフォームは、電子メール通知のテンプレートの作成に使用します。

- プロセス定義: このフォームは、承認およびプロビジョニング・プロセスの作成と管理に使用します。また、ワークフロー定義をグラフィックで表示するワークフロー定義レンダラを開始できます。

関連項目:

「プロセス管理」フォルダのフォームの詳細は、第12章「プロビジョニング・プロセスの開発」を参照してください。

1.6.4 管理

Design Consoleの「管理」フォルダには、Oracle Identity Managerの管理者用の機能を管理するためのツールが含まれています。このフォルダには、次のフォームが含まれます。

- 参照定義: このフォームは、参照定義の作成と管理に使用します。参照定義とは、参照フィールドと、その参照フィールドからアクセスできる値を示すものです。

- ユーザー定義フィールドの定義: このフォームは、ユーザー定義フィールドの作成と管理に使用します。ユーザー定義フィールドは、ユーザー、リクエスト、リソースなどに関する追加的な情報を格納するために使用します。

- Remote Manager: このフォームでは、Oracle Identity Managerとサード・パーティ・プログラムとの間の通信に使用されているサーバーについての情報を表示できます。これらのサーバーは、リモート・マネージャと呼ばれます。

- パスワード・ポリシー: このフォームは、ユーザーに適用されるパスワード関連の制限を設定したり、パスワード・ポリシーに関連付けられたルールとリソース・オブジェクトを表示するために使用します。

関連項目:

「管理」フォルダのフォームの詳細は、第15章「参照定義、UDFおよびRemote Managerの開発」を参照してください。

1.6.5 開発ツール

Design Consoleでは、システム管理者または開発者がOracle Identity Managerをカスタマイズする一連の開発ツールが提供されます。このフォルダには、次のフォームが含まれます。

- アダプタ・ファクトリ: このフォームでは、Oracle Identity Managerが特定のITリソースと(そのリソースのAPIに接続して)通信できるようにするためのコードを作成および管理できます。このコードはアダプタと呼ばれます。

- アダプタ・マネージャ: このフォームは、複数のアダプタを同時にコンパイルするために使用します。

- フォーム・デザイナ: このフォームは、Oracle Identity Managerにあらかじめ含まれていないプロセスやリソース・オブジェクト・フォームを作成するために使用します。

- エラー・メッセージ定義: このフォームでは、Oracle Identity Managerの使用中に問題が起きた場合のレポートに使用できるエラー・メッセージを作成します。また、システム管理者や開発者は、ユーザーが「アダプタ・ファクトリ」フォームでエラー・ハンドラ・タスクを作成する際にどのエラー・メッセージを使用できるようにするかを定義することもできます。

- リコンシリエーション・ルール: このフォームは、Oracle Identity Managerのリコンシリエーション・ルールを作成および管理するために使用します。

1.6.5.1 ビジネス・ルール定義

「開発ツール」フォルダには、「ビジネス・ルール定義」サブフォルダがあります。「ビジネス・ルール定義」フォルダでは、システム管理者および開発者がOracle Identity Managerのイベント・ハンドラおよびデータ・オブジェクトを管理するツールが提供されます。このフォルダには、次のフォームが含まれます。

- イベント・ハンドラ・マネージャ: このフォームは、Oracle Identity Managerで使用されるイベント・ハンドラを作成および管理するために使用します。

- データ・オブジェクト・マネージャ: このフォームでは、データ・オブジェクトを定義し、そのオブジェクトにイベント・ハンドラとアダプタを割り当て、関連するアダプタ変数をマップすることができます。

関連項目:

「ビジネス・ルール定義」フォルダのフォームの詳細は、第5章「ルールの開発」を参照してください。

2 アダプタの開発

アダプタは、Oracle Identity Managerを他のソフトウェア・ソリューションと統合するためのJavaプログラムです。この章では、「アダプタ・ファクトリ」フォームを使用してアダプタを作成する方法について説明します。これらの項目が含まれます。

- アダプタの概要

- アダプタのタイプ

- アダプタ環境とツール

- アダプタの定義

- 「アダプタ・ファクトリ」フォームのタブ

- アダプタの無効化と再有効化

- アダプタ変数について

- アダプタ・タスクの作成

- アダプタ・タスクの変更

- タスクの順序とネストの変更

- アダプタ・タスクの削除

- レスポンスの使用

- ルール・ジェネレータおよびエンティティ・アダプタのスケジューリング

2.1 アダプタの概要

効率を高めるには、Oracle Identity Managerなどのアクセス権管理アプリケーションを他のソフトウェア・ソリューションと統合できる必要があります。このことが必要となるのは、数多くのリソースが提供されているものの、これらのリソースに接続するための単一の統合標準がないためです。

この課題に取り組むために、従来の方法ではすべての統合でサポートされる共通機能を使用します。これを行うには、このコードを記述できる開発者が必要です。また、既存のソフトウェア・リソースの変更や新しいソフトウェア・リソースの追加のたびに、さらにコードを記述する必要があります。

アダプタ・ファクトリは、Oracle Identity Managerによって提供されているコード生成ツールです。これは、統合の課題を簡略化するJavaクラス(アダプタと呼ばれます)を作成する場合に役立ちます。

注意:

Oracle Identity Managerは、JDBCおよびLDAPのJava APIを使用してデータベースやディレクトリ・サーバーなどの外部システムに接続できます。また、C、C++、VB、COM/DCOMなど、その他のすべてのAPIについては、Oracle Identity ManagerがAPIと直接通信できるようにJavaラッパーを作成できます。

リソースにはプロビジョニング・プロセスが関連付けられており、プロビジョニング・プロセスには様々なタスクが関連付けられています。各タスクにはアダプタが関連付けられており、アダプタは必要な操作を実行するためにターゲット・リソースに接続できます。

アダプタには次の利点があります。

- Oracle Identity Managerの内部論理および機能を拡張します。

- ソフトウェア・リソースのAPIを使用してそのリソースに接続することにより、リソースのインタフェースとして機能します。

- Oracle Identity Managerと外部システムとの統合を可能にします。

- 手動でコードを記述しなくても生成できます。ただし、Oracle Identity Managerにより、独自のコードを記述してアダプタを作成することが制限されるわけではありません。

- 軽量であり、ニーズに対して固有に対応できます。

- アダプタのすべての定義がリポジトリに格納されているため、簡単に管理できます。このリポジトリはGUIで編集できます。

- あるOracle Identity Managerユーザーが統合に関する専門知識を保持し、別のユーザーがアダプタを管理することが可能です。

- 効率的に変更およびアップグレードできます。

次に示すような様々なタスク用のアダプタを開発できます。

- プロセス・タスク・アダプタにより、Oracle Identity Managerでプロセス・タスクの完了を自動化できます。

- タスク割当てアダプタにより、Oracle Identity Managerでユーザーまたはグループへのプロセス・タスクの割当てを自動化できます。

- ルール・ジェネレータにより、Oracle Identity Managerフォームまたはユーザー定義フォーム(「フォーム・デザイナ」フォームを使用して作成します)のフィールドにビジネス・ルールが組み込まれるため、これらのフィールドに自動的に移入してOracle Identity Managerデータベースに保存できます。

注意:

「フォーム・デザイナ」フォームの詳細は、「「フォーム・デザイナ」フォーム」を参照してください。

- 事前移入アダプタは、ユーザー作成フォーム・フィールドにアタッチできる特定タイプのルール・ジェネレータ・アダプタです。このタイプのアダプタによって生成されるデータは、自動または手動で表示できます。また、指定のフォーム・フィールドにどの事前移入アダプタを適用するかをOracle Identity Managerで決定するための条件が使用されます。指定のフォーム・フィールドは移入されますが、この情報はOracle Identity Managerデータベースに保存されません。

- エンティティ・アダプタは、Oracle Identity Managerまたはユーザー作成フォーム・フィールドにアタッチされます。Oracle Identity Managerでは、挿入、更新および削除の前後にエンティティ・アダプタがトリガーされます。その後、アダプタがアタッチされたフィールドは自動的に移入され、Oracle Identity Managerデータベースに保存されます。

注意:

Oracle Identity Manager 11g Release 1(11.1.1)では、ユーザー、ロール、組織などのエンティティに対して後処理ハンドラを作成することもできます。

図2-1に、5つのタイプのアダプタの機能を示します。

図2-1 アダプタの機能

2.2 アダプタのタイプ

この項では、5つのアダプタ・タイプについて説明します。

ルール・ジェネレータ・アダプタ

フィールド検証を実行し、Oracle Identity Managerにあらかじめ含まれているフォームまたはOracle Identity Managerユーザーが作成するフォームにデフォルト値を入力するには、特定のビジネス・ルールを適用する必要があります。たとえば、「ユーザー」フォームについて、Oracle Identity Managerでユーザーの名前と姓を連結してユーザーIDを自動的に生成する場合があります。

これを行うには、フォーム内のフィールド値を変更するように設計された特定のタイプのアダプタを作成する必要があります。フォーム・フィールドの値を自動的に生成、変更または検証できるこのタイプのアダプタは、ルール・ジェネレータと呼ばれます。Oracle Identity Managerでは、ルール・ジェネレータは挿入および更新の前にトリガーされます。

このアダプタを作成してフォームにアタッチすると、Oracle Identity Managerによってそのフォームのすべてのレコードのフィールド値が自動的に更新され、この情報がOracle Identity Managerデータベースに保存されます。

アダプタ変数を含むルール・ジェネレータを作成する場合は、これらのアダプタ変数を正しい場所にマップする必要があります。そうしないと、アダプタは機能しません。

このタイプのアダプタをプロビジョニング・プロセスにアタッチすることもできます。プロセスがターゲットのユーザーや組織にプロビジョニングされると、関連付けられたルール・ジェネレータがOracle Identity Managerによってトリガーされます。

プロビジョニング・プロセスに割り当てられているルール・ジェネレータが、プロセスの完了のために必要ではなくなる場合があります。その場合は、ルール・ジェネレータをプロビジョニング・プロセスから削除できます。同様に、ルール・ジェネレータをフォーム・フィールドにアタッチした後で、別のルール・ジェネレータをそのフォーム・フィールドに接続できます。この場合は、最初に、現在フォーム・フィールドにアタッチされているルール・ジェネレータを削除する必要があります。

エンティティ・アダプタ

ルール・ジェネレータ・アダプタと同様に、エンティティ・アダプタは、フォーム・フィールド値の生成、変更または検証を自動化し、この情報をOracle Identity Managerデータベースに保存します。

ルール・ジェネレータとエンティティ・アダプタの違いの一部は、次のとおりです。

- 実行スケジュール。エンティティ・アダプタは、挿入、更新および削除の前後にOracle Identity Managerによってトリガーできます。ルール・ジェネレータ・アダプタは、挿入および更新の前にのみ実行できます。

- 手動でのフィールド値の変更。アダプタによって、エンティティ・アダプタがアタッチされているフォーム・フィールドは移入されます。Oracle Identity Managerユーザーがこの値を編集しても、その変更はエンティティ・アダプタによって上書きされます。その結果、変更はデータベースに保存されません。
同様に、アダプタによって、ルール・ジェネレータ・アダプタがアタッチされているフォーム・フィールドも移入されます。ただし、Oracle Identity Managerユーザーがこの値を編集すると、その変更はルール・ジェネレータ・アダプタによって生成される値よりも優先されます。そのため、変更はデータベースに保存されます。

- フォーム・フィールドの背景色。ルール・ジェネレータがフォーム・フィールドにアタッチされている場合、フィールドはピンクなどの特定の背景色で表示されます。これは、フィールドにルール・ジェネレータがアタッチされていることを視覚的に示しています。これに対し、エンティティ・ジェネレータがフォーム・フィールドにアタッチされている場合、フィールドには固有の背景色はありません。

タスク割当てアダプタ

手動で完了する必要があるプロセス・タスクについて、特定のユーザーまたは特定のロールに属するユーザーへのタスクの割当てを自動化するようにOracle Identity Managerを構成できます。これは、タスク割当てアダプタを使用して行います。タスク割当てアダプタは、特定のユーザーまたはロールへタスクを割り当てるためにのみ使用します。

特定のプロビジョニング・プロセスに関連付けられたタスクをDesign Consoleの「プロセス定義」フォームの「タスク」タブを使用して作成する場合、実行に対してアダプタが取得されるかどうかを決定するルールを選択できます。このルールはDesign Consoleのルール定義フォームで定義されることに注意してください。ルールの例は、「ターゲット・ユーザーの組織名はXYZです」です。このルールが満たされると、対応するタスク割当てが取得されます。ただし、タスク割当ての決定時に複数のルールを定義して使用することができます。複数のルールがある場合、Oracle Identity Managerではタスク割当て機能に優先度が関連付けられて、ルール決定の順序が決定されます。ルールが決定されると、対応するタスク割当てが実行されます。

注意:

つまり、タスク割当てルールによって、Oracle Identity Managerはプロセス・タスクをユーザーまたはルールに割り当てるかどうかを決定できます。タスク割当てアダプタによって、Oracle Identity Managerはどのユーザーまたはロールがプロセス・タスクの割当先になるかを決定できます。

この例では、Oracle Identity ManagerによってAssociate Adapter with Userルールが最初にトリガーされます(優先度が最も高いため)。このルールの条件がTRUEの場合、ルールは成功です。その結果、Oracle Identity Managerによって、関連するタスク割当てアダプタ(Assign Task to Userアダプタ)がプロセス・タスクに関連付けられます。

一方、ルールの条件がFALSEの場合、ルールは失敗です。Oracle Identity Managerによって、次に優先度が高いルールがトリガーされます。このルールが成功すると、Oracle Identity Managerによって、指定のアダプタがターゲット・プロセス・タスクに割り当てられます。

したがって、この例では、Associate Adapter with Userルールが失敗した場合、Oracle Identity ManagerによってAssociate Adapter with Roleルールがトリガーされます。このルールが成功すると、Oracle Identity Managerによって、関連するタスク割当てアダプタ(Assign Task to Roleアダプタ)がプロセス・タスクに関連付けられます。

ルールをタスク割当てアダプタに割り当てた後、このタイプのアダプタにアダプタ変数が含まれる場合、これらの変数を適切な場所にマップする必要があります。そうしないと、アダプタは機能しません。

最終的に、タスク割当てアダプタが無効になるか、Oracle Identity Managerでプロセス・タスクをユーザーまたはグループに割り当てるために不要になった場合は、アダプタをタスクから削除する必要があります。

事前移入アダプタ

ユーザー作成フォームに、Oracle Identity Managerで移入可能なフィールドと、Oracle Identity Managerユーザーがデータを入力する必要があるフィールドの両方が含まれる場合があります。ユーザーがフィールドに入力する情報が、システム生成フィールドに表示されるデータに依存している場合は、最初にOracle Identity Managerによってこのフィールドに移入される必要があります。フォームが表示されたときに、ユーザーはシステム生成データを確認して適切なフィールドに情報を入力できます。

これを実行するには、事前移入アダプタと呼ばれるタイプのルール・ジェネレータを作成します。それをシステム生成フィールドにアタッチすることによって、Oracle Identity Managerでは、Oracle Identity Managerデータベースに保存しなくても適切な情報をこのフィールドに自動的に移入できます。

事前移入アダプタで生成されたデータは、自動的に表示するか手動で入力できます。プロビジョニング・プロセスについて「自動事前移入」チェック・ボックスを選択した場合、この情報はOracle Identity Managerによって自動的に表示されます。このチェック・ボックスが選択されていない場合、Oracle Identity Managerユーザーは事前移入アダプタで生成されるデータの表示を手動で生成する必要があります。これを行うには、フォームをユーザーにプロビジョニングするときに、Webクライアントの直接プロビジョニング・ウィザードのフォーム・セクションにある事前移入ボタンをクリックします。

同じ事前移入アダプタを異なるフォーム・フィールドに対して使用できます。また、複数の事前移入アダプタを特定のフィールドに関連付けるように指定できます。そのため、フォーム・フィールドに対してどの事前移入アダプタを選択する必要があるかをOracle Identity Managerが認識している必要があります。これには、事前移入ルールを使用する必要があります。これらのルールによって、Oracle Identity Managerで1つの事前移入アダプタを選択でき、この事前移入アダプタがフォーム・フィールドに割り当てられると、事前移入アダプタはそのフィールドに関連付けられます。

それぞれの事前移入アダプタには、事前移入ルールが関連付けられています。また、すべてのルールには優先度値があり、Oracle Identity Managerによってその順序でルールがトリガーされます。

たとえば、Rule for Uppercase User IDルールの優先度が最も高いため、Oracle Identity Managerではこのルールを最初にトリガーできます。このルールの条件がTRUEの場合、ルールは成功です。その結果、Oracle Identity Managerによって、関連する事前移入アダプタ(Display Uppercase Letters for User IDアダプタ)が「ユーザーID」フィールドにアタッチされます。

一方、ルールの条件がFALSEの場合、ルールは失敗です。Oracle Identity Managerによって、次に優先度が高いルールがトリガーされます。このルールが成功すると、Oracle Identity Managerによって、関連付けられたアダプタが指定のフィールドにアタッチされます。

したがって、この例では、Rule for Uppercase User IDルールが失敗した場合、Oracle Identity ManagerによってRule for Lowercase User IDルールがトリガーされます。このルールが成功すると、Oracle Identity Managerによって、関連する事前移入アダプタ(Display Lowercase Letters for User IDアダプタ)が「ユーザーID」フィールドにアタッチされます。

ルールを事前移入アダプタに割り当てた後、このタイプのアダプタにアダプタ変数が含まれる場合は、これらの変数を適切な場所にマップする必要があります。そうしないと、アダプタは機能しません。

最終的に、フィールドに関連付けられた事前移入アダプタが有効ではなくなった場合、アダプタをフィールドから削除する必要があります。

プロセス・タスク・アダプタ

プロセス・タスク・アダプタによって、Oracle Identity Managerではプロビジョニング・プロセスでプロセス・タスクを自動的に実行できます。

それぞれのプロセスおよびプロセス・タスクにはステータスがあり、完了の段階を示します。次の表に、プロセスまたはプロセス・タスクのステータスを重要性の高いものから順に示します。

タスク・ステータス

説明

C

完了: このプロセスまたはプロセス・タスクは正常に完了しました。

MC

手動で完了: このプロセス・タスクは、Oracle Identity Managerユーザーによって(つまり、手動で)正常に完了しました。

P

保留: このプロセスまたはプロセス・タスクは完了処理中です。先行するそれぞれのタスクおよびプロセスはすべて完了しています。

PX

取消し保留: このプロセス・タスクは取り消されますが、取り消される前に完了される必要があります。

R

却下: このプロセスまたはプロセス・タスクは、正常に完了していないか承認されていません。却下されたプロセス・タスクのステータスは、「取消」または完了に失敗にのみ変更できます。

S

一時停止: このプロセスまたはプロセス・タスクは一時的に停止しています。

UC

完了に失敗: このプロセス・タスクは、「完了」に設定されています。ただし、以前に却下されたことがあります。

W

待機中: このプロセスまたはプロセス・タスクは、先行するすべてのプロセス・タスクまたはプロセスが完了するまで、完了しません。

X

このプロセスまたはプロセス・タスクは停止しています。ステータスは変更できません。

プロセスのステータス・レベルはそのプロセス・タスクの最も重要なステータス・レベルを表しており、プロセス・タスクが完了しないとプロセスは完了しません。プロセスに3つのプロセス・タスクがあり、各プロセス・タスクのステータス・レベルが異なる場合(「完了」、「待機中」および「却下」)、プロセスが完了するには、3つのプロセス・タスクすべてが完了する必要があります。最高のタスク・ステータス・レベルは「却下」であるため、プロセスのステータス・レベルも「却下」です。

プロセス・タスクは次の方法で管理できます。

- 「組織」フォームまたは「ユーザー」フォームのオブジェクト・プロセス・コンソール・タブまたはOracle Identity Manager Webアプリケーションを使用して、手動で処理できます。

- タスクのいずれか(または複数)が「保留」ステータスになったときに自動的にトリガーされるように、Oracle Identity Managerプロセスを構成できます。

2.3 アダプタ環境とツール

この項は次のトピックで構成されています。

- アダプタ環境の構成

- Remote Manager

- アダプタ・ファクトリ

- アダプタのコンパイル

2.3.1 アダプタ環境の構成

アダプタ・タスクを構成するには、Oracle Identity ManagerがターゲットAPIのJARファイルおよび接続するサード・パーティ・アプリケーションにアクセスできることを確認してください。

アダプタでJavaタスクを使用する場合、適切なJava APIを検索するようにOracle Identity Managerを構成する必要があります。これを行うには、これらのAPIが含まれている.jarファイルをメタデータ・ストア(MDS)に置く必要があります。

関連項目:

Oracle Identity Managerメタデータを変更するユーティリティの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

これにより、これらのJava APIに関連付けられたJavaクラスにアクセスして、作成したJavaタスクで使用できるようになります。

Oracle Identity ManagerをJARおよびクラス・ファイルを参照するように構成する手順は、次のとおりです。

1. OIM_HOME/ディレクトリ・パスにあるJavaTasksサブディレクトリを開きます。たとえば、C:\oracle\Xellerate\JavaTasksです。

2. JARファイルをこのサブディレクトリに置きます。このファイルを使用して、サーバーを再起動せずにアダプタ内にJavaタスクを作成できます。

2.3.2 Remote Manager

サード・パーティ・システムと直接通信せずに、プロキシのように動作するOracle Identity Managerコンポーネントを使用する必要がある場合があります。このコンポーネントは、リモート・マネージャと呼ばれます。

リモート・マネージャは、次の目的で使用します。

- Oracle Identity Managerを通じた非リモートAPIの呼出し

- セキュアな接続でのSecure Sockets Layer (SSL)をサポートしないAPIの呼出し

Remote Managerを構成するには、『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従ってください。

2.3.3 アダプタ・ファクトリ

すでに説明したように、アダプタはOracle Identity Managerユーザーがアダプタ・ファクトリで作成するJavaクラスであり、アダプタ・ファクトリにはDesign Consoleからアクセスします。

アダプタによって、Oracle Identity Managerの内部論理および機能が拡張されます。また、任意のITリソースのAPIに接続することで、そのリソースとの対話が行われます。

アダプタ・ファクトリはOracle Identity Managerで提供されるコード生成ツールであり、これを使用してユーザーはアダプタと呼ばれるJavaクラスを作成できます。図2-2に、Design Consoleの「アダプタ・ファクトリ」フォームを示します。

図2-2 「アダプタ・ファクトリ」フォーム

2.3.4 アダプタのコンパイル

Oracle Identity Managerには、次に示すような様々なコンパイル・オプションがあります。

- 個別のアダプタを1つずつコンパイル

- 一連のアダプタを一度にコンパイル

- Oracle Identity Managerデータベース内のすべてのアダプタを1クリックでコンパイル

2.3.4.1 アダプタの自動コンパイル

デプロイメント・マネージャを使用してコネクタ・ファイルをインポートすると、アダプタが自動的にコンパイルされます。コンパイルされたアダプタのクラス・ファイルは、ファイル・システムではなくOracle Identity Managerデータベースに格納され、そこから実行時にロードされます。次の2つのAPIを使用して、アダプタをプログラムでコンパイルできます。

- public void compileAdapter (String adapterName): このAPIは、1つのアダプタをコンパイルし、コンパイルしたクラス・ファイルをデータベースに格納します。アダプタの名前をパラメータとして使用します。アダプタが見つからない場合、またはエラーが発生した場合は、APIで適切な例外がスローされます。

- public void compileAll: このAPIは、システムのすべてのアダプタをコンパイルします。コンパイル時にエラーが発生した場合は、タイプtcBulkExceptionの例外がスローされます。この例外は、コンパイル時にAPIで発生した個別のすべてのエラーで構成されます。

変更する場合は、アダプタを手動で変更できます。

注意:

XL.CompilerPathシステム・プロパティのJDKディレクトリのパスを設定する必要があります。これを行わないと、デプロイメント・マネージャを使用してXMLファイルをインポートするときに、アダプタ・コンパイル・ステージでエラーが発生します。

システム・プロパティの値の設定の詳細は、Oracle Fusion Middleware Oracle Identity Managerシステム管理者ガイドのOracle Identity Managerのシステム・プロパティに関する説明を参照してください。

2.3.4.2 アダプタの手動コンパイル

「開発ツール」フォルダに「アダプタ・マネージャ」フォームがあります。これを使用して、複数のアダプタを同時にコンパイルします。

複数のアダプタを手動でコンパイルするには、次の手順を実行します。

1. 「アダプタ・マネージャ」フォームを開きます。
「アダプタ・マネージャ」フォームは、「開発ツール」フォルダにあります。図2-3に示すように、複数のアダプタを同時にコンパイルするために使用します。

図2-3 「アダプタ・マネージャ」フォーム

2. Oracle Identity Managerデータベース内のすべてのアダプタをコンパイルするには、すべてをコンパイル・オプションを選択します。
複数のアダプタをコンパイルするには、コンパイルするアダプタを選択します。次に、選択分をコンパイル・オプションを選択します。

ステータスがOKではないすべてのアダプタをコンパイルするには、以前の失敗分をコンパイル・オプションを選択します。

3. 「起動」ボタンをクリックします。
Oracle Identity Managerにより、手順2で指定した条件に一致するアダプタがコンパイルされます。

ヒント:

Oracle Identity Managerでは、「アダプタ・マネージャ」フォームに表示されるアダプタのレコードを確認し、アダプタの詳細を参照できます。

アダプタのレコードを表示するには、該当するアダプタを選択し、行ヘッダーをダブルクリックするかアダプタを右クリックして、表示されるメニューからアダプタの起動コマンドを選択します。

2.4 アダプタの定義

アダプタを定義するには、次の手順を実行します。

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

2. 「アダプタ・ファクトリ」フォームを開きます。このフォームは、Design Consoleの「開発ツール」フォルダ内にあります。

3. 「アダプタ名」フィールドに、アダプタの名前(Create Solaris Userなど)を入力します。

注意:

アダプタ名には特殊文字を使用できますが、実行時エラーが発生する場合があるため、特殊文字は使用しないことをお薦めします。

4. アダプタ・タイプ参照フィールドをダブルクリックします。
参照ウィンドウが表示され、5つのタイプのOracle Identity Managerアダプタが表示されます。それらは次のとおりです。

- プロセス・タスク

- ルール・ジェネレータ

- 事前移入ルール・ジェネレータ

- エンティティ

- タスク割当て

5. プロセス・タスクを自動化するアダプタを有効にするには、プロセス・タスク(T)を選択します。
ビジネス・ルールをOracle Identity Managerまたはユーザー定義フォーム・フィールドに組み込むには、ルール・ジェネレータ(R)を選択します。たとえば、フォームの「ユーザーID」フィールドについて、ユーザーの名前と姓の頭文字を連結するようにOracle Identity Managerを構成できます。

ユーザーが作成したフォーム・フィールドに、ルール・ジェネレータ・タイプのアダプタをアタッチして、次のことを実行できます。

- アダプタによって生成されたデータを自動または手動で表示します。

- 指定のフォーム・フィールドにどのアダプタを適用するかをOracle Identity Managerで決定できるようにする条件を使用します。

Oracle Identity Managerまたはユーザー定義フォーム・フィールドにアダプタをアタッチし、挿入、更新および削除の前後にOracle Identity Managerでアダプタをトリガーするには、エンティティ(E)を選択します。

プロセス・タスクのユーザーまたはグループへの割当てをアダプタで自動化できるようにするには、タスクの割当て(A)を選択します。

ヒント:

エンティティ・アダプタを作成する場合、ファイル制限が小さいコンピュータ上でアダプタをコンパイルするときに、エラーが生成されることがあります。この問題を回避するには、/etc/security/limits.confファイルでファイル制限を次のように変更します。

soft nofile 4096

hard nofile 4096

その後、Oracle Identity Managerを再起動します。

6. アダプタのタイプ(プロセス・タスク(T)など)を選択します。次に、「OK」をクリックします。

関連項目:

「フォーム・デザイナ」フォームの詳細は、「「フォーム・デザイナ」フォーム」を参照してください。

7. 「説明」フィールドに、アダプタの説明(「このアダプタは、Solaris環境で新規ユーザーを作成するために使用します」など)を入力します。

8. ツールバーで、「保存」をクリックします。
アダプタはOracle Identity Managerデータベースに格納されます。

2.5 「アダプタ・ファクトリ」フォームのタブ

Design Consoleの「アダプタ・ファクトリ」フォームには、次のタブがあります。

- アダプタ・タスク

- 実行スケジュール

- リソース

- 変数リスト

- 使用状況参照

- レスポンス

2.5.1 アダプタ・タスク

アダプタ・タスク・タブでは、アダプタのアトミック・ファンクション・コールを作成および管理できます。これらのファンクション・コールは、アダプタ・タスクと呼ばれます。

これらのコールはJava文に変換されるため、コールの順序は重要です。つまり、Ifコールの前にElseコールを置いた場合、アダプタはコンパイルされません。また、アダプタを作成するときは、Javaプログラムの論理フローを理解する必要があります。これは、Java構文を使用するプログラムではなくアルゴリズムを記述することに似ています。

2.5.2 実行スケジュール

実行スケジュール・タブでは、Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタをトリガーするタイミングを指定できます。挿入前または更新前(あるいはその両方)にルール・ジェネレータ(アダプタ・タイプR)を実行するように、Oracle Identity Managerをスケジュールできます。エンティティ・アダプタ(アダプタ・タイプE)を挿入、更新および削除の前後に実行するように、Oracle Identity Managerを構成することもできます。

注意:

プロセス・タスクにアタッチされたプロセス・タスク・アダプタとタスク割当てアダプタは、プロセス・タスクのステータスが「保留」になるとトリガーされます。そのため、Oracle Identity Managerでこれらのタイプのアダプタをトリガーするタイミングは指定せず、Oracle Identity Managerではこれらのアダプタの実行スケジュール・タブが無効になります。

また、Oracle Identity Managerでは挿入前に常に事前移入アダプタがトリガーされるため、事前移入アダプタについてはこのタブのチェック・ボックスは無効になります。

2.5.3 リソース

「リソース」タブでは、次のことを実行できます。

- Java APIサブタブをクリックして、アダプタで使用中のJava APIを確認します。

- 「その他」サブタブをクリックして、必要に応じて、Java APIではないファイルをアダプタに記録できます。

注意:

この「リソース」タブにはリソース・オブジェクトは表示されません。

2.5.4 変数リスト

事前移入アダプタの場合、データはアダプタ入力変数に渡され、アダプタ論理を使用して処理されます。アダプタによって出力変数が返され、プロセス・フォーム・フィールドに割り当てられます。

変数リスト・タブでは、次のことを実行できます。

- アダプタ変数を作成、変更および削除します。

- 各変数のデータ型を設定し、説明を付けます。

- アダプタ変数をリテラル参照またはアダプタ参照にマップします。また、プロセス・タスクまたはフォーム・フィールドにアタッチされるまで、マッピングを延期することもできます。

アダプタ変数がプロセス・タスクにアタッチされてプロセス・タスクが実行される場合、実行時にアダプタ変数の値を解決することもできます。その結果、プロセス固有のデータをこの変数にマップできます。

2.5.5 使用状況参照

プロセス・タスク・アダプタまたはタスク割当てアダプタの場合、使用状況参照タブには、アダプタがアタッチされたプロセス・タスクおよびそのプロセス・タスクをメンバーに持つプロセスが表示されます。

ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの場合、このタブには、Oracle Identity Managerフォームおよびアダプタがアタッチされた関連データ・オブジェクトが表示されます。また、アダプタの実行スケジュールが、Oracle Identity Managerによってアダプタがトリガーされる順序を表す順序番号とともに表示されます。

事前移入アダプタの場合、このタブには、ユーザー定義フォームとアダプタがアタッチされたフォーム・フィールドが表示されます。また、アダプタに関連付けられた事前移入ルールも表示されます。

2.5.6 レスポンス

「レスポンス」タブは、プロセス・タスクに対する有効なレスポンスを定義するために使用されます。これらのレスポンスは、アダプタの実行結果に基づきます。外部システムによって返される様々なエラー・メッセージは、プロセス・タスクのコンテキストにおいて意味を持つような方法でこれらのレスポンスにマップできます。プロセス・タスクにアダプタをアタッチするときに、アダプタ・レスポンス・コードに基づいて、プロセス・タスク(およびそれに続くオブジェクト・ステータス)のステータス・バケット(「保留」、「完了」および「却下」で構成されます)を設定できます。

ヒント:

Oracle Identity Managerでは、プロセス・タスク・アダプタに対してのみ「レスポンス」タブが有効になります。タスク割当てアダプタ、ルール・ジェネレータ・アダプタ、事前移入アダプタまたはエンティティ・アダプタの場合、このタブは無効です。

2.6 アダプタの無効化と再有効化

アダプタを無効化してプロセス・タスクまたはフォーム・フィールドで使用できないようにするには、アダプタの無効化オプションを選択し、アダプタを保存します。

再度有効化するには、アダプタの無効化オプションの選択を解除し、アダプタを保存します。

2.7 アダプタ変数について

新たに作成したアダプタを機能させるために、アダプタ・タスクのパラメータにデータをマップできます。その場合は、プレースホルダ(アダプタ変数とも呼ばれる)を作成して、実行時にデータがマップされるようにします。

注意:

アダプタ変数は、すべてのアダプタ・タスクで再利用できます。

アダプタの実行にアダプタ変数が不必要になった場合は、アダプタからアダプタ変数を削除できます。アダプタ変数を削除した後、アダプタを再コンパイルしてください。

2.7.1 アダプタ変数の作成

アダプタ変数を作成するには、次の手順を実行します。

1. アダプタ変数を追加するアダプタ(Create Solaris Userアダプタなど)を選択します。

2. 変数リスト・タブを選択します。

3. 「追加」をクリックします。
変数の追加ウィンドウが表示されます。

4. アダプタ変数値をアクティブ化した後にOracle Identity Managerで変更できないようにするには、最終を選択します。

5. 「変数名」フィールドに、アダプタ変数の名前(SolarisUserIDなど)を入力します。

注意:

アダプタ変数名に空白は使用できません。

6. 「タイプ」メニューから、アダプタ変数の分類タイプ(Stringなど)を選択します。使用可能な項目は次のとおりです。

- オブジェクト

- ITリソース

- String

- ブール

- Character

- Byte

- 日付

- Integer

- Float

- Long

- Short

- Double

7. 「説明」テキスト領域には、アダプタ変数の説明を入力できます。

8. 「マップ先」メニューから、アダプタ変数を表2-1の項目のいずれかにマップできます。

表2-1 「マップ先」メニューの項目

名前

説明

リテラル

このアダプタ変数は、定数(リテラル)にマップされます。

実行時に解決

このアダプタ変数のマッピングは、後から実行時に行われます。このオプションを選択すると、アダプタの再利用性が向上します。

アダプタ参照

このアダプタ変数によって、Oracle Identity Managerデータベース参照またはOracle Identity Managerデータ・オブジェクト参照にアクセスできます。

システム日付

このアダプタ変数がOracle Identity Managerによってトリガーされると、サーバーの現在の日付と時刻にマップされます。

注意: このオプションは「日付」タイプを選択した場合にのみ表示されます。

注意:

「オブジェクト」タイプを選択すると、「修飾子」メニューが変数の追加ウィンドウに表示されます。このメニューから、次のいずれかを選択できます。

- データベース参照。この項目を選択すると、アダプタ変数は、Oracle Identity Managerが現在実行されている対象のデータベースの参照にマップされます。

- データ・オブジェクト参照。この項目を選択すると、アダプタ変数は、Oracle Identity Managerデータ・オブジェクトにマップされます。

注意:

「ITリソース」タイプを選択すると、「リソース・タイプ」メニューが変数の追加ウィンドウに表示されます。このメニューから、ITリソース・タイプの定義フォームを使用して作成されたITリソース・タイプのいずれかを選択できます。そうすることで、このITリソース・タイプのパラメータにアダプタ変数をマップできます。

9. 変数の追加ウィンドウのツールバーで、「保存」をクリックします。アダプタ変数の情報が、Oracle Identity Managerデータベースに格納されます。
変数の追加ウィンドウを閉じてメイン画面をアクティブにします。作成したアダプタ変数の名前、分類タイプ、マッピング選択および説明が、変数リスト・タブの子表に表示されます。

これで、このアダプタ変数が「アダプタ・ファクトリ」フォームのアダプタに加わりました。Oracle Identity Managerデータベースに保存され、アダプタ変数が使用可能になります。

2.7.2 アダプタ変数の変更

アダプタ変数を変更するには、次の手順を実行します。

1. 編集するアダプタ変数を含むアダプタ(Create Solaris Userアダプタなど)を選択します。

2. 変数リスト・タブをクリックし、変更するアダプタ変数の行ヘッダーをダブルクリックします。変数の編集ウィンドウが表示され、アダプタ変数の情報が表示されます。

3. アダプタ変数のデータ型をStringからCharacterに変更するなど、必要な編集を行います。

4. 変数の編集ツールバーで、「保存」をクリックします。アダプタ変数に関して変更された情報が、Oracle Identity Managerデータベースに格納されます。

5. 変数の編集ウィンドウを閉じてメイン画面をアクティブにします。変更したアダプタ変数が、「アダプタ・ファクトリ」フォームの子表に表示されます。

注意:

アダプタ変数のデータ型を変更した場合は特に、データ・マッピングを確認し、アダプタを再コンパイルしてください。

2.7.3 アダプタ変数の削除

アダプタの実行にアダプタ変数が不要になった場合は、アダプタからアダプタ変数を削除できます。これを行うには、次の手順を実行します。

1. 削除するアダプタ変数を含むアダプタ(Create Solaris Userアダプタなど)を選択します。

2. 変数リスト・タブを選択します。

3. このタブのリストから、削除するアダプタ変数を選択します。

4. 「削除」をクリックします。

5. 変数を削除した後、アダプタを再コンパイルします。

アダプタ変数が子表に表示されなくなります。アダプタ変数は削除されました。

2.8 アダプタ・タスクの作成

アダプタの構成と変数の作成が終了すると、アダプタのアトミック・ファンクション・コールを作成できます。これらのファンクション・コールは、アダプタ・タスクと呼ばれます。

この項では、アダプタ・タスクとタスクの作成方法について説明します。

- アダプタ・タスクのタイプ

- Javaタスクの作成

- リモート・タスクの作成

- ストアド・プロシージャ・タスクの作成

- ユーティリティ・タスクの作成

- Oracle Identity Manager APIタスクの作成

- アダプタ変数の値の再割当て

- エラー・ハンドラ・タスクの追加

- ロジック・タスクの作成

2.8.1 アダプタ・タスクのタイプ

Oracle Identity Managerでは、次のアダプタ・タスクを作成できます。

- Javaタスク: Java APIを起動することで、アダプタと外部ソースとの通信を可能にします。

- リモート・タスク: アダプタによるAPIのメソッドの呼出しを可能にします。このAPIは、Oracle Identity Managerの外部にあるコンピュータに常駐します。
このタイプのタスクは、ほとんどの場合、ネットワーク対応ではないサード・パーティAPIの統合で使用されます。Remote Managerによって、リモート・コンピュータに配置されているリモートAPIメソッドが実行されます。また、サード・パーティAPIがSSLを使用しない場合、Remote Managerを使用して、SSLで保護された通信でサード・パーティAPIを起動できます。リモート・タスクは、ネットワーク対応だがスケーラビリティ目的でOracle Identity Managerサーバーに置かれていない、サード・パーティAPIの統合でも使用できます。リモートAPIメソッドは、Remote Managerによって実行されます。ただし、サード・パーティAPIがネットワーク対応しているため、Remote Managerがターゲット・システムに存在する必要はありません。

- ストアド・プロシージャ・タスク: Oracle Identity Managerで特定のデータベース・スキーマ内にあるSQLプログラムにマップして実行できます。これらのプログラムはストアド・プロシージャと呼ばれます。効率を高めるために事前にコンパイルされたSQL文などの情報が含まれています。
ストアド・プロシージャ・タスクをアダプタに組み込み、このアダプタをプロセス・タスクにアタッチすることで、Oracle Identity Managerでは、ネットワーク上でアクセス可能なOracle DatabaseまたはMicrosoft SQL Serverデータベースにストアド・プロシージャを組み込むことができます。これには、ストアド・プロシージャからのプリミティブ値の取得が含まれます。

- ユーティリティ・タスク: Oracle Identity ManagerにパッケージされたメソッドおよびAPIをアダプタに移入できます。また、このタイプのタスクを使用すると、Java標準ライブラリAPIにアクセスできます。

- Oracle Identity Manager APIタスク: アダプタ・タスクからOracle Identity Managerで公開されたAPIにアクセスできます。これにより、アダプタ・コードの移植性が高まります。

- 変数設定タスク: アダプタ内に変数を設定できます。

- エラー・ハンドラ・タスク: 実行時に発生したアダプタ関連のエラーを表示できます。また、エラーの理由および考えられる解決策を表示できます。

- ロジック・タスク: アダプタ内に条件文を構築できます。

次のタイプのロジック・タスクを作成できます。

- FORループ

- WHILEループ

- IF文

- ELSE文

- ELSE IF文

- BREAK文

- RETURN文

- CONTINUE文

- SET VARIABLE文

- Handle Error文

関連項目:

構築できるロジック・タスクのタイプの詳細は、第2.8.9項「ロジック・タスクの作成」を参照してください。

区別しやすくするために、Oracle Identity Managerでは、アダプタ・タスクのタイプがそれぞれアイコンで表示されます。タスク名の先頭にあるアイコンは、タスクのタイプを視覚的に示しています。たとえば、JはJavaタスクを表し、LTはロジック・タスクを表します。

アイコンのリストを表示するには、アダプタ・タスク・タブを選択し、「凡例」をクリックします。「凡例」ウィンドウが表示され、次のアイコンのリストが表示されます。

- 関数タスク

- Java

- リモート

- ストアド・プロシージャ

- ユーティリティ・タスク

- ユーティリティ

- Oracle Identity Manager API

- 論理タスク

2.8.2 Javaタスクの作成

Oracle Identity Managerでは、Java APIを使用して外部ソースとハンドシェイクできます。このためには、Oracle Identity Managerによってトリガーされた場合に外部ソースとの通信を開始するタスクを、アダプタに追加する必要があります。このタイプのタスクはJavaタスクと呼ばれます。

Javaタスクを作成するには、次の手順を実行します。

1. Javaタスクを追加するアダプタ(Update Solaris Passwordアダプタなど)を選択します。

2. アダプタ・タスク・タブを選択します。

3. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されたら、関数タスク・オプションを選択します。

4. このオプションの右側の表示領域からJava項目を選択し、「続行」をクリックします。
オブジェクト・インスタンスの選択ウィンドウが表示されます。

表2-2に、オブジェクト・インスタンスの選択ウィンドウのオプションを示します。

表2-2 オブジェクト・インスタンスの選択ウィンドウのオプション

オプション

説明

新規オブジェクト・インスタンス

このオプションをクリックして、新規Javaオブジェクト・インスタンスを作成します。

永続インスタンス

このオプションをクリックし、隣接するコンボ・ボックスをクリックして、ドロップダウン・メニューからオブジェクト・インスタンスを選択すると、永続オブジェクトにメソッドをコールできます。

タスク戻り値インスタンス

このオプションをクリックし、コンボ・ボックスをクリックして、ドロップダウン・メニューからアダプタ・タスクを選択すると、先に定義したアダプタ・タスクによって返されたオブジェクトにこのメソッドをコールできます。

注意:

永続インスタンス・オプションがグレー表示されている場合は、アダプタに永続オブジェクトが定義されていません。同様に、タスク戻り値インスタンス・オプションがグレー表示されている場合は、タスクに関連付けられたJavaオブジェクトの戻り値がありません。

5. オプション(新規オブジェクト・インスタンスなど)をクリックして、「続行」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。
表2-3に、アダプタ・ファクトリ・タスクの追加ウィンドウの様々なリージョンを示します。

表2-3 アダプタ・ファクトリ・タスクの追加ウィンドウのリージョン

名前

説明

タスク名

このフィールドにはJavaタスクの名前が表示されます。

永続インスタンス

このJavaオブジェクトが再利用される場合は、チェック・ボックスが選択され、タスク・インスタンスの名前が隣のフィールドに入力されます。

APIソース

このコンボ・ボックスには、アクセス可能なすべてのJARファイルおよびクラス・ファイルのリストが表示されます。

アプリケーションAPI

このコンボ・ボックスには、アクセス可能であり、APIソース・リストで選択したJARファイルに属するすべてのクラス・ファイルのリストが表示されます。

コンストラクタ

このテキスト領域には、Javaオブジェクトで使用可能なすべてのコンストラクタが表示されます。

メソッド

このテキスト領域には、Javaオブジェクトで使用可能なすべてのメソッドのリストが表示されます。

アプリケーション・メソッド・パラメータ

この領域には、選択したコンストラクタおよびメソッドのパラメータが表示されます。これらのパラメータは、アダプタ変数とOracle Identity Managerコンポーネントにマップされます。

6. 「タスク名」フィールドに、作成するタスクの名前(Update Passwordなど)を入力します。

7. (オプション。)Javaオブジェクトを再利用可能にするには、永続インスタンスを選択し、チェック・ボックスの右側にあるテキスト・フィールドに、このタスクのインスタンスの名前を入力します。

注意:

インスタンス名に空白が含まれていないことを確認してください。

注意:

ターゲット・リソースとのセッションを、アダプタの使用中に1回のみではなく複数回参照するには、永続インスタンスを選択します。

ヒント:

Javaオブジェクトを永続するように設定すると、Javaオブジェクトを次に作成するときに、オブジェクト・インスタンスの選択ウィンドウの永続インスタンス・リストに表示されます。また、同一Javaオブジェクトのすべてのアダプタ・タスクにコンストラクタをマップする必要はありません。

8. APIソースを選択します。Oracle Identity ManagerがOIM_HOME/ディレクトリ・パスのJavaTasksサブディレクトリ(C:\oracle\Xellerate\JavaTasksなど)から参照するJARファイルが表示されます。

関連項目:

Oracle Identity Managerでサード・パーティJARファイルをJavaタスクとともに使用する方法については、第2.3.1項「アダプタ環境の構成」を参照してください。

9. アプリケーションAPIを選択します。APIソースで選択したJARファイルに属するクラス・ファイルが表示されます。

10. コンストラクタ領域から、選択したJavaクラスの初期化に使用するメソッドを選択します。

11. メソッド領域から、Javaタスクで使用するメソッドを選択します。

12. ツールバーで、「保存」をクリックします。
Javaタスクに関する情報が、Oracle Identity Managerデータベースに格納されます。Javaタスクのコンストラクタおよびメソッドのパラメータにアクセスできるようになります。これらのパラメータは、アダプタ・ファクトリ・タスクの追加ウィンドウのアプリケーション・メソッド・パラメータ・リージョンに表示されます。

13. マッピングを設定する必要があるJavaクラスのコンストラクタおよびメソッドを表示するには、コンストラクタおよびメソッド・アイコンの左側にある「+」アイコンをクリックします。

14. マッピングを設定する必要があるコンストラクタまたはメソッドのパラメータを選択します。

15. 「説明」テキスト領域に、このマッピングの説明を入力できます。

16. 「マップ先」コンボ・ボックスをクリックし、コンストラクタまたはメソッドのパラメータにマップできる項目(「アダプタ変数」など)を選択します。

17. 適切なマッピングを設定します。

関連項目:

設定するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

18. 設定をクリックします。
選択したコンストラクタまたはメソッドのパラメータが青で表示されます。これはマップ済であることを表します。

ヒント:

パラメータのマッピングを削除するには、そのパラメータを右クリックし、表示されるポップアップ・メニューからパラメータのマッピング解除を選択します。

19. アプリケーション・メソッド・パラメータ・リージョンに表示されるコンストラクタおよびメソッドのすべてのパラメータに対して、手順15から18を繰り返します。

20. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。Javaタスクに関する情報が、Oracle Identity Managerデータベースに格納されます。

21. ツールバーで「閉じる」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成したJavaタスク(Update Passwordなど)が、「アダプタ・ファクトリ」フォームに表示されます。

22. (オプション。)アダプタに対して追加のJavaタスクを作成するには、手順3から21を繰り返します。

ヒント:

様々なタイプのアダプタ・タスクを作成してアダプタに追加できます。

アダプタが論理的に完全で、アダプタ・タスクのすべての変数がマップ済の場合、アダプタをコンパイルして、プロセス・タスクまたはフォーム・フィールドで使用できます。

23. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

24. (オプション。)Oracle Identity Managerで生成されたコードを表示するには、ツールバーの「注意」をクリックします。
Oracle Identity Managerで生成されたコードを含む「注意」ウィンドウが表示されます。

注意:

「ビルド」をクリックした後に、コンパイルのステータス・フィールドにCODE GEN ERRORが表示される場合は、アダプタの検証およびコンパイル中に、Oracle Identity Managerで次の2つのタイプのエラーのいずれかが発生しています。

- 検証エラー
Oracle Identity Managerでアダプタをチェックし、有効であることを検証しているときに、エラーが検出されました。このエラーは、アダプタ・タスクのパラメータがマップされていない場合、パラメータが正しくマップされていない場合、または配置されたアダプタ・タスクが使用できない場合に発生します。

Oracle Identity Managerでは、アダプタの検証が終了してからアダプタのコードが生成されるため、Oracle Identity Managerで検証エラーが発生すると、コードは作成されません。

- Javaコンパイル・エラー
Oracle Identity Managerによって、アダプタは有効であることが検証されました。ただし、Oracle Identity Managerでアダプタのコンパイル中に、エラーが検出されました。このエラーは、アダプタ・タスク・パラメータに割り当てられたデータ型が正しくない場合に発生します。

Oracle Identity Managerでアダプタが検証されているため、コードが生成されます。ただし、コンパイル中にOracle Identity Managerでエラーが発生した時点で、コードの生成は停止されます。

ヒント:

Javaタスクを作成してアダプタに追加すると、「アダプタ・ファクトリ」フォームの「リソース」タブにアクセスして、次の情報を確認できます。

- Javaタスクの作成に使用されたJARファイルおよびクラス・ファイル

- これらのJARファイルおよびクラス・ファイルを含むディレクトリ・パスを表す名前

2.8.3 リモート・タスクの作成

リモート・タスクを使用すると、アダプタでRemote Managerを使用してAPIメソッドを起動できます。このAPIは、Oracle Identity Managerの外部にあるコンピュータに常駐します。この項では、リモート・タスクの作成方法について説明します。

注意:

リモート・タスクを作成する前に、分類タイプが「ITリソース」のアダプタ変数を定義し、ITリソース・タイプの定義フォームを使用して作成したITリソースのいずれかを選択してください。

1. リモート・タスクを追加するアダプタを選択します。

2. アダプタ・タスク・タブをクリックします。

3. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されます。

4. 関数タスク・オプションを選択します。

5. ボタンの右側の表示領域から、リモート・タスクを作成するリモート項目を選択します。次に、「続行」をクリックします。
オブジェクト・インスタンスの選択ウィンドウが表示されます。

注意:

このウィンドウの選択肢の詳細は、第2.8.2項「Javaタスクの作成」を参照してください。

6. 「続行」をクリックします。
アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。

7. 「タスク名」フィールドに、作成するリモート・タスクの名前を入力します。

8. (オプション。)リモート・タスクを再利用可能にする場合は、永続インスタンス・オプションを選択します。次に、チェック・ボックスの右側にあるテキスト・フィールドに、このタスクのインスタンスの名前を入力します。

注意:

インスタンス名に空白が含まれていないことを確認してください。

関連項目:

アダプタ・ファクトリ・タスクの追加ウィンドウのリージョンの詳細は、第2.8.2項「Javaタスクの作成」を参照してください。

Oracle Identity Managerでサード・パーティJARファイルをJavaタスクとともに使用できるようにする方法の詳細は、第2.3.1項「アダプタ環境の構成」を参照してください。

9. アダプタ・ファクトリ・タスクの追加ウィンドウから、JARファイル、クラス・ファイル、コンストラクタおよびメソッドを選択します。次に、コンストラクタおよびメソッドのパラメータのマッピングを設定します。

注意:

入力パラメータの1つに、分類タイプ「ITリソース」が含まれています。このパラメータを、タイプ「ITリソース」のアダプタ変数と関連付ける必要があります。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

10. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。
リモート・タスクに関する情報が、Oracle Identity Managerデータベースに格納されます。

11. このウィンドウのツールバーで、「閉じる」をクリックします。
アダプタ・ファクトリ・タスクの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成したリモート・タスクが「アダプタ・ファクトリ」フォームに表示されます。

12. (オプション。)アダプタに対して追加のリモート・タスクを作成するには、手順3から11を繰り返します。
これで、アダプタをコンパイルし、プロセス・タスクまたはフォーム・フィールドで使用できます。

13. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチして、Oracle Identity Managerが外部APIと通信できるようになります。

2.8.4 ストアド・プロシージャ・タスクの作成

Oracle Identity Managerでは、特定のデータベース・スキーマ内にあるSQLプログラムにマップして、そのSQLプログラムを実行できます。これらのSQLプログラムは、ストアド・プロシージャと呼ばれます。ストアド・プロシージャには、効率を高めるために事前にコンパイルされたSQL文などの情報が含まれています。

そのためには、ストアド・プロシージャ・タスクをアダプタに追加する必要があります。Oracle Identity Managerでトリガーされると、このタスクによって、ネットワーク上でアクセス可能なOracle DatabaseまたはMicrosoft SQL Serverデータベースにストアド・プロシージャが組み込まれます。これには、ストアド・プロシージャからのプリミティブ値の取得が含まれます。

ストアド・プロシージャ・タスクを作成するには、次の手順を実行します。

注意:

データベース・スキーマのパラメータ値とサーバー・タイプは、「ITリソース」フォームで設定します。

スキーマのサーバー・タイプは、「データベース」に設定する必要があります。それ以外では、ストアド・プロシージャ・タスクの作成または実行(あるいはその両方)の際に、Oracle Identity Managerでデータベース・スキーマを参照できません。

また、Oracle Identity Managerでは、パラメータで表される値(データベース名やURLなど)を使用してスキーマに接続します。その結果、スキーマに含まれるストアド・プロシージャを実行できます。

1. Oracle Databaseを使用するOracle Identity Managerインストールの場合、ojdbc14.jarファイルをOIM_HOME/ext/ディレクトリからOIM_DC_HOME/xlclient/extディレクトリにコピーします。
Microsoft SQL Serverを使用するOracle Identity Managerインストールの場合、次のファイルをMicrosoftから入手し、OIM_DC_HOME/xlclient/extディレクトリにコピーする必要があります。

- msbase.jar

- mssqlserver.jar

- msutil.jar

2. ストアド・プロシージャ・タスクを追加するアダプタ(Update User IDアダプタなど)を選択します。

3. アダプタ・タスク・タブをクリックします。

4. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されます。

5. 関数タスク・オプションを選択します。

6. オプションの右側の表示領域からストアド・プロシージャを選択し、「続行」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。
次の表に、アダプタ・ファクトリ・タスクの追加ウィンドウのリージョンを示します。

表2-4 アダプタ・ファクトリ・タスクの追加ウィンドウのリージョン

名前

説明

タスク名

ストアド・プロシージャ・タスクの名前が表示されます。

説明

ストアド・プロシージャ・タスクに関する説明が表示されます。

データベース

「ITリソース」フォームで定義されたデータベースがリストされます。

重要: サーバー・タイプが「データベース」であるITリソースのみが「データベース」リストに表示されます。

スキーマ

「データベース」リストに表示されるデータベースに関連付けられたスキーマがリストされます。

プロシージャ

スキーマ・リストに表示されるデータベース・スキーマに常駐するストアド・プロシージャがリストされます。

接続ステータス

Oracle Identity Managerとターゲット・ストアド・プロシージャを含むデータベース間の接続のステータスが表示されます。

Oracle Identity Managerがデータベースに接続可能な場合は、接続ステータス・リージョンに接続が確立されましたと表示されます。

注意: Oracle Identity Managerが接続できない場合は、表示領域に接続に失敗しましたと表示されます。また、アダプタ・ファクトリ・タスクの追加ウィンドウの「注意」ボタンが有効になります。このボタンをクリックすると、次の例に示すように、接続を確立できなかった理由が表示されます。

例外タイプ:

java.lang.ClassNotFoundExceptionMessage:

java.lang.ClassNotFoundException:

oracle.jdbc.driver.OracleDriver

この例では、特定のJavaクラスが見つからなかったため、Oracle Identity Managerは指定されたデータベースに接続できませんでした。

パラメータ

ストアド・プロシージャにマップできるパラメータが表示されます。これらのパラメータは、データベース、スキーマおよびストアド・プロシージャを選択し、この情報をOracle Identity Managerデータベースに保存した後で表示されます。

7. 「タスク名」フィールドに、作成するストアド・プロシージャ・タスクの名前(Update IDなど)を入力します。

8. 「説明」テキスト領域に、このストアド・プロシージャ・タスクの説明を入力できます。

9. 「データベース」リストをクリックします。「ITリソース」フォームで定義されたデータベースが表示されます。

注意:

選択したデータベースにOracle Identity Managerが接続できない場合は、表示領域に接続に失敗しましたと表示されます。また、アダプタ・ファクトリ・タスクの追加ウィンドウの「注意」ボタンが有効になります。このボタンをクリックすると、接続を確立できなかった理由が表示されます。

ヒント:

スキーマおよびストアド・プロシージャは、Oracle Identity Managerで接続できるデータベースを選択した後にのみ表示されます。この選択に基づいて、関連するスキーマおよびプロシージャが、対応するコンボ・ボックスに表示されます。

10. スキーマ・リストをクリックします。選択したデータベースに関連付けられたスキーマが表示されます。

11. プロシージャ・リストをクリックします。スキーマ・コンボ・ボックスから選択したデータベース・スキーマに常駐するストアド・プロシージャが表示されます。

12. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。ストアド・プロシージャ・タスクに関する情報が、Oracle Identity Managerデータベースに保存されます。
これで、ストアド・プロシージャのパラメータにマッピングを設定できます。これらのパラメータは、アダプタ・ファクトリ・タスクの追加ウィンドウの「パラメータ」リージョンに表示されます。

注意:

選択したストアド・プロシージャのデータベースおよびスキーマは、Oracle Identity Managerによって自動的にマップされます。ただし、Oracle Identity Managerでこれらのマッピングを上書きできます。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

13. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。ストアド・プロシージャ・タスクのパラメータに設定したマッピングが、Oracle Identity Managerデータベースに格納されます。

14. このウィンドウのツールバーで、「閉じる」をクリックします。
アダプタ・ファクトリ・タスクの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成したストアド・プロシージャ・タスク(Update IDなど)が、「アダプタ・ファクトリ」フォームに表示されます。

15. (オプション。)アダプタに追加のストアド・プロシージャ・タスクを作成するには、手順3から13を繰り返します。

16. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチでき、選択したストアド・プロシージャをOracle Identity Managerでマップおよび実行できます。

2.8.5 ユーティリティ・タスクの作成

アダプタ・ファクトリは、アダプタ開発の効率を高めるユーティリティ・クラスおよびメソッドのライブラリとともに出荷されています。

これらのユーティリティ・クラスとメソッドは、xlUtils.jar、xlIntegration.jarおよびrt.jarファイル内にあります。これらのJARファイルのいずれかのクラスまたはメソッドを使用して作成したJavaタスクは、ユーティリティ・タスクと呼ばれます。

関連項目:

xlUtils.jar、xlAPI.jar、xlIntegration.jarおよびrt.jarファイルを含むクラス・ファイルの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

1. ユーティリティ・タスクを追加するアダプタ(Update Solaris User Groupアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されます。

4. ユーティリティ・タスク・オプションを選択します。

5. オプションの右側の表示領域からユーティリティを選択し、「続行」をクリックします。オブジェクト・インスタンスの選択ウィンドウが表示されます。

関連項目:

このウィンドウの選択肢の詳細は、「Javaタスクの作成」を参照してください。

6. 「続行」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。

7. 「タスク名」フィールドに、作成するユーティリティ・タスクの名前(Update User Groupなど)を入力します

8. (オプション。)ユーティリティ・タスクを再利用可能にする場合は、永続インスタンスを選択し、チェック・ボックスの右側にあるテキスト・フィールドに、このタスクのインスタンスの名前を入力します。

注意:

インスタンス名に空白が含まれていないことを確認してください。

関連項目:

アダプタ・ファクトリ・タスクの追加ウィンドウのリージョンの詳細は、「Javaタスクの作成」を参照してください。

「アダプタ環境の構成」を参照してください。

9. アプリケーションAPIリストをクリックします。xlUtils.jar、xlIntegration.jarおよびrt.jarファイルに属するクラス・ファイルが表示されます。

注意:

xlUtils.jar、xlIntegration.jarおよびrt.jarファイルには、ユーティリティ・タスクで使用できるすべてのクラス・ファイルが含まれています。したがって、APIソース・リストにアクセスする必要はありません。

10. アダプタ・ファクトリ・タスクの追加ウィンドウから、コンストラクタおよびメソッドを選択します。次に、コンストラクタおよびメソッドのパラメータのマッピングを設定します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

11. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。ユーティリティ・タスクに関する情報が、Oracle Identity Managerデータベースに格納されます。

12. このウィンドウのツールバーで、「閉じる」をクリックします。
アダプタ・ファクトリ・タスクの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成したユーティリティ・タスク(Update User Groupなど)が、「アダプタ・ファクトリ」フォームに表示されます。

13. (オプション。)アダプタに追加のユーティリティ・タスクを作成するには、手順3から12を繰り返します。
これで、アダプタをコンパイルし、プロセス・タスクまたはフォーム・フィールドで使用できます。

14. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

2.8.6 Oracle Identity Manager APIタスクの作成

アダプタ・コードの移植性を高めるために、Oracle Identity Manager APIタスクでは、Oracle Identity Managerによって公開されたAPIをアダプタ・タスクで呼び出すことができます。これは、ハードコードされたSQL文を介してOracle Identity Managerデータに直接アクセスするよりもよい方法です。

アダプタ・ファクトリは、Oracle Identity Manager APIタスクを含むアダプタの開発の効率を高めるユーティリティ・クラスおよびメソッドのライブラリとともに出荷されています。これらのユーティリティ・クラスとメソッドは、xlAPI.jarファイル内にあります。

関連項目:

xlUtils.jar、xlAPI.jar、xlIntegration.jarおよびrt.jarファイルを含むクラス・ファイルの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

このタイプのアダプタ・タスクを作成するには、次の手順を実行します。

1. Oracle Identity Manager APIタスクを追加するアダプタ(Get User's Passwordアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されます。

4. ユーティリティ・タスク・オプションを選択します。

5. オプションの右側の表示領域からXellerate APIを選択し、「続行」をクリックします。オブジェクト・インスタンスの選択ウィンドウが表示されます。

関連項目:

このウィンドウの詳細は、「Javaタスクの作成」を参照してください。

6. 「続行」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。

7. 「タスク名」フィールドに、作成するOracle Identity Manager APIタスクの名前(Retrieve Passwordなど)を入力します。

8. (オプション。)Oracle Identity Manager APIタスクを再利用可能にする場合は、永続インスタンスを選択します。次に、チェック・ボックスの右側にあるテキスト・フィールドに、このタスクのインスタンスの名前を入力します。

ヒント:

インスタンス名に空白が含まれていないことを確認してください。

関連項目:

アダプタ・ファクトリ・タスクの追加ウィンドウのリージョンの詳細は、「Javaタスクの作成」を参照してください。

Oracle Identity Managerでサード・パーティJARファイルをJavaタスクとともに使用できるようにする方法の詳細は、「アダプタ環境の構成」を参照してください。

9. アプリケーションAPIリストをクリックします。xlAPI.jarファイルに属するクラス・ファイルが表示されます。

注意:

xlAPI.jarファイルには、Oracle Identity Manager APIタスクで使用できるすべてのクラス・ファイルが含まれています。したがって、APIソース・リストにアクセスする必要はありません。

10. アダプタ・ファクトリ・タスクの追加ウィンドウから、クラス・ファイル、コンストラクタおよびメソッドを選択します。次に、コンストラクタおよびメソッドのパラメータのマッピングを設定します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

11. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。Oracle Identity Manager APIタスクに関する情報が、Oracle Identity Managerデータベースに格納されます。

12. アダプタ・ファクトリの追加ウィンドウを閉じてメイン画面をアクティブにします。作成したOracle Identity Manager APIタスク(Retrieve Passwordなど)が、「アダプタ・ファクトリ」フォームに表示されます。

13. (オプション。)アダプタに追加のOracle Identity Manager APIタスクを作成するには、手順3から12を繰り返します。
これで、アダプタをコンパイルし、プロセス・タスクまたはフォーム・フィールドで使用できます。

14. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチして、Oracle Identity Managerがサード・パーティ・アプリケーションと通信できるようになります。

2.8.7 アダプタ変数の値の再割当て

アダプタが必要な目的を完了できるように、アダプタ変数の値を、別のアダプタ変数、異なるタイプのアダプタ・タスクまたは定数(リテラル)に再割当てする必要がある場合があります。アダプタ変数値の再割当てを可能にするタスクは、変数設定タスクと呼ばれます。

関連項目:

アダプタ変数の詳細は、「アダプタ変数について」を参照してください。

たとえば、ユーザーIDの長さが11文字未満の場合に、アダプタ変数の戻り値をアダプタ・タスク(UserName)の出力と等しくなるように設定する変数設定タスクを作成できます。

変数設定タスクを作成するには、次の手順を実行します。

1. 変数設定タスクを追加するアダプタ(Check the Solaris User IDアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 「追加」をクリックします。アダプタ・タスクの選択ウィンドウが表示されます。

4. ロジック・タスク・オプションを選択します。

5. 表示領域からSET VARIABLEを選択し、「続行」をクリックします。変数設定タスク・パラメータの追加ウィンドウが表示されます。

6. 「変数名」リストから、再割当てする値(アダプタ戻り値など)を持つアダプタ変数を選択します。

7. オペランド・タイプ・リストから、変数に値を提供するオペランドのタイプを選択します。

ヒント:

アダプタ変数の値を、別のアダプタ変数、異なるタイプのアダプタ・タスクまたはリテラルに再割当てできます。

表2-5を使用して、様々なオペランドのタイプについて理解してください。

表2-5 オペランドのタイプ

オペランド名

説明

変数

このオペランド・タイプを選択すると、アダプタ変数がオペランド修飾子リストに表示されます。このリストから、再割当て値を提供する特定のアダプタ変数を選択します。

注意: オペランド修飾子コンボ・ボックスには、「変数名」コンボ・ボックスに表示されるアダプタ変数と同じデータ型のアダプタ変数のみが表示されます。

アダプタ・タスク

このオペランド・タイプを選択すると、アダプタ・タスクがオペランド修飾子コンボ・ボックスに表示されます。このコンボ・ボックスから、再割当て値を提供する特定のアダプタ・タスクを選択します。

注意: オペランド修飾子コンボ・ボックスには、「変数名」コンボ・ボックスに表示されるアダプタ・タスクと同じデータ型のアダプタ・タスクのみが表示されます。

リテラル

このオペランド・タイプを選択すると、リテラルのタイプがオペランド修飾子コンボ・ボックスに表示されます。このコンボ・ボックスから、再割当て値を提供するリテラルのタイプを選択します。次に、コンボ・ボックスの下に表示されるフィールドに特定のリテラルを入力します。

次のタスクでは、アダプタ変数の戻り値をUserNameアダプタ変数と等しくなるように設定します。

1. 変数設定タスク・パラメータの追加ウィンドウのツールバーで、「保存」をクリックします。作成した変数設定タスクが、Oracle Identity Managerデータベースに格納されます。

2. 変数設定タスク・パラメータの追加ウィンドウのツールバーで、「閉じる」をクリックします。変数設定タスク・パラメータの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成した変数設定タスク(Set Adapter return value = UserNameなど)が、「アダプタ・ファクトリ」フォームに表示されます。

3. (オプション。)アダプタに追加の変数設定タスクを作成するには、手順3から9を繰り返します。
これで、アダプタをコンパイルし、プロセス・タスクまたはフォーム・フィールドで使用できます。

4. アダプタをコンパイルするには、「ビルド」をクリックします。コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。Oracle Identity Managerによってアダプタがコンパイルされ、エラーは検出されませんでした。アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

2.8.8 エラー・ハンドラ・タスクの追加

エラー・ハンドラ・タスクを追加するには、次の手順を実行します。

1. アダプタ・タスクからエラーが返される場合があります。これが発生すると、アダプタがアタッチされたプロセス・タスクまたはフォーム・フィールドは拒否されます。
独自のカスタマイズ可能なエラー・メッセージをアタッチして、ユーザーに表示することができます。これらのメッセージはエラー・ハンドラ・タスクと呼ばれます。

たとえば、ユーザーIDの長さが10文字を超える場合にエラー・メッセージを表示するエラー・ハンドラ・タスクをアダプタにアタッチできます。

2. エラー・ハンドラ・タスクを追加するアダプタ(Check the Solaris User IDアダプタなど)を選択します。

3. アダプタ・タスク・タブをクリックします。

4. 「追加」をクリックします。
アダプタ・タスクの選択ウィンドウが表示されます。

5. ロジック・タスク・オプションを選択します。

6. 表示領域からエラー処理を選択し、「続行」をクリックします。アダプタ・ファクトリ・タスクの追加ウィンドウが表示されます。

7. このウィンドウの参照フィールドをダブルクリックします。アダプタに追加できるエラー・ハンドラ・タスクが表示された「参照」ウィンドウが表示されます。

注意:

この「参照」ウィンドウには、ADAPTERで始まるエラー・ハンドラ・タスク(ADAPTER.USERIDLENERRなど)のみが表示されます。

アダプタに組み込むエラー・ハンドラ・タスクがない場合は、「エラー・メッセージ定義」フォームにアクセスして作成できます。「エラー・メッセージの作成」を参照してください。

8. 使用するエラー・ハンドラ・タスク(ADAPTER.USERIDLENERRなど)を選択します。

9. 「OK」をクリックします。「参照」ウィンドウが閉じ、アダプタ・ファクトリ・タスクの追加ウィンドウがアクティブになります。また、選択したエラー・ハンドラ・タスクが、このウィンドウのフィールドに表示されます。

10. アダプタ・ファクトリ・タスクの追加ウィンドウのツールバーで、「保存」をクリックします。アダプタに組み込んだエラー・ハンドラ・タスクが、Oracle Identity Managerデータベースに格納されます。

11. このウィンドウのツールバーで、「閉じる」をクリックします。
アダプタ・ファクトリ・タスクの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。追加したエラー・ハンドラ・タスク(Handle Error.ADAPTER.USERIDLENERRなど)が、「アダプタ・ファクトリ」フォームの子表に表示されます。

12. (オプション。)アダプタに追加のエラー・ハンドラ・タスクを作成するには、手順3から10を繰り返します。
アダプタが論理的に完全で、アダプタ・タスクのすべての変数がマップ済の場合、アダプタをコンパイルして、プロセス・タスクまたはフォーム・フィールドで使用できます。

13. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

関連項目:

「エラー・メッセージ定義」フォームを使用したエラー・メッセージの作成の詳細は、「エラー・メッセージの作成」を参照してください。

2.8.9 ロジック・タスクの作成

アダプタを定義するときに、アダプタに条件文を追加して論理フローを管理できます。これらの条件文は、ロジック・タスクと呼ばれます。たとえば、ユーザーIDの長さが10文字を超える場合にアクションをトリガーするロジック・タスクを作成できます。

ロジック・タスクを作成するには、次の手順を実行します。

1. ロジック・タスクを追加するアダプタ(Check the Solaris User IDアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 「追加」をクリックします。アダプタ・タスクの選択ウィンドウが表示されます。

4. ロジック・タスク・オプションを選択します。

5. 表示領域から、作成するロジック・タスクのタイプを選択します。次に、「続行」をクリックします。

注意:

条件式を選択して「続行」をクリックすると、次のいずれかのアクションが発生します。

Oracle Identity Managerによって、条件文がアダプタに直接追加されます。

構成できる条件式に関するフィールドを含むセカンダリ・ウィンドウが表示されます。

特定の条件文を選択した場合に発生する内容については、表2-6を参照してください。

表2-6 特定の条件文から発生するアクション

条件文

文がアダプタに直接追加される

セカンダリ・ウィンドウが表示される

FOR

X

WHILE

X

IF

X

ELSE

X

ELSE IF

X

BREAK

X

RETURN

X

CONTINUE

X

表2-7に、アダプタ・ファクトリ・ロジック・タスク・パラメータの追加ウィンドウの様々なリージョンを示します。

表2-7 アダプタ・ファクトリ・ロジック・タスクの追加ウィンドウのリージョン

名前

説明

オペランド・タイプ

これらのコンボ・ボックスには、アダプタ・タスクやアダプタ変数など、オペランドのタイプが表示されます。

コンパレータ・コンボ・ボックス

このコンボ・ボックスから、2つのオペランドの関係(<、=、>など)を設定できます。

オペランド修飾子

これらのコンボ・ボックスには、オペランドの修飾子が表示されます。

リテラル・テキスト・ボックス

「リテラル」オペランド・タイプを選択した場合は、このフィールドに特定のリテラルを入力します。

注意:

FOR条件文を選択すると、アダプタ・ファクトリ・ロジック・タスク・パラメータの追加ウィンドウが表示されます。ただし、異なるテキスト・ボックスとコンボ・ボックスが表示されます。

FOR条件式の場合は、表2-8を使用して、このアダプタ・ファクトリ・ロジック・タスク・パラメータの追加ウィンドウの様々なリージョンについて理解してください。

表2-8 FOR条件文の場合のアダプタ・ファクトリ・ロジック・タスク・パラメータの追加

名前

説明

オペランド・タイプ

これらのコンボ・ボックスには、アダプタ・タスクやアダプタ変数など、オペランドのタイプが表示されます。

コンパレータ・コンボ・ボックス

このコンボ・ボックスから、2つのオペランドの関係(<、=、>など)を設定できます。

オペランド修飾子

これらのコンボ・ボックスには、オペランドの修飾子が表示されます。

増分コンボ・ボックス

この領域で、初期値の増減とその量を設定できます。

注意:

ELSE、BREAK、RETURNまたはCONTINUE条件式を選択した場合は、手順8に進んでください。

6. 条件式にパラメータを設定します。
このロジック・タスクでは、ユーザーIDの長さが10文字を超えているかどうかが確認されます。

7. アダプタ・ファクトリ・ロジック・タスク・パラメータの追加ウィンドウのツールバーで、「保存」をクリックします。
作成したロジック・タスクが、Oracle Identity Managerデータベースに格納されます。

8. このウィンドウのツールバーで、「閉じる」をクリックします。アダプタ・ファクトリ・ロジック・タスク・パラメータの追加ウィンドウが閉じ、メイン画面が再びアクティブになります。作成したロジック・タスク(If (Check ID Length > 10)など)が、「アダプタ・ファクトリ」フォームに表示されます。

9. (オプション。)アダプタに追加のロジック・タスクを作成するには、手順3から8を繰り返します。

注意:

ロジック・タスクの条件で実行されるすべてのアダプタ・タスクは、そのロジック・タスクの下に正しくネストされている必要があります。

関連項目:

タスクのネストの詳細は、第2.10項「タスクの順序とネストの変更」を参照してください。

これで、アダプタをコンパイルし、プロセス・タスクまたはフォーム・フィールドで使用できます。

10. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

2.9 アダプタ・タスクの変更

次の手順では、変更が必要になった場合のアダプタ・タスクの編集方法について説明します。アダプタ・タスクを変更するには、次の手順を実行します。

1. 編集するアダプタ・タスクを含むアダプタ(Update Solaris User Groupアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 変更するアダプタ・タスクをダブルクリックします。
選択したアダプタ・タスクに関する情報を示すアダプタ・ファクトリ・タスク・パラメータの編集ウィンドウが表示されます。このウィンドウで、必要な変更を行います。

4. アダプタ・ファクトリ・タスク・パラメータの編集ウィンドウのツールバーで、「保存」をクリックします。
変更した情報が、Oracle Identity Managerデータベースに格納されます。

5. ツールバーで「閉じる」をクリックします。
アダプタ・ファクトリ・タスク・パラメータの編集ウィンドウが閉じます。メイン画面が再びアクティブになります。変更したタスクが、「アダプタ・ファクトリ」フォームの子表に表示されます。プロセス・タスクまたはフォーム・フィールドで使用できるように、アダプタを再コンパイルする必要があります。

6. アダプタを再コンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

注意:

Java、Xellerate APIまたはユーティリティ・タスク内のAPIコールは変更できません。アダプタ・タスクを削除し、再作成する必要があります。また、コンパイルのステータス・フィールドにCODE GEN ERRORが表示される場合は、アダプタのコンパイル中にOracle Identity Managerでエラーが発生しました。エラーを修正し、必要に応じてアダプタ・タスクを再度変更し、アダプタを再コンパイルしてください。

2.10 タスクの順序とネストの変更

複数のタスクをアダプタに追加する場合、アダプタが機能するように、タスクの実行順序を変更するか、あるタスクを別のタスク内に入れることができます。

次の手順では、タスクの順序とネストを変更する方法について説明します。

注意:

アダプタ・タスクのマッピングの依存性を理解したうえで、アダプタ・タスクの順序とネストを変更してください。

タスクの順序とネストを変更するには、次の手順を実行します。

1. 順序またはネスト(あるいはその両方)を変更するタスクを含むアダプタ(Check the Solaris User IDアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。
現在のアダプタに属するタスクが表示されます。

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

- エラー・ハンドラ・タスクをIF (Check ID Length > 10)ロジック・タスク内にネストする必要があります。

- 変数設定タスクをELSEロジック・タスク内にネストする必要があります。

- IFロジック・タスクをELSEロジック・タスクより前にします。

そのため、最初にロジック・タスクを再編成する必要があります。次に、エラー・ハンドラ・タスクと変数設定タスクをIFおよびELSEロジック・タスク内にそれぞれネストする必要があります。タスクを再編成するには、次の手順を実行します。

3. 別のタスクの前に実行する必要があるタスクを選択し、上へ矢印ボタンをクリックします。選択したタスクの位置が、その前のタスクと入れ替わります。
または

別のタスクの後に実行する必要があるタスクを選択し、下へ矢印ボタンをクリックします。強調表示されたタスクが、下にあったタスクの下に表示されます。

タスクをネストするか、またはタスクのネストを削除するには、次の手順を実行します。

4. 別のタスク内に置く必要があるタスクを選択し、右矢印ボタンをクリックします。選択したタスクが、その上に表示されるタスク内にネストされます。
または

別のタスク内にネストしないようにするタスクを選択し、左矢印ボタンをクリックします。強調表示されたタスクが、その上に表示されるタスク内にネストされなくなります。

5. ツールバーで「保存」をクリックします。
アダプタのタスクの順序とネストが、Oracle Identity Managerデータベースに格納されます。アダプタが論理的に完全で、アダプタ・タスクのすべての変数がマップ済の場合、アダプタをコンパイルして、プロセス・タスクまたはフォーム・フィールドで使用できます。

6. アダプタをコンパイルするには、「ビルド」をクリックします。
コンパイルのステータス・フィールドのテキストが、再コンパイルから「OK」に変わります。これは、Oracle Identity Managerによってアダプタがコンパイルされ、エラーが検出されなかったことを示します。これで、アダプタをプロセス・タスクまたはフォーム・フィールドにアタッチできます。

注意:

コンパイルのステータス・フィールドにCODE GEN ERRORが表示される場合は、アダプタのコンパイル中にOracle Identity Managerでエラーが検出されました。エラーを修正し、必要に応じてアダプタ・タスクを再度変更し、アダプタを再コンパイルしてください。

2.11 アダプタ・タスクの削除

アダプタの実行にアダプタ・タスクが不要になった場合は、アダプタからアダプタ・タスクを削除する必要があります。アダプタ・タスクを削除するには、次の手順を実行します。

1. 削除するタスクを含むアダプタ(Update Solaris User Groupアダプタなど)を選択します。

2. アダプタ・タスク・タブをクリックします。

3. 削除するタスク(CONTINUEロジック・タスクなど)を選択します。

4. 「削除」をクリックします。
選択したタスクが削除され、子表に表示されなくなります。

5. ツールバーで「保存」をクリックします。

6. アダプタを再コンパイルします。

注意:

アダプタ・タスクを削除する場合は、アダプタのロジックが矛盾なく維持されていることを確認してください。

2.12 レスポンスの使用

アダプタには様々な結果があり、レスポンスと呼ばれます。これらのレスポンスに基づいて、アダプタで他のプロセス・タスクをトリガーできます。

たとえば、アダプタからTrueレスポンスが返された場合、プロセス・タスクのステータスを自動的に「完了」に設定できます。ただし、アダプタからFalseレスポンスが返された場合は、プロセス・タスクのステータスを自動的に却下に設定し、別のプロセス・タスクをトリガーできます。

これらのレスポンスは、「アダプタ・ファクトリ」フォームの「レスポンス」タブで追加、変更または削除できます。

次の手順では、レスポンスを作成、変更および削除する方法について説明します。

注意:

プロセス・タスク・アダプタはプロセス・タスクにアタッチされているため、レスポンスはこれらのアダプタでのみ使用されます。ルール・ジェネレータ、事前移入アダプタおよびエンティティ・アダプタは、プロセスに関連付けられません。また、タスク割当てアダプタはレスポンスに関連付けられません。そのため、アクティブなアダプタがタスク割当てアダプタ、ルール・ジェネレータ、事前移入アダプタまたはエンティティ・アダプタである場合、Oracle Identity Managerで「レスポンス」タブは無効になります。

2.12.1 レスポンスの作成

1. レスポンスを追加するアダプタ(Create Solaris Userアダプタなど)を選択します。

2. 「レスポンス」タブをクリックします。

3. 「追加」をクリックします。
「レスポンス」タブに空の行が挿入されます。

4. コード名列内に表示されるフィールドをクリックします。

5. 生成可能なレスポンス・タイプを表すコード(Trueなど)を入力します。

6. 「説明」列内に表示されるフィールドをクリックします。

7. このレスポンスの説明(「ユーザーは正常に作成されました。」など)を入力します。

8. 「ステータス」列内に表示されるフィールドをダブルクリックします。
レスポンスに関連付け可能な様々なステータス・レベルを示す「参照」ポップアップ・ウィンドウが表示されます。

注意:

Oracle Identity Managerのステータス・レベルの詳細は、4-1ページの第4章「プロセス・タスク・アダプタについて」を参照してください。

9. 目的のステータス・レベル(完了(C)など)をクリックします。次に、「OK」をクリックします。
「参照」ウィンドウが閉じ、「レスポンス」タブが再びアクティブになります。

10. 「追加」ボタンをクリックし、コード名フィールドおよび「説明」フィールドにそれぞれFalseおよび「ユーザーは正常に作成されませんでした。」と入力して、別のレスポンスを作成します。次に、「参照」ウィンドウにアクセスし、却下(R)ステータス・レベルをこのレスポンスに割り当てます。

11. ツールバーで「保存」をクリックします。
このアダプタに対して作成したレスポンスが、Oracle Identity Managerデータベースに格納されました。このアダプタをプロセス・タスクにアタッチすると、これらのレスポンスは「プロセス定義」フォームのタスクの編集ウィンドウの「レスポンス」タブに表示されます

2.12.2 レスポンスの変更

次の手順では、レスポンスを編集する方法について説明します。

1. 編集するレスポンスを含むアダプタ(Create Solaris Userアダプタなど)を選択します。

2. 「レスポンス」タブをクリックします。

3. 変更する情報を含むレスポンスのフィールドをダブルクリックします。

1. フィールドがテキスト・フィールドの場合、Oracle Identity Managerでフィールドが有効になります。これで、このフィールドの内容を編集できます。

2. フィールドが参照フィールドの場合、レスポンスに関連付け可能な様々なステータス・レベルを示す「参照」ポップアップ・ウィンドウが表示されます。目的のステータス・レベルをクリックし、「OK」をクリックします。

たとえば、Falseレスポンスの「ステータス」列をダブルクリックし、一時停止(S)ステータス・レベルを選択して「OK」をクリックします。

4. ツールバーで「保存」をクリックします。
レスポンスに対して変更した情報が、Oracle Identity Managerデータベースに格納されます。

2.12.3 レスポンスの削除

レスポンスが不要になった場合は、アダプタから削除できます。

1. 削除するレスポンスを含むアダプタを選択します。

2. 「レスポンス」タブをクリックします。

3. 削除するレスポンスを選択します。

4. 「削除」をクリックします。

レスポンスが表示されなくなります。これは、Oracle Identity Managerによってレスポンスが削除されたことを示します。

2.13 ルール・ジェネレータおよびエンティティ・アダプタのスケジューリング

Oracle Identity Managerでは、プロセス・タスク・アダプタまたはタスク割当てアダプタがプロセス・タスクにアタッチされ、プロセス・タスクのステータスが保留である場合、これらは自動的にトリガーされます。また、Oracle Identity Managerでは、挿入前に常に事前移入アダプタがトリガーされます。そのため、プロセス・タスク・アダプタ、タスク割当てアダプタまたは事前移入アダプタがいつ実行されるかは、スケジュールしません。

一方、ルール・ジェネレータおよびエンティティ・アダプタは、フォーム・フィールドにアタッチされます。Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタを実行するには、これらがいつトリガーされるかを指定する必要があります。これは、実行スケジュール・タブで実行します。

注意:

エンティティ・アダプタがフィールド値の検証用にプロセス・フォームまたはオブジェクト・フォームにアタッチされている場合、ダイレクト・プロビジョニングまたはリクエスト・プロビジョニングの完了後にこれらのフォームのデータを編集すると、これらのアダプタがトリガーされます。

このタブを使用して、挿入前または更新前にOracle Identity Managerによってルール・ジェネレータまたはエンティティ・アダプタがトリガーされるように設定できます。また、削除前、挿入後、更新後および削除後にエンティティ・アダプタが実行されるようにスケジュールすることもできます。

この手順では、ルール・ジェネレータまたはエンティティ・アダプタをトリガーするようにOracle Identity Managerを構成する方法について説明します。

2.13.1 ルール・ジェネレータおよびエンティティ・アダプタのスケジューリング

ルール・ジェネレータおよびエンティティ・アダプタをスケジュールするには、次の手順を実行します。

1. Oracle Identity Managerでトリガーするルール・ジェネレータまたはエンティティ・アダプタ(Solaris User ID Generatorなど)を選択します。

注意:

プロセス・タスク・アダプタまたは事前移入アダプタを使用する場合、実行スケジュール・タブは使用しません。したがって、このタブとその内容はグレー表示されています。

2. 実行スケジュール・タブをクリックします
実行スケジュール・タブの内容が表示されます。

次の表は、実行スケジュール・タブの様々なチェック・ボックスを理解するのに役立ちます。

名前

説明

挿入前

このチェック・ボックスをクリックすると、レコードがデータベースに挿入される前に、Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタをトリガーできます。

更新前

このチェック・ボックスをクリックすると、レコードがデータベースで更新される前に、Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタをトリガーできます。

削除前

このチェック・ボックスをクリックすると、レコードがデータベースから削除される前に、Oracle Identity Managerでエンティティ・アダプタをトリガーできます。

挿入後

このチェック・ボックスをクリックすると、レコードがデータベースに挿入された後に、Oracle Identity Managerでエンティティ・アダプタをトリガーできます。

更新後

このチェック・ボックスをクリックすると、レコードがデータベースで更新された後に、Oracle Identity Managerでエンティティ・アダプタをトリガーできます。

削除後

このチェック・ボックスをクリックすると、レコードがデータベースから削除された後に、Oracle Identity Managerでエンティティ・アダプタをトリガーできます。

注意:

実行スケジュール・タブのチェック・ボックスをクリックして、Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタをいつトリガーできるかを定義します。「データ・オブジェクト・マネージャ」フォームでは、Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタがいつトリガーされるかを指定できます。

「データ・オブジェクト・マネージャ」フォームの詳細は、「ルール・ジェネレータ・アダプタ変数のマッピング」を参照してください。

3. 目的のチェック・ボックスを有効にします。次に、ツールバーで、「保存」をクリックします。
Oracle Identity Managerでルール・ジェネレータまたはエンティティ・アダプタを実行するように設定した条件が、Oracle Identity Managerデータベースに格納されます。

3 アダプタの使用

この章では、外部リソースと接続するために作成したアダプタの使用方法と管理方法について説明します。これらの項目が含まれます。

- ルール・ジェネレータ・アダプタの使用

- エンティティ・アダプタの使用

- タスク割当てアダプタの使用

- 事前移入アダプタの使用

- プロセス・タスク・アダプタの使用

- アダプタ・マッピング情報

3.1 ルール・ジェネレータ・アダプタの使用

この項では、ルール・ジェネレータ・アダプタの使用方法について説明します。内容は次のとおりです。

- ルール・ジェネレータのアダプタ変数のマッピング

- ルール・ジェネレータとプロセスの関連付け

- ルール・ジェネレータのフォーム・フィールドからの削除

3.1.1 ルール・ジェネレータのアダプタ変数のマッピング

第2章「アダプタの開発」では、ルール・ジェネレータの作成方法について説明しました。ここで、アダプタが確実に動作するように、ルール・ジェネレータのアダプタ変数を正しい場所にマップする必要があります。

アダプタ変数をマップするには、Design Consoleの「開発ツール/ビジネス・ルール定義」フォルダから「データ・オブジェクト・マネージャ」フォームにアクセスします。

ルール・ジェネレータのアダプタ変数を正しい場所にマップするには、次の手順を実行します。

1. 「データ・オブジェクト・マネージャ」フォームを開きます。Design Consoleワークショップに、「データ・オブジェクト・マネージャ」フォームが表示されます。
次の表に、「データ・オブジェクト・マネージャ」フォームの様々なリージョンとその説明を示します。

名前

説明

フォームの説明フィールド

この参照フィールドで、ルール・ジェネレータをアタッチするフィールドを含むフォームを選択します。

データ・オブジェクト・フィールド

このフィールドには、選択したフォームで表されるデータ・オブジェクトの名前が表示されます。

ハンドラのアタッチ・タブ

このタブには次の項目が表示されます。

- 選択したフォームにアタッチされたルール・ジェネレータ

- このフォームに関連付けたルール・ジェネレータの実行スケジュール

- ルール・ジェネレータがOracle Identity Managerで実行される順序

- ロールの挿入、更新および削除の権限

アダプタのマップ・タブ

このタブには次の項目が表示されます。

- フォームに関連付けられたルール・ジェネレータの名前

- アダプタのステータス

- ルール・ジェネレータのアダプタ変数の名前、説明およびマッピング・ステータス

注意: アダプタのマップ・タブは、アダプタが現在のデータ・オブジェクトに割り当てられるまで無効になっています。

2. フォームの説明フィールドをダブルクリックします。ルール・ジェネレータをアタッチできるフォームを示す「参照」ダイアログ・ボックスが表示されます。

3. 使用するフォーム(Solarisなど)を選択します。次に、「OK」をクリックします。

4. ツールバーで「保存」をクリックします。
選択したフォーム、フォームのデータ・オブジェクトおよびフォームに関連付けられたルール・ジェネレータ・アダプタが表示されます。また、Oracle Identity Managerでアダプタのマップ・タブが有効になります。

この例では、Solarisフォームが選択されています。そのデータ・オブジェクトThor.CarrierBase.tcUD_SOLARISと、それに関連付けられた4つのルール・ジェネレータ・アダプタ(adpCONVERTTOLOWERCASE、adpSOLARISHMDSTRINGGEN、adpSETSOLARISASSETおよびadpSETPASSWORDFROMMAIN)が表示されます。Oracle Identity Managerは、これらの4つのルール・ジェネレータを挿入前にトリガーします。

アダプタの順序番号に基づき、Oracle Identity Managerは、まずadpCONVERTTOLOWERCASEアダプタをトリガーし、それからadpSOLARISHMDSTRINGGEN、adpSETSOLARISASSETおよびadpSETPASSWORDFROMMAINアダプタの順にトリガーします。

ヒント:

ルール・ジェネレータのトリガー順を変更するには、次の手順を実行します。

1. 「割当て」をクリックします。「イベント・ハンドラ」ダイアログ・ボックスが表示されます。

2. ルール・ジェネレータ・フォームを選択します。

3. 上矢印および下矢印ボタンをクリックし、ルール・ジェネレータの順序を変更します。

これらのルール・ジェネレータを正常に動作させるには、アダプタ変数を正しい場所にマップする必要があります。

5. アダプタのマップ・タブをクリックします。

6. 「名前」コンボ・ボックスで、マッピング可能なアダプタ変数を含むルール・ジェネレータ(adpCONVERTTOLOWERCASEルール・ジェネレータなど)を選択します。
アダプタのマップ・タブには次の項目が表示されます。

- フォームにアタッチするルール・ジェネレータの名前

- ルール・ジェネレータのステータス

- ルール・ジェネレータのアダプタ変数の名前、説明およびマッピング・ステータス

関連項目:

アダプタの様々なマッピング・ステータスの詳細は、「プロセス・タスク・アダプタのプロセス・タスクへのアタッチ」を参照してください。

7. アダプタのマップ・タブの「アダプタ変数」リージョンに表示される各変数にマッピングを設定します。それには、マップする変数の行ヘッダー(Dataなど)をダブルクリックします。変数のデータ・マッピング・ダイアログ・ボックスが表示されます。
表3-1に、変数のデータ・マッピング・ダイアログ・ボックスの様々なフィールドを示します。

表3-1 変数のデータ・マッピング・ダイアログ・ボックスのフィールド

フィールド名

説明

変数名

このフィールドには、マッピングを設定するアダプタ変数の名前(Dataなど)が表示されます。

データ型

このフィールドには、アダプタ変数のデータ型が表示されます(たとえば、Dataアダプタ変数のデータ型はStringです)。

マップ先

このフィールドには、アダプタ変数(User Definitionなど)に設定可能なマッピングのソースおよびターゲットの場所が含まれます。

アダプタ変数を場所または連絡先にマップする場合、Oracle Identity Managerでは隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする場所または連絡先の特定のタイプを選択します。

アダプタ変数を場所または連絡先にマップしない場合、このコンボ・ボックスは無効です。

修飾子

このフィールドには、「マップ先」コンボ・ボックスで選択したマッピングの修飾子が含まれます(「ユーザー・ログイン」など)。

ITアセット・タイプ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、特定のITリソース(Solarisなど)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

ITアセット・プロパティ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、マッピングの結果を受け取る特定のフィールド(「ユーザー名」など)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

重要: 「ITアセット・タイプ」および「ITアセット・プロパティ」フィールドは、下位互換性のためにこのウィンドウに含まれています。アダプタ変数を「ITリソース」データ型で作成することをお薦めします。この場合、これらのフィールドは表示されません。

リテラル値

アダプタ変数をリテラルにマップする場合、このフィールドに特定のリテラル名(IBMなど)を入力します。

アダプタ変数をリテラルにマップしない場合、このフィールドは表示されません。

「マップ先」、「修飾子」、「ITアセット・タイプ」、「ITアセット・プロパティ」および「リテラル値」のすべてのフィールドに入力します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

8. 「保存」をクリックします。次に、「閉じる」をクリックします。
変数のデータ・マッピング・ウィンドウが閉じます。アダプタのマップ・タブが再びアクティブになります。

9. メイン画面のツールバーで「保存」をクリックします。

マッピング可能なすべてのアダプタ変数について、手順7と8を繰り返します。

「ステータス」フィールドの内容が、「マッピングが不完全」から「準備完了」に変わります。アダプタ変数のマッピング・ステータスも、「いいえ(N)」から「はい(Y)」に変わります。

これは、ルール・ジェネレータ・アダプタのすべてのアダプタ変数が、正常にマップされたことを示します。これで、このルール・ジェネレータをプロビジョニング・プロセスにアタッチし、プロセスをターゲット・ユーザーまたは組織にプロビジョニングした後でルール・ジェネレータをトリガーできます。

ヒント:

フォームに関連付けられたルール・ジェネレータにすべてのアダプタ変数をマップすると、「アダプタ・ファクトリ」フォームの使用方法の参照タブにアクセスすることで、アタッチしたフォームおよびルール・ジェネレータの実行スケジュールを簡単に確認できます。

ルール・ジェネレータがプロセスに割り当てられ、プロセスがプロビジョニングされると、Oracle Identity Managerによってルール・ジェネレータが実行されます。

3.1.2 ルール・ジェネレータとプロセスの関連付け

ルール・ジェネレータのアダプタ変数を正しい場所にマップした後、ルール・ジェネレータをプロビジョニング・プロセスにアタッチする必要があります。プロセスをターゲット・ユーザーまたは組織へプロビジョニングすると、Oracle Identity Managerにより関連付けられているルール・ジェネレータがトリガーされます。

同様に、プロビジョニング・プロセスに割り当てたルール・ジェネレータがプロセスを完了するために不要になった場合は、ルール・ジェネレータをプロビジョニング・プロセスから削除する必要があります。

ルール・ジェネレータをプロビジョニング・プロセスに割り当てるか、またはルール・ジェネレータをプロビジョニング・プロセスから削除するには、「プロセス定義」フォームの「イベント・ハンドラ/アダプタ」タブにアクセスします。このフォームは「プロセス管理」フォルダ内にあります。

3.1.3 ルール・ジェネレータのフォーム・フィールドからの削除

フォーム・フィールドにルール・ジェネレータをアタッチしてから、そのフォーム・フィールドに別のルール・ジェネレータを関連付けることができる場合もあります。このような場合は、まず現在フォーム・フィールドにアタッチしているルール・ジェネレータを削除する必要があります。

注意:

フォームのデータ・オブジェクトのクラス名がプロビジョニング・プロセスの表名と一致する場合に、ルール・ジェネレータをフォームから削除すると、そのプロビジョニング・プロセスにルール・ジェネレータを割り当てることができなくなります。

たとえば、adpCONVERTTOLOWERCASEルール・ジェネレータをSolarisフォームから削除したとします。フォームに関連付けられたデータ・オブジェクトのクラス名がUD_SOLARISである場合、UD_SOLARISの表名を持つプロビジョニング・プロセスにルール・ジェネレータを割り当てることはできません。

ルール・ジェネレータをフォーム・フィールドから削除するには、次の手順を実行します。

1. 「データ・オブジェクト・マネージャ」フォームを開きます。

2. 削除するルール・ジェネレータを含むフォームを選択します。

3. 選択したフォームとそのルール・ジェネレータが、「データ・オブジェクト・マネージャ」フォームに表示されます。

4. フォーム・フィールドから削除するルール・ジェネレータをクリックします。

5. 「削除」をクリックします。

選択したルール・ジェネレータが、「データ・オブジェクト・マネージャ」フォームに表示されなくなります。これは、ルール・ジェネレータがフォーム・フィールドから削除されたことを意味します。

注意:

ルール・ジェネレータをフォーム・フィールドから削除するときに、エラー・ボックスが表示される場合、アダプタはすでにプロビジョニング・プロセスに関連付けられています。まず、ルール・ジェネレータをプロセスからデタッチしてください。その後、フォーム・フィールドから削除できます。

3.2 エンティティ・アダプタの使用

エンティティ・アダプタの使用の詳細は、次の各項を参照してください。

- 「アダプタのタイプ」のエンティティ・アダプタに関する説明。

- Oracle Identity Managerのフォームおよびプロビジョニング・プロセスによるエンティティ・アダプタの変数のマッピングの詳細は、「ルール・ジェネレータ・アダプタの使用」の手順を参照してください。

3.3 タスク割当てアダプタの使用

この項は次のトピックで構成されています。

- タスク割当てアダプタのプロセス・タスクへのアタッチ

- タスク割当てアダプタのプロセス・タスクからの削除

3.3.1 タスク割当てアダプタのプロセス・タスクへのアタッチ

第2章「アダプタの開発」では、タスク割当てアダプタの作成方法について説明しました。作成後、ユーザーまたはロールへのタスク割当てをOracle Identity Managerで自動化できるようにするために、タスク割当てアダプタをプロセス・タスクにアタッチする必要があります。

タスク割当てアダプタをプロセス・タスクに関連付けるには、(「プロセス定義」フォームから)「割当て」タブにアクセスします。このタブでは、アダプタ変数を適切な場所にマップすることもできます。

次の手順では、タスク割当てアダプタをプロセス・タスクにアタッチする方法について説明します。

1. 「プロセス管理」フォルダにある「プロセス定義」フォームを開きます。
Oracle Identity Managerワークスペースに「プロセス定義」フォームが表示されます。

2. アダプタをアタッチするタスクを含むプロセスを選択します。
選択したプロセスとそのタスクが、「プロセス定義」フォームに表示されます。

3. タスク割当てアダプタをアタッチするタスクの行ヘッダーをダブルクリックします。
タスク(Get Solaris UUIDプロセス・タスクなど)の情報を含むタスクの編集ウィンドウが表示されます。

4. 「割当て」タブをクリックします。「割当て」ダイアログ・ボックスが表示されます。

5. このタブで、「追加」をクリックします。
「割当て」タブ内に空白行が表示されます。

次の表に、「割当て」タブの関連フィールドを示します。

フィールド名

説明

優先度

このフィールドで、関連付けられたタスク割当てルールの優先度値を設定します。

ルール

この参照フィールドで、ユーザーまたはロールへのプロセス・タスクの割当てを自動化するために、関連付けられたアダプタを使用するかどうかを決定するルールを選択します。

ターゲット・タイプ

この参照フィールドで、タスクをOracle Identity Managerのユーザーまたはロールに割り当てるかどうかを指定します。

アダプタ

この参照フィールドで、指定したタスク割当てルールに関連付けるアダプタを選択します。

アダプタ・ステータス

このフィールドには、アダプタ変数のマッピング・ステータスが表示されます。

アダプタの様々なマッピング・ステータスの詳細は、「プロセス・タスク・アダプタのプロセス・タスクへのアタッチ」を参照してください。

6. 「優先度」フィールドをダブルクリックします。このフィールドで、関連付けられたタスク割当てルールの優先度値を設定します。

7. 「ルール」参照フィールドをダブルクリックします。表示される「参照」ダイアログ・ボックスで、ユーザーまたはロールへのプロセス・タスクの割当てを自動化するために、関連付けられたアダプタを使用するかどうかを決定するルールを選択します。

8. 「ターゲット・タイプ」参照フィールドをダブルクリックします。表示される「参照」ダイアログ・ボックスで、タスクをOracle Identity Managerユーザーまたはロールに割り当てるかどうかを指定します。

9. 「アダプタ」参照フィールドをダブルクリックします。表示される「参照」ダイアログ・ボックスで、手順7で選択したルールに関連付けるタスク割当てアダプタを指定します。

10. 「割当て」タブに表示されるツールバーで「保存」をクリックします。
タスク割当てアダプタ変数のマッピング・ステータスが、「アダプタ・ステータス」フィールドに表示されます。次の表を使用し、アダプタのマッピング・ステータスに基づいて実行するアクションを決定してください。

マッピング・ステータス

アクション

準備完了

アダプタにはマップできる変数はありません。つまり、いずれのアダプタ変数も戻り変数ではないか、実行時に解決として指定されていません。この場合は、手順14に進みます。

マッピングが不完全

1つ以上のアダプタ変数にマッピングが必要です。この場合は、手順11に進みます。

アダプタが使用不可

アダプタは、正常にコンパイルされた後に変更されました。その結果、アダプタの再コンパイルが必要です。

注意:

アダプタの様々なマッピング・ステータスの詳細は、3.5.2項「プロセス・タスク・アダプタのプロセス・タスクへのアタッチ」を参照してください。

11. マップをクリックします。

「アダプタ変数」ウィンドウが表示されます。次の情報が表示されます。

- プロセス・タスクにアタッチされたタスク割当てアダプタの名前

- アダプタのステータス

- アダプタ変数のマッピングのステータス、名前および説明

12. このウィンドウの「アダプタ変数」リージョンに表示される各変数にマッピングを設定します。それには、マップする変数の行ヘッダー(UUIDなど)をダブルクリックします。
変数のデータ・マッピングの編集ダイアログ・ボックスが表示されます。

表3-2に、変数のデータ・マッピングの編集ダイアログ・ボックスのフィールドを示します。

表3-2 変数のデータ・マッピングの編集ダイアログ・ボックスのフィールド

フィールド名

説明

変数名

このフィールドには、マッピングを設定するアダプタ変数の名前(UUIDなど)が表示されます。

データ型

このフィールドには、アダプタ変数のデータ型が表示されます(たとえば、UUID変数のデータ型はStringです)。

マップ先

このフィールドには、アダプタ変数に設定可能なマッピング型(「IT リソース」など)が含まれます。

アダプタ変数を場所または連絡先にマップする場合、Oracle Identity Managerでは隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする場所または連絡先の特定のタイプを選択します。

また、アダプタ変数をカスタム・プロセス・フォームにマップし、そのフォームに子表が含まれる場合、Oracle Identity Managerでフォームに隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする子表を選択します。場所、連絡先またはカスタム・プロセス・フォームの子表にアダプタ変数をマップしない場合、このコンボ・ボックスは無効になります。

修飾子

このフィールドには、「マップ先」コンボ・ボックスで選択したマッピングの修飾子が含まれます(ITアセットなど)。

ITアセット・タイプ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、特定のITリソース(Solarisなど)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

ITアセット・プロパティ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、マッピングの結果を受け取る特定のフィールド(一意のIDなど)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

重要: 「ITアセット・タイプ」および「ITアセット・プロパティ」フィールドは、下位互換性のためにこのウィンドウに含まれています。アダプタ変数を「ITリソース」データ型で作成することをお薦めします。この場合、これらのフィールドは表示されません。

リテラル値

アダプタ変数をリテラルにマップする場合、このフィールドでリテラル値を指定します。

アダプタ変数をリテラルにマップしない場合、このフィールドは表示されません。

古い値

このチェック・ボックスを選択して、選択した「修飾子」フィールドの変更前の値に、アダプタ変数をマップします。

プロセス・タスクに関連付けられたプロセス・タスク・アダプタは、プロセス・フォームのフィールドの一部が変更されると、条件付きでトリガーされる場合があります。「古い値」オプションをクリックし、プロセス・タスクを条件付きとしてマークした場合、以前のフィールドの値がアダプタに渡されます。これは、パスワードを使用するフィールドの場合に役立ちます。

たとえば、パスワードに同じ値の設定を許可しない場合、比較に古い値を使用できます。

カスタム・プロセス・フォームの子表に属するフィールドにアダプタ変数をマップしない場合、このチェック・ボックスは無効になります。

13. 「マップ先」、「修飾子」、「ITアセット・タイプ」、「ITアセット・プロパティ」、「リテラル値」および「古い値」のすべてのフィールドに入力します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

14. ツールバーで「保存」をクリックします。次に、「閉じる」をクリックします。

変数のデータ・マッピングの編集ウィンドウが閉じます。「アダプタ変数」ダイアログ・ボックスが再びアクティブになります。

「ステータス」フィールドの内容が、「マッピングが不完全」から「準備完了」に変わります。アダプタ変数のマッピング・ステータスも、「いいえ(N)」から「はい(Y)」に変わります。

15. 「保存」をクリックします。次に、「閉じる」をクリックします。
「アダプタ変数」ダイアログ・ボックスが閉じ、「割当て」タブが再びアクティブになります。

プロセス・タスク(Assign Solarisタスクなど)に割り当てたアダプタのステータスが、「準備完了」になります。

16. 「割当て」タブに表示されるツールバーで、「保存」および「閉じる」をクリックします。
「割当て」タブが閉じ、メイン画面が再びアクティブになります。これは、タスク割当てアダプタが、プロセス・タスクにアタッチされたことを意味します。

注意:

タスク割当てアダプタをプロセス・タスクにアタッチすると、「アダプタ・ファクトリ」フォームの使用方法の参照タブにアクセスすることで、関連付けられたプロセスおよびタスクを簡単に確認できます。

3.3.2 タスク割当てアダプタのプロセス・タスクからの削除

Oracle Identity Managerでプロセス・タスクをユーザーまたはロールに割り当てるためのタスク割当てアダプタが無効または不要になった場合は、アダプタをタスクから削除する必要があります。

3.3.2.1 タスク割当てアダプタのプロセス・タスクからの削除

タスク割当てアダプタをプロセス・タスクから削除するには、次の手順を実行します。

1. 「プロセス定義」フォームを開きます。
Design Consoleワークスペースに、「プロセス定義」フォームが表示されます。

2. アダプタを削除するタスクを含むプロセス(Solaris 8プロセスなど)を選択します。
選択したプロセスとそのタスクが、「プロセス定義」フォームに表示されます。

3. アダプタを削除するプロセス・タスク(Get Solaris UUIDタスクなど)の行ヘッダーをダブルクリックします。
プロセス・タスクの情報を含むタスクの編集ダイアログ・ボックスが表示されます。

4. 「割当て」タブをクリックします。
プロセス・タスクにアタッチされたアダプタの情報を示す「割当て」タブが表示されます。

5. プロセス・タスクから削除するアダプタを含む行を選択します。

6. 「削除」をクリックします。アダプタが「割当て」タブに表示されなくなります。

7. 「保存」をクリックします。次に、「閉じる」をクリックします。
「割当て」タブが閉じ、メイン画面が再びアクティブになります。これは、タスク割当てアダプタがプロセス・タスクから削除されたことを意味します。

3.4 事前移入アダプタの使用

この項は次のトピックで構成されています。

- 事前移入アダプタのフォーム・フィールドへのアタッチ

- 事前移入アダプタのフォーム・フィールドからの削除

3.4.1 事前移入アダプタのフォーム・フィールドへのアタッチ

事前移入アダプタをフォーム・フィールドにアタッチするには、次の手順を実行します。

1. 事前移入アダプタをアタッチするフィールドを選択します。

2. 指定したフィールドに情報を移入するためにアダプタを使用するかどうかを決定するルールを選択します。

3. 指定したフィールドに関連付けるアダプタを選択します。

4. 選択したルールに優先度値を設定します。

5. 事前移入アダプタのアダプタ変数を正しい場所にマップします。

注意:

事前移入アダプタをフォーム・フィールドにアタッチするには、次の点を確認する必要があります。

- フォームがアクティブな状態ではないこと。あてはまらない場合は、新しいフォーム・バージョンを作成します。

- アタッチしたアダプタを使用する前に、フォームをアクティブ化する必要があります。

6. 「フォーム・デザイナ」フォームを開きます。

7. 事前移入アダプタをアタッチするフォーム(Solarisなど)を問い合せます。

8. 「事前移入」タブをクリックします。
問い合せたフォームにすでにアタッチされている事前移入アダプタが、タブ内に表示されます。

注意:

フォーム・フィールドにアタッチされているアダプタがない場合、「事前移入」タブには何も表示されません。

9. 「追加」をクリックします。
「事前移入アダプタ」ダイアログ・ボックスが表示されます。

表3-3に、「事前移入アダプタ」ダイアログ・ボックスのフィールドを示します。

表3-3 「事前移入アダプタ」ダイアログ・ボックスのフィールド

名前

説明

フィールド名

このコンボ・ボックスには、事前移入アダプタをアタッチできるすべてのフォーム・フィールドのリストが表示されます。

ルール

この参照フィールドで、指定したフォーム・フィールドに情報を移入するために関連付けられたアダプタを使用するかどうかを決定するルールを選択します。

アダプタ

この参照フィールドで、指定したフィールドに関連付けるアダプタを選択します。

順序

このフィールドで、選択したルールの優先度値を設定します。

アダプタ・ステータス

このフィールドには、アダプタ変数のマッピング・ステータスが表示されます。

アダプタの様々なマッピング・ステータスの詳細は、「プロセス・タスク・アダプタのプロセス・タスクへのアタッチ」を参照してください。

アダプタ変数

この領域には、次の項目が表示されます。

- マップ済: アダプタ変数のマッピング・ステータス。Yはアダプタ変数が正しくマップされたことを表し、Nはこの変数が正しくマップされなかったことを表します。

- 名前: アダプタ変数の名前。

- マップ先: 変数がマップされるフォーム・フィールド。アダプタ変数がマップされていない場合、列内の対応するセルは空白です。

10. 「フィールド名」コンボ・ボックスから、事前移入アダプタをアタッチするフォーム・フィールド(「ユーザーID」など)を選択します。

11. 「ルール」参照フィールドをダブルクリックします。表示される「参照」ダイアログ・ボックスで、指定したフォーム・フィールドに情報を移入するために関連付けられたアダプタを使用するかどうかを決定するルール(Rule for Lowercase User IDなど)を選択します。

12. 「アダプタ」参照フィールドをダブルクリックします。表示される「参照」ダイアログ・ボックスで、手順10で選択したフィールドに関連付けるアダプタ(Display Lowercase Letters for User IDなど)を選択します。

13. 「順序」フィールドに、手順11で選択したルールの優先度値(2など)を入力します。

14. 「事前移入アダプタ」ウィンドウのツールバーで「保存」をクリックします。

15. 「マッピングが不完全」が「アダプタ・ステータス」フィールドに表示されます。これは、選択したアダプタに、正しくマップされていない変数が含まれていることを示しています。変数を正しい場所にマップする必要があります。そうしない場合、アダプタは動作しません。

16. 「事前移入アダプタ」ウィンドウの「アダプタ変数」リージョンに表示される各変数にマッピングを設定します。それには、マップする変数の行ヘッダー(UserIDなど)をダブルクリックします。
アダプタ変数のマップ・ウィンドウが表示されます。

表3-4に、アダプタ変数のマップ・ウィンドウのフィールドを示します。

表3-4 アダプタ変数のマップ・ウィンドウのフィールド

フィールド名

説明

変数名

このフィールドには、マッピングを設定するアダプタ変数の名前(UserIDなど)が表示されます。

データ型

このフィールドには、アダプタ変数のデータ型が表示されます(たとえば、UserIDアダプタ変数のデータ型はStringです)。

マップ先

このフィールドには、アダプタ変数に設定可能なマッピング型(「プロセス・データ」など)が含まれます。

アダプタ変数を場所または連絡先にマップする場合、Oracle Identity Managerでは隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする場所または連絡先の特定のタイプを選択します。

アダプタ変数を場所または連絡先にマップしない場合、このコンボ・ボックスは無効です。

修飾子

このフィールドには、「マップ先」コンボ・ボックスで選択したマッピングの修飾子が含まれます(「ユーザーID」など)。

ITアセット・タイプ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、特定のITリソース(Solarisなど)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

ITアセット・プロパティ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、マッピングの結果を受け取る特定のフィールド(「ユーザー名」など)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

重要: 「ITアセット・タイプ」および「ITアセット・プロパティ」フィールドは、下位互換性のためにこのウィンドウに含まれています。アダプタ変数を「ITリソース」データ型で作成することをお薦めします。この場合、これらのフィールドは表示されません。

リテラル値

アダプタ変数をリテラルにマップする場合、このフィールドでリテラル値を指定します。

アダプタ変数をリテラルにマップしない場合、このフィールドは表示されません。

17. 「マップ先」、「修飾子」、「ITアセット・タイプ」、「ITアセット・プロパティ」および「リテラル値」のすべてのフィールドに入力します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

18. アダプタ変数のマップ・ウィンドウのツールバーで「保存」をクリックします。次に、「閉じる」をクリックします。
アダプタ変数のマップ・ウィンドウが閉じます。「事前移入アダプタ」ウィンドウが再びアクティブになります。

「アダプタ・ステータス」フィールドのテキストが、「マッピングが不完全」から「準備完了」に変わります。アダプタ変数のマッピング・ステータスも、「いいえ(N)」から「はい(Y)」に変わります。

19. 「事前移入アダプタ」ウィンドウのツールバーで「閉じる」をクリックします。

「事前移入アダプタ」ウィンドウが閉じ、「フォーム・デザイナ」フォームが再びアクティブになります。「ユーザーID」フォーム・フィールドにアタッチした事前移入アダプタ(Display Lowercase Letters for User ID)が、2003年第1四半期売上の結果フォームの「事前移入」タブに表示されます。

このフォームを参照するプロセスを、ターゲット・ユーザーまたは組織にプロビジョニングすると、フォームが表示されます。Oracle Identity Managerにより、優先度が最も高い事前移入ルールが有効かどうかが確認されます。有効な場合、Oracle Identity Managerでは関連付けられた事前移入アダプタを指定するフィールド(「ユーザーID」)に割り当てて実行します。この時点で、次のアクションのいずれか1つが発生します。

- 「自動事前移入」チェック・ボックスをプロビジョニング・プロセスで選択した場合、事前移入アダプタで生成されたデータが自動的にOracle Identity Managerで表示されます。

- 「自動事前移入」チェック・ボックスが選択されていない場合、Oracle Identity Managerユーザーは、事前移入アダプタで生成されたデータの表示を手動でトリガーする必要があります。このためには、管理者はフォームをユーザーにプロビジョニングするときに、Webクライアントのダイレクト・プロビジョニング・ウィザードのフォーム・セクションにある事前移入ボタンをクリックする必要があります。

ヒント:

事前移入アダプタをフォーム・フィールドに割り当て、事前移入ルールをアダプタに割り当てると、「アダプタ・ファクトリ」フォームの使用方法の参照タブにアクセスすることで、アダプタ、フォーム・フィールドおよびルールの関連付けを簡単に確認できます。

3.4.2 事前移入アダプタのフォーム・フィールドからの削除

フォーム・フィールドに関連付けられた事前移入アダプタが有効ではなくなった場合、アダプタをフィールドから削除する必要があります。

注意:

事前移入アダプタをフォーム・フィールドから削除する前に、新しいバージョンのフォームを作成してください。

事前移入アダプタをフォーム・フィールドから削除するには、次の手順を実行します。

1. 削除する事前移入アダプタを選択します。

2. 「削除」をクリックします。事前移入アダプタがフォーム・フィールドから削除されます。フォームが起動している場合は、トリガーできません。

3. アダプタを削除した後に、フォームをアクティブ化する必要があります。

3.5 プロセス・タスク・アダプタの使用

この項は次のトピックで構成されています。

- プロセス・タスク・アダプタを使用するためのガイドライン

- プロセス・タスク・アダプタのプロセス・タスクへのアタッチ

- プロセス・タスク・アダプタのプロセス・タスクからの削除

3.5.1 プロセス・タスク・アダプタを使用するためのガイドライン

プロセス・タスク・アダプタを作成したら、「プロセス定義」フォームの統合タブを使用してアダプタを適切なプロセス・タスクにアタッチします。このタブでは、実行時に解決またはアダプタ戻り変数のいずれかとして指定されたアダプタ変数を、適切な場所にマップすることもできます。たとえば、adpSOLARISPASSWORDUPDATEDという名前のアダプタが、SolarisプロセスのPassword Updatedタスクに関連付けられているとします。アダプタを機能させるためにアダプタをプロセス・タスクにアタッチすると、別のフォームのフィールドからデータが必要になる場合があります。この例では、次の情報を取得するまでadpSOLARISPASSWORDUPDATEDアダプタは動作しません。

- ユーザーのOracle Identity Manager IDおよびパスワード

- ユーザーのSolaris IDおよびパスワード

- Solarisが位置するIPアドレス

そのため、UserID、Passwd、SolarisUserID、SolarisUserPasswdおよびServerAddressアダプタ変数から、それぞれ情報を取得する必要があります。この5つの変数は、「アダプタ・ファクトリ」フォームを使用して作成されます。それぞれのアダプタ変数の先頭のYは、アダプタが正常にマップされたことを表します。プロセスが必要な情報を取得するために使用するプロセス固有フィールドを作成するためのフォームは「フォーム・デザイナ」と呼ばれます。作成したフィールドは、Oracle Identity Managerにより表に格納されます。次に、この表をプロセスに関連付けると(「プロセス定義」フォームの表名参照フィールドを使用)、このプロセスのタスクにアタッチされたアダプタは、この表を使用して適切なデータを検索します。この表を変更するには、「フォーム・デザイナ」フォームを使用します。UD_SOLARIS表には、UD_SOLARIS_USERIDとUD_SOLARIS_PASSWDという2つのフィールドがあります。「フォーム・デザイナ」フォームのこのレコードにアクセスすると、表のフィールドを編集できます。

プロセス・タスク・アダプタを依存プロセス・タスクにアタッチすると、このプロセス・タスクのステータスは「保留」になり(先行するプロセス・タスクのステータスは「完了」)、Oracle Identity Managerにより自動的にアダプタがトリガーされます。プロセス・タスクが独立したタスクの場合、Oracle Identity Managerにより、プロセスがリクエストされた時点でアダプタが実行されます。実行されたアダプタの結果は、プロセス・タスクのステータスを表します。アダプタが正常に終了した場合、アダプタをアタッチしたプロセス・タスクのステータスは「完了」です。一方、アダプタで指定された機能が実行できない場合、アダプタをアタッチしたプロセス・タスクのステータスは「却下」です。エラーの原因を突き止めることで、正常に実行されるようにプロセス・タスクまたはアダプタ(あるいはその両方)を変更できます。

注意:

プロセス・タスクが失敗した原因を確認するには、次の手順を実行します。

プロセス・タスクを探します。プロセス・タスクをターゲット・ユーザーまたは組織にプロビジョニングしていない場合は、「To-Doリスト」または「保留中の承認」の中にあります。タスクを検出するには、次の手順を実行します。

1. ユーザーとしてログインします。

2. ウィンドウの左側の「To-Doリスト」リンクまたは「保留中の承認」リンクを選択します。

3.5.2 プロセス・タスク・アダプタのプロセス・タスクへのアタッチ

前の章では、プロセス・タスク・アダプタの作成方法について説明しました。プロセス・タスクを自動的に実行するためには、プロセス・タスク・アダプタをプロセス・タスクにアタッチする必要があります。アダプタをプロセス・タスクに関連付けるには、(「プロセス定義」フォームから)統合タブにアクセスします。このタブでは、アダプタ変数を適切な場所にマップすることもできます。次の手順では、プロセス・タスク・アダプタをプロセス・タスクにアタッチする方法について説明します。

1. 「プロセス管理」フォルダにある「プロセス定義」フォームを開きます。
Oracle Identity Managerワークスペースに「プロセス定義」フォームが表示されます。

2. アダプタをアタッチするタスクを含むプロセスを選択します。選択したプロセスとそのタスクが、「プロセス定義」フォームに表示されます。この例では、Solarisプロセスが選択されています。

3. アダプタをアタッチするタスクの行ヘッダーをダブルクリックします。タスク(Password Updatedプロセス・タスクなど)の情報を含むタスクの編集ウィンドウが表示されます。

4. 統合タブをクリックします。

5. 「追加」をクリックします。
ハンドラの選択ウィンドウが表示されます。

6. 「アダプタ」オプションをクリックして、Oracle Identity Managerのアダプタにアクセスします。
プロセス・タスクをアタッチできるアダプタが表示されます。

7. このリージョンから、プロセス・タスクにアタッチするアダプタ(adpSOLARISPASSWORDUPDATEDアダプタなど)を選択します。

ヒント:

各アダプタの名前は、区別しやすいよう、最初の3文字がadpです。各アダプタの名前は、区別しやすいよう、最初の3文字がadpです。

8. ハンドラの選択ウィンドウのツールバーで「保存」をクリックします。
アダプタが正常にプロセス・タスクにアタッチされたことを示すダイアログ・ボックスが表示されます。

9. 「OK」をクリックします。
ダイアログ・ボックスが閉じ、統合タブがアクティブになります。タブには次の項目が表示されます。

- プロセス・タスクにアタッチされたアダプタの名前

- アダプタのステータス

- アダプタ変数の名前、説明およびマッピング・ステータス

注意:

アダプタのマッピング・ステータスは、次の3つのいずれかです。

準備完了。アダプタは正常にコンパイルされ、すべての変数が正常にマップされています。

マッピングが不完全。アダプタは正常にコンパイルされましたが、1つ以上の変数が正常にマップされていません。

アダプタが使用不可。アダプタは、正常にコンパイルされた後、変更および再コンパイルされました。

注意:

アダプタにマップ可能な変数がない場合、「アダプタ変数」リージョンは空白です。また、「ステータス」フィールドには、アダプタを再コンパイルする必要があるかどうかによって、「準備完了」または「アダプタが使用不可」のいずれかが表示されます。

注意:

マップ可能なアダプタ変数は、実行時に解決に指定されているか、アダプタ戻り変数のいずれかです。

注意:

アダプタをプロセス・タスクにアタッチすると、アダプタに定義したレスポンスがタスクの編集ウィンドウの「レスポンス」タブに表示されます。

10. 統合タブの「アダプタ変数」リージョンに表示される各変数にマッピングを設定します。それには、マップする変数の行ヘッダー(SolarisUserIDなど)をダブルクリックします。
変数のデータ・マッピング・ウィンドウが表示されます。

表3-5に、変数のデータ・マッピング・ウィンドウのフィールドを示します。

表3-5 変数のデータ・マッピング・ウィンドウのフィールド

フィールド名

説明

変数名

このフィールドには、マッピングを設定するアダプタ変数の名前(SolarisUserIDなど)が表示されます。

データ型

このフィールドには、アダプタ変数のデータ型が表示されます(たとえば、SolarisUserID変数のデータ型はStringです)。

マップ先

このフィールドには、アダプタ変数に設定可能なマッピング型(「IT リソース」など)が含まれます。アダプタ変数を場所または連絡先にマップする場合、Oracle Identity Managerで隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする場所または連絡先の特定のタイプを選択します。また、アダプタ変数をカスタム・プロセス・フォームにマップし、そのフォームに子表が含まれる場合、Oracle Identity Managerでフォームに隣接するコンボ・ボックスが有効になります。このコンボ・ボックスから、アダプタ変数をマップする子表を選択します。場所、連絡先またはカスタム・プロセス・フォームの子表にアダプタ変数をマップしない場合、このコンボ・ボックスは無効になります。

修飾子

このフィールドには、「マップ先」コンボ・ボックスで選択したマッピングの修飾子が含まれます(ITアセットなど)。

ITアセット・タイプ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、特定のITリソース(Solarisなど)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

ITアセット・プロパティ

このフィールドでは、アダプタ変数をITリソースにマップし、この変数のデータ型がStringである場合に、マッピングの結果を受け取る特定のフィールド(「ユーザー名」など)を選択できます。

アダプタ変数をITリソースにマップしない場合、またはアダプタ変数のデータ型がStringではない場合、このフィールドは表示されません。

重要: 「ITアセット・タイプ」および「ITアセット・プロパティ」フィールドは、下位互換性のためにこのウィンドウに含まれています。アダプタ変数を「ITリソース」データ型で作成することをお薦めします。この場合、これらのフィールドは表示されません。

リテラル値

アダプタ変数をリテラルにマップする場合、このフィールドでリテラル値を指定します。

アダプタ変数をリテラルにマップしない場合、このフィールドは表示されません。

古い値

このチェック・ボックスを選択して、選択した「修飾子」フィールドの変更前の値に、アダプタ変数をマップします。

プロセス・タスクに関連付けられたプロセス・タスク・アダプタは、プロセス・フォームのフィールドの一部が変更されると、条件付きでトリガーされる場合があります。「古い値」オプションをクリックし、プロセス・タスクを条件付きとしてマークした場合、フィールドを変更する前の値がアダプタに渡されます。これは、パスワードを使用するフィールドの場合に役立ちます。たとえば、パスワードに同じ値の設定を許可しない場合、比較に古い値を使用できます。

カスタム・プロセス・フォームの子表に属するフィールドにアダプタ変数をマップしない場合、このチェック・ボックスは無効になります。

11. 「マップ先」、「修飾子」、「ITアセット・タイプ」、「ITアセット・プロパティ」、「リテラル値」および「古い値」のすべてのフィールドに入力します。

関連項目:

選択するマッピングの詳細は、「アダプタ・マッピング情報」を参照してください。

12. ツールバーで「保存」をクリックします。次に、「閉じる」をクリックします。
変数のデータ・マッピング・ウィンドウが閉じます。統合タブが再びアクティブになります。

13. タスクの編集ウィンドウのツールバーで「保存」をクリックします。
「ステータス」フィールドの内容が、「マッピングが不完全」から「準備完了」に変わります。アダプタ変数のマッピング・ステータスも、「いいえ(N)」から「はい(Y)」に変わります。

14. ツールバーで「閉じる」をクリックします。
タスクの編集ウィンドウが閉じ、メイン画面が再びアクティブになります。Password Updatedタスクに追加したアダプタ(adpSOLARISPASSWORDUPDATED)が、「プロセス定義」フォームに表示されます。これは、adpSOLARISPASSWORDUPDATEDプロセス・タスク・アダプタがPassword Updatedプロセス・タスクにアタッチされたことを意味します。

ヒント:

プロセス・タスク・アダプタをプロセス・タスクにアタッチすると、「アダプタ・ファクトリ」フォームの使用方法の参照タブにアクセスすることで、関連付けられたプロセスおよびタスクを簡単に確認できます。

3.5.3 プロセス・タスク・アダプタのプロセス・タスクからの削除

Oracle Identity Managerで、プロセス・タスクを自動的に完了するためのプロセス・タスク・アダプタが不要になった場合、または別のアダプタをプロセス・タスクにアタッチする場合は、まずプロセス・タスクにアタッチしたアダプタを削除する必要があります。次の手順では、プロセス・タスク・アダプタをプロセス・タスクから削除する方法について説明します。

3.5.3.1 プロセス・タスク・アダプタのプロセス・タスクからの削除

1. 「プロセス定義」フォームを開きます。
Design Consoleワークスペースに、「プロセス定義」フォームが表示されます。

2. アダプタを削除するタスクを含むプロセス(Solarisプロセスなど)を選択します。
選択したプロセスとそのタスクが、「プロセス定義」フォームに表示されます。

3. アダプタを削除するプロセス・タスク(Password Updatedタスクなど)の行ヘッダーをダブルクリックします。
プロセス・タスクの情報を含むタスクの編集ウィンドウが表示されます。統合タブをクリックします。

4. 統合タブをクリックします。
統合タブに、プロセス・タスクにアタッチされたアダプタの情報が表示されます。

5. 「削除」をクリックします。
アダプタをプロセス・タスクから削除することを確認するダイアログ・ボックスが表示されます。

6. 「OK」をクリックします。
アダプタがプロセス・タスクから削除されたことを示すダイアログ・ボックスが表示されます。

7. 「OK」をクリックします。
アダプタの内容が統合タブに表示されなくなります。

8. ツールバーで「閉じる」をクリックします。
タスクの編集ウィンドウが閉じ、メイン画面が再びアクティブになります。Password Updatedタスクに関連付けられていたアダプタ(adpSOLARISPASSWORDUPDATED)が、「プロセス定義」フォームの子表に表示されなくなります。

これは、アダプタがプロセス・タスクから削除されたことを意味します。

3.6 アダプタ・マッピング情報

アダプタはアダプタ・ファクトリによって生成されるJavaクラスで、Oracle Identity Managerと外部JARファイル、ターゲットITリソース(リソース・アセットなど)またはユーザー定義フォームとのやり取りを可能にします。アダプタ・ファクトリはOracle Identity Managerで提供されるコード生成ツールで、これによりユーザー管理者がJavaクラスを作成できます。

アダプタにより、Oracle Identity Managerの内部ロジックと機能が拡張されます。プロセス・タスクが自動化され、Oracle Identity Manager内のフィールドに含まれるデータの自動生成と検証を行うためのルールが定義されます。アダプタには、タスク割当てアダプタ、タスク・アダプタ、ルール・ジェネレータ・アダプタ、事前移入アダプタおよびエンティティ・アダプタの5つのタイプがあります。

この項で説明する項目は、次のとおりです。

- アダプタ・タスク・マッピング情報

- アダプタ変数マッピング情報

3.6.1 アダプタ・タスク・マッピング情報

アダプタ・タスクはアダプタ内コンポーネントの1つです。これはアダプタ内の論理ステップで、プログラミング言語のメソッドの呼出しに相当します。使用可能なアダプタ・タスクのタイプは、関数タスク(Javaタスク、リモート・タスクおよびストアド・プロシージャ・タスク)、ユーティリティ・タスク(ユーティリティ・タスクおよびOracle Identity Manager APIタスク)およびロジック・タスク(変数設定タスクおよびエラー・ハンドラ・タスク)です。

この項では、アダプタ・タスクのパラメータに設定できるマッピングについて、次の項で示します。

- アダプタ変数

- アダプタ・タスク

- リテラル

- アダプタ参照

- 組織定義

- プロセス定義

- ユーザー定義

3.6.1.1 アダプタ変数

次の表に、Data Mapping for Variableウィンドウの「マップ先」リスト・ボックス、およびアダプタ・タスクに対するアダプタ変数のパラメータをマップする「名前」リスト・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「名前」コンボ・ボックス

説明

アダプタ変数

アダプタ変数のリストが表示されます。

このアダプタに作成したアダプタ変数に、パラメータをマップできます。

注意: アダプタ変数の分類タイプが「オブジェクト」の場合、プロセス・タスク・アダプタには使用できません。

注意: アダプタ変数の分類タイプが「ITリソース」の場合、「属性」コンボ・ボックスが表示されます。このコンボ・ボックスから、パラメータをマップするITリソースの属性を選択します。

3.6.1.2 アダプタ・タスク

次の表に、アダプタ・タスクのパラメータをマップする「アダプタ・ファクトリ」フォームの「マップ先」、「名前」および「Output」コンボ・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「名前」コンボ・ボックス

出力コンボ・ボックス

説明

アダプタ・タスク

アダプタ・タスクのリストが表示されます。

選択したアダプタ・タスクに関連する出力変数のリストが表示されます。

このアダプタに作成したアダプタ・タスクに、パラメータをマップできます。

3.6.1.3 リテラル

次の表に、アダプタ・タスクの定数(リテラル)をマップする「アダプタ・ファクトリ」フォームの「マップ先」、「タイプ」コンボ・ボックスおよび「値」フィールドの項目と説明を示します。

「マップ先」コンボ・ボックス

「タイプ」コンボ・ボックス

「値」フィールド

説明

リテラル

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

リテラルの値をこのフィールドに入力します。

パラメータをString、Boolean、Character、Byte、Date、Integer、Float、Long、ShortまたはDoubleデータ型にそれぞれマップできます。

3.6.1.4 アダプタ参照

次の表に、アダプタ・タスクのアダプタ参照をマップする「アダプタ・ファクトリ」フォームの「マップ先」および「タイプ」コンボ・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「タイプ」コンボ・ボックス

説明

アダプタ参照

イベント・ハンドラ名またはDatabase Reference

パラメータをアクティブ・アダプタにマップできます。

3.6.1.5 組織定義

次の表に、アダプタ・タスクに対する組織定義のパラメータをマップする「アダプタ・ファクトリ」フォームの「マップ先」および「フィールド」コンボ・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「フィールド」コンボ・ボックス

説明

組織定義

組織名

パラメータを「組織」フォームの「組織名」フィールドにマップできます。

組織タイプ

パラメータを「組織」フォームの「タイプ」フィールドにマップできます。

組織ID

パラメータを「組織」フォームの「組織#」フィールドにマップできます。

親組織

パラメータを「組織」フォームの「親組織」フィールドにマップできます。

組織ステータス

パラメータを「組織」フォームの「ステータス」フィールドにマップできます。

親組織ID

パラメータをACTデータベース表のparent_keyフィールドにマップできます。

「組織」フォームの「ユーザー定義フィールド」タブに表示される任意のフィールド

パラメータを選択したユーザー定義フィールドにマップできます。

3.6.1.6 プロセス定義

次の表に、アダプタ・タスクに対するプロセス定義のパラメータをマップする「アダプタ・ファクトリ」フォームの「マップ先」および「フィールド」コンボ・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「フィールド」コンボ・ボックス

説明

プロセス定義

名前

パラメータを「プロセス定義」フォームの「名前」フィールドにマップできます。

タイプ

パラメータを「プロセス定義」フォームの「タイプ」フィールドにマップできます。

3.6.1.7 ユーザー定義

次の表に、アダプタ・タスクに対するユーザー定義のパラメータをマップする「アダプタ・ファクトリ」フォームの「マップ先」および「フィールド」コンボ・ボックスの項目と説明を示します。

「マップ先」コンボ・ボックス

「フィールド」コンボ・ボックス

説明

ユーザー定義

ユーザー・キー

パラメータを「ユーザー」フォームの一意のレコードを表すキーにマップできます。

名

パラメータを「ユーザー」フォームの「名」フィールドにマップできます。

ミドル・ネームのイニシャル

パラメータを「ユーザー」フォームの「ミドル・ネーム」フィールドにマップできます。

姓

パラメータを「ユーザー」フォームの「姓」フィールドにマップできます。

ユーザー・ログイン

パラメータを「ユーザー」フォームの「ユーザーID」フィールドにマップできます。

パスワード

パラメータを「ユーザー」フォームのユーザー・パスワードにマップできます。

タイプ

パラメータを「ユーザー」フォームの「Xellerateタイプ」フィールドにマップできます。

ユーザー・ステータス

パラメータを「ユーザー」フォームの「ステータス」フィールドにマップできます。

ロール

パラメータを「ユーザー」フォームの「ロール」フィールドにマップできます。

アイデンティティ

パラメータを「ユーザー」フォームの「アイデンティティ」フィールドにマップできます。

無効

パラメータを「ユーザー」フォームの「ユーザーの無効化」チェック・ボックスにマップできます。

組織

パラメータを「ユーザー」フォームの「組織」フィールドにマップできます。

マネージャ

パラメータを「ユーザー」フォームの「マネージャ」フィールドにマップできます。

開始日

パラメータを「ユーザー」フォームの「開始日」フィールドにマップできます。

終了日

パラメータを「ユーザー」フォームの「終了日」フィールドにマップできます。

電子メール

パラメータを「ユーザー」フォームの「電子メール」フィールドにマップできます。

プロビジョニング日

パラメータを「ユーザー」フォームの「プロビジョニング日」フィールドにマップできます。

プロビジョニングされた日

パラメータを「ユーザー」フォームの「プロビジョニングされた日」フィールドにマップできます。

プロビジョニング解除日

パラメータを「ユーザー」フォームの「プロビジョニング解除日」フィールドにマップできます。

プロビジョニング解除された日

パラメータを「ユーザー」フォームの「プロビジョニング解除された日」フィールドにマップできます。

「ユーザー」フォームの「ユーザー定義フィールド」タブに表示される任意のフィールド

パラメータを選択したユーザー定義フィールドにマップできます。

3.6.2 アダプタ変数マッピング情報

新たに作成したアダプタを機能させるために、アダプタ・タスクのパラメータにデータをマップすることもできます。その場合は、プレースホルダ(アダプタ変数とも呼ばれる)を作成して、実行時にデータがマップされるようにします。アダプタの実行にアダプタ変数が不必要になった場合は、アダプタからアダプタ変数を削除できます。アダプタ変数を削除した後には、アダプタを再コンパイルしてください。

アダプタ変数がアダプタの戻り変数でないか、または「実行時に解決」として指定されていない場合、アダプタ変数は「アダプタ・ファクトリ」フォームの「変数リスト」タブ内でマップする必要があります。これに対し、アダプタ変数がアダプタの戻り変数として指定されているか、または「実行時に解決」に設定されている場合は、Oracle Identity Manager内の他の場所でマップできます。この場所はアダプタのタイプに依存します。たとえば、プロセス・タスク・アダプタの変数は、事前定義アダプタの変数とは異なる場所でマップされます。次の表に、変数のアダプタ・タイプごとの、マップ可能な場所を示します。

アダプタ・タイプ

場所

プロセス・タスク

タスクの編集ウィンドウの「統合」タブ

タスク割当て

タスクの編集ウィンドウの「割当て」タブ

ルール・ジェネレータ

「データ・オブジェクト・マネージャ」フォームの「アダプタのマップ」タブ

事前移入

「フォーム・デザイナ」フォームの「事前移入アダプタ」タブ

エンティティ

「データ・オブジェクト・マネージャ」フォームの「アダプタのマップ」タブ

この項で説明する項目は、次のとおりです。

- 「変数リスト」タブ

- プロセス・タスク・アダプタ変数マッピング

- タスク割当てアダプタ変数マッピング

- ルール・ジェネレータおよびエンティティ・アダプタ変数マッピング

- 事前移入アダプタ変数マッピング

3.6.2.1 「変数リスト」タブ

次の表に、「変数リスト」タブから設定できるマッピングを示します。

変数型

マップ先

修飾子/リソース・タイプ

オブジェクト

アダプタ参照

データベース参照

データ・オブジェクト参照

実行時に設定(タスク割当てアダプタの場合のみ)

データベース参照

データ・オブジェクト参照

ITリソース

実行時に解決

「ITリソース・タイプ定義」フォームの「表」に表示されるITリソース・タイプ

文字列、文字、バイト、整数、Float、Long、Short、Double

リテラル

アダプタ変数をリテラルにマップする場合は、「リソース・タイプ」コンボ・ボックスの下に「リテラル値」フィールドが表示されます。このフィールドに、このリテラルの値を入力します。

実行時に解決

該当なし

アダプタ参照

イベント・ハンドラ名

注意: アダプタ変数のデータ型がStringでない場合、「マップ先」コンボ・ボックスから「アダプタ参照」は選択できません。

ブール

リテラル

ブール。このリソース・タイプを選択すると、「リソース・タイプ」コンボ・ボックスの下に、TrueとFalseの2つのリテラル値のオプションが表示されます。

アダプタ変数の値に対応するオプションを選択します。

実行時に解決

該当なし

日付

リテラル

アダプタ変数をリテラルにマップする場合は、「リソース・タイプ」コンボ・ボックスの下に「リテラル値」参照フィールドが表示されます。

この参照フィールドをダブルクリックします。表示された日時ウィンドウから、このリテラルの値となる日付と時間を選択します。

実行時に解決

該当なし

システム日付

該当なし

注意: この変数の値には、Oracle Identity Managerの日付と時間が反映されます。そのため、この変数に対してはマップは行いません。

3.6.2.2 プロセス・タスク・アダプタ変数マッピング

次の表に、プロセス・タスク・アダプタ変数マッピングを示します。

変数型

マップ先

修飾子/説明

オブジェクト(アダプタの戻り変数)

プロセス・データ

パラメータを、関連するカスタム・プロセス・フォームまたはこのフォームに属する子表のフィールドにマップできます。

レスポンス・コード

該当なし

タスク情報

注意。パラメータを「タスク・リスト」フォームの「注意」タブにマップできます。

理由。パラメータを「エラーの詳細」ウィンドウにマップできます。このウィンドウにアクセスするには、「タスク・リスト」フォームに表示されたタスクをダブルクリックします。

プロセス定義

名前。パラメータを「プロセス定義」フォームの「名前」フィールドにマップできます。

タイプ。パラメータを「プロセス定義」フォームの「タイプ」参照フィールドにマップできます。

オブジェクト(アダプタの戻り変数)

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

注意: アダプタ変数のデータ型がObjectであるため、「修飾子」コンボ・ボックスから「組織ID」は選択できません。

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

ITリソース

ITリソース

パラメータをITリソースにマップできます。このITリソースは「ITリソース」タイプのメンバーで、「データ型」フィールド内から丸カッコ内に表示されます。

プロセス・データ

パラメータを、関連するプロセス固有のフォームのフィールドにマップできます。

注意: このコンボ・ボックスに表示される唯一のフィールド名は、「ITリソース」の参照フィールドのデータ型のものです。

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

プロセス・データ

パラメータを、関連するカスタム・プロセス・フォームまたはこのフォームに属する子表のフィールドにマップできます。

タスク情報

注意。パラメータを「タスク・リスト」フォームの「注意」タブにマップできます。

理由。パラメータを「エラーの詳細」ウィンドウにマップできます。このウィンドウにアクセスするには、「タスク・リスト」フォームに表示されたタスクをダブルクリックします。

プロセス定義

名前。パラメータを「プロセス定義」フォームの「名前」フィールドにマップできます。

タイプ。パラメータを「プロセス定義」フォームの「タイプ」参照フィールドにマップできます。

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

リテラル

アダプタ変数をリテラルにマップし、変数のデータ型がString、Character、Byte、Integer、Float、Long、ShortまたはDoubleの場合、「修飾子」コンボ・ボックスの下に「リテラル値」フィールドが表示されます。フィールドに、このリテラルの値を入力します。

アダプタ変数をリテラルにマップし、変数のデータ型がBooleanの場合、「修飾子」コンボ・ボックスの下に、TrueとFalseの2つのリテラル値のオプションが表示されます。アダプタ変数の値に対応するオプションを選択します。

アダプタ変数をリテラルにマップする場合で、かつ変数のデータ型がDateの場合、「修飾子」コンボ・ボックスの下に「リテラル値」参照フィールドが表示されます。この参照フィールドをダブルクリックします。表示された日時ウィンドウから、このリテラルの値となる日付と時間を選択します。

String

ITリソース

アダプタ変数をITリソースにマップする場合、「修飾子」、「ITアセット・タイプ」および「ITアセット・プロパティ」の3つのコンボ・ボックスが「マップ先」コンボ・ボックスの下に表示されます。これらのコンボ・ボックスから、マッピングの修飾子、ITリソースの特定の名前およびマッピングの結果を受け取るITリソースのフィールドを選択します。

注意: アダプタ変数のデータ型がStringでない場合、「マップ先」コンボ・ボックスから「ITリソース」は選択できません。

3.6.2.3 タスク割当てアダプタ変数マッピング

次の表に、タスク割当てアダプタ変数マッピングを示します。

変数型

マップ先

修飾子/説明

ITリソース

オブジェクト・データ

パラメータをITリソースのインスタンス・キーにマップできます。このITリソースは「ITリソース」タイプのメンバーで、「データ型」フィールド内から丸カッコ内に表示されます。

ITリソース

パラメータをITリソースにマップできます。

オブジェクト(アダプタの戻り変数)

オブジェクト・データ

パラメータを、関連するカスタム・リソース・オブジェクト・フォームまたはこのフォームに属する子表のフィールドにマップできます。

レスポンス・コード

該当なし

タスク情報

アダプタ変数をマップする「タスク・リスト」フォームのフィールド。

プロセス定義

アダプタ変数をマップする「プロセス定義」フォームのフィールド。

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

オブジェクト・データ

パラメータをリソース・オブジェクトのインスタンス・キーにマップできます。

タスク情報

アダプタ変数をマップする「タスク・リスト」フォームのフィールド。

プロセス定義

アダプタ変数をマップする「プロセス定義」フォームのフィールド。

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

情報のリクエスト

リクエストID。パラメータを「リクエスト」フォームの「リクエストID」フィールドにマップできます。

リクエスト・アクション。パラメータを「リクエスト」フォームの「リクエスト・アクション」フィールドにマップできます。

リクエスト優先度。パラメータを「リクエスト」フォームの「リクエスト優先度」フィールドにマップできます。

リクエスト・ターゲット・ユーザー

アダプタ変数をマップする「ユーザー」フォームのフィールド。

リクエスト・ターゲット組織

アダプタ変数をマップする「組織」フォームのフィールド。

リクエスタ情報

アダプタ変数をマップする「ユーザー」フォームのフィールド。

リテラル

アダプタ変数をリテラルにマップする場合は、「修飾子」コンボ・ボックスの下に「リテラル値」フィールドが表示されます。フィールドに、このリテラルの値を入力します。

注意: アダプタ変数のデータ型がBooleanの場合、フィールドのかわりにTrueとFalseの2つのオプションが表示されます。アダプタ変数の値を反映するオプションを選択します。

注意: アダプタ変数のデータ型がObjectの場合、「マップ先」コンボ・ボックスから「リテラル」は選択できません。

String

ITリソース

リソース・インスタンス。パラメータをITリソースのインスタンス・キーにマップできます。このITリソースは「ITリソース」タイプのメンバーで、「データ型」フィールド内から丸カッコ内に表示されます。

ITアセット・タイプ。パラメータをITリソース・タイプにマップできます。

String

ITリソース

ITアセット・プロパティ。このパラメータを、選択したITリソース・タイプを構成するプロパティの1つにマップできます。

3.6.2.4 ルール・ジェネレータおよびエンティティ・アダプタ変数マッピング

次の表に、ルール・ジェネレータおよびエンティティ・アダプタ変数マッピングを示します。

変数型

マップ先

修飾子/説明

オブジェクト(アダプタの戻り変数)、ITリソース、String、Boolean、Character、Byte、Date、Integer、Float、Long、Short

リテラル

アダプタ変数をリテラルにマップする場合は、「修飾子」コンボ・ボックスの下に「リテラル値」フィールドが表示されます。フィールドに、このリテラルの値を入力します。

注意: アダプタ変数のデータ型がObjectの場合、「マップ先」コンボ・ボックスから「リテラル」は選択できません。

エンティティ・フィールド

アダプタ変数を、関連するプロセス・フォームのフィールドにマップできます。このフォームの名前は、「データ・オブジェクト・マネージャ」フォームの「フォームの説明」フィールドに表示されます。

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

注意: アダプタ変数のデータ型がObjectでない場合、「修飾子」コンボ・ボックスから「組織ID」および「親組織ID」は選択できません。

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

3.6.2.5 事前移入アダプタ変数マッピング

次の表に、事前移入アダプタ変数マッピングを示します。

変数型

マップ先

修飾子/説明

ITリソース

ITリソース

パラメータをITリソースにマップできます。このITリソースは「ITリソース」タイプのメンバーで、「データ型」フィールド内から丸カッコ内に表示されます。

プロセス・データ

パラメータを、関連するプロセス固有のフォームのフィールドにマップできます。

注意: このコンボ・ボックスに表示される唯一のフィールド名は、「ITリソース」の参照フィールドのデータ型のものです。

Object、String、Boolean、Character、Byte、Date、Integer、Float、Long、Short、Double

プロセス・データ

パラメータを、関連するプロセス固有のフォームのフィールドにマップできます。

組織定義

アダプタ変数をマップする「組織」フォームのフィールド。

ユーザー定義

アダプタ変数をマップする「ユーザー」フォームのフィールド。

文字列、ブール、文字、バイト、日付、整数、Float、Long、Short、Double

リテラル

アダプタ変数をリテラルにマップし、変数のデータ型がString、Character、Byte、Integer、Float、Long、ShortまたはDoubleの場合、「修飾子」コンボ・ボックスの下に「リテラル値」フィールドが表示されます。フィールドに、このリテラルの値を入力します。

アダプタ変数をリテラルにマップし、変数のデータ型がBooleanの場合、「修飾子」コンボ・ボックスの下に、TrueとFalseの2つのリテラル値のオプションが表示されます。アダプタ変数の値に対応するオプションを選択します。

アダプタ変数をリテラルにマップする場合で、かつ変数のデータ型がDateの場合、「修飾子」コンボ・ボックスの下に「リテラル値」参照フィールドが表示されます。この参照フィールドをダブルクリックします。表示された日時ウィンドウから、このリテラルの値となる日付と時間を選択します。

String

ITリソース

アダプタ変数をITリソースにマップする場合、「修飾子」、「ITアセット・タイプ」および「ITアセット・プロパティ」の3つのコンボ・ボックスが「マップ先」コンボ・ボックスの下に表示されます。これらのコンボ・ボックスから、マッピングの修飾子、ITリソースの特定の名前およびマッピングの結果を受け取るITリソースのフィールドを選択します。

注意: アダプタ変数のデータ型がStringでない場合、「マップ先」コンボ・ボックスから「ITリソース」は選択できません。

4 コールバック・サービスの使用

コールバック・サービスは、Oracle Identity Managerのイベント処理中に、事前定義済ポイントでデプロイ固有のロジックを呼び出します。コールバック・サービスについては、次の項で説明します。

- コールバック・サービスの概要

- Oracle Identity Manager属性のマッピング

- イベント・コールバックの送信

- コールバック・サービスの構成

- コールバック・サービスのトラブルシューティング

4.1 コールバック・サービスの概要

コールバック・サービスは、外部アプリケーションがOracle Identity Managerのイベント処理の一環としてなんらかのアクションを実行できるようにする通知およびコールバックをトリガーします。たとえば、Oracle Identity Managerを使用してユーザーが作成された場合、このタイプのプロビジョニング・イベントの通知を受け取るよう登録されている外部アプリケーションに通知され、これによりアプリケーションは、同じユーザー情報を独自のローカル・データ・ストアに追加できます。これは通知と呼ばれます。通知により、アプリケーションは変更内容とデータを同期できます。

注意:

外部アプリケーションのWebサービス・エンドポイントは、コールバック・サービス構成に登録されている必要があります。詳細は、「コールバック・サービスの構成」を参照してください。

外部アプリケーションがOracle Identity Managerでユーザー・プロビジョニング・イベントを開始した場合、このタイプのプロビジョニング・イベントの通知を受け取るよう登録されているその他の外部アプリケーションは、Oracle Identity Managerから通知を受け取ります。Oracle Identity Manager自体がプロビジョニング・プロセスの一環として外部アプリケーションによって呼び出された場合、その通知はコールバックと呼ばれます。したがって、コールバックとは、単に、外部アプリケーションの通知の後に、Oracle Identity Managerへのコールバックが続くものです。コールバックは、すべての登録済パーティとOracle Identity Managerとの間のイベントに関する情報を同期します。コールバックでは、イベントの成功または失敗のステータスを示すこともできます。

注意:

コールバック・サービス・インフラストラクチャは、コールバックと通知の両方を処理します。このドキュメントでは、コールバックはこの両方を示しています。

コールバック・サービスによって処理されるコールバック・タイプは複数あります。これらを次に示します。

- 外部アプリケーションに返される後処理コールバック。たとえば、構成済のOracle Identity Managerデータ・ストア内のユーザー・プロファイルをプロビジョニングするリクエストは、Webサービス・コールとして外部アプリケーションからOracle Identity Managerに送信されます。プロファイルが作成され、後処理コールバックがアプリケーションに返されて、プロファイル作成が確定します。これらのコールバックは、Oracle Identity Managerの構成に応じて、同期または非同期となります。

- リクエスト・ステータスになんらかの変更があると、ステータス変更コールバックが関連するパーティに送信されます。たとえば、ユーザーのプロビジョニング・リクエストのステータスが完了または失敗に変更された場合、または職務の分離(SoD)チェックによりリクエスト・ステータスの変更が認識された場合、ステータス変更コールバックが送信されます。

注意:

この機能は、以前は完了コールバックと呼ばれていました。

- コールバック・レスポンスが、サード・パーティによって生成され、後処理コールバックへのレスポンスが返されることをOracle Identity Managerに通知します。このコールバック・レスポンス・サービスは、「コールバック・サービスの構成」で説明されているように手動で構成されます。

コールバック・サービスは、ユーザー・インタフェース、Oracle Identity ManagerリクエストAPI、Service Provisioning Markup Language(SPML)クライアントを含むあらゆるソースからのイベントに対してコールバックを呼び出すように構築されています。これは、非同期クライアント・コールバックへのレスポンスを受信するリスナー・サービスです。クライアントWebサービスが呼び出されると、Oracle Identity Managerは一意の識別子を生成し、それをコールとともに送信します。クライアントは、応答時にこの識別子を使用して、レスポンスと元のWebサービス・リクエストを相関させる必要があります。コールバック・サービスは、クライアント・レスポンスに基づいて適切なアクションを実行します。次の項では、コールバック・サービスのコンポーネントについて詳しく説明します。

- コールバックの使用

- イベント処理の理解

- コールバックの再試行

4.1.1 コールバックの使用

この項では、Oracle Identity Managerコールバックのユースケースについて説明します。このユースケースは、職務の分離(SoD)ステータス変更通知に固有のものです。このユースケースは、既存のユーザーで、POApproverロールのメンバーであるJames Northに関するものです。Jamesは、POCreatorおよびBuyerという2つの追加ロールをリクエストしています。このリクエストは、次のプロセスに従って処理されます。

1. Oracle Identity Managerは、リクエストを受信し、IDが21の「ロールの割当て」リクエストを作成します。
リクエストIDは、Oracle Identity Managerによって生成される一意の識別子であり、リクエストを今後のレスポンスと通信に相関させるために使用されます。

2. Oracle Identity Managerは、Oracle Applications Access Control Governor(OAACG)を使用してSoD検証を開始します。

3. Oracle Identity Managerリクエスト・ステータスが変更され、「SODチェック中です」を示すコールバックがコールバック登録Webサービスに返されます。このコールバックには、リクエストID、リクエストされた操作(MODIFY)、ターゲット・タイプ(IDENTITY)、ターゲットGUID(JNORTH)およびロケール(en_US)が含まれています。

4. OAACGは、Buyerロールは許容できるが、POCreaterロールはJamesの既存のPOApproverロールが原因で違反していることを示す「条件付承認」レスポンスを返します。

5. Oracle Identity Managerリクエスト・ステータスが変更され、「SOD改善中です」を示す2番目のコールバックがコールバック登録Webサービスに返されます。前のコールバックと同じ識別情報が含まれています。

6. CFOOVERRIDEという名前のタグが拒否ノートに配置され、最高財務責任者(CFO)がこの違反を選択的ケースで承認できることを示します。
OVERRIDEが最後に付くタグが拒否ノートに配置されている場合に例外承認を呼び出すようにOBRルールを構成する必要があります。

7. AMXルールがタグを解読し、CFOの肩書きを持つ人物にタスクが割り当てられるようにするにはCFO承認が必要であることを判断します。

8. CFOがリクエストを承認または拒否します。

1. リクエストが拒否されると、Oracle Identity Managerリクエスト・ステータスが変更され、3番目のコールバックが「SOD改善が却下されました」として返されます。これで、Oracle Identity Managerリクエストは、「SOD改善が却下されました」ステータスでクローズされます。

注意:

リクエストの一部分が拒否されると、そのリクエスト全体が拒否されます。したがって、この例では、BuyerロールにSoD違反はありませんが、ユーザーにプロビジョニングされません。

2. リクエストが承認されると、Oracle Identity Managerリクエスト・ステータスが変更され、3番目のコールバックが「SOD改善が承認されました」として返されます。Oracle Identity Managerリクエストは、「SOD改善が承認されました」ステータスで更新されます。OAACGおよびリクエスト側アプリケーションに承認が通知され、ロールがプロビジョニングされます。

9. Oracle Identity Managerリクエスト・ステータスが「リクエストが完了しました」に変更されると、「リクエストが完了しました」ステータスでリクエストが完了したことを示す最後のコールバックが、すべてのコールバック登録Webサービスに送信されます。

4.1.2 イベント処理の理解

図4-1に、イベントが処理される方法を示します。Oracle Identity Managerは非同期呼出しを使用しますが、これにより、ヒューマン承認ワークフローの開始など、必要に応じてイベントを処理する柔軟性がコール側アプリケーションに提供されます。

図4-1 コールバック・サービス・プロセス

「図4-1 コールバック・サービス・プロセス」の説明

このリリースのコールバック・サービスでは、ハンドラおよびプラグイン・イベントがサポートされています。これらを次に示します。

- 後処理ハンドラ: イベントが処理された後、かつリクエストが完了としてマークされる前に呼び出されます。デフォルトの後処理ハンドラは、コールバック・サービス構成に基づいて複数のコールバックを呼び出します。

- ステータス変更プラグイン: リクエスト・ステータスに変更があった場合(ユーザー・プロビジョニング・リクエストのステータスが完了や失敗に変更された場合など)、または職務の分離(SOD)チェックによりリクエスト・ステータス変更が認識された場合に呼び出され、ステータス変更コールバックが送信されます。デフォルトのステータス変更プラグインは、コールバック・サービス構成に基づいて複数のコールバックを呼び出す場合があります。

4.1.3 コールバックの再試行

コールバック・サービスは、サービスを呼び出すときにネットワーク・エラーがあった場合は、コールバックを再試行します。Oracle Identity Managerは、固定された間隔である5秒後に、固定された回数である3回のコールバックを再試行します。これらの値は構成できません。

4.2 Oracle Identity Manager属性のマッピング

Oracle Identity Managerで使用される属性の名前は独自の名前です。たとえば、サード・パーティのアプリケーションではユーザーの姓をsurnameと呼ぶ場合がある一方で、Oracle Identity Managerでは「姓」を使用します。このため、属性マッピングが不可欠です。

注意:

コールバック・サービスでは、Oracle Identity ManagerのService Provisioning Markup Language(SPML)レイヤーで定義されているのと同じ属性を使用します。これらは、(単称として)SPMLプロビジョニング・サービス・オブジェクト(PSO)と呼ばれます。詳細は、付録B「SPML属性とLDAPマッピング、およびOracle Identity Managerの属性」を参照してください。

マッピングされた属性名は、送信されたメッセージおよびコールバック構成(特にConstraintAttributeパラメータ)で使用されます。表4-1では、Oracle Identity Managerユーザー・タイプ属性が、SPML PSOを使用してコールバックでどのように表されるかを定義しています。

表4-1 Oracle Identity Managerとコールバック・サービス・ユーザー属性のマッピング

コールバック・サービス属性(PSO)

Oracle Identity Managerユーザー属性

activeEndDate

終了日

activeStartDate

開始日

commonName

一般名

countryName

国

departmentNumber

部門番号

description

説明

displayName

氏名

employeeNumber

従業員番号

employeeType

ロール

facsimileTelephoneNumber

FAX

generationQualifier

世代修飾子

hireDate

入社日

homePhone

自宅電話番号

homePostalAddress

自宅住所

initials

イニシャル

localityName

地方名

mail

電子メール

middleName

ミドル・ネーム

mobile

モバイル

organization

LDAP組織

organizationUnit

LDAP組織単位

pager

ページャ

password

パスワード

postalAddress

住所

postalCode

郵便番号

postOfficeBox

私書箱

preferredLangauage

言語

state

都道府県

street

番地

surname

姓

telephoneNumber

電話番号

title

役職

userId

usr_key

userName

ユーザー・ログイン

表4-2は、Oracle Identity Managerロール・タイプ属性が、SPML PSOを使用してコールバックでどのように表されるかを定義しています。

表4-2 Oracle Identity Managerとコールバック・サービス・ロール属性のマッピング

コールバック・サービス属性(PSO)

Oracle Identity Managerロール属性

commonName

ロール名

description

ロールの説明

displayName

表示名

属性名がこれらの表のいずれにもない場合は、そのOracle Identity Manager属性で参照されます。

4.3 イベント・コールバックの送信

デフォルトでは、コールバックは、EventHandlers.xml(プロビジョニング・プロセスの後処理ステージで編成エンジンによって呼び出されるハンドラ)にリストされているすべてのOracle Identity Managerイベントに対して有効化されています(送信されます)。各イベントにより、適用可能なエンティティ・タイプおよび操作が指定されます。構成を変更することで、特定のコールバックを無効化できます。表4-3に、Oracle Identity Managerがコールバックを作成するユーザーとロールのイベント、およびコールバックで返される情報についてまとめます。

表4-3 コールバック開始イベント

エンティティ/操作

イベント開始側

後処理ハンドラで返される情報

ステータス変更プラグイン・コールバックで返される情報

ユーザー作成

サード・パーティ・リクエストのみ。ユーザーが、コンソールを使用して、またはリコンシリエーション・イベントを介して作成された場合、コールバックは発生しません。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 作成された属性および値(パスワードとチャレンジ質問は除く)が含まれたプロビジョニング・サービス・オブジェクト(PSO)
注意: PSOは作成操作に使用されます。変更オブジェクトは変更操作に使用されます。

- ユーザーに割り当てられたロール

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー変更

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 変更された属性および値(パスワードとチャレンジ質問は除く)が含まれた変更オブジェクト*

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー一時停止(無効化)

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー再開(有効化)

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー割当てロール: memberOfの追加

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 割当て済ロールのGUIDが含まれた変更オブジェクト*

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ユーザー失効ロール: memberOfの削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 割当て済ロールのGUIDが含まれた変更オブジェクト*

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ロール追加

サード・パーティ・リクエストのみ。ロールが、コンソールを使用して、またはリコンシリエーション・イベントを介して作成された場合、コールバックは発生しません。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 作成された属性および値が含まれたPSO*

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ロール変更

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- 変更された属性および値が含まれた変更オブジェクト*

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

ロール削除

すべてのソース: サード・パーティ・リクエスト、コンソール、およびリコンシリエーション・イベント経由。

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

- OIMリクエスト・ステータス

- ターゲット・タイプ

- ターゲットGUID

- 操作

- リクエストID

4.4 コールバック・サービスの構成

コールバック・サービスの構成では、1つ以上のコールバックが呼び出される方法およびタイミングを指定します。次の項では、構成ファイル、およびこのファイルをメタデータ・サービス・リポジトリにインポートする手順について説明します。

- CallbackConfiguration.xmlの理解

- CallbackConfiguration.xmlのインポート

4.4.1 CallbackConfiguration.xmlの理解

構成は、CallbackConfiguration.xmlと呼ばれる単一ファイルに格納されています。構成ファイルは、Oracle Identity Managerメタ・ディレクトリ・リポジトリにあります。デフォルトのイベント・ハンドラおよび検証プラグインによって使用されます。次のパラメータを構成できます。

- Policy name: コールバック・ポリシーの名前を定義します。値は、プロビジョニング・リクエストから取得されます。これは、Oracle Identity Manager固有であり、文字列値を使用します。

- Entity type: コールバック・ポリシーを適用できるエンティティ・タイプのことです。必須で、単一の値です。可能な値は、User、RoleおよびRoleUserです。

- Operation: コールバック・ポリシーを適用できるデータベース操作のことです。必須値は、CreateまたはDeleteのいずれかです。

- Description: ポリシーの説明である、ローカライズされた文字列を使用します。

- ConstraintAttributeおよびConstraintAttributeValue: 指定されたオブジェクトに対して特定のコールバックを呼び出すかどうかをハンドラおよびプラグイン・コードが決定できる、単純な制約を指定するフィールドです。この属性は、編成データまたはRequestDataのいずれかの形式で、ハンドラに対して使用可能になっているエンティティ・データで検索されます。データが存在しない場合、この制約は適用されません。

- ConstraintAttribute: 制約が指定される属性の名前を値として使用します。この名前は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。

- ConstraintAttributeValue: ConstraintAttributeでの値と同じ値を使用します。ここでの値は、編成データまたはリクエスト・データに存在するConstraintAttributeの値と同じである必要があります。データに複数の値がある場合は、少なくとも1つが一致する必要があります。このパラメータは、ConstraintAttribute自体に値がある場合にのみ関係します。

- Provisioning Steps: このコールバック・ポリシーを使用する必要がある編成手順を指定します。可能な値は次のとおりです。

- validation

- preProcessing

- approval

- postProcessing

- completion

- stepName: 外部アプリケーションのWebサービス・エンドポイントのことです。

- description: Webサービス・エンドポイントの説明を示す、ローカライズされた文字列を使用します。

- InvokeOnChange: 値として1つ以上の属性名を使用し、変更操作にのみ適用可能です。このコールバックは、このパラメータの値としてリストされているいずれかの属性が変更された場合にのみ呼び出されます。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。

- CallbackOnly: Oracle Identity Managerが外部アプリケーションからのレスポンスを待機するかどうかを指定します。可能な値はtrueまたはfalseです。trueの場合、Oracle Identity Managerはアプリケーションからのレスポンスを待機し、編成プロセスはレスポンスが受信されるまで待機します。falseの場合、Oracle Identity Managerはコールバック・レスポンスを待機せず、編成プロセスは続行されます。

- targetIDAttribute: メッセージでターゲットGUIDとして使用される属性を値として使用します。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。デフォルト値はLDAP GUIDです。

- roleIDAttribute: メッセージでロールGUIDとして使用されるロール属性を値として使用します。この値は、Oracle Identity Manager側で定義された名前ではなく、アプリケーション側で定義された属性名である必要があります。詳細は、「Oracle Identity Manager属性のマッピング」を参照してください。デフォルト値はLDAP GUIDです。

例4-1は、サンプル構成ファイルです。

例4-1 サンプルCallbackConfiguration.xml

<?xml version='1.0' encoding='UTF-8'?>
<callbackConfiguration xmlns="http://www.oracle.com/schema/oim/callback_config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/callback_config">
<policy>
<policyName>User Creation1</policyName>
<entityType>User</entityType>
<operation>Create</operation>
<description>Policy to create  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Enable1</policyName>
<entityType>User</entityType>
<operation>Enable</operation>
<description>Policy to enable  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Delete1</policyName>
<entityType>User</entityType>
<operation>Delete</operation>
<description>Policy to delete  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Disable1</policyName>
<entityType>User</entityType>
<operation>Disable</operation>
<description>Policy to disable  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>User Modify1</policyName>
<entityType>User</entityType>
<operation>Modify</operation>
<description>First Policy to modify  a user in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Assign1</policyName>
<entityType>RoleUser</entityType>
<operation>CREATE</operation>
<description>Policy to assign roles to the user</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Revoke1</policyName>
<entityType>RoleUser</entityType>
<operation>Delete</operation>
<description>Policy to revoke role from the user</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Creation1</policyName>
<entityType>Role</entityType>
<operation>Create</operation>
<description>Policy to create  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Delete1</policyName>
<entityType>Role</entityType>
<operation>Delete</operation>
<description>Policy to delete  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
<policy>
<policyName>Role Modify1</policyName>
<entityType>Role</entityType>
<operation>Modify</operation>
<description>Policy to modify  a role in the store</description>
<provisioningSteps>
<postProcessing>
<asyncSteps>
<stepName>http://adc2120179.us.oracle.com:7001/testCallbackService/
PostProcessingPluginRequestPortImplTest</stepName>
<description>Webservice url for this policy</description>
</asyncSteps>
</postProcessing>
</provisioningSteps>
</policy>
</callbackConfiguration>

4.4.2 CallbackConfiguration.xmlのインポート

コールバック・サービスを構成する手順は、次のとおりです。CallbackConfiguration.xmlファイルのインポートを伴います。このファイルには、指定されたエンティティ・タイプまたは操作用のコールバック・ポリシーのリストが含まれています。

1. マップ名oimおよびキーappid.keycredentialsを使用して、資格証明ストア・フレームワーク(CSF)で資格証明エントリを作成します。
このエントリには、コールバックに対してOracle Identity Managerが自身を識別するために使用する、ユーザー名とパスワードが格納されています。CSFは、Oracle Identity Managerのインストール時にドメイン作成の一部として利用可能です。

関連項目:

資格証明ストア・フレームワークの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

2. weblogicImportMetadata.sh MDSユーティリティを使用して、CallbackConfiguration.xmlをメタデータ・サービス(MDS)リポジトリにインポートします。
/metadata/iam-features-callbacks/sample_data/ネームスペースにロードされます。

CallbackConfiguration.xmlをインポートする場合の考慮事項は、次のとおりです。

- CallbackConfiguration.xmlファイルが、MDSリポジトリの正しいメタデータ・ネームスペース(/metadata/iam-features-callbacks/sample_data/)にインポートされたことを確認します。

- 他のメタデータ・ネームスペースにある古いCallbackConfiguration.xmlファイルを削除します。たとえば、/metadata/iam-features-callbacks/old_config/CallbackConfiguration_st3b16.xmlや/metadata/iam-features-callbacks/old_config/CallbackConfiguration.xmlは、有効ではありません。weblogicDeleteMetadata.shを使用して、MDSリポジトリで見つかった無効なエントリをすべて削除します。

- インポート後にCallbackConfiguration.xmlに変更が加えられた場合は、変更されたファイルを説明に従って再インポートし、OIM_HOME/server/bin/ディレクトリにあるPurgeCache.shユーティリティを使用して、Oracle Identity Managerキャッシュをパージします。

4.5 コールバック・サービスのトラブルシューティング

表4-4に、コールバック・サービス・エラーが発生した場合に実行できるトラブルシューティング手順を示します。

表4-4 コールバック・サービスのトラブルシューティング

問題

解決策

SPMLリクエストを送信できません(失敗した認証)。

SPMLリクエストが、有効なSPMLユーザー(SPML_App_Roleグループのメンバー)により、正しい資格証明を使用して送信されていることを確認します。

リクエストがクライアントAPIから送信されている場合は、互換性のあるクライアント・ポリシーが適用されている必要があることに注意してください。

次に、SPMLリクエストが不正な資格証明で送信された場合に表示されるサンプル・エラー・レスポンスを示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:ns0="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><faultcode>ns0:FailedAuthentication</faultcode><faultstring>FailedAuthentication : The security token cannot be authenticated.</faultstring><faultactor/></env:Fault></env:Body></env:Envelope>

ロールの割当てなど、所定のリクエスト・タイプの場合、Oracle Identity Managerは、policyNameが一致するのが1つのコールバック・サービスであっても、複数のコールバックWebサービスに対する複数のコールバックを作成します。

これは、callbackOnlyが、適格なエンティティ・タイプおよび操作(ロールの割当てリクエスト・タイプなど)すべてに関してfalseに設定されていると、一致するすべてのエンティティ・タイプおよび操作に対してコールバックがトリガーされるためです。

PolicyNameの一致は、callbackOnly属性がfalseに設定されている場合は無視されます。

callbackOnly属性がtrueに設定されている場合は、ポリシー名がチェックされます。そのポリシーに存在するすべてのコールバックWebサービスURLは、エンティティ・タイプおよび操作条件も満たされている場合にトリガーされます。

そのポリシーに存在するすべてのコールバックWebサービスURLは、エンティティ・タイプおよび操作条件も満たされている場合にトリガーされます。

ポリシー参照URI oracle/wss_saml_or_username_token_service_policyは、有効ではありません。

WSMポリシー・マネージャがデプロイされ、Oracle Identity ManagerやSPMLリクエスト開始サーバーなどの対話サーバーをターゲットにしていることを確認します。また、WSMポリシー・マネージャがアクティブ・モードで、リクエストに対応する準備ができていることを確認します。

SPML APPIDおよびOracle Identity Manager APPIDが何であるか、およびこれらのAPPIDをどこに作成するかがわかりません。

SPML APPIDは、SPMLリクエストをOracle Identity Managerに送信するために使用されます。Oracle Identity Managerによるユーザー・プロビジョニング・サービスを必要とするクライアントは、そのリポジトリにSPML APPIDが格納されている必要があります。たとえば、Fusion ApplicationsがOracle Identity Managerのクライアントである場合、Fusion Applicationsは通常、そのリポジトリとしてLDAPディレクトリを使用します。

Oracle Identity Manager APPIDは、所定のSPMLリクエスト・タイプのCallbackConfiguration.xmlファイルに登録されているすべてのWebサービスにコールバックを送信するために使用されます。

Oracle Identity Managerリポジトリまたはデータベースには、SPML APPIDのみが格納されています。Oracle Identity Manager APPIDはOracle Identity Managerリポジトリには存在せず、資格証明ストア・フレームワーク(CSF)に、マップ名がoim、キーがappid.credentialsとして存在します。

SPMLリポジトリまたはLDAPには、SPML APPIDとOracle Identity Manager APPIDの両方が含まれています。

Fusion Applicationsは、SPMLリクエストをOracle Identity Managerに送信する場合、SPML APPIDを使用してOracle Identity Managerと通信します。SPML APPIDは、SPMLリポジトリまたはLDAPに存在します。このユーザーは、Oracle Identity Manager側でデータベースに対して認証されます。したがって、Oracle Identity ManagerデータベースにはSPML APPIDが含まれています。

Oracle Identity Managerは、Fusion Applicationsと通信する場合、Oracle Identity Manager APPIDを使用してFusion Applicationsと通信します。Oracle Identity Manager APPIDは、CSFに存在します。このユーザーは、LDAPリポジトリ内のOracle Identity Manager APPIDを確認することで、Fusion Applications側でLDAPに対して認証されます。したがって、LDAPにはOracle Identity Manager APPIDが含まれています。

5 ルールの開発

この章では、Design Consoleの「ビジネス・ルール定義」について説明します。内容は次のとおりです。

- 「ビジネス・ルール定義」の概要

- 「イベント・ハンドラ・マネージャ」フォーム

- 「データ・オブジェクト・マネージャ」フォーム

- 「リコンシリエーション・ルール」フォーム

5.1 「ビジネス・ルール定義」の概要

「開発ツール/ビジネス・ルール定義」フォルダでは、システム管理者および開発者がOracle Identity Managerのイベント・ハンドラおよびデータ・オブジェクトを管理するツールが提供されます。

このフォルダには、次のフォームが含まれます。

- イベント・ハンドラ・マネージャ: このフォームでは、Oracle Identity Managerで使用されるイベント・ハンドラを作成および管理できます。

- データ・オブジェクト・マネージャ: このフォームでは、データ・オブジェクトを定義し、そのオブジェクトにイベント・ハンドラとアダプタを割り当て、関連するアダプタ変数をマップできます。

5.2 「イベント・ハンドラ・マネージャ」フォーム

このフォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、ユーザー定義またはシステム生成のアクション(またはイベント)を処理するJavaクラスを管理します。これらのクラスはイベント・ハンドラと呼ばれます。新規イベント・ハンドラをOracle Identity Managerに追加する場合は、Oracle Identity Managerで認識されるようにするために、最初にそのイベント・ハンドラをここで登録する必要があります。

イベント・ハンドラには次の2種類があります。

- 「アダプタ・ファクトリ」フォームを使用して作成されるイベント・ハンドラ。名前の先頭の文字はadpです。これらはアダプタと呼ばれます。

- Oracle Identity Managerで内部的に作成されるイベント・ハンドラ。名前の先頭の文字はtcです。これらは、システム・イベント・ハンドラと呼ばれます。

「イベント・ハンドラ・マネージャ」フォームを使用して、Oracle Identity Managerによりいつイベント・ハンドラがトリガーされるかを指定できます。イベント・ハンドラの実行は、次のようにスケジュールできます。

- 挿入前: 情報がデータベースに追加される前

- 更新前: 情報がデータベース内で更新される前

- 削除前: 情報がデータベースから削除される前

- 挿入後: 情報がデータベースに追加された後

- 更新後: 情報がデータベース内で更新された後

- 削除後: 情報がデータベースから削除された後

図5-1に、「イベント・ハンドラ・マネージャ」フォームを示します。

図5-1 「イベント・ハンドラ・マネージャ」フォーム

表5-1に、「イベント・ハンドラ・マネージャ」フォームのフィールドの説明を示します。

表5-1 「イベント・ハンドラ・マネージャ」フォームのフィールド

フィールド名

説明

イベント・ハンドラ名

イベント・ハンドラの名前。

パッケージ

イベント・ハンドラが属するJavaパッケージ。

挿入前

このチェック・ボックスを選択すると、データベースに情報が追加される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

更新前

このチェック・ボックスを選択すると、データベースで情報が変更される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

削除前

このチェック・ボックスを選択すると、データベースから情報が削除される前に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

挿入後

このチェック・ボックスを選択すると、データベースに情報が追加された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

更新後

このチェック・ボックスを選択すると、データベースで情報が変更された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

削除後

このチェック・ボックスを選択すると、データベースから情報が削除された後に、Oracle Identity Managerによってイベント・ハンドラがトリガーされます。

注意

イベント・ハンドラに関する追加情報。

次の各項では、イベント・ハンドラの作成および変更の方法について説明します。

注意:

イベント・ハンドラを使用するには、「データ・オブジェクト・マネージャ」フォームを使用して、イベント・ハンドラをデータ・オブジェクトにアタッチする必要があります。イベント・ハンドラのデータ・オブジェクトへの割当ての詳細は、5.3項「「データ・オブジェクト・マネージャ」フォーム」を参照してください。

注意:

名前の先頭の文字がadpであるイベント・ハンドラは、すべてアダプタに関連付けられているため、変更できません。ただし、システム・イベント・ハンドラは変更可能です。これらのイベント・ハンドラは名前の先頭の文字がtcです。

イベント・ハンドラの追加または変更

イベント・ハンドラを追加または変更するには、次の手順を実行します。

1. 「イベント・ハンドラ・マネージャ」フォームを開きます。

2. Oracle Identity Managerにイベント・ハンドラを追加するには、「イベント・ハンドラ名」参照フィールドにイベント・ハンドラの名前を入力します。
イベント・ハンドラを変更するには、「イベント・ハンドラ名」参照フィールドをダブルクリックします。

表示される「参照」ダイアログ・ボックスで、編集するイベント・ハンドラを選択します。

3. パッケージ・フィールドで、イベント・ハンドラがそのメンバーであるJavaパッケージの名前を追加または編集します。

4. どの時点でOracle Identity Managerによりイベント・ハンドラをトリガーするかに応じて、該当するチェック・ボックスを選択します。
イベント・ハンドラは、挿入前、更新前、削除前、挿入後、更新後および削除後に実行されるようにスケジュールできます。

注意:

チェック・ボックスを選択しても、イベント・ハンドラがその時点で(たとえば挿入前に)トリガーされるわけではありません。これは、その時点でのイベント・ハンドラの実行が可能であることを意味しています。

5. 「注意」領域で、イベント・ハンドラに関する説明を追加または編集します。

6. 「保存」をクリックします。
イベント・ハンドラが追加または編集されます。

5.3 「データ・オブジェクト・マネージャ」フォーム

「データ・オブジェクト・マネージャ」フォームは、「開発ツール/ビジネス・ルール定義」フォルダに表示されます。このフォームを使用して、次の操作を実行できます。

- データベースのデータを追加、変更または削除できるオブジェクトに、ルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを割り当てます。このタイプのオブジェクトは、データ・オブジェクトと呼ばれます。

- スケジュール(挿入前、更新前、削除前、挿入後、更新後または削除後)に従って実行されるように、アダプタまたはイベント・ハンドラのスケジュールを設定します。

- 同じ実行スケジュールに属するアダプタまたはイベント・ハンドラが、Oracle Identity Managerによってトリガーされる順序を調整します。

- 現在のデータ・オブジェクトを追加、変更および削除できるユーザー・グループを表示します。

- アダプタ変数を適切なソースの場所およびターゲットの場所にマップします。

関連項目:

アダプタ変数、ルール・ジェネレータ・アダプタおよびエンティティ・アダプタの詳細は、第2章「アダプタの開発」を参照してください。

図5-2に、「データ・オブジェクト・マネージャ」フォームを示します。

図5-2 「データ・オブジェクト・マネージャ」フォーム

表5-2に、「データ・オブジェクト・マネージャ」フォームのフィールドの説明を示します。

表5-2 「データ・オブジェクト・マネージャ」フォームのフィールド

フィールド

説明

フォームの説明

データ・オブジェクトに関連付けられているフォームの名前。

データ・オブジェクト

イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトの名前。

次の項では、ルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを割り当てるターゲット・データ・オブジェクトの選択方法について説明します。

ターゲット・データ・オブジェクトの選択

ターゲット・データ・オブジェクトを選択するには、次の手順を実行します。

1. 「データ・オブジェクト・マネージャ」フォームを開きます。

2. フォームの説明フィールドをダブルクリックします。
表示される「参照」ダイアログ・ボックスで、イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタを割り当てるデータ・オブジェクトに関連付けられているフォームの名前を選択します。

フォームを選択すると、対応するデータ・オブジェクトの名前がデータ・オブジェクト・フィールドに表示されます。

3. 「保存」をクリックします。
ターゲット・データ・オブジェクトが選択されます。これで、ルール・ジェネレータ・アダプタ、エンティティ・アダプタおよびイベント・ハンドラを割り当てられるようになりました。

5.3.1 「データ・オブジェクト・マネージャ」フォームのタブ

「データ・オブジェクト・マネージャ」フォームを起動してターゲット・データ・オブジェクトを選択すると、このフォームのタブが使用できるようになります。

「データ・オブジェクト・マネージャ」フォームには、次のタブが含まれます。

- ハンドラのアタッチ、アダプタのマップ

それぞれのタブについて、次の各項で説明します。

- ハンドラのアタッチ・タブ

- アダプタのマップ・タブ

5.3.1.1 ハンドラのアタッチ・タブ

このタブを使用して、データ・オブジェクトに割り当てるか、データ・オブジェクトから削除するルール・ジェネレータ・アダプタ、エンティティ・アダプタまたはイベント・ハンドラを選択します。次の情報が含まれます。

- 割り当てられたイベント・ハンドラまたはアダプタが、Oracle Identity Managerによって(挿入前、更新前、削除前、挿入後、更新後または削除後の)いつトリガーされるかを指定します。同じ実行スケジュールに属するアダプタまたはイベント・ハンドラがOracle Identity Managerによってトリガーされる順序を設定します。

イベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをOracle Identity Managerによってトリガーする必要がなくなった場合は、データ・オブジェクトからそれを削除する必要があります。

たとえば、adpCONVERTTOLOWERCASE、adpSOLARISHMDSTRINGGEN、adpSETSOLARISASSETおよびadpSETPASSWORDFROMMAINの各アダプタが、挿入前にOracle Identity Managerによってトリガーされるとします。これらのアダプタの順序番号に基づき、Oracle Identity Managerは、まずadpCONVERTTOLOWERCASEアダプタをトリガーし、それからadpSOLARISHMDSTRINGGEN、adpSETSOLARISASSETおよびadpSETPASSWORDFROMMAINアダプタの順にトリガーします。

注意:

現在のデータ・オブジェクトを追加、変更および削除できるユーザー・グループを表示するには、権限の挿入、「権限の更新」または権限の削除の各タブをそれぞれクリックします。

次の各項では、これらの手順について説明します。

- データ・オブジェクトへのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの割当て。イベント・ハンドラまたはアダプタの実行スケジュールの構成。データ・オブジェクトからのイベント・ハンドラ、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの削除。

5.3.1.1.1 データ・オブジェクトへのイベント・ハンドラまたはアダプタの割当て

イベント・ハンドラまたはアダプタを割り当てるには、次の手順を実行します。

1. アダプタまたはイベント・ハンドラをいつトリガーするかに応じて、該当する「データ・オブジェクト・マネージャ」フォームのタブを選択します。
たとえば、挿入前にOracle Identity Managerでアダプタをアクティブ化する場合は、挿入前タブを選択します。

2. 選択したタブで、「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

3. イベント・ハンドラまたはアダプタを選択し、データ・オブジェクトに割り当てます。

4. 「OK」をクリックします。
イベント・ハンドラまたはアダプタがデータ・オブジェクトに割り当てられます。

5.3.1.1.2 イベント・ハンドラまたはアダプタの実行スケジュールの構成

実行スケジュールを構成するには、次の手順を実行します。

1. 実行スケジュールを変更するイベント・ハンドラまたはアダプタを選択します。

2. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

3. イベント・ハンドラまたはアダプタを選択します。

4. 上をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その前のイベント・ハンドラまたはアダプタと入れ替わります。
下をクリックすると、選択したイベント・ハンドラまたはアダプタの位置と順序番号が、その次のイベント・ハンドラまたはアダプタと入れ替わります。

5. すべてのイベント・ハンドラとアダプタの順序番号が適切に設定されるまで、手順3と4を繰り返します。

6. 「OK」をクリックします。
イベント・ハンドラおよびアダプタは、実行スケジュールまたは独自に構成したスケジュールで正しい順序でトリガーされます。

5.3.1.1.3 データ・オブジェクトからのイベント・ハンドラまたはアダプタの削除

イベント・ハンドラまたはアダプタを削除するには、次の手順を実行します。

1. イベント・ハンドラまたはアダプタを選択します。

2. 「削除」をクリックします。
イベント・ハンドラまたはアダプタが削除されます。

5.3.1.2 アダプタのマップ・タブ

アダプタのマップ・タブは、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタをデータ・オブジェクトに割り当てた後でのみ使用できます。

このタブを使用して、ルール・ジェネレータ・アダプタまたはエンティティ・アダプタの変数を、それぞれに適したソースの場所およびターゲットの場所にマップします。たとえば、adpSOLARISUSERIDGENERATORアダプタにfirstname、Adapter return valueおよびlastnameの3つの変数があるとします。各アダプタ変数のマップ済列にYが表示されている場合は、3つの変数がすべて正しい場所にマップされており、アダプタのステータスが「準備完了」に変わります。

注意:

アダプタのステータスは、次の3つのいずれかになります。

- 準備完了: このアダプタは正常にコンパイルされており、すべての変数が正しくマップされています。

- マッピングが不完全: このアダプタは正常にコンパイルされていますが、正しくマップされていない変数が1つ以上あります。

- マッピングが不完全: このアダプタは正常にコンパイルされていますが、正しくマップされていない変数が1つ以上あります。

アダプタのコンパイルおよびアダプタ変数のマッピングの詳細は、第2章「アダプタの開発」を参照してください。

注意:

データ・オブジェクトにアダプタが割り当てられていない場合は、アダプタのマップ・タブは無効になります。

5.4 「リコンシリエーション・ルール」フォーム

このフォームは、「開発ツール」フォルダにあります。

図5-3 「リコンシリエーション・ルール」フォーム

このフォームを使用して、次のような場合に起動するルールを定義します。

- 信頼できるソースへの変更に関連付けられているユーザーまたは組織のレコードをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理された時点で評価されます。

- (たとえば、システムで変更が検出されたことを受けて)どのユーザー・レコードまたは組織レコードがターゲット・リソースで検出されたアカウントの所有者かをOracle Identity Managerにより判別する場合。これらのルールは、「リコンシリエーション・マネージャ」フォームの「リコンシリエーション・データ」タブで、リコンシリエーション・イベントのすべての必須フィールドが処理され、同フォームのプロセス一致ツリー・タブのイベントと一致するプロセスがなかった場合のみ評価されます。

前述のように、このフォームを使用して定義されたルールは、信頼できるソースまたはターゲットのリソースでの変更に関連付けられているユーザーまたは組織いずれかとの一致に使用されます。これらのタイプのルールは、それぞれユーザー一致ルールまたは組織一致ルールと呼ばれます。これらのルールは、「ルール・デザイナ」フォームを使用して定義できるルールと似ていますが、「リコンシリエーション・ルール」フォームを使用して作成されたルールは、(単一のターゲット・リソースに関連するため)リソース・オブジェクト固有で、リコンシリエーション関連の機能のみに影響します。

リコンシリエーション・ルールの使用に関するトピックは次のとおりです。

- リコンシリエーション・ルールの定義

- ルール要素の追加

- ルール内でのルールのネスト

- ルール要素またはルールの削除

5.4.1 リコンシリエーション・ルールの定義

次の手順では、リコンシリエーション・ルールの定義方法について説明します。

注意:

次の手順では、必ず「アクティブ」チェック・ボックスが選択されていることを確認してください。このチェック・ボックスが選択されていない場合、リソースに関連するリコンシリエーション・イベントの処理時に、Oracle Identity Managerのリコンシリエーション・エンジンによってルールが評価されません。ただし、このチェック・ボックスを選択できるのは、Oracle Identity Managerによって「valid」システム・チェック・ボックスが選択されている場合のみです。「valid」チェック・ボックスは、1つ以上のルール要素が作成され、そのルール要素のロジックが有効であるとOracle Identity Managerによって判断された後でのみ選択可能です。

ユーザーの一致または組織の一致用にリコンシリエーション・ルールを定義するには、次の手順を実行します。

1. 「リコンシリエーション・ルール」フォームに移動します。

2. 「名前」フィールドに、ルール名を入力します。

3. 「オブジェクト」フィールドで、このルールを関連付けるターゲット・リソースを選択します。

4. 「説明」フィールドにルールの説明を入力します。
ルールに使用する「および」演算子または「または」演算子を選択します。「および」を選択した場合は、ルールのすべての要素(およびルールがネストされている場合はそれらのルール)が一致しないかぎり、ルールがtrueと評価されません。「または」を選択した場合は、ルールのいずれかの要素(またはルールがネストされている場合はそのいずれか)が一致すると、trueと評価されます。

5. 「保存」をクリックします。
ルール定義が保存されます。次に、このルールのルール要素を作成する必要があります。

5.4.2 ルール要素の追加

リコンシリエーション・ルールの個々の要素を定義するには、次の手順を実行します。

1. 要素を追加するルール定義に移動します。

2. 「ルール要素」タブのルール要素の追加をクリックします。
ルール要素の追加ダイアログ・ボックスが表示されます。

3. 「ルール要素」タブをクリックします。

4. 「ユーザー・データ」メニューからユーザー関連のデータ項目を選択します。
これが、ルール要素の評価時にOracle Identity Managerによって調査されるユーザー・データ要素になります。このメニューには、Oracleユーザー・フォームのすべてのフィールド(作成済のユーザー定義フィールドを含む)が表示されます。

注意:

組織の一致のためのルールを定義する場合、使用可能なデータおよびメニュー名は、ユーザーではなく組織に関連付けられます。

5. 「演算子」メニューから演算子を選択します。
これは、ルール要素の評価時に、選択したデータ項目の属性にOracle Identity Managerによって適用される条件です。有効な演算子は次のとおりです。

- 次と等しい: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性と完全に一致する必要があります。

注意:

- ユーザーの信頼できるソースのリコンシリエーションを構成する場合は、Oracle Identity Managerユーザー・アカウントの「ユーザーID」フィールドがリコンシリエーション一致ルールで使用されていることを確認する必要があります。

- 組織の信頼できるソースのリコンシリエーションを構成する場合は、Oracle Identity Managerユーザー・アカウントの「組織名」フィールドがリコンシリエーション一致ルールで使用されていることを確認する必要があります。

- 次を含む: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は選択された属性と完全に一致するのではなく、この属性を含んでいる必要があります。

- 次で始まる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で始まる必要があります。

- 次で終わる: このオプションを選択した場合、ユーザーまたは組織のレコードのデータ要素は、選択された属性で終わる必要があります。

6. 「属性」メニューから値を選択します。このメニューの値は、ルールに関連付けられているリソースに対して、「リコンシリエーション・フィールド」タブで定義されたフィールドです。そのリソースのリコンシリエーション・フィールドが指定されていない場合、値は選択できません。

注意:

(信頼できるソースとは対照的に)ターゲット・リソースのルール要素を定義する際には、リソースのカスタム・プロセス・フォームの親表に関連付けられているフィールドのみが、「属性」フィールドで選択可能になります。

7. 「属性」フィールド内のデータに対して(演算子を適用する前に)Oracle Identity Managerで特定の変換処理が実行されるようにするには、変換メニューから目的の変換処理を選択します。

注意:

このメニューで「なし」以外の値を選択した場合は、Oracle Identity Managerによって変換処理が正しく実行されるように、「保存」をクリックした後でタブを選択し、適切なプロパティを設定する必要があります。

表5-3に、実行できる変換処理を示します。

表5-3 変換プロパティ

変換

ルール要素プロパティ・タブで設定するプロパティ

部分文字列

開始ポイント、終了ポイント

終了文字列

開始ポイント

トークン化

デリミタ、トークン番号、スペース・デリミタ

8. 大文字/小文字を区別チェック・ボックスを選択します。
このチェック・ボックスを選択した場合、ルール要素が条件と一致するには、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致している必要があります。このチェック・ボックスの選択を解除した場合、「属性」フィールドで選択された値と、リコンシリエーション・イベント・レコードで評価される値の大/小文字が一致する必要はありません。

9. 「保存」をクリックします。

10. 変換メニューで(「なし」以外の)値が選択されていても、変換処理のプロパティが設定されていない場合は、プロパティが設定されていますチェック・ボックスは選択されません。
その場合は、ルール要素プロパティ・タブを選択し、適切なプロパティを設定して、再度「保存」をクリックする必要があります。

ルール要素がルールに追加されます。

11. ルールに追加するルール要素ごとに、この手順全体を繰り返します。

注意:

「アクティブ」チェック・ボックスが選択されていることを確認してください。

5.4.3 ルール内でのルールのネスト

ルールの中に既存のルールをネストできます。Oracle Identity Managerでは、ネストされたルールの条件は、他のルールの要素と同様に評価されます。

注意:

ダイアログ・ボックスで選択できるのは、同じリソース・オブジェクトに関連付けられているリコンシリエーション関連のルールのみです。

ルールの中にルールをネストするには、次の手順を実行します。

1. 別のルールが追加されるルールに移動します。

2. 「ルール要素」タブの「ルールの追加」をクリックします。

3. ルールの選択参照ダイアログ・ボックスが表示されます。
目的のルールの場所を特定し、選択します。

4. 「OK」をクリックします。
選択したリコンシリエーション・ルールがルールに追加されます。

5. ルールにネストするルールごとに、手順2から4を繰り返します。

5.4.4 ルール要素またはルールの削除

ルール要素またはルールを削除するには、次の手順を実行します。

1. 要素を削除するルールに移動します。

2. 「ルール要素」タブで、削除するルール要素またはルールを選択します。

3. 「削除」をクリックします。

6 スケジュール済タスクの開発

Oracle Identity Managerには、ジョブ実行としてスケジュールできる一連のスケジュール済タスクが含まれています。例として、パスワードの期限切れをユーザーに電子メールで送信するパスワード警告タスクをあげることができます。

Oracle Identity Managerには、独自のスケジュール済タスクを作成する機能もあります。事前定義されたスケジュール済タスクがニーズに合わない場合は、要件に合わせてスケジュール済タスクを作成できます。

たとえば、ターゲット・システムで定期的に新しい情報をチェックしてOracle Identity Managerに同じデータを複製するスケジュール済タスクを使用して、リコンシリエーション実行を構成できます。

この章では、カスタム・スケジュール済タスクを作成および実装する方法について説明します。内容は次のとおりです。

- タスク作成の概要

- スケジュール済タスクのメタデータの定義

- スケジュール済タスクXMLファイルの構成

- スケジュール済タスク・クラスの開発

- プラグインXMLファイルの構成

- スケジュール済タスクのディレクトリ構造の作成

6.1 タスク作成の概要

この項では、スケジュール済タスクの作成における重要な手順を概説し、プロセスを示す例を紹介します。この後の項では、各手順について詳しく説明します。

- タスク作成の手順

- スケジュール済タスクの例

6.1.1 タスク作成の手順

新しいスケジュール済タスクを作成する基本手順は、次のとおりです。

1. Oracle Identity Managerの事前定義されたスケジュール済タスクを確認して、カスタム・タスクが必要かどうかを決定します。
事前定義されたタスクの詳細は、Oracle Fusion Middleware Oracle Identity Managerシステム管理者ガイドのスケジュール済タスクの管理に関する説明を参照してください。

2. タスク名、タスクが実行するアクションを制御するパラメータなど、スケジュール済タスクの主要な機能を決定します。
詳細は、第6.2項「スケジュール済タスクのメタデータの定義」を参照してください。

3. タスク・メタデータをスケジュール済タスクXMLファイルに追加します。
詳細は、第6.3項「スケジュール済タスクXMLファイルの構成」を参照してください。

4. スケジュール済タスクJavaクラスを開発します。
詳細は、第6.4項「スケジュール済タスク・クラスの開発」を参照してください。

5. 新しいスケジュール済タスクをプラグインとして宣言します。
詳細は、第6.5項「プラグインXMLファイルの構成」を参照してください。

6. Oracle Identity Managerがファイルを検出し、タスクをジョブで使用できるようにするために、タスク・ファイルをパッケージ化します。
詳細は、第6.6項「スケジュール済タスクのディレクトリ構造の作成」を参照してください。

6.1.2 スケジュール済タスクの例

スケジュール済タスクの開発の手順を示すために、特定のITリソースの特定の部門に属する従業員レコードを取得するスケジュール済タスク例を使用します。

また、このスケジュール済タスクでは、ユーザーが取得するレコード数や、無効なレコードを取得に含めるかどうかを指定できる必要があります。

6.2 スケジュール済タスクのメタデータの定義

各スケジュール済タスクは、次のメタデータ情報を含みます。

- スケジュール済タスクの名前

- スケジュール済タスクを実装するJavaクラスの名前

- 説明

- 再試行間隔

- (オプション)スケジュール済タスクを受け入れるパラメータ。各パラメータには次の追加情報が含まれます。

- パラメータ名

- パラメータのデータ型

- 必須/オプション・パラメータ

- ヘルプ・テキスト

6.3 スケジュール済タスクXMLファイルの構成

スケジュール済タスクXMLファイルの構成では、カスタム・スケジュール済タスクの定義が含まれたXMLファイルの更新が伴います。この項では、新しいカスタム・スケジュール済タスクの詳細を使用してタスクXMLファイルを更新する方法について説明します。

Oracle Identity Manager MDSスキーマの/dbネームスペースにあるtask.xmlファイルを変更するか、またはカスタム・スケジュール済タスク・ファイルを作成できます。カスタム・ファイルを作成する場合、そのファイル名はスケジュール済タスク名と同じで、拡張子が.xmlである必要があります。Oracle Identity Manager MDSスキーマの/dbネームスペースに、カスタム・スケジュール済タスク・ファイルをインポートする必要があります。

関連項目:

プラグインの例は、第7章「プラグインの開発」を参照してください。

注意:

スケジュール済タスクXMLファイルは、Oracle WebLogic Serverのインポート・ユーティリティを使用してMDSにインポートできます。クラスタ環境では、MDSにファイルを含めることで、クラスタの各ノード上のファイルをコピーする必要がなくなります。

MDSへのファイルのインポートの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

XMLファイル内の要素は、第6.2項「スケジュール済タスクのメタデータの定義」で説明したタスク・パラメータを反映します。

例6-1に、前述の段落で説明したスケジュール済タスクのサンプルXMLコードを示します。この例では、すべてのパラメータが必須パラメータとして宣言されていることに注意してください。

例6-1 スケジュール済タスクのサンプルXML

<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>Test_scheduled_task</name>
<class>oracle.iam.scheduler.TestScheduler</class>
<description>Retrieve Employee Records For Given Department</description>
<retry>5</retry>
<parameters>
<string-param required="true" helpText="Name of the department">Department Name</string-param>
<string-param required="true" encrypted="false" helpText="Name of the department">Department Name</string-param>
<number-param required="true" helpText="Number of Records to Be Retrieved">Number of Records</number-param>
<boolean-param required="false" helpText="Retrieve disabled employee records?">Get Disabled Employees</boolean-param>
</parameters>
</task>
</scheduledTasks>

関連項目:

スケジュール済タスクの構成ファイル内の要素の詳細は、付録A「スケジュール済タスクの構成ファイル」を参照してください。

これは、基本的に、MDSからtask.xmlをエクスポートし、それに必須タグを追加して、MDSにインポートして戻す作業となります。

MDSからtask.xmlファイルをエクスポートし、このファイルに必須タグを追加した後、MDSにインポートして戻す必要があります。MDSファイルのエクスポートおよびインポートの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

6.4 スケジュール済タスク・クラスの開発

次の手順では、Javaクラスを作成して、メタデータがXMLファイルで定義されたタスクを実行します。スケジュール済タスクを実装するJavaクラスは、スケジュール済タスク・クラスと呼ばれます。

スケジュール済タスクのJavaクラスを開発するには、次の手順を実行します。

1. oracle.iam.scheduler.vo.TaskSupportクラスを拡張したJavaクラス・ファイルを作成し、要件に基づいた処理ロジックでexecute()メソッドをオーバーライドします。

2. 作成したJavaクラスのJARファイルを作成します。JARをカスタム・スケジュール済タスクに簡単に関連付けできる名前をJARに付けます。
JARファイルには、Javaクラスの依存クラスを含めることができます。依存クラスに対して個別のJARファイルを作成し、それをlib/ディレクトリに配置することもできます。

3. JARファイルをlib/ディレクトリにコピーします。

4. 作成する各Javaクラスに対して手順1から3を繰り返します。

6.5 プラグインXMLファイルの構成

スケジュール済タスクをプラグインとして宣言するには、plugin.xmlファイルを構成する必要があります。プラグインの詳細は、第7章「プラグインの開発」を参照してください。

注意:

1つのスケジュール済タスクに対して1つのplugin.xmlファイルを作成することをお薦めします。これは、プラグインが登録解除されると、対応するパッケージが削除されるためです。

plugin.xmlファイルを構成するには、次の手順を実行します。

1. 任意のテキスト・エディタを使用して、plugin.xmlファイルを作成します。

注意:

plugin.xmlファイルは、そのようなファイルがない場合にのみ作成します。既存のプラグインがある場合は、新しいプラグイン用の新しいプラグイン要素を追加します。

2. プラグイン要素のpluginpoint属性の値をoracle.iam.scheduler.vo.TaskSupportに変更して、スケジュール済タスクのプラグイン・ポイントを指定します。
plugin.xmlファイルの次のXMLコード・ブロックは、プラグイン要素内に入力された値を示しています。

<plugins pluginpoint="oracle.iam.scheduler.vo.TaskSupport">

注意:

スケジュール済タスクの場合、<plugins>要素は、すべてのスケジュール済タスクで同じままです。

3. <plugin>要素を、追加する各スケジュール済タスクに追加します。

プラグイン(この場合はスケジュール済タスク)を実装するクラスを指定するには、プラグイン要素のpluginclass属性の値を、スケジュール済タスクを実装するJavaクラスの名前に変更します。plugin.xmlファイルの次のXMLコード・ブロックは、プラグイン要素内に入力されたサンプル値を示しています。

<plugin pluginclass= "oracle.iam.scheduler.TestScheduler" version="1.0.1" name="scheduler element"/>

変更後、plugin.xmlファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.scheduler.vo.TaskSupport">
<plugin pluginclass= "oracle.iam.scheduler.TestScheduler"
version="1.0.1" name="scheduler element">
</plugin>
</plugins>
</oimplugins>

4. plugin.xmlファイルを保存して閉じます。

6.6 スケジュール済タスクのディレクトリ構造の作成

スケジュール済タスクの構成の最後の手順は、例6-2で指定したディレクトリ構造のplugin.zipファイルを作成することです。この例では単一のプラグインが追加されますが、複数のプラグインをplugin.zipファイルに含めることができます。スケジューラでは、ファイルが、特定の構造で圧縮され、特定のネーミング規則に従って命名されている必要があります。これにより、Oracle Identity Managerでカスタム・スケジュール済タスクが識別され、ジョブ作成時にそのタスクをOracle Identity Manager管理およびユーザー・コンソールで使用できるようにになります。

例6-2 スケジュール済タスクのディレクトリ構造

plugin/
plugin.xml
lib/
CLASS_NAME1.jar

次のことに注意してください。

- プラグインのXMLファイルは、plugin.xmlという名前である必要があります。

- lib/ディレクトリには.JARファイルのみが含まれている必要があります。lib/ディレクトリは、プラグイン・ロジックを実装するクラスが含まれたJARファイル、および依存ライブラリのJARファイルで構成されています。ほとんどの場合、このディレクトリは、plugin.xmlに指定されたすべてのプラグインの実装を含む1つのJARファイルで構成されます。ディレクトリ構造の詳細は、「プラグインの開発」を参照してください。

- スケジュール済タスクのディレクトリには、次のファイルが格納されている必要があります。

- プラグイン用のXML

- JARファイル

- 作成するすべてのプラグインに対して1つのplugin.zipファイルが存在します。

前述の例では、CLASS_NAME.JARが、第6.4項「スケジュール済タスク・クラスの開発」で作成したJARファイルです。

plugin.zipファイルを作成した後でクラスタ環境にデプロイする場合は、適切なAPIを使用して、そのプラグインをデータベースに登録します。APIを使用してOracle Identity Managerにプラグインを登録する方法の詳細は、APIを使用したプラグインの登録および登録解除に関する説明を参照してください。

注意:

プラグインのXMLは、plugin.xmlという名前である必要があります。libディレクトリにJARファイルのみが含まれていることを確認してください。

7 プラグインの開発

Oracle Identity Managerのサービス・フレームワークでは、新しいサービスを追加することによってプラットフォームを拡張できます。新しい要件に合うように、既存のサービスを拡張または変更することもできます。Oracle Identity Managerでは、この要件はプラグイン・フレームワークによってサポートされています。

この章では、プラグイン・フレームワークの基本機能と、プラグインを使用して環境をカスタマイズするための共通タスクの実行方法について説明します。内容は次のとおりです。

- プラグイン・フレームワークのバックグラウンド

- プラグインの構成

- プラグインの定義と使用

- プラグインの登録

- マップされた値について

- プラグイン・ポイント

7.1 プラグイン・フレームワークのバックグラウンド

プラグインは、Oracle Identity Managerによって提供される機能の機能性を拡張するソフトウェアです。プラグイン・フレームワークにより、各機能によって提供される機能性を拡張するプラグインを定義、登録および構成できます。プラグインは、事前定義またはカスタム開発でき、プラグイン・ポイントで使用できます。

プラグイン・ポイントは、拡張性を追加できる、ビジネス・ロジック内の特定のポイントです。そのようなポイントには、プラグイン・インタフェースと呼ばれるインタフェース定義が付随しています。ユーザーは、ビジネス要件に基づいてプラグイン・インタフェースを拡張し、プラグインとして登録できます。

この項では、プラグイン・フレームワークについて次のトピックで説明します。

- プラグイン・フレームワークについて

- プラグイン・ストアについて

- プラグイン開発の手順

7.1.1 プラグイン・フレームワークについて

プラグイン・フレームワークによって、数多くの追加機能がOracle Identity Managerに提供されます。例:

- サービスによって、機能性を拡張できるプラグイン・ポイントを定義できます。たとえば、電子メール通知を送信するために、通知エンジンによってデフォルトのプロバイダが使用されます。このプロバイダをプラグイン・ポイントとして設定し、カスタム電子メール・プロバイダを実装できるようにします。

- サービスによって、特定のプラグイン・ポイントに対して定義されているすべてのプラグインを検出できます。

- プラグインは、複数のソースからロードできます。機能開発者は、プラグインの格納場所やロード方法を気にする必要はありません。

- 開発者は、プラグインを再登録しなくてもプラグイン・コードを変更できます。注意: これは、プラグインがファイル・システムに格納されている場合にのみ可能です。

7.1.2 プラグイン・ストアについて

プラグイン・フレームワークでは、次の2つのタイプのストアにプラグインを格納できます。

- ファイル・システム

- Oracle Identity Managerデータベース

プラグインを検索する場合は、フレームワークによって、データベースに登録されているプラグインが最初に調べられてから、ファイル・システムが調べられます。

7.1.2.1 ファイル・ストア

ファイル・ストアは、Oracle Identity Managerホスト上の1つ以上のディレクトリで構成されており、主に開発環境で使用されます。このタイプのストアは、本番環境には適していません。ファイル記憶域は、開発したプラグインをファイル・ストアに明示的に登録する必要がないため、開発者にとって便利です。ユーザーは、プラグインzipまたは展開されたプラグイン・ディレクトリを指定の場所にドロップインするだけです。

デフォルトでは、プラグインはプラグイン・フレームワークによってOIM_HOME/pluginsディレクトリで検索されます。プラグイン・ディレクトリを追加指定することもできます。

監視スレッドが有効な場合は、プラグイン・フレームワークによって、ファイル・システム内の登録済プラグイン・ディレクトリでプラグインzipファイルのすべての追加、変更および削除が監視され、プラグインは自動的にリロードされます。名前、バージョン、IDなどのプラグイン・メタデータがプラグインzipから読み取られ、メモリー内で維持されます。このメタデータは、ファイルの変更に基づいて更新されます。最新のプラグインzipファイルが、現行バージョンのプラグインとみなされます。

ファイル・ストアの構成方法の詳細は、第7.2項「プラグインの構成」を参照してください。

7.1.2.2 データベース・ストア

プラグインはOracle Identity Managerデータベースに格納できるため、クラスタ内の任意のノードからアクセスできます。プラグイン・フレームワークでは、データベース・ストアとして業務系DBが使用されます。このタイプのストアは、本番環境に適しています。

データベースに格納されるプラグインは、明示的に登録する必要があります。コマンドライン・ツールであるプラグイン登録ユーティリティを使用して、プラグインを登録および登録解除できます。また、registerPlugin APIをこの用途に使用することもできます。プラグインの登録の詳細は、第7.4項「プラグインの登録」を参照してください。

注意:

プラグインを登録した後で、サーバーを再起動する必要があります。ただし、サーバーの再起動は、プラグイン・ポイントを定義する機能に依存する場合もあります。

7.1.3 プラグイン開発の手順

プラグインの開発および実装の基本手順は次のとおりです。

- プラグイン・ポイントの値マッピングのタイプを指定できるプラグイン・インスタンスを宣言します。

- プラグイン・メタデータを構成するプロパティを指定します。

- プラグイン・コードを開発し、プラグインを配布します。

詳細は、第7.3項「プラグインの定義と使用」を参照してください。

7.2 プラグインの構成

MDS内のoim-config.xmlファイルを使用して、次のものを構成します。

関連項目:

oim-config.xmlファイルの構成の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのoim-config.xmlファイルの構成に関する説明を参照してください。

- ファイル・ストアによってプラグインが検索されるディレクトリ。

- ファイル・ストアに変更があるかどうかを監視するスレッドをアクティブにするかどうか(このスレッドによって、すべてのプラグイン・ディレクトリ内のzipファイルまたは展開されたファイルが確認されます)。
監視スレッドは、動的開発環境ではプラグインが追加または変更されているため通常はアクティブ化されており、一連のプラグインが含まれている本番システムでは非アクティブにすることができます。これは、reloadingEnabled属性を使用して追跡できます。

- 監視スレッドがウェイクアップして変更を検索する間隔。

次に、oim-config.xmlファイルのコード・スニペットを示します。

<pluginConfig storeType="common">

<storeConfig reloadingEnabled="true"

reloadingInterval="20">

<!--

Plugins present in the OIM_HOME/plugins directory are added by default.

For adding more plugins, specify the plugin directory as below:

<registeredDirs>/scratch/oimplugins</registeredDirs>

<registeredDirs>/scratch/custom</registeredDirs>

-->

</storeConfig>

</pluginConfig>

この例の内容は次のとおりです。

- commonストア指定によって、フレームワークはデータベースとファイル・ストアの両方を監視するように指定されます。

注意:

commonはすべての環境で適切であるため、Store値は変更しないでください。

- 1つのディレクトリが構成されますが、<registeredDirs>タグを追加することによって追加ディレクトリを構成できます。

- デフォルトで、監視スレッドがアクティブであり、プラグインの変更が20秒ごとに検索されます。
監視は、通常は開発環境のみでアクティブです。アクティブと非アクティブを切り替える場合は、アプリケーション・サーバーを再起動して変更を有効にする必要があります。

注意:

oim-config.xmlファイルのプラグイン・データのあらゆる変更に、アプリケーション・サーバーの再起動が必要です。

7.3 プラグインの定義と使用

この項では、プラグインの定義と設定の重要事項について説明します。

注意:

次のトピックは別々の項で説明しますが、必ずしも順番に実行する手順ではありません。プラグイン・ポイント、そのプラグイン、プラグイン・メタデータの宣言などのタスクを1つの手順で一緒に実行できます。

- プラグインの宣言

- プラグイン・メタデータの指定

- プラグインの開発

7.3.1 プラグインの宣言

Oracle Identity Managerで提供される機能を拡張するために、アプリケーションに対してプラグインを宣言できます。

プラグインには、プラグイン・ポイント・インタフェースを実装するJavaクラスがあります。特定のプラグイン・ポイントに関連付けられるすべてのプラグインに、一意の名前を割り当ててください。プラグイン名が一意でないと、プラグインの登録時に例外がスローされます。

プラグインをplugin.xmlファイルで宣言します。例:

<?xml version="1.0" encoding="UTF-8"?>
<oimplugins>
....
<plugins pluginpoint="oracle.iam.sample.passwdmgmt.service.PasswordElement">
<plugin pluginclass=
"oracle.iam.sample.passwdmgmt.custom.NumCustomPasswordElement"
version="1.0.1" name="num pwd element"/>
<plugin pluginclass=
"oracle.iam.sample.passwdmgmt.custom.DictionaryPasswordElement"
version="1.0.1" name="Dictionary password element" />
</plugins>
....
</oimplugins>

注意:

複数のバージョンのプラグインを格納でき、機能によって特定のバージョンのプラグインをプラグイン・フレームワークから要求できます。

このXMLには、2つのプラグイン宣言があります。両方のプラグインが同じプラグイン・ポイントから拡張されます。

7.3.2 プラグイン・メタデータの指定

plugin.xmlで定義する各プラグインとともに、プラグイン・メタデータを構成するプロパティのリストを指定できます。プラグイン・メタデータの使用例は、「リクエスト管理操作の拡張」を参照してください。

この例では、メタデータはPasswordElementNumという1つのプロパティと値1で構成されています。

<?xml version="1.0" encoding="UTF-8"?>
<oimplugins>
....
<plugins pluginpoint="oracle.iam.sample.passwdmgmt.service.PasswordElement">
<plugin pluginclass= "oracle.iam.sample.passwdmgmt.custom.NumCustomPasswordElement"
version="1.0.1" name="num pwd element">
<metadata name="PasswordElementNum"><value>1</value></metadata>
</plugin>
<plugin pluginclass= "oracle.iam.sample.passwdmgmt.custom.DictionaryPasswordElement"
version="1.0.1" name="Dictionary password element" >
<metadata name="PasswordElementNum"><value>2</value></metadata>
</plugin>
</plugins>
....
</oimplugins>

7.3.3 プラグインの開発

プラグインを開発するには、次の手順を実行します。

1. 拡張するプラグイン・ポイントを識別します。

2. プラグイン・ポイント・インタフェースを実装するJavaクラスを識別します。Javaクラスおよびその他の依存クラスをJARファイルにパッケージ化します。JARファイルをlib/ディレクトリに置きます。

3. plugin.xmlファイルを作成します。詳細は、「プラグインの宣言」を参照してください。

4. プラグインに必要なリソース・ファイル(プロパティ・ファイル、リソース・バンドル、画像ファイルなど)を識別します。

5. パッケージ全体をZipに圧縮します。
Oracle Identity Managerプラグインは、指定されたディレクトリ構造でZIPファイルとして配布されます。そのディレクトリ構造は次のとおりです。

- plugin.xmlファイル: XMLファイルには、すべてのプラグインに関連付けられたメタデータ(拡張されるプラグイン・ポイント、プラグインを実装するクラス、名前、バージョン番号など)が含まれています。XML内のすべてのフィールドは、名前を除いて必須です。名前を指定しない場合は、プラグイン・クラス名が名前として使用されます。

- lib/ディレクトリ: lib/ディレクトリは、プラグイン・ロジックを実装するクラスを含むJARファイルおよび依存ライブラリJARファイルで構成されています。ほとんどの場合、このディレクトリは、plugin.xmlに指定されたすべてのプラグインの実装を含む1つのJARファイルで構成されます。

- resources/ディレクトリ: プラグインに必要なリソース・ファイル(プロパティ・ファイル、リソース・バンドル、画像ファイルなど)が含まれています。プラグインzipのresourcesディレクトリに指定されたこれらのリソースには、次のようにアクセスできます。

this.getClass().getClassLoader().getResourceAsStream(<resource_name>);

同じプラグイン・ポイントを実装する複数のプラグインを、同じZIPファイルの一部にすることができます。

プラグインには、プラグイン・ポイント・インタフェースを実装するJavaクラスがあります。プラグイン・ライブラリ(JAR)にその他の依存クラスも含めることができますが、プラグインを実装するクラスは、機能に対して公開される1つのみです。このクラスをplugin.xmlで指定する必要があります。

6. ZIPファイルをファイル・ストア(lib/ディレクトリ)またはデータベース・ストアに置きます。詳細は、「プラグイン・ストアについて」を参照してください。

7. ZIPをデータベース・ストアに置く場合は、「プラグインの登録」で説明するように、プラグイン登録ユーティリティを使用してプラグインを登録します。

7.4 プラグインの登録

APIおよびプラグイン登録ユーティリティを使用して、プラグインを登録できます。

- APIを使用したプラグインの登録および登録解除

- プラグイン登録ユーティリティを使用したプラグインの登録および登録解除

7.4.1 APIを使用したプラグインの登録および登録解除

登録関連のタスクには、次のAPIを使用できます。

- PlatformService.registerPlugin

- PlatformService.unRegisterPlugin

次に例を示します。

ClientPlatform platform = OIMClient.getInstance();
platform.login("username", "password");
PlatformService service = platform.getService(PlatformService.class);
File zipFile = new File(fileName);
FileInputStream fis = new FileInputStream(zipFile);
int size = (int) zipFile.length();
byte[] b = new byte[size];
int bytesRead = fis.read(b, 0, size);
while (bytesRead < size) {
bytesRead += fis.read(b, bytesRead, size - bytesRead);
}
fis.close();
service.registerPlugin(b);
service.unRegisterPlugin(pluginID, version);

7.4.2 プラグイン登録ユーティリティを使用したプラグインの登録および登録解除

プラグインの登録および登録解除にプラグイン登録ユーティリティを使用できます。このユーティリティでは、次のファイルが使用されます。

- pluginregistration.xml

- ant.properties

これらのファイルは、OIM_HOME/plugin_utility/ディレクトリにあります。

注意:

プラグイン登録ユーティリティには、Apache Antバージョン1.7以上が必要です。

このユーティリティを使用する前に、次のことを実行します。

1. ant.propertiesのWLS_HOMEおよびOIM_HOMEの値を設定します。
例:

WLS_HOME =.../middleware/wlserver_10.3
OIM_HOME =..../middleware/Oracle_IDM1/server

2. Oracle WebLogic serverでwlfullclient.jarをビルドします。

1. ディレクトリをWLS_HOME/server/libに変更します。

2. 次のコマンドを実行します。

java -jar ../../../modules/com.bea.core.jarbuilder_1.3.0.0.jar

注意:

JARファイルの正確なバージョンは、WLSによって異なる場合があります。WLS_HOME/../modules/ディレクトリにあるcom.bea.core.jarbuilderという名前の対応するファイルを使用します。

プラグインの登録

プラグインを登録する手順は、次のとおりです。

1. antターゲットの登録を実行します。

ant -f  pluginregistration.xml register

2. これにより、Oracle Identity Managerのユーザー名およびパスワードとサーバー情報およびプラグインzipファイルの場所が要求されます。zipファイルの場所の完全なパスを入力します。

プラグインの登録解除

プラグインを登録解除するには、次の手順を実行します。

1. antターゲットの登録解除を実行します。

ant -f  pluginregistration.xml unregister

2. これにより、Oracle Identity Managerのユーザー名およびパスワードとサーバー情報およびプラグイン・クラスのクラス名が要求されます。完全なパッケージを含むクラス名を入力します。

7.5 マップされた値について

マップされた値を使用して、環境に関するコンテキスト情報を設定および提供できます。単純なマップされた値によって、値の1対1マッピングを格納できるハッシュ表が構築されます。

単純なマップされた値を決定するために、プラグイン・フレームワークによって次のロジックが使用されます。

- 特定のメソッドに対して指定されたマッピングが属性にある場合、そのマッピングが使用されます。

- すべてのメソッドに対して同じマッピングが属性によって使用される場合、そのマッピングが常に使用されます。

- それ以外で、マッピングが指定されていない場合は、NoSuchMappingExceptionがスローされます。

- マッピングの属性が宣言されている場合は、それをキーとして使用して、提供されているHashMapで値が参照されます。

- マッピングの属性は宣言されていないが、マッピングの値が宣言されている場合は、その値が返されます。

ハッシュ・マップの構築および使用方法の例を次に示します。

public boolean evaluate(String password) {
Map<String, Object> ro = new HashMap<String, Object>();
ro.put("smvalue1", "value");
ro.put("smattr2", "value2");
// Using the mappings declared in Example 22-1, attr1 would
// have the value of "smvalue1".
String attr1 = PluginFramework.getMappedValue(this, ro,                      "attr1", "evaluate");
// Using the mappings declared in Example 22-1, attr1 would
// have the value of "value2"
String attr2 = PluginFramework.getMappedValue(this, ro, "attr2", "evaluate");

ここで、Example 22-1は、例7-1で示されているサンプルplugin.xmlのことです。

例7-1 サンプルPlugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<oimplugininstances>
<plugininstances name="CustomPasswordElementInstance" plugin="num pwd element" pluginpoint="oracle.iam.sample.passwdmgmt.service.PasswordElement" version="1.0.1">    <metadata name="meta1">
<value>1</value>
</metadata>
<mapping method="evaluate">
<simple-mapping name="attr1" entity-type="User" value="smvalue1" />
<runtime-mapping name="phone" entity-type="User" attribute="phonenumber" value="N/A" />
</mapping>
<mapping>
<simple-mapping name="attr1" entity-type="User" value="value1" />
<simple-mapping name="attr2" entity-type="User" attribute="smattr2" />
<runtime-mapping name="fname" entity-type="User" attribute="firstname" />
<runtime-mapping name="lname" entity-type="User" attribute="lastname" />
</mapping>
<description>Test class for plugin mapped value</description>
</plugininstances>
</oimplugininstances>

7.5.1 マップされた値へのアクセス

単純なマップされた値を決定するために、プラグイン・フレームワークによって次のロジックが使用されます。

- 特定のメソッドに対して指定されたマッピングが特定の属性名にある場合、そのマッピングが使用されます。それ以外で、すべてのメソッドに対して指定されたマッピングが特定の属性名にある場合、そのマッピングが使用されます。それ以外の場合は、NoSuchMappingExceptionが生成されます。

- マッピングの属性が宣言されている場合は、属性をキーとして使用して、提供されているHashMapで値が参照されます。

- マッピングの属性は宣言されていないが、マッピングの値が宣言されている場合は、その値が返されます。例:

Map<String, Object> ro = new HashMap<String, Object>();
ro.put("smvalue1", "value");
ro.put("smattr2", "value2");
String attr1 = PluginFramework.getMappedValue(this, ro, "attr1", "evaluate");
String attr2 = PluginFramework.getMappedValue(this, ro, "attr2", "evaluate");

7.6 プラグイン・ポイント

表7-1に、Oracle Identity Managerでプラグイン・ポイントとして機能するJavaインタフェースを示します。

表7-1 プラグイン・ポイント

プラグイン・ポイント

説明

oracle.iam.ldapsync.LDAPContainerMapper

これは、LDAPでユーザーまたはロールを作成するために使用する必要があるユーザー・コンテナまたはロール・コンテナを決定するために、LDAP同期によって使用されます。

oracle.iam.platform.kernel.spi.EventHandler

これは、カーネル・イベント・ハンドラです。カーネル・イベント・ハンドラの詳細は、第8章「ユーザー管理操作の拡張のためのイベント・ハンドラの開発」を参照してください。

oracle.iam.platform.auth.api.LoginMapper

これは、JAASユーザー・プリンシパル名を対応するOracle Identity Managerユーザー名にマップするLoginMapperの実装です。このプラグイン・ポイントは、SSOシナリオのJAASユーザー・プリンシパル名からOracle Identity Managerユーザー名へのデフォルトのマッピングを上書きするために使用されます。デフォルトの実装では、JAASユーザー・プリンシパル名と同じ値が返されます。このプラグイン・ポイントは、通常、JAASユーザー・プリンシパル名とOracle Identity Managerユーザー名が異なる場合があるSSOシナリオで使用されます。たとえば、SSOシステムで電子メールがJAASユーザー名として設定される場合がありますが、そのユーザー名を持つユーザーはOracle Identity Managerには存在しません。Oracle Identity Managerでそのユーザーが認識されるには、JAASユーザー・プリンシパル名をOracle Identity Managerユーザー名にマップする必要があります。これを実行するには、次に示すように、LoginMapperのプラグインを実装します。

public class CustomLoginMapper implements LoginMapper{
public String getOIMUserID(String jaasPrincipal) throws MappingException {
return getUserName(jassPrincipal);
}

private String getUserName(String emailID){
String userName = null;

//Use usermgmt APIs to get the username corresponding to this email id
return userName;
}
}

oracle.iam.identity.usermgmt.api.PasswordVerifier

これは、ユーザーのパスワード変更時に古いパスワードを検証するために使用されます。この検証に使用されるクラスは、OIM.OldPasswordValidatorシステム・プロパティで構成します。デフォルトでは、古いパスワードの検証にはコンテナ・ベースの認証を使用します。

oracle.iam.request.plugins.StatusChangeEvent

これにより、リクエスト・ステータス変更中にカスタム・コードを実行できます。

oracle.iam.request.plugins.RequestDataValidator

これは、送信後のリクエスト・データのカスタム検証に使用されます。

oracle.iam.request.plugins.PrePopulationAdapter

これは、リクエスト作成中にカスタム・コードを実行することで属性値を事前移入するために使用されます。

oracle.iam.scheduler.vo.TaskSupport

これは、コンテキストでジョブを実行するために使用されます。タスクの実行メソッドがプラグインによって取得され、ロードされます。

oracle.iam.identity.usermgmt.api.UserNamePolicy

これは、ユーザー名の生成および検証に使用されるユーザー名ポリシーの実装です。

oracle.iam.identity.usermgmt.api.ReservationInLDAP

これは、LDAPでのユーザー属性の予約の実装です。

8 ユーザー管理操作の拡張のためのイベント・ハンドラの開発

この章では、ユーザー管理操作に関する後処理機能の非同期実装について説明します。内容は次のとおりです。

- ユーザー管理操作の概要

- イベント・ハンドラによるユーザー管理操作の拡張

- イベント・ハンドラのトラブルシューティング

8.1 ユーザー管理操作の概要

Identity Managementシステムでは、ユーザーまたはシステムによって実行されるアクションは、操作と呼ばれます。操作の例として、ユーザーの作成、ユーザーの更新、パスワード・ポリシーの作成などがあります。各操作には、前処理ステージおよび後処理ステージがあります。

各ステージにおける処理は、そのステージに配置されているブランチおよびイベント・ハンドラ(存在する場合)によって決定されます。ステージにブランチがある場合は、イベント・ハンドラからのレスポンスによって、使用するブランチが決まります。ステージにイベント・ハンドラがない場合、またはイベント・ハンドラからのレスポンスに推奨パスがない場合は、操作はデフォルトのパスに従って次のステージに移ります。

アイデンティティ管理環境で実行される各操作が、ユーザーまたは他のエンティティに影響を及ぼす場合があります。たとえば、ユーザーを作成するとそのユーザーに対するリソースのプロビジョニングが発生し、履歴を更新するとレポート表が変更され、新規パスワード・ポリシーを作成すると特定のユーザー・パスワードが無効になって次のログイン時に変更を要求される場合があります。

ユーザーに固有の操作(作成、変更、削除、有効化、無効化など)は、ユーザー管理操作と呼ばれます。操作のライフサイクルは、次のステージで構成されます。

- validation

- 前処理

- 監査

- アクション

- 後処理

- 補正

- 終了処理

ユーザー管理操作(作成、更新、削除、有効化、無効化、ロック、ロック解除、パスワード変更など)の影響(ユーザー管理操作の後処理機能とも呼ばれます)は、イベント・ハンドラを作成することによってカスタマイズできます。

ヒント:

イベント・ハンドラを作成する方法の詳細は、「カスタム・イベント・ハンドラの作成」を参照してください。

Oracle Identity Manager 11gリリース1(11.1.1)では、ユーザー管理操作に関連付けられた後処理機能の非同期実行がサポートされています。これにより、ユーザー管理操作の体感パフォーマンスは大幅に向上しています。

ユーザー管理操作に関連付けられた後処理機能は、特定の一連のユーザーに対してプログラムでトリガーできます。この機能は、ユーザーがデータ・ストアで直接管理される状況(特に、リコンシリエーションまたはバルク・ロード・シナリオ)で役立ちます。

8.2 イベント・ハンドラによるユーザー管理操作の拡張

11gリリース1(11.1.1)のカーネルでは、ユーザー管理操作の機能をカスタマイズするために実装されているサービス・プロバイダ・インタフェース(SPI)を公開しています。現在は、エンティティの操作の前処理、後処理および検証ステージのみをカスタマイズできます。

注意:

前処理および検証機能のカスタマイズは、操作と同期しています。ただし、後処理機能のカスタマイズは非同期です。

この項では、イベント・ハンドラによるユーザー管理操作の拡張について、次のトピックで説明します。

- イベント・ハンドラXMLファイルの要素の理解

- カスタム・イベント・ハンドラの作成

8.2.1 イベント・ハンドラXMLファイルの要素の理解

イベント・ハンドラXMLファイルは、要素および要素の属性で構成されます。この項では、イベント・ハンドラXMLファイル内の、一部の要素および要素の属性について説明します。また、イベント・ハンドラXML定義の必須の名前空間についても説明します。

要素

イベント・ハンドラXMLファイルのトップレベル(親)要素は、eventhandlersです。表8-1に、eventhandlers親要素内に一般的に定義されるサブ要素を示します。

表8-1 eventhandlers要素内の一般的なサブ要素

サブ要素

説明

validation-handler

編成に対して実行される検証を識別します。

action-handler

前処理、後処理およびアクション・ステージで実行される操作を識別します。

failed-handler

イベント・ハンドラが失敗した場合に実行されるイベント・ハンドラを識別します。

finalization-handler

編成の最後に実行されるイベント・ハンドラを識別します。終了処理は、編成の最後のステージです。

change-failed

影響の編成が失敗した場合に実行されるイベント・ハンドラを識別します。

out-of-band-handler

拒否や取消しなどの帯域外編成フローのイベント・ハンドラを定義します。

compensate-handler

編成の補正フローで実行されるイベント・ハンドラを識別します。

要素の属性

イベント・ハンドラXMLファイル内の要素には、属性が含まれています。表8-2に、要素内に一般的に定義される属性を示します。

表8-2 eventhandlers要素内のサブ要素の一般的な属性

要素の属性

説明

名前

イベント・ハンドラの名前。

class

イベント・ハンドラを実装するJavaクラスのフル・パッケージ名。

entity-type

イベント・ハンドラの実行対象のエンティティのタイプを識別します。値ANYを設定すると、イベント・ハンドラはすべてのエンティティに対して実行されます。

operation

イベント・ハンドラの実行対象の操作のタイプを識別します。値ANYを設定すると、イベント・ハンドラはすべての操作に対して実行されます。

order

イベント・ハンドラが実行される順序を識別します。サポートされている値は、FIRST、LASTまたは数字です。

orch-target

編成のタイプ(エンティティ編成、Toplink編成など)を識別します。次の値がサポートされています。

- oracle.iam.platform.kernel.vo.EntityOrchestration

- oracle.iam.platform.kernel.vo.MDSOrchestration

- oracle.iam.platform.kernel.vo.RelationOrchestration

- oracle.iam.platform.kernel.vo.ToplinkOrchestration

デフォルト値はoracle.iam.platform.kernel.vo.EntityOrchestrationです。

sync

この属性は、action-handlerおよびchange-failed要素のみで機能します。sync属性は、イベント・ハンドラが同期か非同期かを示します。サポートされている値は、TRUEまたはFALSEです。TRUE(同期)に設定した場合、カーネルではイベント・ハンドラによってEventResultが返されることを予期します。FALSE(非同期)に設定した場合、イベント結果としてNULLを返し、イベント結果について後でカーネルに通知する必要があります。

注意: validation-handler要素の場合、sync属性はTRUEに設定する必要があります。

stage

この属性は、out-of-band-handler、action-handlerおよびfailed-handler要素のみで機能します。stage属性は、イベント・ハンドラが実行されるステージを示します。次の値がサポートされています。

- preprocess

- アクション

- 監査

- postprocess

- veto

- cancelled

tx

この属性は、out-of-band-handler、action-handler、compensate-handlerおよびfinalization-handler要素のみで機能します。tx属性は、イベント・ハンドラが独自のトランザクションで実行されるかどうかを示します。サポートされている値は、TRUEまたはFALSEです。

<eventhandlers>要素の名前空間要件

例8-1は、すべてのカスタム・イベント・ハンドラXML定義の<eventhandlers>ルート要素で定義する必要がある名前空間です。

例8-1 カスタム・イベント・ハンドラの必須の名前空間定義

<eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel
orchestration-handlers.xsd">

8.2.2 カスタム・イベント・ハンドラの作成

ユーザー管理操作に対するすべてのカスタマイズは、イベント・ハンドラとして実装する必要があります。

カスタム・イベント・ハンドラを作成するには、次の手順を実行します。

1. カスタム・イベント・ハンドラを実装します。
第8.2.2.1項「カスタム・イベント・ハンドラの実装」を参照してください。

2. カスタム・イベント・ハンドラを含むプラグインを作成します。
第8.2.2.2項「カスタム・イベント・ハンドラのプラグインの作成」を参照してください。

3. カスタム・イベントを定義します。
第8.2.2.3項「カスタム・イベントの定義」を参照してください。

8.2.2.1 カスタム・イベント・ハンドラの実装

カスタム・イベント・ハンドラを実装するには、次の手順を実行します。

1. 表8-3に示すSPIのいずれかを実装して、カスタム前処理、後処理または検証ハンドラを作成します。

表8-3 カスタム・イベント・ハンドラを作成するためのSPI

ステージ

実装するSPI

前処理

oracle.iam.platform.kernel.spi.PreProcessHandler

後処理

oracle.iam.platform.kernel.spi.PostProcessHandler

検証

oracle.iam.platform.kernel.spi.ValidationHandler

2. カスタム・クラスをコンパイルするクラス・パスに次のJARファイルを含めます。
OIM_INSTALL_HOME/server/platformから

- iam-platform-kernel.jar

- iam-platform-utils.jar

- iam-platform-context.jar

- iam-plaftorm-authz-service.jar

OIM_INSTALL_HOME/designconsole/libから

- oimclient.jar

- xlAPI.jar

OIM_INSTALL_HOME/designconsole/libおよびOIM_INSTALL_HOME/serverから

その他のすべてのJARファイル

3. カスタム・クラスを含むJARファイルのライブラリを作成します。

次のコード・サンプルは、Oracle Identity Manager 9.1.x APIおよび11g APIを起動して、ユーザー管理操作をカスタマイズする方法を示しています。詳細は、SPIのJavadocを参照してください。

例1: カスタム・パスワード検証

例8-2は、カスタム検証ハンドラのコードの一部分のサンプルを示しており、ここでは、パスワードに$が使用されていないことを確認しています。

例8-2 カスタム検証ハンドラのサンプル

throws ValidationException, ValidationFailedException {
HashMap<String, Serializable> parameters = orchestration.getParameters();
String password = (parameters.get("usr_password") instanceof ContextAware)
? (String) ((ContextAware) parameters.get("usr_password")).getObjectValue()
: (String) parameters.get("usr_password");
if (password.contains("$")) {
throw new ValidationFailedException();
}
}

例2: ミドル・ネームのイニシャルを設定するカスタム前処理イベント・ハンドラ

例8-3は、カスタム前処理イベント・ハンドラのコードの一部分のサンプルを示しており、ここでは、ユーザーにミドル・ネームがない場合に、ミドル・ネームのイニシャルを名の最初の文字に設定しています。

注意:

バルク・リコンシリエーションでは前処理イベント・ハンドラは実行されません。

例8-3 カスタム前処理イベント・ハンドラのサンプル

// This custom preprocess event handler sets the first letter of the first name as
// the middle initial when the user doesn't have a middle name
public EventResult execute
(long processId, long eventId, Orchestration orchestration) {
HashMap<String, Serializable> parameters = orchestration.getParameters();
// If the middle name is empty set the first letter of the first name
// as the middle initial
String middleName = getParamaterValue(parameters, "Middle Name");
if (isNullOrEmpty(middleName)) {
String firstName = getParamaterValue(parameters, "First Name");
middleName = firstName.substring(0,1);
orchestration.addParameter("Middle Name", middleName);
}
return new EventResult();
}
private String getParamaterValue(HashMap<String, Serializable> parameters,
String key) {
String value = (parameters.get(key) instanceof ContextAware)
? (String) ((ContextAware) parameters.get(key)).getObjectValue()
: (String) parameters.get(key);
return value;
}

例3: リソース・オブジェクトをプロビジョニングするカスタム後処理イベント・ハンドラ

例8-4は、カスタム後処理イベント・ハンドラのコードの一部分のサンプルを示しており、ここでは、ロールがROLE 00.5であるユーザーにリソース・オブジェクトOBJ005をプロビジョニングしています。

例8-4 カスタム後処理イベント・ハンドラのサンプル

// This custom post process event handler provisions resource object 'OBJ005'
// to a user who has role 'ROLE 005'
public EventResult execute(long processId, long eventId,
Orchestration orchestration) {
tcUserOperationsIntf userOperationsService =
Platform.getService(tcUserOperationsIntf.class);
try {
String userKey = getUserKey(processId, orchestration);
if (hasRole(userKey, "ROLE 005")) {
long objKey = findObject("OBJ001");
userOperationsService.provisionResource(Long.getLong(userKey), objKey);
}
} catch (Exception e) {
throw new EventFailedException("Error occurred ", e);
}

return new EventResult();
}

// This method retrieves the key of the user entity on which an operation
// is performed
// This method shows how to retrieve the operation being performed, entity type
// and the associated value objects
private String getUserKey (long processID, Orchestration orchestration) {
String userKey;
String entityType = orchestration.getTarget().getType();
EventResult result = new EventResult();

if (!orchestration.getOperation().equals("CREATE")) {
userKey = orchestration.getTarget().getEntityId();
} else {
OrchestrationEngine orchEngine = Platform.getService(OrchestrationEngine.class);
userKey = (String) orchEngine.getActionResult(processID);
}
return userKey;
}

// This method checks if a given user has a given role.
// It demonstrates how to invoke a OIM 11g API from a custom event handler
private boolean hasRole(String userKey, String roleName)
throws Exception {
RoleManager roleManager = Platform.getService(RoleManager.class);
List<Identity> roles = roleManager.getUserMemberships(userKey);

for (Iterator iterator = roles.iterator(); iterator.hasNext();) {
Role role = (Role) iterator.next();
if (roleName.equals((String)role.getAttribute("Role Name"))) {
return true;
}

}
return false;
}

// This method finds details about a resource object with the given name.
// It demonstrates how to invoke a 9.1.x API from a custom event handler
private long findObject(String objName) throws Exception {
long objKey = 0;
tcObjectOperationsIntf objectOperationsService =
Platform.getService(tcObjectOperationsIntf.class);
HashMap params = new HashMap();
params.put("Objects.Name", objName);
tcResultSet objects = objectOperationsService.findObjects(params);
for (int i = 0; i < objects.getRowCount(); i++) {
objects.goToRow(i);
if (objects.getStringValue("Objects.Name").equals(objName)) {
objKey = objects.getLongValue("Objects.Key");
}
}
return objKey;
}

8.2.2.2 カスタム・イベント・ハンドラのプラグインの作成

カスタム・イベント・ハンドラを含むプラグインを作成するには、適切なイベント・ハンドラ・クラスを開発する必要があります。詳細は、第7章「プラグインの開発」を参照してください。

注意:

プラグイン定義で使用されるプラグイン・ポイントがoracle.iam.platform.kernel.spi.EventHandlerに設定されていることを確認してください。

注意:

プラグインは、パッケージ化のガイドラインに準拠しているかぎり、必要に応じてJARファイルと同様にパッケージ化できます。

次に、プラグインXMLファイルの例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<oimplugins>
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin pluginclass=
"oracle.oim.extensions.preprocess.SamplePreprocessExtension"
version="1.0"
name="SamplePreprocessExtension">
</plugin>
<plugin pluginclass=
"oracle.oim.extensions.postprocess.SamplePostprocessExtension"
version="1.0"
name="SamplePostprocessExtension">
</plugin>
<plugin pluginclass=
"oracle.oim.extensions.validation.SampleValidationExtension"
version="1.0"
name="SampleValidationExtension">
</plugin>
</plugins>
</oimplugins>

8.2.2.3 カスタム・イベントの定義

カスタム・イベントを定義するには、次の手順を実行します。

1. すべてのカスタム・イベントの定義を含むメタデータXMLファイルを作成します。
例8-5は、メタデータ・ファイルとはどのようなものかを示しています。

例8-5 カスタム・イベント定義のサンプル・メタデータXMLファイル

<?xml version='1.0' encoding='utf-8'?>
<eventhandlers>
<!-- Custom preprocess event handlers -->
<action-handler
class="oracle.oim.extensions.preprocess.SamplePreprocessExtension"
entity-type="User"
operation="CREATE"
name="SamplePreprocessExtension"
stage="preprocess"
order="1000"
sync="TRUE"/>

<!-- Custom postprocess event handlers -->
<action-handler
class="oracle.oim.extensions.postprocess.SamplePostprocessExtension"
entity-type="User"
operation="CREATE"
name="SamplePostprocessExtension"
stage="postprocess"
order="1000"
sync="TRUE"/>

<action-handler
class="oracle.oim.extensions.postprocess.SamplePostprocessExtension"
entity-type="User"
operation="MODIFY"
name="SamplePostprocessExtension"
stage="postprocess"
order="1000"
sync="TRUE"/>

<!-- Custom validation event handlers -->
<validation-handler
class="oracle.oim.extensions.validation.SampleValidationExtension"
entity-type="User"
operation="CREATE"
name="SampleValidationExtension"
order="1000"/>

<validation-handler
class="oracle.oim.extensions.validation.SampleValidationExtension"
entity-type="User"
operation="MODIFY"
name="SampleValidationExtension"
order="1000"/>
</eventhandlers>

2. これらのイベント定義をMDSにインポートします。詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。shiphomeベースのインストールの場合、イベント定義のインポートに必要なスクリプトが次のディレクトリにあります。
OIM_HOME/common/wlst

注意:

すべてのカスタム・イベント定義を同じファイルで定義する必要はありません。複数の新しいイベント定義ファイルに分割するか、既存のイベント定義ファイルに追加できます。目的のイベント定義ファイルのエクスポート、変更および再インポートでは、後者が実装されています。イベント定義ファイルのエクスポートおよびインポートの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

8.3 イベント・ハンドラのトラブルシューティング

次のリストに、イベント・ハンドラが起動しない場合のトラブルシューティングに役立つ情報を示します。一般的な原因は次のとおりです。

- EventHandlers.xmlに構文エラーがあります。

- EventHandlers.xmlがMDS内の間違った場所にインポートされました。Oracle Identity Managerによって認識されるトップレベル・ディレクトリ(/db/、/file/、/custom/など)内である必要があります。/mystuff/(例)およびルート・ディレクトリ(/)は認識されません。

- 前処理イベント・ハンドラがリコンシリエーションを使用して実装されています。前処理イベント・ハンドラはリコンシリエーションでは起動されません。

- 前処理イベント・ハンドラがリコンシリエーションを使用して実装されていますが、バルク編成実行が実装されていません。リコンシリエーションを使用するには、バルクと非バルクの両方の方式が実装されている必要があります。

9 LDAPコンテナ・ルールの構成

以前のバージョンのOracle Identity Managerでは、ロール名(データベースのUGP.UGP_NAME)が一意です。エンタープライズの規模が大きい場合、数多くのロールが存在する可能性があるため、この制限がありますが、管理者は名前が同じで目的の異なる複数のロールをOracle Identity Managerで作成する必要がある場合があります。

Oracle Identity Managerは、LDAP同期を有効にしてインストールできます。リコンシリエーションによってLDAPからロールを取得するときに、複数のロールの名前が同じである場合があります。LDAPでは、ロールが2つの異なる組織単位(OU)に配置されている場合、同じ名前を持つ2つのロールがサポートされます。

Oracle Identity Manager 11gリリース1(11.1.1)では、同じ名前を持つ2つのロールを処理するネームスペースが導入されています。同じ名前を持つロールは、ネームスペースが異なる場合にサポートされます。ただし、同じネームスペースの同じ名前を持つ複数のロールはサポートされていません。

LDAPをOracle Identity Managerと統合すると、ネームスペースはOUにマッピングします。デフォルトの構成では、Defaultと呼ばれるネームスペースが1つだけあるため、ロール名は一意です。複数のネームスペースを構成するには、XMLファイルLDAPContainerRules.xmlを作成し、このファイルをメタデータ・ストア(MDS)にロードする必要があります。LDAPContainerRules.xmlでは、ロール属性に基づきロールのネームスペースも指定します。

LDAP同期が有効であり、ユーザーを作成する場合は、プラグインによってユーザーを作成するコンテナが決定されます。同様に、ロールを作成する場合は、このプラグインによって、ロールを作成するコンテナが決定されます。この場合、Oracle Identity Managerがoracle.iam.ldapsync.LDAPContainerMapperインタフェースを実装するプラグインを呼び出します。ユーザー/ロールのすべての属性がこのプラグインに渡され、プラグインはLDAPコンテナのドメイン名(DN)を返します。独自のプラグインを記述し、Oracle Identity Managerにこのプラグインを登録して、LDAPContainerMapperPluginシステム・プロパティを設定することによってこのプラグインを使用するようOracle Identity Managerを構成できます。このシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する説明を参照してください。

Oracle Identity Managerでは、LDAPに同期化されるユーザーまたはロールの属性に基づいてユーザー/ロールのLDAPコンテナを決定するデフォルト・プラグインが提供されます。このデフォルト・プラグインは、XMLファイルからルールを読み取り、LDAPコンテナを決定します。XMLファイルは/db/LDAPContainerRules.xmlとしてMDSにデプロイされる必要があります。Oracle Identity ManagerをLDAP同期を有効にしてインストールすると、インストーラによってユーザーおよびロールのコンテナ値を要求されます。これらの値は、式がDefaultのコンテナの/db/LDAPContainerRules.xmlファイルに格納されています。次に、例を示します。

<container-rules>
<user>
<rule>
<expression>Country=US, Locality Name=AMER</expression>
<container>l=amer,dc=oracle,dc=com</container>
</rule>
<rule>
<expression >Country=IN, Locality Name=APAC</expression>
<container>l=apac,dc=oracle,dc=com</container>
</rule>
<rule>
<expression>Default</expression>
<container>l=users,dc=oracle,dc=com</container>
</rule>
</user>
<role>
<rule>
<expression>Role Description=AMER</expression>
<description>AMER</description>
<container>l=amer,ou=role,dc=oracle,dc=com</container>
</rule>
<rule>
<expression >Role Description=APAC</expression >
<description>APAC</description>
<container>l=apac,ou=role,dc=oracle,dc=com</container>
</rule>
<rule>
<expression>Default</expression>
<description>Default</description>
<container>l=roles,dc=oracle,dc=com</container>
</rule>
</role>
</container-rules>

LDAPContainerRules.xmlファイルでは、各ルールに次のセクションが含まれています。

- expression: LDAPのネームスペースおよびOUの検索に使用する実際のルールを指定します。
ユーザー/ロールの属性に基づいて<expression>タグが定義されている必要があります。<expression>タグでは、「次と等しい」(=)演算子のみがサポートされます。この例に示すように式は複数の属性に基づくことができ、LDAPコンテナはすべての定義済属性のAND演算子に基づいて決定されます。いずれのルールも満たされていない場合、ユーザーまたはロールは式がDefaultのコンテナに配置されます。

- description: Role Namespace属性に使用されるネームスペースです。
デフォルトの式に関連付けられている説明(ネームスペース)は、常にDefaultを使用します。デフォルトでは、ロールには意味のある式を作成するための属性が数多くありません。このため、Role Location属性など、新しいUser Defined Field(UDF)属性を追加する必要があります。この例では、Role Description属性を使用してルールが定義されています。

- container: LDAPでユーザーまたはロールを作成する場所を確認するために使用するOUです。
属性Country=USおよびLocality Name=AMERを使用してユーザーを作成すると仮定します。このユーザーはコンテナl=amer,dc=oracle,dc=comに作成されます。ユーザーがCountry=FranceおよびLocality Name=FRに作成される場合は、これら2つの属性に一致する式がなく、デフォルト・コンテナが選択されるため、このユーザーはコンテナl=users,dc=oracle,dc=comに作成されます。

10 コンテキストの理解

コンテキストは、Oracle Identity Managerの操作が実行される環境です。たとえば、Oracle Identity Manager管理およびユーザー・コンソールで行われるユーザー作成の操作は、Webコンテキストで実行されます。この操作が実行されるコンテキストまたは環境は、次のとおりです。

- 操作を実行するユーザー

- ユーザー作成のリクエストを送信するコンピュータのIPアドレス

- リクエストの送信日時

- アプリケーション・サーバーへのアクセスに使用されるプロキシ

たとえば、バルク・ロード・ユーティリティを実行してユーザーを作成する場合は、バルク・ロード・ユーティリティを起動したユーザー、操作を実行するコンピュータなどがコンテキストに含まれます。

コンテキストは、メイン・メモリーで保持されます。一連のコンテキスト変数で構成されており、各コンテキスト変数には名前と値の両方が含まれています。操作に関連のある各機能コンポーネント(リクエスト管理、リコンシリエーション、通知など)では、コンテキストに値を追加できます。コンテキストの値は、設定のみ可能であり、変更はできません。コンテキストの値は、操作に関連のあるコンポーネント間で情報をやりとりする手段として機能します。

コンテキストの変数値は、必要な場合にのみ、メモリーにロードされます。これにより、パフォーマンスが向上します。コンテキストは、イベント・ハンドラにより要求される一般的な値のキャッシュとしても機能します。これにより、必要な値を毎回、リポジトリからフェッチする必要がなくなります。

- 子コンテキスト

- コンテキスト・タイプ

10.1 子コンテキスト

子コンテキストは、操作の進行中に開始されるサブコンテキストです。たとえば、ユーザー作成の操作にアクセス・ポリシーを介したリソースのプロビジョニングが含まれている場合、リソース・プロビジョニングはアクセス・ポリシー・コンテキストで実行され、これはユーザーが作成されるコンテキストの子コンテキストとなります。これは、コンテキストのネストおよびコンテキストのスタックが可能であることを意味します。機能コンポーネントによって新規コンテキストが作成され、作成された新しいコンテキストを使用して追加の処理を開始できます。

10.2 コンテキスト・タイプ

コンテキスト・マネージャでは、次のコンテキスト・タイプがサポートされています。

- SELF: 操作は、Oracle Identity Managerセルフ・サービスを介して開始されます。

- ADMIN: 操作は、アイデンティティ管理または拡張管理を介して開始されます。これがデフォルトのコンテキストです。

- RECON: 操作は、リコンシリエーションによって実行されます。

- REQUEST: 操作は、リクエストによって実行されます。

- POLICY: 操作は、アクセス・ポリシーがあるために実行されます。

ContextManager.getContextType()のコールでは、コンテキストのタイプを伝える必要があります。様々なコンテキストで取得できる情報の一部を次に示します。

- リコンシリエーション・コンテキスト: リコンシリエーション・イベントの作成元であるプロファイルを、ContextManager.getValue("profileName")メソッド・コールにより取得できます。

- ADMINコンテキストで実行されるスケジュール済タスク: 取得できる情報の一部を次に示します。

- ジョブ名: ContextManager.getValue("JOBNAME")

- タスク名: ContextManager.getValue("TASKNAME")

- リクエスト・コンテキスト: 次のコードを使用してリクエスト・キーを取得できます。

HashMap<String, ContextAware> requestContext = (HashMap<String, ContextAware>) ContextManager.getValue("requestData", true);
requestContext.get("requestKey");

- ポリシー・コンテキスト: ContextManager.getContextKey()は、評価されるポリシーを提供します。複数のポリシーが適用可能な場合は、優先度が最も高いポリシー・キーが返されます。

第II部

アプリケーション固有のコネクタ

この部では、アプリケーション固有のコネクタを開発する方法について説明します。

次の章で構成されます。

- 第11章「リソース・オブジェクトの開発」

- 第12章「プロビジョニング・プロセスの開発」

- 第13章「プロセス・フォームの開発」

- 第15章「参照定義、UDFおよびRemote Managerの開発」

11 リソース・オブジェクトの開発

管理およびユーザー・コンソールのリソース管理機能を使用すると、組織または個人ユーザーのリソースを管理できます。リソースの管理には、次のアクティビティがあります。

- リソースの詳細の検索および表示

- ユーザーまたは組織からのリソースのプロビジョニング、無効化、有効化および失効

- リソース管理者およびリソース認可者ロールの管理

- ワークフローの表示、作成および変更

- ITリソースの作成および管理

この章では、リソースの管理に関する次の内容を説明します。

- リソースの詳細の表示

- リソースに関連付けられているユーザーおよび組織に関する作業

- 「リソース管理者」オプションの使用

- 「リソース認可者」オプションの使用

- 「リソース・ワークフロー」オプションを使用したワークフローの表示

- 「リソース・ワークフロー」オプションを使用したワークフローの作成および変更

- ITリソースの作成

- ITリソースの管理

- Design Consoleを使用したリソースの管理

11.1 リソースの詳細の表示

リソースの詳細を表示するには、次の手順を実行します。

1. 管理およびユーザー・コンソールにログインし、「拡張」をクリックします。

2. 「ようこそ」ページの「構成」で、「リソースの管理」をクリックします。
または、「構成」タブをクリックし、「リソース管理」をクリックして、「リソースの管理」を選択します。

「リソース検索」ページが表示されます。

3. ページ上部のフィールドを使用して検索基準を選択し、対応する検査値を隣のフィールドに入力するか、アスタリスク(*)のワイルドカード文字を使用します。「リソース・タイプ」および「ターゲット」基準を使用するには、対応するボックスで値を選択します。

4. 「リソース監査目的」リストから必要なオプションを選択します。
「リソース監査目的」リストによって、データ型ごとにリソースをグループ化できます。同じリソースに対して複数の値を選択できます。フィールドの値リストにある四半期、半期および年次評価の監査スケジュール値を追加し、監査要件としてSOXと四半期などの組合せを選択することもできます。

「リソース監査目的」リストの事前定義された値は、次のとおりです。

- SOX (財務的に重要な情報が対象)

- HIPAA (個人の医療情報が対象)

- GLB (公共のものではない情報が対象)

- 毎四半期のレビューが必要

- 毎年のレビューが必要

5. 「検索」をクリックします。
結果表が表示されます。

6. リソース名をクリックします。たとえば、Active Directoryという名前のリソースを選択できます。
「リソースの詳細」ページが表示されます。

7. リソースに関する詳細情報を表示するには、メニューを使用します。
詳細情報は、ユーザーや組織などのオブジェクトのタイプによって異なります。たとえば、組織オブジェクトに関して表示できる詳細情報には、次のものがあります。

- このリソースに関連付けられた組織

- リソース管理者

- リソース認可者

11.2 リソースに関連付けられているユーザーおよび組織に関する作業

ユーザーまたは組織に関連付けられているリソースの有効化、削除および失効を行うことができます。ユーザーまたは組織に対して複数回プロビジョニングされたリソースについては、マッピング・カテゴリを決定することもできます。

リソースに関連付けられている組織に関する操作を行うには、次の手順を実行します。

注意:

この項の手順は、リソースに関連付けられている組織に関する作業を示しています。この項では組織に関して説明していますが、特定のリソースに関連付けられているユーザーについても、まったく同じ方法で検索できます。

1. 「リソースの詳細の表示」の説明に従って、手順1から3を実行します。

2. リソースに関連付けられた組織オプションを選択します。
リソースに関連付けられた組織ページが表示されます。

3. オプションを使用して、関連付けられている組織のリストをフィルタします。
「すべて」オプションを選択すると、すべての組織が一覧表示されます。「ステータス別」オプションを使用すると、「リソース・ステータス」列の値に基づいて組織がフィルタされます。リソースに関連付けられている組織は「組織名」列に一覧表示されます。この場合、「リソース・ステータス」には、一覧表示された各組織に対してリソースがプロビジョニングされていることが示されます。組織に対応するリソースを変更するには、次のいずれかを選択します。

- 有効化

- 無効化

- 失効

「識別子」列の値は、「記述フィールドのマップ」を使用してDesign Consoleの「プロセス定義」フォームからマップできるフィールド・タイプに対応しています。同一のリソースが同一の組織に複数回プロビジョニングされている場合に、この値から、定義されているマッピング・カテゴリ(「プロセス・タイプ」、「組織名」、「リクエスト・キー」など)を区別できます。

11.3 「リソース管理者」オプションの使用

「リソースの詳細」ページで「リソース管理者」を選択します。「リソース管理者」ページに、このリソースに管理者として割り当てられているロールの名前が表示されます。このページには、「書込み権限」と「削除権限」の各権限も表示されます。これらは、管理者ロールがリソース・パラメータではなく、リソースに対して持つ権限です。書込み権限のあるロールは、リソースを変更できます。削除権限のあるロールは、リソースを削除できます。

注意:

削除対象のリソースが使用されていないことを確認してください(たとえば、リソースがプロビジョニングされていないこと、またリソースにフォームが関連付けられていないことを確認してください)。

次の操作を実行できます。

- リソースの管理者としてのロールの割当て

- 管理ロールの権限の更新

11.3.1 リソースの管理者としてのロールの割当て

リソースの管理者としてのロールを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「管理者の割当て」ページが表示されます。

このページには、このリソースに割り当てることができるすべてのロール名が表示されます。オプションを選択して書込み権限と削除権限を有効にし、このリソースにロールを割り当てます。

2. 「割当て」をクリックします。
「割当ての確認」ページが表示されます。このページには、リソースの管理者として割り当てられる新しいロールが表示されます。

3. 「割当ての確認」または「取消」をクリックします。
「リソース管理者」ページに、このリソースに関連付けられているすべてのロール名の一覧が表示されます。この情報は変更できます。

11.3.2 管理ロールの権限の更新

管理ロールの権限を更新できます。

権限を更新するには、次の手順を実行します。

1. 「権限の更新」をクリックします。
「管理者の更新」ページが表示されます。

2. 管理ロールの権限設定を変更するには、書込みおよび削除権限に対応するオプションをクリックします。

3. 「更新」をクリックして変更を実行します。または「取消」をクリックします。
「確認」ページが表示されます。更新した管理ロール名が表示されます。

4. 正しい名前が表示されている場合は「更新の確認」をクリックします。それ以外の場合は「取消」をクリックします。

11.4 「リソース認可者」オプションの使用

どのロールにリソースのプロビジョニングを認可するかを決定できます。

リソース認可者を決定するには、次の手順を実行します。

1. 「リソースの詳細」ページで、メニューから「リソース認可者」を選択します。
「リソース認可者」ページが表示されます。

2. このリソースに認可の優先度レベルを設定するには、「優先度を上げる/下げる」を選択します。

3. このリソースの認可者を削除するには、該当する「ロール名」オプションを選択して、「削除」をクリックします。

4. リソースを認可するロールをさらに追加するには、「割当て」をクリックします。
「認可者の割当て」ページが表示されます。

5. 適切なロール名のオプションを選択して「割当て」をクリックするか、「取消」をクリックします。
「確認」ページが表示されます。

6. 情報が正しければ「割当ての確認」を、正しくなければ「取消」をクリックします。
「リソース認可者」ページが表示されます。このリソースに割り当てたロール名が結果表に追加されることに注意してください。

11.5 「リソース・ワークフロー」オプションを使用したワークフローの表示

管理およびユーザー・コンソールの「リソース・ワークフロー」オプションは、ワークフロー・ビジュアライザとワークフロー・デザイナで構成されます。ワークフロー・ビジュアライザを使用すると、ワークフローを表示できます。また、ワークフロー・デザイナを使用すると、ワークフローを作成して編集できます。ここでは、ワークフロー・ビジュアライザについて説明します。

関連項目:

「「リソース・ワークフロー」オプションを使用したワークフローの作成および変更」

ワークフロー・ビジュアライザ・ツールは、タスク・シーケンスのビジュアル表示、依存性やその他のワークフロー定義コンポーネントを提供します。ビジュアル表示されるのは、ワークフローの概要とリレーションシップ、およびフローを構成するタスク・コンポーネントです。ワークフロー・ビューの印刷もできます。

ワークフロー・ビジュアライザ・ツールには、「プロビジョニング」というタイプのプロセスが表示されます。「プロビジョニング」タイプのプロセスは、Oracle Identity Managerリソースをユーザーや組織にプロビジョニングするために使用します。

注意:

ワークフロー・ビジュアライザにアクセスするには、Nexawebアプレットで、Java仮想マシン1.4.2.x.xを使用するようにWebブラウザを設定する必要があります。

この項には次のトピックが含まれます:

- ワークフロー・ビジュアライザを開く

- ワークフロー・ビジュアライザの要素

- ワークフロー・ビジュアライザの操作

11.5.1 ワークフロー・ビジュアライザを開く

ワークフロー・ビジュアライザを開くには、次の手順を実行します。

1. 「リソースの詳細」ページで、リストから「リソース・ワークフロー」を選択します。
「リソース・ワークフロー」ページが表示されます。このページには、リソース名と、このリソースに対するワークフロー定義の名前の一覧を含む表が表示されます。

2. ワークフロー定義をグラフィック・フローチャートにレンダリングするには、必要なワークフローを選択します。
ワークフロー定義のグラフィカル表示が新しいウィンドウに表示されます。

11.5.2 ワークフロー・ビジュアライザの要素

プロビジョニング・ワークフローの場合、「ワークフロー・デザイナ」ページに複数のタブが表示されます。プロビジョニング・ワークフローにはそれ自体にフォームを関連付けることができ、ワークフロー詳細ヘッダーにそのフォーム名が表示されます。

表11-1に、ワークフロー・ビジュアライザの情報フィールドを示します。

表11-1 ワークフロー・ビジュアライザの情報フィールド

フィールド

説明

ワークフロー名

プロセス定義の名前。

リソース

オブジェクトの名前(プロビジョニングされたリソース・オブジェクト)。

ワークフロー・タイプ

プロセス定義のタイプ(「プロビジョニング」)。タイプは、ワークフローがリソースのデフォルトかどうかも示しています。

フォーム名

プロビジョニング・ワークフローに関連付けられているフォームの名前。

表11-2に、ワークフロー・ビジュアライザのツールバーのメニュー項目を示します。

表11-2 ワークフロー・ビジュアライザのツールバーのメニュー項目

フィールド

説明

表示オプション

このオプションによって、ページに要素を表示できます。ページ上で要素の表示/非表示を切り替えられるため、ページを整理しておくことができます。

不明レスポンス・コードの表示: 不明レスポンス・コードはワークフローのタスクごとに定義されます。ワークフローのロジックでは使用されません。ただし、このオプションを使用すると、不明レスポンス・コードを表示できます。

画面上のアダプタ名の表示: 自動化されたアダプタの名前を表示できます。

取消しタスクの表示: タスクの取消しタスクを表示できます。

リカバリ・タスクの表示: タスクのリカバリ・タスクを表示できます。

イメージの生成

このオプションを使用すると、ワークフロー・ビューをイメージとして保存し、印刷することができます。このメニュー項目をクリックすると、新しいブラウザ・ウィンドウが開き、JPEGにフォーマットされたイメージが表示されます。フローチャートの、表示領域のスクロール制限のために非表示になっている部分も含めて、ワークフローの全体が表示されます。その後、Webブラウザの標準機能を使用してコンピュータ上にイメージを保存できます。

ワークフローのリロード

このオプションでは、ワークフロー・ビューをリフレッシュし、事前定義済のグラフ・アルゴリズムに基づいてページの様々な項目を並べ替えます。

凡例

このオプションを選択すると、ワークフロー定義のフローチャートの作成に使用されるすべてのビジュアル・コンポーネントの説明が表示されます。図11-1に、「凡例」ページを示します。

マーカー

マーカー・ノードは、特別な条件を示す位置マーカーを表します。次のような条件があります。

開始ポイント: このマーカーは、ワークフローにおける論理的な開始ポイントを表します。ワークフロー定義内の実際のタスクではありません。

ページ参照: このマーカーは、ワークフロー・チャートの他の箇所にすでに描画されているタスク・ノードを表します。ワークフロー・ビューに多数の交差リンクを挿入しなくても、他のタスクへの接続を示すことができます。

レスポンス・サブツリー: レスポンス・サブツリー(展開ノード)を使用すると、レスポンス・ノードの大部分のサブツリーを非表示にすることでワークフローを整理できます。展開ノード・マーカーをダブルクリックして、レスポンスを含むフローチャートを再描画することができます。
タスク

タスク・ノードはワークフロー内のタスクを表します。これらを次に示します。

手動タスク: このタスクでは、完了するためにユーザー・アクションを必要とします。

自動化タスク: このタスクでは、完了するためにユーザーの介入を必要としません。自動タスクには、常にプロセス・タスク・アダプタが必要とされます。プロビジョニング・プロセスは通常、自動化タスクで構成されます。
レスポンス

レスポンス・ノードは、タスク上で定義されているレスポンス・コードを表します。レスポンス・ノードは、内部の実際のレスポンス・コードを表示します。レスポンス・コードは、レスポンスがタスク上に設定しているステータスに基づいています。

タスクを完了: プロセス・タスクは完了しており、緑で示されます。

タスクを却下: プロセス・タスクは却下されており、赤で示されます。

タスクを取消し: プロセス・タスクは取り消されており、青で示されます。

リンク

タスク・ノードやレスポンス・ノードは矢印線で結ばれ、ワークフローの流れを示します。リンクの色は、結ばれている2つのノードのリレーションシップのタイプを示します。リンクのタイプには次のものがあります。

初期タスク: ワークフロー定義内の最初のプロセス・タスクです。

レスポンス生成済タスク: 現行のタスクが「完了」ステータスであるときにトリガーされるプロセス・タスクとして定義されます。一般に、新しいプロセス・タスクがトリガーされるのは、条件付きタスクがプロセス・タスクの実行と組み合せて特定のレスポンス・コードを受け取る場合です。

リカバリ・タスク: 現行のタスクが「却下」ステータスであるときにトリガーされるプロセス・タスクとして定義されます。

取消しタスク: 現行のタスクが「取消」ステータスであるときにトリガーされるプロセス・タスクとして定義されます。

依存タスク: 別のプロセスに依存するプロセス・タスクとして定義されます。Oracle Identity Managerでは、依存対象のプロセス・タスクが完了したときにのみ、このタスク・タイプを起動できます。

図11-1に、「凡例」ページを示します。

図11-1 「凡例」ページ

「図11-1 「凡例」ページ」の説明

ワークフロー・ビジュアライザの情報フィールドおよびツールバーのメニュー項目以外にも、ワークフローのUI要素としてタスクとレスポンスがあります。タスクとレスポンスの詳細は、表11-1および「タスクおよびレスポンスの作成と管理」を参照してください。

11.5.2.1 ワークフロー定義の「プロビジョニング」イベント・タブの使用

ワークフロー定義の「プロビジョニング」は、レスポンスに基づくタスクの実行方法を示す論理フローに、関連するイベント・タブとともに表示されます。イベント・タブは、ワークフロー定義の特定のイベントの、各種のタスク・シーケンスを表します。イベント・タブをクリックすると、プロセスのワークフロー・イベントに対応するタスクがタブに表示されます。フローチャートは要件に応じて配置できます。そのワークフロー・イベントに定義されたタスクがない場合は、タブの表示は空白です。そのワークフロー・イベント・タイプに複数のタスク・シーケンスがある場合、タブにはメニューが表示され、表示するプロセス・フローチャートを選択できます。

11.5.2.1.1 「プロビジョニング」タブ

「プロビジョニング」タブには、リソースをプロビジョニングするタスクが表示されます。ワークフロー・タイプが「プロビジョニング」の場合、ワークフローには、リソースをプロビジョニングする必要のあるすべてのタスクが表示されます。

11.5.2.1.2 「リコンシリエーション」タブ

「リコンシリエーション」タブには、「リコンシリエーションの挿入を受信しました」、「リコンシリエーションの更新を受信しました」、「リコンシリエーションの削除を受信しました」のいずれかのマーカー・タスクが挿入されたプロビジョニング・プロセスのリコンシリエーション・イベントが表示されます。これらのタスクは、アダプタをアタッチされることにより、プロビジョニング・アクションを開始することができます。タスクにアダプタがアタッチされていない場合は、そのタスクには「イベントが処理されました」のレスポンス・コードが割り当てられます。このレスポンス・コードに基づいて、その他のプロビジョニング・プロセス・タスクを生成して、リコンシリエーション・イベントによるプロビジョニング・フローを開始することができます。

11.5.2.1.3 「サービス・アカウント」タブ

「サービス・アカウント」タブには、ユーザー用のサービス・アカウント(管理者)のすべてのプロビジョニング・プロセスが表示されます。ユーザーがサービス・アカウントを使用してプロビジョニングされると、Oracle Identity Managerで、ユーザーのアイデンティティからサービス・アカウントへのマッピングが管理されます。リソースが失効されるかユーザーが削除されても、サービス・アカウントのプロビジョニング・プロセスは取り消されません。そのかわりに、プロビジョニング・プロセスに、ユーザーからサービス・アカウントへのマッピングを削除するタスクが挿入されます。サービス・アカウントのプロビジョニング・プロセスは、「変更されたサービス・アカウント」、「サービス・アカウント・アラート」および「移動したサービス・アカウント」です。

11.5.2.1.4 「ユーザー・イベント」タブ

「ユーザー・イベント」タブには、パスワードまたはユーザーIDを更新するなどの、ユーザー・レコードに対する変更に対応するワークフローが表示されます。

11.5.2.1.5 「組織イベント」タブ

「組織イベント」タブには、リソースのプロビジョニング先の組織のレコードへの変更(名前または親名の変更など)、またはリソースのプロビジョニング先のユーザーの組織への変更に対応するワークフローが表示されます。

11.5.2.1.6 「リソース・イベント」タブ

「リソース・イベント」タブには、有効化または無効化など、プロビジョニングされたリソース・インスタンスの状態変更に対応するワークフローが表示されます。

11.5.2.1.7 「フォーム・イベント」タブ

「フォーム・イベント」タブには、プロビジョニングされたリソース・インスタンスのプロセス・フォームにおけるデータ変更に対応するワークフローが表示されます。

11.5.2.1.8 「アテステーション」タブ

「アテステーション」イベント・タブには、アテステーション・プロセスにおけるデータ変更に対応するワークフローが表示されます。

11.5.3 ワークフロー・ビジュアライザの操作

この項では、ワークフロー・ビジュアライザを使用して実行できる様々な操作について説明します。

- 要素の並べ替え

- 展開ノードの使用

- タスク詳細へのアクセス

Corporate DB Provisioningワークフロー定義が表示されているとします。イベント・タブを選択すると、そのイベントに対応するタスクのシーケンスが表示されます。イベント・タブの詳細は、「ワークフロー定義の「プロビジョニング」イベント・タブの使用」で説明しています。図11-2に、ワークフロー・ビジュアライザのサンプル・ワークフローを示します。

図11-2 ワークフロー・ビジュアライザに表示されたサンプル・ワークフロー

「図11-2 ワークフロー・ビジュアライザに表示されたサンプル・ワークフロー」の説明

11.5.3.1 要素の並べ替え

グラフィック・ワークフローは、ワークフロー定義を構成しているアイコンを移動することによって、ワークフロー・ビュー内の任意の位置に配置を変更できます。アイコン・コンポーネントを移動しても、矢印で結ばれているリンクは途切れません。図11-3に、ワークフロー内のコンポーネントのドラッグ・アンド・ドロップ機能を示します。

図11-3 ワークフロー・ビジュアライザでのドラッグ・アンド・ドロップの使用

「図11-3 ワークフロー・ビジュアライザでのドラッグ・アンド・ドロップの使用」の説明

「表示オプション」ツールバー・メニュー項目を使用して、不明レスポンス・コード、アダプタ名、取消しタスクおよびリカバリ・タスクの表示と非表示を切り替えることができます。ワークフローは自動的に更新され、実行した変更に基づいてそのワークフローが再描画されます。

タスク・ノードを右クリックすると、「レスポンスを非表示」オプションが表示されます。このオプションをクリックするとレスポンス・サブツリーが閉じ、展開ノードに変わります。タスク・ノード・ラベルが黄色く強調表示され、閉じていることを示します。ノードが閉じている間は、「レスポンスを非表示」オプションは表示されません。図11-4に、タスク・ノードを示します。

図11-4 タスク・ノードの使用(ショートカット・メニュー)

「図11-4 タスク・ノードの使用(ショートカット・メニュー)」の説明

11.5.3.2 展開ノードの使用

5つを超えるレスポンス・コードを含み、不明レスポンス・コードを含まないタスク・ノードは、フローチャートにレスポンスとともに描画されることはありません。レスポンス・サブツリー全体ではなく展開ノードが表示されます。展開ノードをダブルクリックすると、フローチャートが再描画され、親タスク(ノード)のレスポンス・サブツリーが表示されます。タスク・ノードのラベルは黄色で表示されます。図11-5に、閉じたレスポンス・サブツリーを示します。

図11-5 ワークフロー・ビジュアライザの閉じたレスポンス・サブツリー

「図11-5 ワークフロー・ビジュアライザの閉じたレスポンス・サブツリー」の説明

注意:

カーソルを展開ノードに重ねると、関連付けられているレスポンス・コードの数がツール・ヒントに表示されます。不明レスポンス・コードは、デフォルトでは非表示です。

11.5.3.3 タスク詳細へのアクセス

特定のタスクの詳細情報を表示するには、タスクのアイコンをダブルクリックします。「タスクの詳細」ページでは、タスク定義に関する情報が、次のタブに表示されます。

- 一般: このタブには、名前や説明などのタスク情報が表示されます。

- 自動化: このタブには、タスク、タスクのステータス、および各種のマッピングの自動化アダプタに関する情報が記載されています。

- タスクの割当て: このタブには、タスクの割当て方法とすべての関連情報に関する情報が表示されます。

- 依存先: このタブには、選択したタスクの依存先であるすべてのタスクが一覧表示されます。

- リソース・ステータス管理: このタブには、タスク・ステータスとリソース・ステータスの間のマッピングが表示されます。

11.5.3.3.1 「一般」タブ

表11-3に、「一般」タブのフィールドを示します。

表11-3 「一般」タブのフィールド

フィールド

説明

タスク名

このフィールドにはプロセス・タスクの名前が表示されます。

タスクの説明

このフィールドにはプロセス・タスクに関する説明が表示されます。

タスクの結果

このフィールドは、このタスクのプロセス・アクションを示します。ENABLED、DISABLEDまたはNONEのいずれかです。プロセスは、リソースへのユーザーのアクセスに対して有効化または無効化されます。無効化アクションでは、関連タスクもすべて無効化されます。NONEアクションは、このタスクが特定のプロセス・アクションに関連付けられていないことを示します。

再試行間隔

このフィールドは、このプロセス・タスク・インスタンスが追加されるまでに待機する時間を分単位で示します。

再試行の制限

このフィールドは、却下されたタスクをOracle Identity Managerが再試行する回数を示します。

条件付きタスク

このフィールドは、プロセス・タスクに対して満たす必要がある条件を指定しています。

リカバリの完了

このフィールドは、生成されたすべてのリカバリ・タスクの完了時に、現行のプロセス・タスクのステータスがOracle Identity Managerによって「却下」から「完了に失敗」に変更されることを示します。このフラグは、依存している他のプロセス・タスクをトリガーします。

保留中の取消しを許可

このフィールドは、ステータスが「保留」のときにプロセス・タスクを取り消せるかどうかを示します。

複数を許可

このフィールドは、単一のプロセス・インスタンス内で、タスクを複数回挿入することが許可されているかどうかを示します。

ワークフロー完了に必須

このフィールドは、プロセス・タスクが「完了」ステータスではない場合、プロセスを完了できないことを示します。

手動挿入

このフィールドは、現行のプロセス・タスクをユーザーがプロセスに手動で追加できるかどうかを示します。

11.5.3.3.2 「自動化」タブ

プロビジョニング・プロセスに所属するタスクは、通常、自動化されています。表11-4に、「自動化」タブのフィールドを示します。

注意:

タスクが自動化されていない場合、このタブは表示されません。

表11-4 「自動化」タブのフィールド

フィールド

説明

アダプタ名

このフィールドにはアダプタの名前が表示されます。

アダプタ・ステータス

このフィールドは、アダプタが完全にマップされているかどうかを示します。

アダプタ変数

このフィールドには、アダプタ・タスクが使用する実行時アプリケーション・データを含むアダプタ内のユーザー定義のプレースホルダが含まれます。

マップされていますか。

このフィールドは、アダプタ変数がマップされているかどうかを示します。

11.5.3.3.3 「タスクの割当て」タブ

このタブは、プロセス・タスクの割当てルールを指定します。ルールは、プロセス・タスクの割当て方法を定めます。

プロビジョニング・プロセスに所属するタスクは、通常、自動化されています。結果として、タスク割当てルールは不要です。

11.5.3.3.4 「依存先」タブ

このタブには、現行のタスクの依存先タスク名が表示されます。

11.5.3.3.5 「リソース・ステータス管理」タブ

リソースには、事前定義されたプロビジョニング・ステータスがあり、リソース・オブジェクトがターゲットのユーザーや組織にプロビジョニングされるのに応じて、そのライフサイクルを通じて様々なステータスを表します。このタブには、プロセス・タスクのステータス(「タスク・ステータス」)と、その割当て先リソースのプロビジョニング・ステータス(「リソース・ステータス」)の間のリンクが表示されます。表11-5に、「リソース・ステータス管理」タブのフィールドを示します。

表11-5 「リソース・ステータス管理」タブのフィールド

フィールド

説明

タスク・ステータス

ステータスは、事前定義されたプロビジョニング・ステータス・タイプのいずれかです。

リソース・ステータス

ステータスは、「待機中」、「プロビジョニング」、「なし」、「準備完了」、「有効」、「無効」、「失効」、「プロビジョニング済」および「情報の指定」のいずれかです。

11.6 「リソース・ワークフロー」オプションを使用したワークフローの作成および変更

ワークフロー・デザイナを使用すると、ワークフローを作成および編集できます。ワークフロー・ビジュアライザではワークフローをグラフィック表示するのに対し、ワークフロー・デザイナではワークフローの作成および編集が可能です。

関連項目:

「プロセス定義」フォームの詳細は、「「プロセス定義」フォーム」を参照してください。

このセクションのトピックは次のとおりです:

- ワークフロー・デザイナを開く

- ワークフローの作成

- ワークフロー・デザイナのメイン・ページ

- タスクおよびレスポンスの作成と管理

- データ・フローの構成

11.6.1 ワークフロー・デザイナを開く

ワークフロー・デザイナを開くには、次の手順を実行します。

1. Oracle Identity Manager拡張管理の「ようこそ」ページで、「リソースの管理」をクリックします。または、「構成」をクリックし、「リソース管理」リストから「リソースの管理」を選択します。
「リソース検索」ページが表示されます。

注意:

Mozilla Firefox Webブラウザを使用してワークフロー・デザイナを開く場合は、追加認証ダイアログ・ボックスが表示されることがあります。このダイアログ・ボックスで認証を行うと、ワークフロー・デザイナにアクセスできます。この追加認証を回避するには、次のようにします。

1. Mozilla Firefoxの「ツール」メニューから、「オプション」を選択します。「オプション」ダイアログ・ボックスが表示されます。

2. 「プライバシー」をクリックします。

3. 「サードパーティのCookieも保存する」オプションを選択します。

4. 「OK」をクリックします。

Microsoft Internet Explorer Webブラウザを使用してワークフロー・デザイナを開く場合は、追加認証は必要ありません。

2. リソースを検索します。

3. リソース名をクリックしてリソースを選択します。「リソースの詳細」ページが表示されます。

4. 「追加詳細」リストから「リソース・ワークフロー」を選択します。「リソース・ワークフロー」ページが表示されます。

5. 「新規ワークフローの作成」をクリックしてワークフロー・デザイナを開き、新規ワークフローを作成します。あるいは、結果表の「ワークフローの編集」列にある「編集」をクリックしてワークフロー・デザイナを開いて、既存のワークフローを編集します。

11.6.2 ワークフローの作成

「リソース・ワークフロー」ページで「新規ワークフローの作成」をクリックすると、ワークフロー・デザイナが開き、図11-6のような「ワークフローの作成」ダイアログ・ボックスが表示されます。

図11-6 「ワークフローの作成」ダイアログ・ボックス

「図11-6 「ワークフローの作成」ダイアログ・ボックス」の説明

このダイアログ・ボックスで、新規ワークフローの作成に必要な値を指定する必要があります。表11-6に、「ワークフローの作成」ダイアログ・ボックスのフィールドを示します。

表11-6「ワークフローの作成」ダイアログ・ボックスのフィールド

フィールド

説明

ワークフロー名

新規ワークフローの名前。

ワークフロー・フォーム

ワークフローが定義されているリソースに関連付けられているフォーム。

フォームは次のいずれかです。

- まだどのプロセスにも割り当てられていないすべてのプロセス・フォーム

- このワークフローの定義の対象となっている、現行プロセス用に定義されたその他のプロセスに割当て済のすべてのプロセス・フォーム

デフォルト・ワークフロー

このチェック・ボックスでは、関連付けられているリソース・オブジェクトについて、現行ビジネス・ワークフローをデフォルトのプロビジョニング・ビジネス・ワークフローとして設定するかどうかを指定します。

このチェック・ボックスを選択した場合、このビジネス・ワークフローは、割り当てられるリソース・オブジェクトのデフォルトのプロビジョニング・ビジネス・ワークフローとして設定されます。

選択しない場合、このプロセスは、プロセス選択ルールによって選択された場合のみ起動します。

ワークフローの作成

ワークフロー作成用ボタン。

11.6.3 ワークフロー・デザイナのメイン・ページ

「プロビジョニング」オプションを選択して、「ワークフローの作成」ダイアログ・ボックスで「ワークフローの作成」をクリックすると、図11-7に示すように、ワークフロー・デザイナのメイン・ページが表示されます。

図11-7 ワークフロー・デザイナのメイン・ページ

「図11-7 ワークフロー・デザイナのメイン・ページ」の説明

このページには様々なセクションがあり、各セクションには新規ワークフローを展開するための詳細情報やオプションが用意されています。

ワークフロー・デザイナのメイン・ページは、次のセクションから構成されています。

- 情報

- ツールバー

- デザイナ・ページ

- メニュー・セクション

11.6.3.1 情報

現行ワークフローに関するグローバルな情報を提供する次のラベルが表示されます。

- ワークフロー名: 現行ワークフローの名前。

- ワークフロー・タイプ: 現行ワークフローのタイプ(「プロビジョニング」または「承認」)。

- リソース: 現行ワークフローのアタッチ対象となるリソース。

11.6.3.2 ツールバー

ツールバーには、ワークフロー・デザイナ・ページを管理および表示する機能があります。これには、名前、フォーム名、自動保存、自動事前移入、グラフィック・ワークフロー・ビューのイメージの生成、ワークフローのリロード、ポップアップの凡例、ワークフローの保存、表示オプションの提供など、グローバルなワークフロー情報を構成するオプションが含まれています。

ここでは次のツールバー・ボタンの機能について説明します。

- ワークフロー構成

- タスク・ライブラリ

- 表示オプション

- イメージの生成

- 凡例

- リフレッシュ

- 保存

11.6.3.2.1 ワークフロー構成

「ワークフロー構成」をクリックすると、図11-8のような「ワークフロー構成」ダイアログ・ボックスが開きます。このダイアログ・ボックスには、現行ワークフローを構成するためのオプションがあります。

図11-8 「ワークフロー構成」ダイアログ・ボックス

「図11-8 「ワークフロー構成」ダイアログ・ボックス」の説明

表11-7に、「ワークフロー構成」ダイアログ・ボックスのフィールドを示します。

表11-7「ワークフロー構成」ダイアログ・ボックスのフィールド

フィールド

説明

ワークフロー名

現行ワークフローの名前。

デフォルト・ワークフロー

このチェック・ボックスでは、関連付けられているリソース・オブジェクトについて、現行プロセスをデフォルトのプロビジョニング・プロセスとして設定するかどうかを指定します。

注意: このチェック・ボックスの詳細は、「ワークフローの作成」を参照してください。

記述フィールド

プロビジョニングされたリソースの特定のインスタンスに次のいずれかをマップする場合に使用します。

- リクエスト・キー

- ユーザー・ログイン

- 組織名

- プロセス・タイプ

- ワークフロー・フォームからのデータ

フォーム名

現行ワークフローに割り当てられたフォーム。

自動保存フォーム

このチェック・ボックスは、プロビジョニングの際、ユーザーにフォーム・データの入力を求めずにフォームの自動保存を設定する場合に使用します。事前定義済デフォルト値セットまたはデータ・フローを使用した、フォーム・フィールドのデフォルト値の設定に役立ちます。

自動事前移入フォーム

このチェック・ボックスは、プロビジョニングの際、デフォルト値またはデータ・フローからのデータを使用して、フィールドを事前移入する場合に使用します。このオプションを設定すると、プロビジョニングの際、変更可能なフィールドのデータとともにフォームが表示されます。

11.6.3.2.2 タスク・ライブラリ

「タスク・ライブラリ」をクリックして、「タスク・ライブラリ」ページを開きます。「タスク・ライブラリ」ページには、すべてのサブワークフロー間のワークフロー内のすべてのタスクが一覧表示されます。このページには、(プロビジョニング・ワークフロー用の)サブワークフローが存在する場所、複数インスタンスの可否、保留中の取消しの可否、再試行間隔、再試行回数など、各タスクに関連するいくつかのパラメータも表示されます。また、このページでタスクを編集および削除できます。図11-9に、「タスク・ライブラリ」ページを示します。

図11-9 「タスク・ライブラリ」ページ

「図11-9 「タスク・ライブラリ」ページ」の説明

次の条件をともに満たした場合のみ、タスクを削除できます。

- タスクがすべてのワークフローから削除されていること。これは、任意のサブワークフロー上のタスクを右クリックし、「タスクおよびサブフローの削除」をクリックして、タスクが削除されていることを意味します。

- タスクのインスタンスがシステムにないこと。たとえば、タスクでワークフローが作成され、そのワークフローのリソースがユーザーにプロビジョニングされ、ワークフローが起動されるためにタスクが実行される場合、そのタスクのインスタンスはシステム内に作成されます。その場合、タスクは削除できません。

「タスク・ライブラリ」ページの上部には、タスクの検索に使用できる検索基準があります。メイン・セクションには、各種パラメータを持つタスクが一覧表示されます。行をクリックすると選択できます。タスクが削除可能な場合は、「選択されたタスクの編集」ボタンとともに「選択されたタスクの削除」ボタンが有効になります。

11.6.3.2.3 表示オプション

「表示オプション」をクリックすると、「表示オプションの設定」ダイアログ・ボックスが開き、ワークフローを設計する際にワークフローの表示方式を指定するためのオプションが表示されます。図11-10に、「表示オプションの設定」ダイアログ・ボックスを示します。

図11-10 「表示オプションの設定」ダイアログ・ボックス

「図11-10 「表示オプションの設定」ダイアログ・ボックス」の説明

このダイアログ・ボックスを使用して、次のオプションを有効または無効にできます。

- 不明レスポンス・コードの表示: 不明レスポンス・コードを表示または非表示にします。

- 画面上のアダプタ名の表示: タスクにアタッチされたアダプタの名前を表示または非表示にします。

- 取消しタスクの表示: 取消しタスクを表示または非表示にします。

- リカバリ・タスクの表示: リカバリ・タスクを表示または非表示にします。

11.6.3.2.4 イメージの生成

「イメージの生成」をクリックすると、ワークフローの現行ビューがJPEGイメージとして保存されます。イメージは新しいブラウザ・ウィンドウで開かれます。

11.6.3.2.5 凡例

「凡例」をクリックすると、図11-11に示す「凡例」ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、次のタイプの要素が表示されます。

図11-11 「凡例」ダイアログ・ボックス

「図11-11 「凡例」ダイアログ・ボックス」の説明

- マーカー: この要素はワークフロー内の特定のマーキングまたは場所を表します。たとえば、開始点、ページ参照または下位要素を持つ展開ワークフローを表す場所は、マーカーで表すことができます。
「タスク」要素を右クリックして、レスポンスを非表示にするオプションを選択できます。レスポンスを非表示にすると、レスポンス・サブツリーのアイコンが表示され、非表示のレスポンスがあることが示されます。ページ参照マーカーは、リレーションシップがリンクで示されないそのページの他の要素を参照します。これは、たとえばタスク用に定義されたレスポンス・コードであり、そのレスポンスに対してレスポンス生成のタスクが定義されます。このレスポンス生成タスクに、元のタスクを循環方式で参照するレスポンスがある場合、ページ参照マーカーによってリレーションシップの表示が容易になります。

- タスク: このアイコンは、手動および自動タスクを示すために使用されます。自動完了のため、イベント・ハンドラまたはそれにアタッチされたアダプタがタスクにある場合は、自動化タスクになります。そうでない場合は、手動タスクのままです。

- レスポンス: 「完了」、「却下」、「取消」など各種レスポンス・コードに使用される、様々な色のコードです。ユーザー定義のレスポンス・コードは、異なる色コードで示されます。

- リンク: リレーションシップまたは要素間の関連を表示するリンクに使用される様々な色コードです。リンクの色コードは、リンクが参照するタスクのタイプに応じて異なります。たとえば、色コードはタスクが取消しまたはリカバリのいずれかであるかどうかを示します。各種リンクとは、「初期タスク」、「レスポンス生成済タスク」、「リカバリ・タスク」および「取消しタスク」です。

11.6.3.2.6 リフレッシュ

「リフレッシュ」をクリックすると、ワークフローがリロードされ、ラベルおよびアイコンのインデントと場所がデフォルトに戻ります。トポロジが再生成され、JGraphアルゴリズムを使用してワークフロー上に要素が配置されます。

11.6.3.2.7 保存

「保存」をクリックすると、Oracle Identity Managerデータベースに対するすべての追加や変更など、ワークフローに対して行われたすべての変更内容がコミットされます。

注意:

「保存」をクリックして変更をコミットする必要があります。ワークフローを保存しないでワークフロー・デザイナのメイン・ページを閉じると、変更はすべて失われます。

11.6.3.3 デザイナ・ページ

デザイナ・ページには、リンクを含め、すべての要素とプロセス・フローでの要素の位置を備えたワークフローが表示されます。これは、製図板に類似しており、適切なオプションを使用してタスクやレスポンスなどのコンポーネントを作成することができます。デザイナ・ページのこのようなコンポーネントは、さらに構成が可能です。このページでは、各種ワークフロー・エンティティを相互のリレーションシップとともに図示できます。新たに作成したワークフローの場合、このページにはワークフロー・プロセスの開始点を示す開始マーカーが表示されます。このページに追加されるオブジェクトはすべてこのマーカーに関連し、マーカーは参照点として機能します。

11.6.3.4 メニュー・セクション

メニュー・セクションは、ワークフローの特定のサブセクションを表すメニュー項目で構成されます。このセクションは、「プロビジョニング」ワークフローの場合のみ有効です。使用可能なメニュー項目は次のとおりです。

- プロビジョニング: ワークフロー・デザイナ・アプリケーションの起動時に表示されるデフォルトのページです。

- リコンシリエーション: 「リコンシリエーションの挿入を受信しました」、「リコンシリエーションの更新を受信しました」、「リコンシリエーションの削除を受信しました」など、リコンシリエーション・イベントで実行するタスクのリストを提供します。これらのタスクは、「リコンシリエーション」メニュー項目の下のサブメニュー項目です。

- サービス・アカウント: サービス・アカウントはadmin1、admin2、admin3などの一般管理者アカウントであり、メンテナンス用途に使用されます。通常、このようなアカウントは、ユーザーではなく、あるシステムと別のシステムとの対話を可能にするために使用されます。サービス・アカウントの管理およびプロビジョニングのモデルは、標準のプロビジョニングとは異なります。サービス・アカウントは、通常のアカウントと同様の方法でリクエスト、プロビジョニングおよび管理されます。サービス・アカウントは、通常アカウントと同じリソース・オブジェクト、プロビジョニング・プロセスおよびプロセス・フォームを使用します。サービス・アカウントは、内部フラグによって通常のアカウントと区別されます。ユーザーがサービス・アカウントを使用してプロビジョニングされると、Oracle Identity Managerで、ユーザーのアイデンティティからサービス・アカウントへのマッピングが管理されます。このユーザーはサービス・アカウントの所有者とみなされます。「サービス・アカウント」メニュー項目で使用できるタスクは、「変更されたサービス・アカウント」、「サービス・アカウント・アラート」および「移動したサービス・アカウント」です。

- ユーザー・イベント: ユーザーのイベントに基づいて実行するタスクのリストが提供されます。そのタスクには次のデフォルト名があります。

- ユーザーの場所の変更

- ユーザーの移動

- ユーザー・タイプの変更

- ユーザー・パスワードの変更

- ユーザー・マネージャの変更

- ユーザー名の変更

- 名の変更

- 姓の変更

- ユーザー・アイデンティティの変更

注意:

これらの名前は、Design Consoleの「参照定義」フォームのLookup.USR_PROCESS_TRIGGERSのデコード値から導出されます。値が変更されると、これらの名前もそれに応じて変わります。

「ユーザー・イベント」メニュー項目の横にあるプラス記号(+)アイコンをクリックすると、ワークフローにユーザー・イベントを挿入できます。+アイコンをクリックすると、図11-12に示すように、「ユーザー・イベント参照の追加」ダイアログ・ボックスが開き、現在利用可能なイベント・タスクのリストが表示されます。タスクを選択し、「ワークフローにイベントを追加します」をクリックすると、「ユーザー・イベント」メニューに新しいメニュー項目が作成され、そのワークフローのページが開きます。

図11-12 「ユーザー・イベント参照の追加」ダイアログ・ボックス

「図11-12 「ユーザー・イベント参照の追加」ダイアログ・ボックス」の説明

「ユーザー・イベント参照の追加」ダイアログ・ボックスには、新しい参照イベントの作成や既存の参照イベントの削除のための次のようなオプションもあります。

- 新規参照の作成: このボタンをクリックすると、図11-13に示す「参照イベントの作成」ダイアログ・ボックスが表示されます。

図11-13 「参照イベントの作成」ダイアログ・ボックス

「図11-13 「参照イベントの作成」ダイアログ・ボックス」の説明

- 選択された参照の編集: このボタンをクリックすると、図11-14に示すように「参照イベントの編集」ダイアログ・ボックスが表示されます。

図11-14 「参照イベントの編集」ダイアログ・ボックス

「図11-14 「参照イベントの編集」ダイアログ・ボックス」の説明

- 選択された参照の削除: このボタンをクリックすると、図11-15に示す「参照イベントの削除」ダイアログ・ボックスが表示されます。

図11-15 「参照イベントの削除」ダイアログ・ボックス

「図11-15 「参照イベントの削除」ダイアログ・ボックス」の説明

- 組織イベント: 組織のイベントに基づいて実行するタスクのリストが提供されます。そのタスクには次のデフォルト名があります。

- 組織タイプの変更

- 組織名の変更

- 組織の移動

「組織イベント」メニュー項目の横にある+アイコンをクリックすると、ワークフローに組織イベントを挿入できます。+アイコンをクリックすると、図11-16に示すように、「組織イベント参照の追加」ダイアログ・ボックスが開き、現在利用可能なイベント・タスクのリストが表示されます。タスクを選択し、「ワークフローにイベントを追加します」をクリックすると、「組織イベント」メニューに新しいメニュー項目が作成され、そのワークフローのページが開きます。

図11-16 「組織イベント参照の追加」ダイアログ・ボックス

「図11-16 「組織イベント参照の追加」ダイアログ・ボックス」の説明

「組織イベント参照の追加」ダイアログ・ボックスには、新しい参照イベントの作成や既存の参照イベントの削除のための次のようなオプションもあります。

- 新規参照の作成: このボタンをクリックすると、図11-17に示す「参照イベントの作成」ダイアログ・ボックスが表示されます。

図11-17 「参照イベントの作成」ダイアログ・ボックス

「図11-17 「参照イベントの作成」ダイアログ・ボックス」の説明

- 選択された参照の編集: このボタンをクリックすると、図11-18に示す「参照イベントの編集」ダイアログ・ボックスが表示されます。

図11-18 「参照イベントの編集」ダイアログ・ボックス

「図11-18 「参照イベントの編集」ダイアログ・ボックス」の説明

- 選択された参照の削除: このボタンをクリックすると、図11-19に示す「参照イベントの削除」ダイアログ・ボックスが表示されます。

図11-19 「参照イベントの削除」ダイアログ・ボックス

「図11-19 「参照イベントの削除」ダイアログ・ボックス」の説明

- リソース・イベント: ワークフローに挿入されていて、リソースに対するイベントが発生したときに実行されるタスクのリストが提供されます。これらのイベントは、リソースに対する無効化または有効化イベントとして定義されます。「リソース・イベント」メニュー項目には、「リソースの有効化」および「リソースの無効化」というサブメニュー項目があります。「リソース・イベント」メニュー項目の横にある+アイコンをクリックすると、ワークフローにリソース・イベントを挿入できます。+アイコンをクリックすると、図11-20に示すように、「リソースの有効化」および「リソースの無効化」という2つのオプションを含む「リソース・イベント参照の追加」ダイアログ・ボックスが開きます。オプションを選択し、「ワークフローにイベントを追加します」をクリックすると、「リソース・イベント」メニューに新しいメニュー項目が作成され、そのワークフローのページが開きます。

図11-20 「リソース・イベント参照の追加」ダイアログ・ボックス

「図11-20 「リソース・イベント参照の追加」ダイアログ・ボックス」の説明

- フォーム・イベント: 挿入され、フォーム・フィールドまたは子表のイベントに基づいて実行するタスクのリストが提供されます。親プロセス・フォーム・フィールドのイベントの場合、タスクの名前には次の表記規則があります。

Field field_name Updated

子表に対するイベントの名前は、子表の名前とイベントのタイプ(挿入、更新、削除など)に基づきます。メニュー項目の横にある+アイコンをクリックすると、ワークフローにフォーム・イベントを挿入できます。+アイコンをクリックすると、図11-21に示すように、いくつかのフィールドを含む「フォーム・イベント参照の追加」ダイアログ・ボックスが開きます。

図11-21 「フォーム・イベント参照の追加」ダイアログ・ボックス

「図11-21 「フォーム・イベント参照の追加」ダイアログ・ボックス」の説明

「フォーム・イベント参照の追加」ダイアログ・ボックスでは、「フォーム・タイプ」フィールドで親フォームまたは子フォームを選択できます。「親フォーム」を選択すると、「子フォーム」セクションのフィールドは無効化されます。同様に、「子フォーム」を選択すると、「親フォーム」セクションのフィールドは無効化されます。「親フォーム」セクションで使用できるのは、「更新」操作のみです。「子フォーム」セクションでは、「挿入」、「更新」および「削除」操作を使用できます。これらの操作はイベントのトリガーとなります。各セクションには、親フォームのフォーム・フィールドに対応するフィールド、または子フォームの場合はフォーム名が含まれています。作成後に変更できるのは、子表のイベント・タスクのタスク名のみです。

注意:

親フォームのフィールド・イベント名は固定されており、タスク名フィールドは編集できません。名前は本来固定形式ですが、xlRichClient.propertiesファイルのglobal.workflow.startMarker.UpdatedFieldプロパティを更新してカスタマイズおよびローカライズできます。UIをカスタマイズする方法の詳細は、第28章「Oracle Identity Managerインタフェースのカスタマイズ」を参照してください。

- アテステーション: このメニュー項目はアテステーション・イベント用です。アテステーション・イベントには、ユーザー・アテステーションおよびリソース・アテステーションの2つのタイプがあります。既存のワークフローは他のサブワークフローと同様に変更できますが、新しいイベントをアテステーションに追加することはできません。

11.6.4 タスクおよびレスポンスの作成と管理

ワークフローは複数のタスクで構成できます。ここでは、タスクに関連する次のトピックについて説明します。

- 一般メニュー・オプション

- タスク・オプション

- レスポンス・オプション

- リンク・オプション

- タスクの構成

- レスポンスの構成

11.6.4.1 一般メニュー・オプション

デザイナ・ページを右クリックすると、タスクおよびレスポンスを作成する一般オプションのあるメニューが表示されます。一般メニュー・オプションには次のものがあります。

- 新規タスクの作成: デフォルトの名前で新しいタスクを作成します。このタスクは、さらに変更および構成できます。タスクはアイコンで表されます。

- 既存タスクの挿入: 現行サブワークフローに存在するタスク、およびプロビジョニング・ワークフローのメイン・ユーザー、組織、リソース、フォーム・イベントのタスクを除き、サブワークフロー間のすべて既存タスクのリストのある「既存タスク」ダイアログ・ボックスが表示されます。タスクを選択して現行ワークフローに挿入できます。

- レスポンスの作成: デフォルトのレスポンス・コードで新しいレスポンスを作成します。このレスポンスは、さらに変更および構成できます。レスポンスはアイコンで表されます。

タスク・アイコン、レスポンス・アイコン、およびタスクとレスポンス間のリンクを右クリックすると、様々なオプションを使用できます。

11.6.4.2 タスク・オプション

タスク・アイコンを右クリックすると、タスク関連の次のオプションのあるメニューが表示されます。

- レスポンスへのリンク: このオプションは、レスポンスへのタスクのリンクに使用します。このオプションを使用するには、最初にレスポンスを作成します。このメニュー項目を選択すると、タスク・アイコンを起点とするリンクが表示されます。このリンクはマウス・ポインタで拡張します。レスポンスをクリックすると、リンクの矢印部分がレスポンス上に配置され、タスクのレスポンスが作成されます。

- 取消しタスクへのリンク: このオプションは、取消しリレーションシップによって2つのタスクをリンクするために使用します。現在選択しているタスクの取消しタスクとしてタスクを追加する場合に使用します。これを行うには、次の手順を実行します。

1. 取消しタスクを追加するタスクを選択します。

2. タスク・アイコンを右クリックし、「取消しタスクへのリンク」メニュー項目を選択します。

3. 対象のタスク・アイコンを選択して、取消しタスクとして追加します。

注意:

「いいえ」の値を指定して「表示オプション」ツールバーの「取消しタスクの表示」オプションを選択すると、取消しリレーションシップの作成後、取消しタスクは非表示になります。取消しタスクを表示するには、「取消しタスクの表示」オプションに「はい」を選択します。

- リカバリ・タスクへのリンク: リカバリ・リレーションシップによって2つのタスクをリンクするために使用します。現在選択しているタスクのリカバリ・タスクとしてタスクを追加する場合に使用します。これを行うには、次の手順を実行します。

1. リカバリ・タスクを追加するタスクを選択します。

2. タスク・アイコンを右クリックし、「リカバリ・タスクへのリンク」メニュー項目を選択します。

3. 対象のタスクを選択して、リカバリ・タスクとして追加します。

注意:

「いいえ」の値を指定して「表示オプション」ツールバー・ボタンの「リカバリ・タスクの表示」オプションを選択すると、取消しリレーションシップの作成後、リカバリ・タスクは非表示になります。リカバリ・タスクを表示するには、「リカバリ・タスクの表示」オプションに「はい」を選択します。

- タスクおよびサブフローの削除: タスクとその下位要素をすべて削除するために使用します。そのタスクからのすべてのリンクとその下位にある子要素すべてが含まれます。同じタスクが複数のサブワークフローに存在するときに、サブワークフローフローの1つからタスクを削除すると、このタスクと同じ親タスク(レスポンス生成済タスクに現在削除したタスクが含まれているタスク)が使用されているすべてのサブワークフローからタスクが削除されます。
タスクまたは子を削除しても、システムからタスクは削除されず、ワークフローからのみ削除されます。システムからの永続的なタスクの削除は、「タスク・ライブラリ」から実行できます。デザイナ・ページからタスクを削除した場合でも、タスク定義は保持され、ワークフローからのみ削除されます。

11.6.4.3 レスポンス・オプション

レスポンス・アイコンを右クリックすると、レスポンス関連の次のオプションのあるメニューが表示されます。

- レスポンス生成済タスクの追加: 選択したレスポンスにレスポンス生成済タスクとしてタスクを追加する場合に使用します。これを行うには、次の手順を実行します。

1. レスポンス生成済タスクを作成します。

2. レスポンスを右クリックし、「レスポンス生成済タスクの追加」を選択します。リンクが作成されます。

3. タスクを選択します。タスク上のリンク場所とリレーションシップが作成されます。

- 削除: レスポンスの削除に使用します。このオプションを選択すると、確認ページが表示されます。削除を確認すると、レスポンスとその子がすべて削除されます。生成済タスクを含むレスポンスを削除する場合、これらのタスクは削除されますが、永続的には削除されません。タスクを削除しても、ワークフローからは削除されますが、永続的には削除されません。「タスク・ライブラリ」を使用すると、永続的にタスクを削除できます。

11.6.4.4 リンク・オプション

一部の要素間のリレーションシップは、リンクを右クリックして「削除」オプションをクリックすると削除できます。このオプションを使用できないリンクもあります。たとえば、リコンシリエーション・ワークフローでは、開始マーカーに接続されたデフォルト・タスクは削除できません。したがって、開始マーカーとデフォルト・タスク間のリレーションシップは削除できません。リレーションシップを削除できるリンクは、リレーションシップにマウスを移動すると折れた矢で強調表示されます。矢が強調表示されているときに、その矢を右クリックすると、「削除」オプションが表示されます。これによって、レスポンスとタスク間のリンクの削除、タスクへの別のレスポンスの割当て、なたはレスポンスへの別のタスクの割当てを実行する際、リンクを削除し、新たなリンクを作成する必要がなくなります。

11.6.4.5 タスクの構成

ワークフロー・デザイナで「タスクの詳細」ダイアログ・ボックスを使用してタスクを構成できます。図11-22に、このダイアログ・ボックスを示します。「タスクの詳細」ダイアログ・ボックスを開くには、デザイナ・ページのアイコンをダブルクリックします。

図11-22 「タスクの詳細」ダイアログ・ボックス

「図11-22 「タスクの詳細」ダイアログ・ボックス」の説明

ここでは、「タスクの詳細」ダイアログ・ボックスの次のタブについて説明します。

- 「一般」タブ

- 「自動化」タブ

- 「通知」タブ

- 「タスクの割当て」タブ

- 「依存先」タブ

- 「リソース・ステータス管理」タブ

「一般」タブ

図11-23に、「タスクの詳細」ダイアログ・ボックスの「一般」タブを示します。

図11-23 「一般」タブ

「図11-23 「一般」タブ」の説明

このタブでは、タスクの一般情報を指定します。

- タスク名: プロセス・タスクの名前です。このフィールドは、タスク名を変更できない場合を除いて編集可能です。たとえば、「フォーム・イベント」ページの親フィールド更新のイベント・タスクなどです。

- タスクの説明: プロセス・タスクの説明です。

- 構成の再試行: このセクションはプロビジョニング・ワークフローの場合にのみ表示され、次のオプションで構成されます。

- 再試行間隔: プロセス・タスクが「却下」ステータスである場合、これはOracle Identity Managerが「保留」ステータスでそのタスクの新規インスタンスを挿入するまでの分単位の時間間隔です。

- 再試行の制限: Oracle Identity Managerが却下されたタスクを再試行する回数です。

- プロパティ: 次のオプションがあります。

- 複数のインスタンスを許可: 現行プロセスに複数のプロセス・タスクを挿入できるかどうかを決定します。このチェック・ボックスを選択すると、プロセス・タスクの複数のインスタンスをプロセスに追加できます。この選択を解除した場合は、現行プロセスにプロセス・タスクを1つのみ追加できます。

- ワークフロー完了に必須: プロセスを完了するため、現行プロセス・タスクを完了する必要があるかどうかを決定します。このチェック・ボックスを選択すると、プロセス・タスクが「完了」ステータスではない場合、プロセスを完了できません。選択を解除した場合、プロセス・タスクのステータスはプロセスの完了ステータスに関与しません。

- リカバリの完了: リカバリ・タスクの完了時にタスクのステータスが「完了」に設定されている必要があるかどうかを決定します。

- 保留中の取消しを許可: プロセス・タスクのステータスが「保留」のときにプロセス・タスクを取り消せるかどうかを決定します。このチェック・ボックスを選択すると、プロセス・タスクが「保留」ステータスの場合にプロセス・タスクを取り消せます。選択を解除すると、プロセス・タスクが「保留」ステータスの場合はプロセス・タスクを取り消せません。

- 手動挿入不可: ユーザーが手動で現行タスクをワークフローに追加できるかどうかを決定します。このチェック・ボックスが選択されている場合、タスクを手動でワークフローに追加できません。選択を解除すると、ユーザーはタスクをプロセスに追加できます。

「自動化」タブ

図11-24に、「タスクの詳細」ダイアログ・ボックスの「自動化」タブを示します。

図11-24 「自動化」タブ

「図11-24 「自動化」タブ」の説明

「自動化」タブによって、イベント・ハンドラまたはプロセス・タスクの自動化に役立つタスクのあるアダプタをアタッチします。

このタブのオプションは2つに分けられます。「タスク自動化」セクションでは、現在アタッチされているアダプタがそのステータスとともに表示されます。「アダプタ・マッピング」セクションでは、アダプタ変数マッピングが表示されます。タブにはボタンがあり、アダプタまたはイベント・ハンドラの追加、アダプタの削除、およびアダプタがアタッチされる際の変数マッピングの編集を実行できます。

「アダプタの追加」をクリックすると、ダイアログ・ボックスが表示されます。このダイアログ・ボックスは、ハンドラ・タイプのセクションで構成され、各システム・イベント・ハンドラおよびアダプタ用のオプションがあります。各オプションを選択すると、「ハンドラ・タイプ」セクションの下に対応する説明が表示されます。リストの項目を選択して、「追加」をクリックします。

「アダプタ・マッピング」セクションには、アダプタに関連付けられている変数とマッピングが示されます。変数名とその変数がマップされているかどうかが表示されます。変数を選択すると、「変数マッピングの編集」ボタンが有効化されます。このボタンをクリックすると、「アダプタ・マッピング」ダイアログ・ボックスが開き、この変数をマップできる各種オプションがすべて表示されます。このダイアログ・ボックスには、次のオプションがあります。

- 変数名: このテキスト・ラベルには、UUIDなどのマッピングを設定するアダプタ変数の名前が表示されます。

- データ型: このテキスト・ラベルには、アダプタ変数のデータ型が表示されます。たとえば、文字列はUUID変数のデータ型です。

- マップ先: このリストには、「ITリソース」などアダプタ変数に設定できるマッピング・タイプが表示されます。
場所や連絡先にアダプタ変数をマップすると、Oracle Identity Managerでは、アダプタ変数のマッピング先の場所や連絡先の特定タイプの値のあるリストが有効になります。また、カスタム・プロセス・フォームにアダプタ変数をマップし、このフォームに子表がある場合、Oracle Identity Managerでは隣接するリストが有効化されます。このリストから、アダプタ変数のマッピング先となる子表を選択します。カスタム・プロセス・フォームの場所、連絡先または子表にアダプタ変数をマップしない場合、このリストは無効になります。

- 修飾子: このリストには、IT Assetなどの「マップ先」リストで選択したマッピングの修飾子が含まれます。

- 古い値: 最初に「修飾子」チェック・ボックスで選択した値にアダプタ変数をマップするかどうかを指定します。プロセス・タスクに関連付けられたプロセス・タスク・アダプタは、プロセス・フォームのフィールドの一部が変更されると、条件付きでトリガーされる場合があります。「古い値」オプションを選択しており、プロセス・タスクがConditionalとマークされている場合、アダプタに渡される値はフィールドの以前の値、あるいはマッピングが選択されている変数です。これはパスワードを受け入れるフィールドに使用できます。たとえば、パスワードの同一の値への設定を不可にする場合、古い値を比較に使用できます。カスタム・プロセス・フォームの子表に属するフィールドにアダプタ変数をマップしない場合、このチェック・ボックスは無効になります。

注意:

「修飾子」と「マップ先」リストでの選択に応じて、「アダプタ・マッピング」ダイアログ・ボックスに表示されるフィールドが異なる場合があります。

「通知」タブ

図11-25に、「タスクの詳細」ダイアログ・ボックスの「通知」タブを示します。

図11-25 「通知」タブ

「図11-25 「通知」タブ」の説明

このタブでは、現行プロセス・タスクが特定のステータスに達したときに生成される電子メール通知を指定します。タスクが達する各ステータスについて、個別に電子メール通知を生成できます。電子メール通知が有効でなくなった場合は、「通知」タブから削除できます。

注意:

Oracle Identity Managerでユーザーに電子メール通知を送信する場合、最初に「電子メール定義」フォームを使用して、電子メール・メッセージのテンプレートを作成する必要があります。

ダイアログ・ボックスには、「通知の追加」、「通知の削除」および「通知の編集」の3つのボタンがあります。これらのボタンを使用して通知の追加、削除および編集を実行し、通知タブを構成できます。

「タスクの割当て」タブ

図11-26に、「タスクの詳細」ダイアログ・ボックスの「タスクの割当て」タブを示します。

図11-26 「タスクの割当て」タブ

「図11-26 「タスクの割当て」タブ」の説明

このタブでは、現在のタスク用のタスク割当てルールを追加できます。ルール、割当てタイプ、タスクの割当て先、アダプタ、電子メール・テンプレートおよびエスカレーション時間を追加するためのオプションがあります。追加したルールは、優先度順にツリーに表示されます。ルールを右クリックしたときに表示されるショートカット・メニューには、ルールの優先度を変更したり、ルールを編集または削除するためのオプションが用意されています。

「タスク割当てルールの追加」をクリックすると、割当てに必要な各種入力フィールドのある「タスク割当てルール」ダイアログ・ボックスが表示されます(図11-27)。

図11-27 「タスク割当てルール」ダイアログ・ボックス

「図11-27 「タスク割当てルール」ダイアログ・ボックス」の説明

「タスク割当てルール」ダイアログ・ボックスには、次のオプションがあります。

- ルール名: ルールのリストのある参照フィールド。

- 割当てタイプ: 割当てタイプの次のオプションのある参照フィールド。

- 最小ロードのオブジェクト管理ユーザー

- 最小ロードのグループ・ユーザー

- リクエスト・ターゲット・ユーザーのマネージャ

- オブジェクト管理者

- ユーザー

- 最小ロードのオブジェクト認可ユーザー

- リクエスタのマネージャ

- グループ

- 割当て先: 参照フィールド。このフィールドの値は、「割当てタイプ」フィールドの選択に応じて異なります。したがって、「割当てタイプ」フィールドで選択した値が最初に検証されます。

- アダプタ: 使用可能なタスク割当てアダプタのリストを示す参照フィールド。

- 電子メール・テンプレート: 選択元となる電子メール・テンプレートのリストのあるダイアログ・ボックスを開く参照フィールド。

- 電子メールの送信: チェック・ボックス。選択した場合、現行プロセス・タスクの割当て後にOracle Identity Managerからユーザーまたはロールに電子メール通知が送信されます。

- エスカレーション時間(ms): ユーザーまたはロールがプロセス・タスクを完了する必要がある制限時間(ミリ秒)を指定するためのテキスト・フィールド。ユーザーまたはロールは、Oracle Identity Managerによってトリガーされるルールに関連付けられます。このプロセス・タスクが所定時間内に完了しない場合、Oracle Identity Managerによってタスクが別のユーザーまたはロールに再割当てされます。エスカレーション・ルールは、割当てタイプ・パラメータで定義された順序に従います。

割当てルールが作成されると、「タスクの詳細」ダイアログ・ボックスの「タスクの割当て」タブにツリー構造で表示されます。

「依存先」タブ

図11-28に、「タスクの詳細」ダイアログ・ボックスの「依存先」タブを示します。

図11-28 「タスクの詳細」ダイアログ・ボックス

「図11-28 「タスクの詳細」ダイアログ・ボックス」の説明

このタブでは、現行のタスクの依存先タスクを追加します。これはタスク間の依存性の設定に使用できます。このダイアログ・ボックスは、このリストからのタスクを追加および削除するボタンで構成されています。このリストのタスクは、現行タスクより先に実行する必要があります。

「先行タスクの追加」をクリックすると、「先行タスクの割当て」ダイアログ・ボックスが表示されます。このダイアログ・ボックスでは、タスクとその使用先である対応ワークフローが一覧表示されます。リストからタスクを選択して、「OK」をクリックします。

リストからタスクを選択して「先行タスクの削除」をクリックすると、リストからタスクが削除されます。

「リソース・ステータス管理」タブ

図11-29に、「タスクの詳細」ダイアログ・ボックスの「リソース・ステータス管理」タブを示します。

図11-29 「リソース・ステータス管理」タブ

「図11-29 「リソース・ステータス管理」タブ」の説明

このタブでは、プロセス・タスクのステータスと、その割当て先リソース・オブジェクトのプロビジョニング・ステータスの間のリンクを確立します。

リソース・オブジェクトには、ユーザーやアプリケーションへのリソースのプロビジョニングに使用するデータが含まれます。また、リソース・オブジェクトには事前定義されたプロビジョニング・ステータスがあります。プロビジョニング・ステータスは、プロビジョニングの開始後、リソース・オブジェクトのライフサイクル全体で変化します。プロビジョニング・ステータスは、リソース・オブジェクトがターゲットのユーザーや組織にプロビジョニングされる際、そのライフサイクルを通じて様々なステータスを示します。リソース・オブジェクトのプロビジョニング・ステータスは、関連するプロビジョニング・プロセスで構成されるタスクと同様、これらのステータスによって決定されます。このため、プロセス・タスクのステータスと、その割当て先リソース・オブジェクトのプロビジョニング・ステータスの間のリンクを指定する必要があります。

このタブには、タスク・ステータスとリソース・ステータスを表示する2つの列があります。マッピングが実行されなかった場合は、リソース・ステータス列のリストには、すべてのタスク・ステータスについて、値が「なし」と表示されます。「ステータス・マッピングの割当て」をクリックすると、「オブジェクト・ステータス」ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、選択元であり、タスク・ステータスのマッピング先であるリソース・ステータスのリストがあります。

「タスクの詳細」ダイアログ・ボックスのすべてのタブで変更を行った後、「適用」をクリックしてすべての変更をタスクに適用します。または、「取消」をクリックして操作を取り消します。

11.6.4.6 レスポンスの構成

レスポンス・アイコンをダブルクリックすると、レスポンス構成オプションのある「レスポンスの詳細」ダイアログ・ボックスが表示されます。図11-30に、「レスポンスの詳細」ダイアログ・ボックスを示します。

図11-30 「レスポンスの詳細」ダイアログ・ボックス

「図11-30 「レスポンスの詳細」ダイアログ・ボックス」の説明

「レスポンスの詳細」ダイアログ・ボックスには、次のフィールドがあります。

- レスポンス・コード: レスポンス・コードの指定に使用します。このレスポンスのコードは、タスクのレスポンスを一意に識別します。

- レスポンス・ステータス: この参照フィールドは、「取消」、「完了」、「却下」などのレスポンス・ステータスの選択に使用します。

- レスポンスの説明: レスポンスの説明に使用します。

レスポンス構成情報を指定した後、「レスポンスの更新」をクリックしてレスポンスの入力を適用します。デザイナ・ページでは、レスポンス・コードはレスポンス・アイコンに表示されます。

11.6.5 データ・フローの構成

データ・フローは、ユーザーが情報を入力せずにワークフロー・フォーム・フィールドにデータを転送する際に使用されます。これはプロビジョニングとリコンシリエーションの両方に使用されます。プロビジョニングの場合は、フォーム・データ・フローが使用されます。リコンシリエーションの場合は、リコンシリエーション・データ・フローが使用されます。

リコンシリエーション・データ・フローにおけるフローは、リソース・フィールドとワークフロー・フィールドの間ではなく、リコンシリエーション・フィールドからワークフロー・フィールドへと流れます。信頼できるリソースの場合、ワークフロー・フォーム・フィールドのかわりにユーザー属性が表示されます。

「リコンシリエーション・データ・フローの構成」ページを使用して、ターゲット・リソースまたは信頼できるソースのデータ要素とOracle Identity Manager内のリンク対象フィールド間のリレーションシップを定義します。

関連リソースの「リコンシリエーション・フィールド」セクションで定義したフィールドのみ、マッピングに使用可能です。このマッピングを使用して、ターゲット・システムからのリコンシリエーション・イベントによって提供された情報をOracle Identity Managerのどのフィールドに移入するかを決定します。また、ターゲット・リソースでは、キー・フィールドはこのタブ上に示されます。キー・フィールドとは、「リコンシリエーション・マネージャ」フォームの「プロセス一致ツリー」タブで生成される一致に対して、プロセス・フォームとリコンシリエーション・イベントの値が同一である必要があるフィールドです。

注意:

関連リソースの「リコンシリエーション・フィールド」タブで作成されたリコンシリエーション・フィールドのタイプは、「複数値」、「文字列」、「数値」、「日付」、「ITリソース」のいずれかになります。

リコンシリエーション・データ・フローの構成は、「リコンシリエーション・データ・フローの構成」ページで行います。リコンシリエーション・データ・フローのルールは次のとおりです。

- ワークフロー・フォーム・フィールドまたは子表をリコンシリエーション・フィールドにマップする場合、最初のものを削除しないかぎり、別のフィールドにはマップできません。

- 各リコンシリエーション・フィールドのマッピングは1度のみ可能です。

図11-31に、「リコンシリエーション・データ・フローの構成」ページを示します。

図11-31 「リコンシリエーション・データ・フローの構成」ページ

「図11-31 「リコンシリエーション・データ・フローの構成」ページ」の説明

リコンシリエーション・データ・フローの追加プロパティは、キー・リコンシリエーション・フィールドと呼ばれます。データ・フロー用にマップされた各ワークフロー・フィールドは、リコンシリエーションのキー・フィールドとして設定できます。つまり、このフィールドに対応するリコンシリエーション・ルールを満たす必要があります。これは、確立したデータ・フローの隣に無効のキー・アイコンの形式で表示されます。デフォルト設定では、各フィールドはキー・フィールドではありません。フィールドをキー・フィールドに設定するには、キー・アイコンをクリックします。キー・アイコンを再度クリックすると、キー・フィールドの設定が解除されます。

キー・アイコンをクリックするとフィールドがキー・フィールドに設定され、アイコンが有効なキー・アイコンに変化します。アイコンを再度クリックすると、フィールドのキー・フィールド設定が解除されます。

関連項目:

- ワークフロー・デザイナをカスタマイズする方法の詳細は、第28章「Oracle Identity Managerインタフェースのカスタマイズ」を参照してください。

- ワークフロー・デザイナで使用されるAPIメソッドの詳細は、第31章「APIの使用」を参照してください。

11.7 ITリソースの作成

ITリソースを作成するには、次の手順を実行します。

1. 拡張管理の「ようこそ」ページの「構成」で、「ITリソースの作成」をクリックします。
または、「構成」タブをクリックし、「リソース管理」をクリックして、「ITリソースの作成」を選択します。

2. 「ステップ1: ITリソース情報の入力」ページで、次の情報を入力します。

- ITリソース名: ITリソースの名前を入力します。

- ITリソース・タイプ: ITリソースのITリソース・タイプを選択します。
Remote ManagerタイプのITリソースを作成する場合は、「ITリソース・タイプ」リストから「Remote Manager」を選択します。

- Remote Manager: 特定のRemote ManagerにITリソースを関連付けるには、このリストからRemote Managerを選択します。Remote ManagerにITリソースを関連付けない場合は、このフィールドを空欄のままにします。

注意:

「ITリソース・タイプ」リストから「Remote Manager」を選択した場合は、「Remote Manager」リストからRemote Managerは選択できません。

3. 「続行」をクリックします。

4. 「ステップ2: ITリソース・パラメータ値の指定」ページで、ITリソースのパラメータ値を指定して、「続行」をクリックします。

5. ITリソースにロールを割り当て、そのロールのアクセス権限を設定する場合は、「ステップ3: ITリソースへのアクセス権限の設定」ページで次を実行します。
a.「ロールの割当て」をクリックします。

b.ITリソースに割り当てるロールの場合は、「割当て」および設定するアクセス権限を選択します。たとえば、ALL USERSロールを割り当て、このロールに「読取り」および「書込み」権限を設定するには、このロールについて「割当て」チェック・ボックスを選択するのみでなく、行の各チェック・ボックスを選択する必要があります。

c.「割当て」をクリックします。

6. ITリソースに割り当てられているロールのアクセス権限を変更する場合は、「ステップ3: ITリソースへのアクセス権限の設定」ページで次を実行します。

注意:

SYSTEM ADMINISTRATORSロールのアクセス権限は変更できません。アクセス権限を変更できるのは、ITリソースに割り当てた他のロールのみです。

a.「権限の更新」をクリックします。

b.このページに表示されるロールに対して特定のアクセス権限を設定するか削除するかに応じて、対応するチェック・ボックスを選択または選択解除します。

c.「更新」をクリックします。

7. ITリソースからロールの割当てを解除する場合は、「ステップ3: ITリソースへのアクセス権限の設定」ページで次を実行します。

注意:

SYSTEM ADMINISTRATORSロールの割当ては解除できません。割当てを解除できるのは、ITリソースに割り当てた他のロールのみです。

a.割当てを解除するロールの「割当て解除」チェック・ボックスを選択します。

b.「割当て解除」をクリックします。

8. 「続行」をクリックします。

9. 「ステップ4: ITリソースの詳細の確認」ページで、1ページ目、2ページ目、3ページ目で指定した情報を確認します。ページに入力したデータを変更する場合は、「戻る」をクリックしてそのページを戻り、必要な変更を行います。

10. 「続行」をクリックして、ITリソースの作成を続行します。

11. 「ステップ5: ITリソースの接続結果」ページに、ITリソース情報を使用して実行された接続テストの結果が表示されます。テストが成功した場合は、「作成」をクリックします。テストが失敗した場合は、次のステップのいずれかを実行できます。

- 「戻る」をクリックして前のページに戻り、ITリソースの作成情報を修正します。

- 「取消」をクリックして手順を中止し、ステップ1から始めます。

- 「続行」をクリックして、作成プロセスを進めます。後で問題を修正し、診断ダッシュボードを使用して接続テストに戻ることができます。

注意:

エラーが発生しなかった場合、ボタンのラベルは「続行」ではなく「作成」となります。

詳細は、16-11ページの「基本接続性のテスト」を参照してください。

12. 「終了」をクリックします。

11.8 ITリソースの管理

ITリソースを検索するには、次の手順を実行します。

1. 拡張管理の「ようこそ」ページの「構成」で、「ITリソースの管理」をクリックします。
または、「構成」タブをクリックし、「リソース管理」をクリックして、「ITリソースの管理」を選択します。

2. 「ITリソースの管理」ページで、次のいずれかの検索オプションを使用して、表示するITリソースを検索できます。

- ITリソース名: ITリソースの名前を入力して、「検索」をクリックします。

- ITリソース・タイプ: ITリソースのITリソース・タイプを選択して、「検索」をクリックします。

- 「検索」をクリックします。

「ITリソースの管理」ページで、検索基準を満たしているITリソースのリストが表示されます。

この時点から、ITリソースに関する次のいずれかの手順を実行できます。

- ITリソースの表示

- ITリソースの変更

- ITリソースの削除

11.8.1 ITリソースの表示

ITリソースを表示するには、次の手順を実行します。

1. 検索結果に表示されているITリソースのリストから、ITリソース名をクリックします。

注意:

ITリソースを編集する場合は、同じ行の編集アイコンをクリックします。

2. ITリソース・パラメータおよびその値を表示する場合は、ページの上部にあるリストから「詳細およびパラメータ」を選択します。同様に、ITリソースに割り当てられた管理ロールを表示する場合は、リストから「管理ロール」を選択します。

11.8.2 ITリソースの変更

ITリソースを変更するには、次の手順を実行します。

1. 検索結果に表示されているITリソースのリストから、変更するITリソースの編集アイコンをクリックします。

2. ITリソースのパラメータ値を変更する場合は、次の手順を実行します。

1. ページ上部にあるリストから「詳細およびパラメータ」を選択します。

2. パラメータ値で必要な変更を加えます。

3. 変更内容を保存するには、「更新」をクリックします。

3. ITリソースに割り当てられた管理ロールを変更する場合は、最初にページ上部のリストから「管理ロール」を選択して、必要な変更を加えます。

4. 管理ロールの割当てを解除するには、ロール名が表示されている行の「割当て解除」チェック・ボックスを選択して、「割当て解除」をクリックします。

注意:

- 「割当て解除」をクリックすると、選択した管理ロールが即時にITリソースから割当て解除されます。選択した管理ロールの割当て解除を行うかどうかの確認は求められません。

- SYSTEM ADMINISTRATORSロールの割当ては解除できません。

5. ITリソースに新規の管理ロールを割り当てる場合は、次の手順を実行します。
a.「ロールの割当て」をクリックします。

b.ITリソースに割り当てる管理ロールの場合は、アクセス権限チェック・ボックスと「割当て」チェック・ボックスを選択します。

c.「割当て」をクリックします。

6. 現在ITリソースに割り当てられている管理ロールのアクセス権限を変更するには、次の手順を実行します。
a.「権限の更新」をクリックします。

b.実行する変更内容に応じて、表のチェック・ボックスを選択または選択を解除します。

注意:

SYSTEM ADMINISTRATORSロールのアクセス権限は変更できません。

c.変更を保存するには、「更新」をクリックします。

11.8.3 ITリソースの削除

ITリソースを削除するには、次の手順を実行します。

1. 検索結果に表示されているITリソースのリストから、削除するITリソースの「削除」アイコンをクリックします。

2. ITリソースの削除を確認するには、「削除の確認」をクリックします。

11.9 Design Consoleを使用したリソースの管理

この章では、Design Consoleでのリソース管理について説明します。この章には次の項目があります。

- リソース管理の概要

- 「ITリソース・タイプ定義」フォーム

- 「ルール・デザイナ」フォーム

- 「リソース・オブジェクト」フォーム

- サービス・アカウントの管理

11.9.1 リソース管理の概要

「リソース管理」フォルダには、Oracle Identity Managerリソースを管理するためのツールが用意されています。このフォルダには、次のフォームが含まれます。

- ITリソース・タイプ定義: このフォームは、「ITリソース」フォームに参照値として表示されるリソース・タイプを作成するために使用します。

- ルール・デザイナ: このフォームは、ルールを作成するために使用します。ここで作成するルールは、パスワード・ポリシーの選択、自動ロール・メンバーシップ、プロビジョニング・プロセスの選択、タスクの割当ておよびアダプタの事前移入に適用できます。

- リソース・オブジェクト: このフォームは、リソース・オブジェクトを作成および管理するために使用します。これらのオブジェクトは、ユーザーや組織に対してどのリソースを利用可能にするかを表します。

関連項目:

アダプタおよびアダプタ・タスクの詳細は、第2章「アダプタの開発」および第3章「アダプタの使用」を参照してください。

11.9.2 「ITリソース・タイプ定義」フォーム

「ITリソース・タイプ定義」フォームは「リソース管理」フォルダにあります。「ITリソース・タイプ定義」フォームを使用すると、AD、Microsoft Exchange、SolarisなどのITリソース・タイプを分類できます。Oracle Identity Managerでは、ユーザーや組織にプロビジョニングされるリソース・オブジェクトにリソース・タイプが関連付けられます。

このフォームでITリソース・タイプを定義すると、ITリソースを定義するときにそのリソース・タイプを選択できるようになります。タイプは、拡張管理の「ITリソースの作成」および「ITリソースの管理」ページに表示されます。

ITリソース・タイプとは、それらを参照するITリソース定義用のテンプレートのことです。ITリソース定義でITリソース・タイプを参照すると、そのリソースはITリソース・タイプのすべてのパラメータと値を継承します。ITリソース・タイプは、Solarisなどの全般的なIT分類です。リソースは、Solaris for Statewide Investmentsなどのタイプのインスタンスです。すべてのITリソース定義にITリソース・タイプを関連付ける必要があります。

図11-32に、「ITリソース・タイプ定義」フォームを示します。

図11-32 「ITリソース・タイプ定義」フォーム

「図11-32 「ITリソース・タイプ定義」フォーム」の説明

表11-8に、「ITリソース・タイプ定義」フォームのフィールドを示します。

表11-8 「ITリソース・タイプ定義」フォームのフィールド

フィールド名

説明

サーバー・タイプ

ITリソース・タイプの名前。

複数挿入

このITリソース・タイプを複数のITリソースで参照できるようにするかどうかを指定します。

注意:

ITリソースが外部リソースにアクセスする必要があるのに、ネットワークを使用してアクセスできない場合は、Remote Managerへの関連付けが必要です。詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのRemote Managerのインストールおよび構成に関する説明を参照してください。

11.9.2.1 ITリソース用のテンプレート(リソース・タイプ)の定義

ITリソース・タイプを定義するには、次の手順を実行します。

1. サーバー・タイプ・フィールドに、SolarisなどのITリソース・タイプの名前を入力します。

2. ITリソース・タイプを複数のITリソースに対して有効にするには、「複数挿入」を選択します。

3. 「保存」をクリックします。
ITリソース・タイプが定義されます。これは、拡張管理の「ITリソースの作成」ページでITリソースを定義するときに選択できます。

11.9.2.2 「ITリソース・タイプ定義」フォームのタブ

新しいITリソース・タイプに関する基本情報を保存した後、問合せでITリソース・タイプが返されると、「ITリソース・タイプ定義」フォームの下部リージョンのタブにあるフィールドが有効化されます。

「ITリソース・タイプ定義」フォームには、次のタブがあります。

- ITリソース・タイプ・パラメータ・タブ

- 「ITリソース」タブ

11.9.2.2.1 ITリソース・タイプ・パラメータ・タブ

ITリソース・タイプ・パラメータ・タブでは、図11-32に示すように、ITリソース・タイプのすべての接続パラメータのデフォルト値と暗号化設定を指定します。パスワードや暗号化されたフィールドにはデフォルト値を指定しないことをお薦めします。このタブのパラメータと値は、このITリソース・タイプを参照するすべてのITリソースによって継承されます。

新しいパラメータを定義すると、そのパラメータと値および暗号化設定が現在のITリソース・タイプに追加され、さらにこのITリソース・タイプを参照する新規または既存のITリソース定義にも追加されます。該当するリソース定義については、拡張管理の「ITリソースの作成」および「ITリソースの管理」ページの「詳細およびパラメータ」セクションに新しいパラメータが表示されます。

注意:

ITリソースごとにこれらのパラメータの値と暗号化設定をカスタマイズできます。

ITリソース・タイプへのパラメータの追加

ITリソース・タイプにパラメータを追加するには、次の手順を実行します。

1. 「追加」をクリックします。
ITリソース・タイプ・パラメータ・タブに新しい行が表示されます。

2. 「フィールド名」フィールドに、パラメータの名前を入力します。

3. デフォルトのフィールド値フィールドに、デフォルト値を入力します。
この値は、このITリソース・タイプを参照するすべてのITリソースによって継承されます。

4. 「暗号化」オプションを選択または選択解除します。
このチェック・ボックスによって、このパラメータの値がマスクされるかどうか、つまりフォーム・フィールドでアスタリスク(*)によって表されるかどうかが決まります。

パラメータの値がマスクされるようにする場合は、このチェック・ボックスを選択します。

5. 「保存」をクリックします。

ITリソース・タイプからのパラメータの削除

ITリソース・タイプからパラメータを削除するには、次の手順を実行します。

1. 削除するパラメータを選択します。

2. 「削除」をクリックします。
パラメータとそれに関連する値がITリソース・タイプから削除され、さらにこのタイプを参照するITリソース定義からも削除されます。

11.9.2.2.2 「ITリソース」タブ

このタブには、選択したITリソース・タイプを参照するITリソースが表示されます。このタブのすべてのITリソースで同じパラメータが共有されますが、値はITリソースごとに一意にすることができます。

11.9.2.3 ITリソース・タイプ定義表

ITリソース・タイプ定義表には、次の情報が表示されます。

フィールド名

説明

サーバー・タイプ

「ITリソース・タイプ定義」フォームで定義されたリソース・アセット・タイプの名前。

複数挿入

このITリソース定義の複数のインスタンスを作成できるかどうかを示します。

11.9.3 「ルール・デザイナ」フォーム

ルールとは、条件との照合およびそれに基づいたアクションの実行にOracle Identity Managerで使用される基準のことです。ルールは、特定のリソース・オブジェクトまたはプロセスに割り当てることも、すべてのリソース・オブジェクトまたはプロセスに適用することもできます。

次に、ルールの使用例を示します。

- アプリケーション・タイプのリソース・オブジェクトに適用するパスワード・ポリシーを決定します。

- ユーザーがロールに自動的に追加されるようにします。

- リソース・オブジェクトがリクエストに割り当てられた後、そのリソース・オブジェクトに適用するプロビジョニング・プロセスを指定します。

- プロセス・タスクをユーザーに割り当てる方法を決定します。

- 特定のフォーム・フィールドに対して実行される事前移入アダプタを指定します。

関連項目:

事前移入アダプタの詳細は、Oracle Identity Manager Toolsリファレンスを参照してください。

図11-33に示す「ルール・デザイナ」フォームは「リソース管理」フォルダにあります。このフォームでは、リソースで使用されるルールを作成および管理します。

図11-33 「ルール・デザイナ」フォーム

「図11-33 「ルール・デザイナ」フォーム」の説明

ルールには、次の4つのタイプがあります。

一般: Oracle Identity Managerでユーザーがロールに自動的に追加されたり、リソース・オブジェクトに割り当てられるパスワード・ポリシーが決定されるようにします。

プロセス決定: リソース・オブジェクト用のプロビジョニング・プロセスを決定します。

タスクの割当て: プロセス・タスクに割り当てられるユーザーまたはロールを指定します。

事前移入: フォーム・フィールドに対して実行される事前移入アダプタを決定します。

ルールには、次の項目が含まれます。

ルール要素: 属性、演算子および値で構成されます。図11-33では、属性は「ユーザー・ログイン」、演算子は==、値はXELSYSADMです。

ネスト・ルール: あるルールを論理的に別のルール内に配置する必要がある場合、内側のルールはネスト・ルールと呼ばれます。図11-33では、「Rule to Prevent Solaris Access」が「Rule for Solaris」内にネストされています。

演算: ルールに複数のルール要素やネスト・ルールが含まれている場合、演算によって構成要素間のリレーションシップが示されます。図11-33では、AND演算を選択した場合、「ユーザー・ログイン==XELSYSADM」ルール要素と「Rule to Prevent Solaris Access」ネスト・ルールの両方がtrueでないと、ルールは成功とみなされません。

表11-9に、「ルール・デザイナ」フォームのフィールドを示します。

表11-9 「ルール・デザイナ」フォームのフィールド

フィールド名

説明

名前

ルールの名前。

AND/OR

これらのオプションでは、ルールの演算を指定します。

外側のルール要素およびネスト・ルールがすべてtrueの場合にのみ、ルールを成功とみなすには、「AND」を選択します。外側のルール要素またはネスト・ルールのいずれかがtrueの場合に、ルールを成功とみなすには、「OR」を選択します。

重要: これらのオプションは、ネスト・ルールの内側にあるルール要素の演算には反映されません。図11-33では、「AND」演算は「ユーザー・ログイン == XELSYSADM」ルール要素と「Rule to Prevent Solaris Access」ネスト・ルールに適用されます。ただし、この演算は、「Rule to Prevent Solaris Access」ルールの内側にある「オブジェクト名 != Solaris」ルール要素には影響しません。

タイプ

ルールの分類ステータス。ルールは次の4つのタイプのいずれかに属することができます。

- 一般: Oracle Identity Managerでユーザーがロールに自動的に追加されたり、リソース・オブジェクトに割り当てられるパスワード・ポリシーが決定されるようにします。

- プロセス決定: リソース・オブジェクト用のプロビジョニング・プロセスを決定します。

- タスクの割当て: プロセス・タスクに割り当てられるユーザーまたはロールを決定します。

- 事前移入: フォーム・フィールドに使用される事前移入アダプタを決定します。

サブタイプ

「プロセス決定」、「タスクの割当て」または「事前移入」タイプのルールは、次の4つのサブタイプのいずれかに分類できます。

- 組織プロビジョニング: ルールをプロビジョニング・ルールとして分類します。プロセスのプロビジョニング、タスクの割当てまたは事前移入アダプタの適用の対象となる組織を決定します。

- ユーザー・プロビジョニング: ルールをプロビジョニング・ルールとして分類します。プロセスのプロビジョニング、タスクの割当てまたは事前移入アダプタの適用の対象となるユーザーを決定します。

「タスクの割当て」または「事前移入」ルール・タイプの場合、承認項目および標準承認項目はサブタイプ・ボックスに表示されません。「一般」ルール・タイプの場合、サブタイプ・ボックスはグレー表示になります。

オブジェクト

このルールが割り当てられるリソース・オブジェクト。

すべてのオブジェクト

選択した場合、ルールはすべてのリソース・オブジェクトに割り当てることができます。

プロセス

このルールが割り当てられるプロセス。

すべてのプロセス

選択した場合、ルールはすべてのプロセスに割り当てることができます。

説明

ルールに関する説明。

11.9.3.1 ルールの作成

ルールを作成する手順は、次のとおりです。

注意:

次の手順では、ネスト・ルールの内側にあるルール要素にはオプションは適用されません。たとえば、図11-33では、「AND」演算は「ユーザー・ログイン == XELSYSADM」ルール要素と「Rule to Prevent Solaris Access」ネスト・ルールに適用されます。ただし、この演算は、「Rule to Prevent Solaris Access」ルールの内側にある「オブジェクト名 != Solaris」ルール要素には影響しません。

1. 「ルール・デザイナ」フォームを開きます。

2. 「名前」フィールドに、ルールの名前を入力します。

3. ルール要素またはネスト・ルールがすべてtrueの場合にのみ、ルールを成功とみなすには、「AND」オプションを選択します。
ルール要素またはネスト・ルールのいずれかがtrueの場合に、ルールを成功とみなすには、「OR」オプションを選択します。

4. 「タイプ」ボックスをクリックし、カスタム・メニューでルールに関連付ける分類ステータス(「一般」、「プロセス決定」、「タスクの割当て」または「事前移入」)を選択します。
「プロセス決定」の場合、「サブタイプ」をクリックし、ルールに関連付ける分類ステータス(「組織プロビジョニング」、「ユーザー・プロビジョニング」、「承認」または「標準承認」)を選択します。

「タスクの割当て」または「事前移入」の場合、「サブタイプ」をクリックし、ルールに関連付ける分類ステータス(「組織プロビジョニング」または「ユーザー・プロビジョニング」)を選択します。

「タイプ」ボックスから「一般」を選択した場合、手順7に進みます。

5. ルールを1つのリソース・オブジェクトに関連付けるには、「オブジェクト」参照フィールドをダブルクリックし、「参照」ダイアログ・ボックスでリソース・オブジェクトを選択します。

ルールをすべてのリソース・オブジェクトに対して有効にする場合は、すべてのオブジェクト・オプションを選択します。

6. ルールを1つのプロセスに割り当てるには、「プロセス」参照フィールドをダブルクリックし、「参照」ダイアログ・ボックスでルールに関連付けるプロセスを選択します。

注意:

この「参照」ウィンドウには、手順5で選択したリソース・オブジェクトに関連付けられているプロセスのみが表示されます。

ルールをすべてのプロセスに対して有効にする場合は、すべてのプロセス・オプションを選択します。

注意:

手順5でリソース・オブジェクトを選択するときにすべてのプロセス・オプションを選択した場合、選択したリソース・オブジェクトに関連付けられているすべてのプロセスに対してルールが有効になります。

7. 「説明」フィールドに、ルールに関する説明を入力します。

8. 「保存」をクリックします。

11.9.3.2 「ルール・デザイナ」フォームのタブ

「ルール・デザイナ」フォームには、次のタブがあります。

- ルール要素タブ

- 使用方法タブ

これらのタブについては、次の各項でそれぞれ説明します。

11.9.3.2.1 ルール要素タブ

このタブでは、ルールの要素やネスト・ルールを作成および管理できます。たとえば、図11-34の「Rule for Solaris」には、「ユーザー・ログイン==XELSYSADM」ルール要素が含まれています。また、「Rule to Prevent Solaris Access」がネストされています。図11-34に、「ルール・デザイナ」フォームのルール要素タブを示します。

図11-34 「ルール・デザイナ」フォームのルール要素タブ

「図11-34 「ルール・デザイナ」フォームのルール要素タブ」の説明

図11-34のルールは、Solarisリソース・オブジェクトのプロビジョニング・プロセスに適用できます。このリソース・オブジェクトがリクエストに割り当てられると、ルールがトリガーされます。ターゲット・ユーザーのログインがXELSYSADMであり、リソース・オブジェクトの名前がSolarisである場合、Solarisリソース・オブジェクトがユーザーにプロビジョニングされます。それ以外の場合、ユーザーはSolarisにアクセスできません。

ルール要素またはネスト・ルールが無効になったら、ルールから削除してください。

以降の各手順では、次の方法について説明します。

- ルールへのルール要素の追加

- ルールへのネスト・ルールの追加

- ルールからのルール要素またはネスト・ルールの削除

ルールへのルール要素の追加

ルールにルール要素を追加するには、次の手順を実行します。

1. 「要素の追加」をクリックします。
ルール要素の編集ダイアログ・ボックスが表示されます。

ルール要素の編集ダイアログ・ボックスにある各ボックスのカスタム・メニューには、「ルール・デザイナ」フォームの「タイプ」およびサブタイプ・ボックスの項目が反映されます。

表11-10に、ルール要素の編集ダイアログ・ボックスのデータ・フィールドを示します。

表11-10 ルール要素の編集ダイアログ・ボックスのフィールド

名前

説明

属性ソース

このボックスでは、属性のソースを選択します。たとえば、属性として「オブジェクト名」を選択する場合は、属性ソースとして「オブジェクト情報」を選択します。

ユーザー定義フォーム

このフィールドには、隣接するボックスに表示される属性ソースに関連付けられているユーザー作成フォームが表示されます。

注意: 属性ソース・ボックスに「プロセス・データ」が表示されない場合、ユーザー定義フォーム・フィールドは空になります。

属性

このボックスでは、ルールの属性を選択します。

操作

このボックスでは、属性と属性値のリレーションシップ(==または!=)を選択します。

属性値

このフィールドには、属性の値を入力します。

注意: 属性の値では大/小文字が区別されます。

2. 図11-35に示すように、作成するルールのパラメータを設定します。

図11-35 ルール要素の編集ウィンドウ

「図11-35 ルール要素の編集ウィンドウ」の説明

この例では、ターゲット・ユーザーのログインIDがXELSYSADMの場合に、ルール要素はtrueになります。それ以外の場合はfalseです。

関連項目:

パラメータの詳細は、「ルール要素タブ」を参照してください。

3. ルール要素の編集ダイアログ・ボックスのツールバーで、「保存」をクリックしてから、「閉じる」をクリックします。
ルール要素が「ルール・デザイナ」フォームのルール要素タブに表示されます。

4. メイン画面のツールバーで、「保存」をクリックします。
ルール要素がルールに追加されます。

ルールへのネスト・ルールの追加

ルールの中にルールをネストするには、次の手順を実行します。

注意:

次の手順では、親ルールと同じタイプおよびサブタイプのルールのみがルールの選択ウィンドウに表示されます。

1. 「ルールの追加」をクリックします。
ルールの選択ダイアログ・ボックスが表示されます。

2. ネスト・ルールを選択し、「保存」をクリックします。

3. 「閉じる」をクリックします。
ネスト・ルールが「ルール・デザイナ」フォームのルール要素タブに表示されます。

4. メイン画面のツールバーで、「保存」をクリックします。
ネスト・ルールがルールに追加されます。

ルールからのルール要素またはネスト・ルールの削除

ルール要素またはネスト・ルールを削除するには、次の手順を実行します。

1. 削除対象のルール要素またはネスト・ルールを選択します。

2. 「削除」をクリックします。
ルール要素またはネスト・ルールがルールから削除されます。

11.9.3.2.2 使用方法タブ

このタブは「ルール・デザイナ」フォームに表示されます。使用方法タブの情報には、ルールの分類タイプが反映されます。たとえば、ルール・タイプが事前移入の場合は、このルールが適用されるユーザー作成フィールドがこのタブに表示されます。

図11-36に、使用方法タブを示します。

図11-36 「ルール・デザイナ」フォームの使用方法タブ

「図11-36 「ルール・デザイナ」フォームの使用方法タブ」の説明

このタブには、次の項目が表示されます。

- ルールに関連付けられているパスワード・ポリシー、リソース・オブジェクト、プロセス、プロセス・タスク、自動ロール・メンバーシップ基準、ロール、Oracle Identity Managerフォーム・フィールドおよび事前移入アダプタ。

- ルールの分類タイプを表す1文字のコード(P=プロビジョニング)。
このコードは、プロセス決定ルールの場合にのみ表示されます。

- ルールの優先度値。

11.9.3.3 ルール・デザイナ表

図11-37に示すルール・デザイナ表には、「ルール・デザイナ」フォームで定義された使用可能なすべてのルールが表示されます。

図11-37 ルール・デザイナ表

「図11-37 ルール・デザイナ表」の説明

表11-11に、ルール・デザイナ表に表示される情報を示します。

表11-11 ルール・デザイナ表の情報

フィールド名

説明

ルール名

ルールの名前。

ルール・タイプ

ルールは次の4つのタイプのいずれかに属することができます。

- 一般: Oracle Identity Managerでユーザーがロールに自動的に追加されたり、リソース・オブジェクトに割り当てられるパスワード・ポリシーが決定されるようにします。

- プロセス決定: リソース・オブジェクト用のプロビジョニング・プロセスを決定します。

- タスクの割当て: プロセス・タスクに割り当てられるユーザーまたはロール(あるいはその両方)を決定します。

- 事前移入: 特定のフォーム・フィールドに対して実行される事前移入アダプタを決定します。

ルール・サブタイプ

「プロセス決定」、「タスクの割当て」または「事前移入」タイプのルールは、次の4つのサブタイプのいずれかに分類できます。

- 組織プロビジョニング: ルールをプロビジョニング・ルールとして分類します。
このサブタイプを使用して、プロセスのプロビジョニング、タスクの割当てまたは事前移入アダプタの適用の対象となる組織を決定します。

- ユーザー・プロビジョニング: ルールをプロビジョニング・ルールとして分類します。
このサブタイプを使用して、プロセスのプロビジョニング、タスクの割当てまたは事前移入アダプタの適用の対象となるユーザーを決定します。

ルールの演算子

属性と属性値のリレーションシップは、==または!=演算子で表されます。

説明

ルールに関する説明。

最終更新

ルールが最後に更新された日付。

11.9.4 「リソース・オブジェクト」フォーム

「リソース・オブジェクト」フォームは、「リソース管理」フォルダ内にあります。このフォームでは、組織またはユーザーに対してプロビジョニングするOracle Identity Managerリソースのリソース・オブジェクトを作成および管理します。リソース・オブジェクト定義とは、リソースをプロビジョニングするためのテンプレートのことです。ただし、リソースのプロビジョニングは、リソース・オブジェクトにリンクするプロビジョニング・プロセスの設計によって異なります。

表11-12に、「リソース・オブジェクト」フォームのデータ・フィールドを示します。

表11-12 「リソース・オブジェクト」フォームのフィールド

フィールド名

説明

表名

このリソースに関連付けられているリソース・オブジェクト・フォームの名前。(実際には、フォームを表す表の名前です。)

ユーザー用リクエスト/組織用リクエスト

ユーザー用または組織用にリソース・オブジェクトをリクエストするかどうかを決定するオプション。

ユーザー用にリソース・オブジェクトをリクエストするには、「ユーザー用リクエスト」を選択します。組織用にリソース・オブジェクトをリクエストするには、「組織用リクエスト」を選択します。

タイプ

リソース・オブジェクトの分類ステータス。リソース・オブジェクトは次の3つのタイプのいずれかに属することができます。

- アプリケーション: このリソース・オブジェクトはアプリケーションとして分類されます。

- 一般: ビジネス関連のプロセスが含まれています。

- システム: このタイプのリソース・オブジェクトは、Oracle Identity Managerで内部的に使用されます。
システム・リソース・オブジェクトを変更する場合は、事前にOracleに相談してください。

複数を許可

リソースがユーザーまたは組織に複数回プロビジョニングされるようにするかどうかを指定します。選択した場合、それぞれのユーザーまたは組織にリソース・オブジェクトを複数回プロビジョニングできるようになります。

セルフ・リクエストを許可

このチェック・ボックスを選択すると、ユーザーおよびシステム管理者は自分自身のためにリソース・オブジェクトをリクエストできるようになります。

注意: セルフ・リクエストが許可されたリソースは、さらにリクエスト・テンプレート・レベルでリクエストできます。

すべて許可

このチェック・ボックスを選択すると、すべてのOracleユーザー用にリソース・オブジェクトをリクエストできるようになります。この設定は、ユーザーが属する組織がユーザー用のリソース・リクエストを許可しているかどうかよりも優先されます。

オブジェクト管理者のみによるプロビジョニング

このチェック・ボックスでは、どのユーザーにこのリソースのプロビジョニングを許可するかを決定します。

このチェック・ボックスを選択した場合、オブジェクト管理者タブに表示されているロールのメンバーであるユーザーにのみ、このリソース・オブジェクトのプロビジョニングが許可されます(直接プロビジョニングするか、リクエストからプロビジョニング・プロセスを手動で開始できます)。

このチェック・ボックスを選択解除した場合、すべてのユーザーがこのリソースを直接プロビジョニングできます。

リコンシリエーション順序

このチェック・ボックスを選択した場合、リコンシリエーション・イベントは作成順に処理されます。

次に、この機能の使用例を示します。

ユーザーJohn DoeのOIMユーザー・リソース・オブジェクトに対するリコンシリエーション・イベントが2つあると仮定します。1つ目のリコンシリエーション・イベント(E1)のデータは次のとおりです。

- ログイン: testuser1

- 名: John

- 姓: Doe

- 組織: Xellerateユーザー

- タイプ: エンドユーザー

- ロール: フルタイム

2つ目のリコンシリエーション・イベント(E2)のデータは次のとおりです。

- ログイン: testuser1

- 名: John1

- 姓: Doe1

- 組織: Xellerateユーザー

- タイプ: エンドユーザー

- ロール: フルタイム

1つ目と2つ目のイベント間で、ユーザーの名と姓が変更されています。

信頼できるソースのリコンシリエーション実行時に、イベントが作成順に処理される場合は、名と姓の変更はOracle Identity Managerに正しくリコンサイルされます。ただし、2つ目のイベントが1つ目のイベントの前に処理される場合は、リコンシリエーション実行の終了時にターゲット・システムのデータとOracle Identity Managerのデータが一致しなくなります。この不整合は監査表に反映され、信頼できるソースからの別のイベントがこのユーザーに対して作成されるまで残ります。

リコンシリエーション順序オプションを有効にした場合、同じエンティティ(たとえば、同じユーザーまたは同じプロセス・フォーム)のイベントが作成順に処理されるようにすることができます。

信頼できるソース

信頼できるユーザー・リコンシリエーションにリソース・オブジェクトを使用する場合は、このチェック・ボックスを選択します。

デフォルトでは、このチェック・ボックスは選択されていません。デフォルトでは、Xellerateユーザー・リソース・オブジェクトの場合にのみ選択されています。

11.9.4.1 リソース・オブジェクトの作成

リソース・オブジェクトを作成するには、次の手順を実行します。

1. 「リソース・オブジェクト」フォームを開きます。

2. 「名前」フィールドに、リソース・オブジェクトの名前を入力します。

3. ユーザー用にリソース・オブジェクトをリクエストするには、「ユーザー用リクエスト」を選択します。
組織用にリソース・オブジェクトをリクエストするには、「組織用リクエスト」を選択します。

注意:

リソース・オブジェクトは、1人のユーザーまたは1つの組織を対象としてリクエストできます。

4. 「タイプ」参照フィールドをダブルクリックします。
「参照」ダイアログ・ボックスが表示されたら、リソース・オブジェクトに関連付ける分類ステータス(「アプリケーション」、「一般」または「システム」)を選択します。

5. ユーザー用または組織用にリソース・オブジェクトの複数のインスタンスをリクエストできるようにする場合は、「複数を許可」オプションを選択します。それ以外の場合は、手順6に進みます。

6. 自分自身のためにリソース・オブジェクトをリクエストできるようにする場合は、「セルフ・リクエストを許可」オプションを選択します。それ以外の場合は、手順7に進みます。

7. ユーザーが属する組織にリソース・オブジェクトが割り当てられているかどうかに関係なく、すべてのユーザーに対してリソース・オブジェクトをプロビジョニングするには、「すべて許可」チェック・ボックスを選択します。それ以外の場合は、手順8に進みます。

8. 信頼できるソースのユーザー・リコンシリエーションにリソース・オブジェクトを使用する場合は、信頼できるソース・オプションを選択する必要があります。それ以外の場合は、手順9に進みます。

注意:

リクエストとリソース・プロファイルのプロビジョニングでリソース・オブジェクトを無効にするには、「セルフ・リクエストを許可」および「すべて許可」チェック・ボックスを選択解除する必要があります。

9. 「リソース・オブジェクト」フォームのオブジェクト管理者タブに表示されているロールにのみ、このリソース・オブジェクトのプロビジョニングを許可するには、オブジェクト管理者のみによるプロビジョニング・オプションを選択します。これは、直接プロビジョニングされるか、またはリクエストへの割当てを通じてプロビジョニングされるリソース・オブジェクトに適用されます。それ以外の場合は、手順10に進みます。

10. 「保存」をクリックします。

リソース・オブジェクトが作成されます。

11.9.4.2 「リソース・オブジェクト」フォームのタブ

「リソース・オブジェクト」フォームを開始し、リソース・オブジェクトを作成すると、このフォームの各タブが使用可能になります。

「リソース・オブジェクト」フォームには、次のタブがあります。

- 「依存先」タブ

- オブジェクト認可者タブ

- 「プロセス決定ルール」タブ

- イベント・ハンドラ/アダプタ・タブ

- 「リソース監査目的」

- ステータス定義タブ

- 「管理者」タブ

- パスワード・ポリシー・ルール・タブ

- ユーザー定義フィールド・タブ

- 「プロセス」タブ

- オブジェクト・リコンシリエーション・タブ

11.9.4.2.1 「依存先」タブ

このタブでは、Oracle Identity Managerで現在のリソース・オブジェクトをプロビジョニングする前にプロビジョニングする必要があるリソース・オブジェクトを選択できます。「依存先」タブに表示されるリソース・オブジェクトを事前にプロビジョニングしなくても、現在のリソース・オブジェクトをプロビジョニングできる場合は、タブからそのリソース・オブジェクトを削除してください。

「依存先」タブには、次のトピックが関係します。

- 現在のリソース・オブジェクトの依存先リソース・オブジェクトの選択

- 依存先リソース・オブジェクトの削除

依存先リソース・オブジェクトの選択

依存先リソース・オブジェクトを選択するには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. リソース・オブジェクトを選択します。

3. 「OK」をクリックします。
依存先リソース・オブジェクトが選択されます。

依存先リソース・オブジェクトの削除

依存先リソース・オブジェクトを削除するには、次の手順を実行します。

1. 削除対象の依存先リソース・オブジェクトを選択します。

2. 「削除」をクリックします。
リソース・オブジェクトが「依存先」タブから削除されます。

11.9.4.2.2 オブジェクト認可者タブ

このタブでは、このリソースのオブジェクト認可者となるロールを指定できます。オブジェクト認可者ロールのメンバーであるユーザーをタスクの割当て対象として選択できます。

オブジェクト認可者タブに表示されるロールには、それぞれ優先度値が割り当てられます。優先度値は、ロールに割り当てられたタスクをアクションの欠如を理由としてエスカレートする場合にも参照できます。このタブに表示されるどのロールについても、優先度値を上げたり下げたりすることができます。

たとえば、SYSTEM ADMINISTRATORSロールのメンバーをオブジェクト認可者にするように構成するものとします。また、このリソース・オブジェクトに関連付けられているプロセス・タスクにタスク割当てルールがアタッチされているものとします。このプロセス・タスクを実行する権限を与えられた最初のユーザーには、優先度値1が割り当てられます。ユーザーがユーザー指定の時間以内にプロセス・タスクを完了しなかった場合は、Oracle Identity Managerによって、SYSTEM ADMINISTRATORSロールのユーザーのうち、次に優先度が高いユーザーにタスクが再割当てされます。

関連項目:

タスク割当てルールおよびプロセス・タスクの詳細は、「「ルール・デザイナ」フォーム」および「タスクの編集ウィンドウの「割当て」タブ」を参照してください。

リソース・オブジェクトへのロールの割当て

リソース・オブジェクトにロールを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. ロールを選択します。

3. 「OK」をクリックします。
ロールが選択されます。

リソース・オブジェクトからのロールの削除

リソース・オブジェクトからロールを削除するには、次の手順を実行します。

1. 目的のロールを選択します。

2. 「削除」をクリックします。
ロールがオブジェクト認可者タブから削除されます。

11.9.4.2.3 「プロセス決定ルール」タブ

リソース・オブジェクトとは、ユーザーまたは組織にプロビジョニングされるリソースのテンプレートのことです。このテンプレートは、複数のプロビジョニング・プロセスにリンクできます。Oracle Identity Managerでは、リソースがリクエストされるか、または直接プロビジョニングされたときに、プロセス決定ルールに基づいてプロビジョニング・プロセスが選択されます。

プロセス決定ルールの基準は次のとおりです。

- リソースがリクエストされたときに、どのプロビジョニング・プロセスを選択するか

- リソースが直接プロビジョニングされたときに、どのプロビジョニング・プロセスを選択するか

プロビジョニング・プロセスごとにプロセス決定ルールがあります。ルールとプロセスの各組合せには、Oracle Identity Managerでの評価順を示す優先度値が割り当てられます。

ルールの条件がfalseの場合、Oracle Identity Managerでは次に優先度が高いルールが評価されます。ルールがtrueの場合、そのルールに関連付けられているプロセスが実行されます。

リソース・オブジェクトへのプロセス決定ルールの追加

リソース・オブジェクトにプロセス決定ルールを追加するには、次の手順を実行します。

1. 作成するルールとプロセスの組合せに応じて、プロビジョニング・プロセス・リージョンで「追加」をクリックします。

2. 行が表示されたら、「ルール」参照フィールドをダブルクリックします。

3. 「参照」ダイアログ・ボックスで、ルールを選択し、それをリソース・オブジェクトに割り当てます(選択できるのは、プロセス決定タイプのルールのみです)。

4. 「OK」をクリックします。

5. 隣の列で、プロセス参照フィールドをダブルクリックします。

6. 「参照」ダイアログ・ボックスで、プロセスを選択し、それをルールに割り当てます。

7. 「OK」をクリックします。

8. 「優先度」フィールドに数値を入力します。
これにより、Oracle Identity Managerでルールとプロセスの組合せが評価される順序が決まります。

9. 「保存」をクリックします。
ルールとプロセスの組合せがリソース・オブジェクトに追加されます。

リソース・オブジェクトからのプロセス決定ルールの削除

リソース・オブジェクトからプロセス決定ルールを削除するには、次の手順を実行します。

1. ルールとプロセスの組合せを選択します。

2. 「削除」をクリックします。
ルールとプロセスの組合せがリソース・オブジェクトから削除されます。

11.9.4.2.4 イベント・ハンドラ/アダプタ・タブ

リソース・オブジェクトのプロビジョニング・プロセスには、自動的に実行する必要があるタスクが含まれています。その場合、イベント・ハンドラまたはアダプタをリソース・オブジェクトに割り当てる必要があります。イベント・ハンドラとは、この特殊な情報を処理するためのソフトウェア・ルーチンのことです。アダプタとは、特殊なタイプのイベント・ハンドラのことで、Oracle Identity Managerと外部リソースとの通信および対話を可能にするJavaコードを生成します。

リソース・オブジェクトに割り当てられているイベント・ハンドラまたはアダプタが無効になったら、リソース・オブジェクトから削除してください。

この例では、adpAUTOMATEPROVISIONINGPROCESSアダプタがSolarisリソース・オブジェクトに割り当てられています。このリソース・オブジェクトがリクエストに割り当てられると、Oracle Identity Managerによってアダプタがトリガーされ、関連付けられているプロビジョニング・プロセスが自動的に実行されます。

リソース・オブジェクトへのイベント・ハンドラまたはアダプタの割当て

リソース・オブジェクトにイベント・ハンドラまたはアダプタを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. イベント・ハンドラを選択し、それをリソース・オブジェクトに割り当てます。

3. 「OK」をクリックします。
イベント・ハンドラがリソース・オブジェクトに割り当てられます。

リソース・オブジェクトからのイベント・ハンドラまたはアダプタの削除

リソース・オブジェクトからイベント・ハンドラまたはアダプタを削除するには、次の手順を実行します。

1. イベント・ハンドラを選択します。

2. 「削除」をクリックします。
イベント・ハンドラがリソース・オブジェクトから削除されます。

11.9.4.2.5 「リソース監査目的」

Design Consoleの「リソース・オブジェクト」フォームには、「リソース監査目的」という名前のリソース属性が含まれています。このリソース属性は、リソースを規制命令にリンクするのに役立ちます。

図11-38 「リソース・オブジェクト」フォーム

「リソース監査目的」リソース属性の値には参照が定義されます。「リソース監査目的」リストには、次の値が事前に定義されています。

- SOX (財務的に重要な情報が対象)

- HIPAA (個人の医療情報が対象)

- GLB (公共のものではない情報が対象)

- 毎四半期のレビューが必要

- 毎年のレビューが必要

このリストは、Design Consoleの「参照定義」フォームを使用してLookups.Resource Audit Objective.Type参照を編集すると拡張できます。

11.9.4.2.6 ステータス定義タブ

このタブでは、リソース・オブジェクトに対してプロビジョニング・ステータスを設定できます。プロビジョニング・ステータスは、リソース・オブジェクトのライフサイクル(ターゲットのユーザーや組織にプロビジョニングされるまで)におけるステータスを示します。

リソース・オブジェクトのすべてのプロビジョニング・ステータスが関連プロビジョニング・プロセスのタスク・ステータスに関連付けられます。Oracle Identity Managerでは、リソース・オブジェクトがリクエストに割り当てられたときに、プロビジョニング・プロセスが選択されます。たとえば、「Provision for Developers」というプロセスが選択され、このプロセスのタスクが「完了」ステータスになった場合、対応するリソース・オブジェクト・ステータスを「プロビジョニング済」に設定できます。この方法で、リソース・オブジェクトとプロビジョニング・プロセスの関連性を迅速かつ簡単に確認できます。

リソース・オブジェクトのステータスとして、次のステータスが事前に定義されています。

- 待機中: このリソース・オブジェクトは、まだプロビジョニングされていない他のリソース・オブジェクトに依存します。

- 失効: このリソース・オブジェクトによって表されるリソースは、リソースの使用から恒久的にプロビジョニング解除されているユーザーまたは組織をターゲットとしてプロビジョニングされます。

- 準備完了: このリソース・オブジェクトは、他のどのリソース・オブジェクトにも依存しません。または、このリソース・オブジェクトが依存するすべてのリソース・オブジェクトがプロビジョニングされます。
リソースがリクエストに割り当てられ、リソース・オブジェクトのステータスが「準備完了」になると、Oracle Identity Managerでプロセス決定ルールが評価され、プロビジョニング・プロセスが決定されます。この際、リソース・オブジェクトのステータスが「プロビジョニング」に変更されます。

- プロビジョニング: このリソース・オブジェクトはリクエストに割り当てられ、プロビジョニング・プロセスが選択されています。

- プロビジョニング済: このリソース・オブジェクトによって表されるリソースは、ターゲットのユーザーまたは組織にプロビジョニングされています。

- 情報の指定: このリソース・オブジェクトによって表されるリソースをターゲットのユーザーまたは組織にプロビジョニングするには、追加情報が必要です。

- なし: このステータスは、リソース・オブジェクトのプロビジョニング・ステータスを表しません。むしろ、Oracle Identity Managerで選択されたプロビジョニング・プロセスに属するタスクによって、リソース・オブジェクトのステータスが影響を受けないことを示します。

- 有効: このリソース・オブジェクトによって表されるリソースは、ターゲットのユーザーまたは組織にプロビジョニングされ、これらのユーザーまたは組織はリソースにアクセスできます。

- 無効: このリソース・オブジェクトによって表されるリソースは、ターゲットのユーザーまたは組織にプロビジョニングされますが、これらのユーザーまたは組織はリソースに一時的にアクセスできなくなっています。

各プロビジョニング・ステータスには、それぞれ対応する依存の開始チェック・ボックスがあります。チェック・ボックスを選択した場合、親リソース・オブジェクトがそのプロビジョニング・ステータスになったときに、Oracle Identity Managerによって依存リソース・オブジェクトのプロビジョニングが続行されます。

たとえば、Exchangeリソース・オブジェクトがActive Directoryに依存しており、「プロビジョニング済」および「有効」プロビジョニング・ステータスの依存の開始チェック・ボックスが選択されているものとします。Active Directoryのプロビジョニング・ステータスが「プロビジョニング済」または「有効」に変わり、Exchangeのプロビジョニングがそれに対応する場合、Oracle Identity ManagerによってExchangeのプロビジョニング・プロセスが続行されます。

必要に応じて、リソース・オブジェクトに別のプロビジョニング・ステータスを追加して、プロビジョニング・プロセスの各種タスク・ステータスを反映することもできます。たとえば、プロビジョニング・プロセスに属するタスクのステータスが「却下」である場合、リソース・オブジェクトの対応するプロビジョニング・ステータスを「失効」に設定できます。

同様に、既存のプロビジョニング・ステータスが無効になったら、リソース・オブジェクトから削除してください。

次の各項では、リソース・オブジェクトにプロビジョニング・ステータスを追加する方法、およびリソース・オブジェクトからプロビジョニング・ステータスを削除する方法について説明します。

リソース・オブジェクトへのプロビジョニング・ステータスの追加

リソース・オブジェクトにプロビジョニング・ステータスを追加するには、次の手順を実行します。

1. 「追加」をクリックします。

2. 「ステータス」フィールドにプロビジョニング・ステータスを追加します。

3. リソース・オブジェクトのプロビジョニング・ステータスが追加したステータスになった時点で、その他の依存リソース・オブジェクトによってそれぞれ独自のプロビジョニング・プロセスが開始されるようにする場合は、依存の開始チェック・ボックスを選択します。それ以外の場合は、手順4に進みます。

4. 「保存」をクリックします。

プロビジョニング・ステータスがリソース・オブジェクトに追加されます。

リソース・オブジェクトからのプロビジョニング・ステータスの削除

次の手順では、リソース・オブジェクトからプロビジョニング・ステータスを削除する方法について説明します。

1. プロビジョニング・ステータスを選択します。

2. 「削除」をクリックします。
プロビジョニング・ステータスがリソース・オブジェクトから削除されます。

11.9.4.2.7 「管理者」タブ

このタブでは、現在のリソース・オブジェクトの表示、変更および削除を許可するロールを選択できます。

「書込み」チェック・ボックスを選択した場合、対応するロールが現在のリソース・オブジェクトを変更できるようになります。「削除」チェック・ボックスを選択した場合、対応するロールが現在のリソース・オブジェクトを削除できるようになります。

次の各項では、リソース・オブジェクトにロールを割り当てる方法、およびリソース・オブジェクトからロールを削除する方法について説明します。

リソース・オブジェクトへのロールの割当て

リソース・オブジェクトにロールを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. ロールを選択し、それをリソース・オブジェクトに割り当てます。

3. 「OK」をクリックします。
ロールが「管理者」タブに表示されます。デフォルトでは、このロールのすべてのメンバーがアクティブ・レコードを表示できます。

4. このロールに現在のリソース・オブジェクトの変更を許可する場合は、対応する「書込み」チェック・ボックスを選択します。
それ以外の場合は、手順5に進みます。

5. このロールに現在のリソース・オブジェクトの削除を許可する場合は、対応する「削除」チェック・ボックスを選択します。

そうでない場合は、手順6に進みます。

6. 「保存」をクリックします。

ロールがリソース・オブジェクトに割り当てられます。

ヒント:

リソース・オブジェクトをプロビジョニングするための権限をSYSTEM ADMINISTRATORSロールのメンバー以外のユーザーに割り当てるには、次の手順を実行します。

1. 管理およびユーザー・コンソールを使用して、組織「Xellerateユーザー」の「リソース」タブにリソース・オブジェクトを追加します。

2. ロールをリソース・オブジェクトの管理者として割り当てます。

3. 同じロールを組織「Xellerateユーザー」の管理ロールとして指定します。

4. ロールに「ユーザーの管理」メニュー項目を割り当てて、ロール・メンバーがプロビジョニングを実行できるようにします。

5. Design Consoleで、ロールを各種Oracle Identity Managerエンティティ(リソース・オブジェクトに関連付けられているプロセス定義やフォームなど)の管理者として指定します。
たとえば、ロールAがADリソース・オブジェクトの管理者である場合は、ADリソース・オブジェクトに関連付けられている各Oracle Identity Managerエンティティの管理者/認可者タブにロールAを追加します。

6. 「リソース・オブジェクト」フォームで、次のオプションを選択します。
- オブジェクト管理者のみによるプロビジョニング: 必ず選択してください。このオプションの詳細は、表11-12「「リソース・オブジェクト」フォームのフィールド」を参照してください。

- その他のオプション: 必要に応じて選択してください。

リソース・オブジェクトからのロールの削除

リソース・オブジェクトからロールを削除するには、次の手順を実行します。

1. 削除対象のロールを選択します。

2. 「削除」をクリックします。
ロールがリソース・オブジェクトから削除されます。

11.9.4.2.8 パスワード・ポリシー・ルール・タブ

「アプリケーション」タイプのリソース・オブジェクトをユーザーまたは組織にプロビジョニングする場合、そのユーザーまたは組織がリソース・オブジェクトにアクセスするときにパスワード基準への準拠を求めることができます。このパスワード基準は、パスワード・ポリシーのフォームで作成および管理します。これらのポリシーは、「パスワード・ポリシー」フォームを使用して作成します。

リソース・オブジェクト定義はリソースのプロビジョニング方法を制御するためのテンプレートにすぎないため、Oracle Identity Managerで実際の条件およびルールに基づいてリソースのプロビジョニング方法を決定できるようにする必要があります。これらの条件は、リソースが実際にリクエストされるまでわからない場合があります。そのため、リソースに関連付けられている様々なプロセスやパスワード・ポリシーにルールをリンクする必要があります。これにより、どのようなコンテキストにおいても、Oracle Identity Managerで何を呼び出せばよいかを判断できるようになります。

Oracle Identity Managerでは、特定ユーザーのアカウントの作成時または更新時に、どのパスワード・ポリシーをリソースに適用するかが決定されます。この際、リソースのパスワード・ポリシー・ルールが評価され、最初に合致したルールに関連付けられているポリシーの基準が適用されます。各ルールには、Oracle Identity Managerでの評価順を示す優先度値が割り当てられます。

次の各項では、リソース・オブジェクトにパスワード・ポリシー・ルールを追加する方法、およびリソース・オブジェクトからパスワード・ポリシー・ルールを削除する方法について説明します。

リソース・オブジェクトへのパスワード・ポリシー・ルールの追加

リソース・オブジェクトにパスワード・ポリシー・ルールを追加するには、次の手順を実行します。

1. 「追加」をクリックします。

2. 行が表示されたら、「ルール」参照フィールドをダブルクリックします。

3. 「参照」ダイアログ・ボックスで、ルールを選択し、それをリソース・オブジェクトに割り当てます。

4. 「OK」をクリックします。

5. 隣の列で、「ポリシー」参照フィールドをダブルクリックします。

6. 「参照」ダイアログ・ボックスで、関連付けられているパスワード・ポリシーを選択し、それをリソース・オブジェクトに割り当てます。

7. 「OK」をクリックします。

8. 「優先度」フィールドに数値を追加します。
このフィールドには、ルールの優先度値が格納されます。

9. 「保存」をクリックします。
パスワード・ポリシー・ルールがリソース・オブジェクトに追加されます。

注意:

- リソース・タイプが「組織用リクエスト」である場合、リソース・オブジェクトにパスワード・ポリシーをアタッチすることはできません。このルールの例外は、Xellerateユーザー・リソース・オブジェクトです。このリソース・オブジェクトのタイプは「組織用リクエスト」ですが、パスワード・ポリシーをアタッチできます。

- 複数のルールがTrueと評価された場合は、最も優先度が高いルールにアタッチされているパスワード・ポリシーが適用されます。

- Oracle Identity Managerでは、デフォルト・ルールが事前に定義されています。このルールは常にTrueと評価されます。「ルール・デザイナ」で作成されたルールが存在しない場合は、デフォルト・ルールにパスワード・ポリシーをアタッチできます。

リソース・オブジェクトからのパスワード・ポリシー・ルールの削除

リソース・オブジェクトからパスワード・ポリシーを削除するには、次の手順を実行します。

1. パスワード・ポリシー・ルールを選択します。

2. 「削除」をクリックします。
パスワード・ポリシー・ルールがリソース・オブジェクトから削除されます。

11.9.4.2.9 ユーザー定義フィールド・タブ

このタブでは、「リソース・オブジェクト」フォーム用に作成されたユーザー定義フィールドを表示してアクセスできます。作成したユーザー定義フィールドはこのタブに表示され、データを受け入れたり、提供するために使用できます。

関連項目:

既存のOracle Identity Managerフォームにユーザー定義フィールドを作成する手順は、「「ユーザー定義フィールドの定義」フォーム」を参照してください。

11.9.4.2.10 「プロセス」タブ

「プロセス」タブには、現在のリソース・オブジェクトに関連付けられているすべてのプロビジョニング・プロセスが表示されます。このタブにある「デフォルト」チェック・ボックスは、リソースのデフォルトとして使用されるプロビジョニング・プロセスを示します。

注意:

「プロセス定義」フォームでプロビジョニング・プロセスを作成し、それらをリソースに関連付けます。「リソース・オブジェクト」フォームの「プロセス決定ルール」タブを使用して、各プロセスをプロセス決定ルールにリンクすることができます。

たとえば、Solarisリソース・オブジェクトに1つのプロビジョニング・プロセス(「Provision Solaris for Devel.」)が関連付けられているものとします。「Provision Solaris for Devel.」は、このリソース・オブジェクトのデフォルトのプロビジョニング・プロセスとして指定されています。

11.9.4.2.11 オブジェクト・リコンシリエーション・タブ

オブジェクト・リコンシリエーション・タブのオブジェクトの初期リコンシリエーション日フィールドには、リソースに対して初期リコンシリエーションが実行された日付が表示されます。

注意:

初期リコンシリエーションの目的は、ターゲット・システムのすべてのユーザー・アカウントをOracle Identity Managerに取り込むことです。

オブジェクトの初期リコンシリエーション日フィールドに格納される日付値は、初期リコンシリエーションとそれ以降のリコンシリエーション・イベントを区別するために使用されます。この日付値は、リリース9.1.0で導入された2つの例外レポートで使用されます。これらの例外レポートには、ユーザーに必要な権限とユーザーがターゲット・システムで実際に持つ権限の比較差異が表示されます。権限の差異は、リコンシリエーション・データとその他のデータ項目に基づいて判断されます。例外レポートでは、オブジェクトの初期リコンシリエーション日フィールドの日付以降に作成されたリコンシリエーション・イベントに関連付けられているデータのみが返されます。また、例外データが生成されるのは、オブジェクトの初期リコンシリエーション日フィールドの日付値が過去の日付になっている場合のみです。必要に応じて、例外レポートが生成されるように、このフィールドに日付値を入力することもできます。

オブジェクト・リコンシリエーション・タブには、「リコンシリエーション・フィールド」および「リコンシリエーション・アクション・ルール」という2つのサブタブがあります。

- 「リコンシリエーション・フィールド」タブでは、ターゲット・リソースまたは信頼できるソースにおいてOracle Identity Managerの情報とリコンサイルされる(たとえば、マップされる)フィールドを定義できます。

- リコンシリエーション・アクション・ルール・タブでは、特定の一致条件が満たされた場合にOracle Identity Managerで実行されるアクションを指定できます。

リソース・オブジェクトまたは関連するプロセス・フォームが変更された場合は常に、オブジェクト・リコンシリエーション・タブにあるリコンシリエーション・プロファイルの作成ボタンをクリックして、リコンシリエーション・プロファイルを生成してください。

「リコンシリエーション・フィールド」タブ

このタブでは、ターゲット・リソースまたは信頼できるソースにおいてOracle Identity Managerの情報とリコンサイルされる(たとえば、マップされる)フィールドを定義できます。ターゲット・システムまたは信頼できるソースのフィールドごとに、次の情報が表示されます。

- ターゲット・リソースまたは信頼できるソースにおいてOracle Identity Managerのデータとリコンサイルされるフィールドの名前(targetfield1など)

- フィールドに関連付けられているデータ型(Stringなど)。有効な値は複数値、文字列、数値、日付、ITリソース

- このフィールドがリコンシリエーション・イベントで必須かどうかを示すインジケータ

注意:

Oracle Identity Managerでは、拡張管理の「イベント管理」タブの「リコンシリエーション」セクションにあるフィールドがすべて処理されるまで、リコンシリエーション・イベントに対するプロビジョニング・プロセス、ユーザーまたは組織の照合は開始されません。

次に、リコンシリエーション・フィールド定義の例を示します。

TargetField1 [String], Required

「リコンシリエーション・フィールド」タブでは、次の操作を実行できます。

- リコンシリエーション・フィールドの追加
次の手順では、Oracle Identity Managerの情報とリコンサイルされるフィールドのリストに、ターゲット・システムまたは信頼できるソースのフィールドを追加します。

注意:

Oracle Identity Managerで外部のターゲット・リソースまたは信頼できるソースとのリコンシリエーションが正しく実行されるようにするには、このタブで定義したフィールドを事前に適切なOracle Identity Managerフィールドにマップしておく必要があります(リソースのデフォルトのプロビジョニング・プロセスのフィールド・マッピング・タブを使用)。

リコンシリエーション・フィールドを追加するには、次の手順を実行します。

1. 「フィールドの追加」をクリックします。
リコンシリエーション・フィールドの追加ダイアログ・ボックスが表示されます。

2. 「フィールド名」フィールドに、ターゲット・リソースまたは信頼できるソースのフィールドの名前を入力します。
Oracle Identity Managerでは、この名前によってターゲット・リソースまたは信頼できるソースのフィールドを参照します。

3. フィールド・タイプ・フィールドのメニューから、次の値のいずれかを選択します。

- 複数値
1つ以上のコンポーネント・フィールドで構成されるフィールド用です。

- String

- String

- 日付

- ITリソース
リコンシリエーション・イベントの作成時には、Oracle Identity Managerで定義されたITリソースの名前と同じ値がこのフィールドに割り当てられる必要があります。

4. 「必須」チェック・ボックスを選択します。
選択した場合、拡張管理の「イベント管理」タブの「リコンシリエーション」セクションにあるリコンシリエーション・フィールドが処理されるまで、Oracle Identity Managerでリコンシリエーション・イベントに対するプロビジョニング・プロセス、ユーザーまたは組織の照合は開始されません。このチェック・ボックスを選択解除した場合、リコンシリエーション・イベントでこのフィールドは処理されませんが、照合は実行されます。

5. 「保存」をクリックします。
リソースのデフォルトのプロビジョニング・プロセスでフィールドのマッピングが可能になります。

- リコンシリエーション・フィールドの削除
次の手順では、Oracle Identity Managerの情報とリコンサイルされるフィールドのリストから、ターゲット・システムのフィールドを削除します。信頼できるソースの場合は、ユーザー・リソース定義が対象となります。

リコンシリエーション・フィールドを削除するには、次の手順を実行します。

1. 削除対象のフィールドを選択します。

2. 「フィールドの削除」をクリックします。
選択したフィールドは、Oracle Identity Managerでターゲット・システムのデータとリコンサイルされるフィールドのリストから削除されます(ターゲット・システム自体のデータには影響しません)。

リコンシリエーション・アクション・ルール・タブ

このタブでは、リコンシリエーション・イベント・レコード内で一致が見つかった場合にOracle Identity Managerで実行されるアクションを指定できます。このタブの各レコードは次の項目の組合せです。

- 一致条件の基準

- 実行されるアクション

選択可能な条件とアクションは事前に定義されています。一致条件によっては、適用不可のアクションもあります。表11-13に、使用可能なオプションの完全なリストを示します。

表11-13 ルール条件と使用可能なルール・アクション

ルール条件

使用可能なルール・アクション

一致が見つからなかった場合

なし

ユーザーの作成(信頼できるソースでのみ使用可能)

1つのプロセス一致が見つかった場合

なし

リンクの確立

複数のプロセス一致が見つかった場合

なし

1つのエンティティ一致が見つかった場合

なし

リンクの確立

複数のエンティティ一致が見つかった場合

なし

関連項目:

前述の表に記載されているユーザーおよびロールの分類タイプの詳細は、「タスクの編集ウィンドウの「割当て」タブ」を参照してください。

リコンシリエーション・アクション・ルールの追加

リコンシリエーション・アクション・ルールを追加するには、次の手順を実行します。

1. 「フィールドの追加」をクリックします。
新規アクション・ルールの追加ダイアログ・ボックスが表示されます。

2. ルール条件メニューから目的の値を選択します。
この一致条件によって、関連付けられているアクションが実行されます。各一致条件に割り当てることができるルール・アクションは1つに制限されています。

3. ルール・アクション・メニューから値を選択します。
このアクションは、一致条件が満たされた場合に実行されます。

4. 「保存」をクリックし、新規アクション・ルールの追加ダイアログ・ボックスを閉じます。

リコンシリエーション・アクション・ルールの削除

リコンシリエーション・アクション・ルールを削除するには、次の手順を実行します。

1. 削除対象の一致アクションの組合せを選択します。

2. 「削除」をクリックします。
リコンシリエーション・アクション・ルールが削除され、その条件に関連付けられているアクションが自動的に実行されなくなります。

11.9.4.3 複数の信頼できるソースのリコンシリエーション

以前のリリースでは、アイデンティティをリコンサイルするときの信頼できるソースとして設定できるのは、Xellerateユーザー・リソース・オブジェクトに限定されていました。現在は、Xellerateユーザー・リソース・オブジェクトおよびXellerateユーザー・プロセス定義に対してリコンシリエーション・フィールド、リコンシリエーション・アクション・ルール、フィールド・マッピングおよび一致ロールを作成することによって、これに対応できるようになっています。

OIMユーザーの作成時に、2つの信頼できるソースからアイデンティティをリコンサイルできる場合、両方のソースに対して1つのリソース・オブジェクト(Xellerateユーザー)を構成することはできません。Xellerateユーザー・リソース・オブジェクトに信頼できる両方のソースのリコンシリエーション・フィールドを作成しても、Xellerateユーザー・プロセス定義には対応するリコンシリエーション・フィールド・マッピングを作成できません。

リリース9.1.0以降では、アイデンティティ・リコンシリエーション用の信頼できるソースとして、Xellerateユーザー以外のリソース・オブジェクトを構成できます。そのためには、リソース・オブジェクトの作成時に、「リソース・オブジェクト」フォームにある信頼できるソース・チェック・ボックスを選択します。

リソース・オブジェクトに信頼できるソース・フラグがアタッチされている場合は、ターゲット・システム・フィールドを表す複数のリコンシリエーション・フィールドを作成できます。また、プロセス一致が見つからなかった場合に、ユーザーを作成するか、アイデンティティ作成用のデータを管理者または認可者に送信するように、リコンシリエーション・アクション・ルールを構成することもできます。プロセス一致が見つかった場合は、リンクが確立されます。

信頼できるソース・リソースに対してプロビジョニング・プロセスを定義する場合は、ユーザー定義のプロセス・フォームをアタッチしないでください。これらのプロビジョニング・プロセスについては、リソースおよびOIMユーザー属性に定義されたリコンシリエーション・フィールド間にリコンシリエーション・フィールド・マッピングを作成できます。

注意:

リソース・オブジェクトがターゲット・リソース・リコンシリエーション用の場合は、リコンシリエーション・フィールドとプロセス・データ・フィールド間のマッピングになります。

プロビジョニング・アクティビティ用の信頼できるソースとして定義されたリソース・オブジェクトは使用しないでください。これらのリソースは、OIMユーザーのリコンシリエーションにのみ使用できます。

このリリースには、属性認可ソース機能も追加されています。これは、ソースの信頼性がアイデンティティ自体ではなく、アイデンティティの属性に対してのみ適用されることを意味します。属性認可ソースのリコンシリエーションを構成するには、適切なリコンシリエーション・アクション・ルールを作成します。プロセス一致が見つからなかった場合は、管理者に割り当てられます。これにより、一致が見つからなかった場合でも、ユーザーが間違って作成されることはありません。プロセス一致が見つかった場合は、リコンシリエーション・アクション・ルールによってリンクが確立されます。

次の各項では、複数の信頼できるソースのリコンシリエーションを実装する場合の2つのユースケースについて説明します。

注意:

このドキュメントには、次のような箇所があります。

- 複数の信頼できるソースのリコンシリエーションはMTSと呼ばれています。

- フィールドおよび属性という用語が同義的に使用されています。

- 複数の信頼できるソースのリコンシリエーション - MTS互換コネクタを使用する場合

- 複数の信頼できるソースのリコンシリエーション - MTS非互換コネクタを使用する場合

注意:

どちらのユースケースの場合も、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドの新しいリコンシリエーション・プロファイルの作成に関する説明を参照して、リコンシリエーション・プロファイルを作成してください。

11.9.4.3.1 複数の信頼できるソースのリコンシリエーション - MTS互換コネクタを使用する場合

注意:

コネクタがMTS互換かどうかを調べる方法は、コネクタ固有のドキュメントを参照してください。

次の各項では、MTS互換コネクタを使用して複数の信頼できるソースのリコンシリエーションを実装する場合のシナリオについて説明します。

- 信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合のMTS互換コネクタの構成

- 信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合のMTS互換コネクタの構成

信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合のMTS互換コネクタの構成

このコンテキストにおけるユーザー・タイプとは、リコンサイル対象のレコードを持つユーザーのタイプのことです。ユーザー・タイプの例としては、EmployeeやCustomerなどがあげられます。

信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行うには、該当する手順に従って信頼できるソースのリコンシリエーションを実装するときに、信頼できるソースとして構成する各ターゲット・システムのコネクタをデプロイします。

リコンシリエーション実行時には、指定したユーザー・タイプのすべてのターゲット・システム・レコードがリコンサイルされます。ターゲット・システムに複数のユーザー・タイプが存在する場合は、制限付きリコンシリエーション機能を使用して、各ターゲット・システムからリコンサイルする必要があるレコードを持つユーザー・タイプを指定できます。

信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合のMTS互換コネクタの構成

複数のターゲット・システムの特定のOIMユーザー属性に対して、信頼できるソースのリコンシリエーションを行うように構成することもできます。この場合の実装手順については、次のサンプル・シナリオを例にして説明します。

アイデンティティを1つのターゲット・システム(TS1など)からリコンサイルし、これらのアイデンティティの特定の属性(attr1、attr2、attr3など)を別のターゲット・システム(TS2など)からリコンサイルするものとします。つまり、TS1はアイデンティティについて信頼できるソースであり、TS2はアイデンティティ自体ではなく特定の属性について信頼できるソースです。OIMユーザーを正しく作成するためには、必須のOIMユーザー属性がTS1からすべて提供される必要があります。TS2から提供されるのは、TS2が信頼できるソースとなっているOIMユーザー属性のみです(必須かどうかは問いません)。必須のOIMユーザー属性をTS2からリコンサイルする場合は、この属性の値によって、TS1からのOIMユーザーの作成時にこの属性に格納される値が上書きされます。必須でないOIMユーザー属性のみをTS2からリコンサイルする場合は、OIMユーザーの作成時にこれらの属性をTS1からリコンサイルしないように指定できます。

注意:

信頼できるソースが複数存在する場合は、それらのソースからエンティティ属性をリコンサイルするロジックがコネクタによって提供されます。

TS1コネクタの場合:

1. TS1コネクタをデプロイするために必要なすべての手順を実行し、そのコネクタを信頼できるソースのリコンシリエーション用に構成します。

関連項目:

信頼できるソースのリコンシリエーションを構成する手順の詳細は、デプロイ対象のコネクタのドキュメントを参照してください。

2. オブジェクト・リコンシリエーション・ページの「リコンシリエーション・フィールド」タブで、TS2からリコンサイルするすべてのTS1属性(この場合、attr1、attr2およびattr3)を削除します。

3. 「プロセス定義」ページのリコンシリエーション・フィールド・マッピング・タブで、不要なマッピングをすべて削除します。
リコンシリエーション・フィールドを削除するかわりに、リコンシリエーションによって作成されたOIMユーザーに値をリコンサイルしないフィールドのリコンシリエーション・フィールド・マッピングを削除してもかまいません。

4. オブジェクト・リコンシリエーション・ページのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションに関して次のマッピングが存在することを確認します。
ルール条件: 一致が見つからなかった場合

アクション: ユーザーの作成

TS2コネクタの場合:

1. TS2コネクタをデプロイするために必要なすべての手順を実行し、そのコネクタを信頼できるソースのリコンシリエーション用に構成します。

関連項目:

信頼できるソースのリコンシリエーションを構成する手順の詳細は、デプロイ対象のコネクタのドキュメントを参照してください。

2. 「プロセス定義」ページのリコンシリエーション・フィールド・マッピング・タブで、不要なマッピングをすべて削除します。
リコンシリエーション・フィールドを削除するかわりに、リコンシリエーションによって作成されたOIMユーザーに値をリコンサイルしないフィールドのリコンシリエーション・フィールド・マッピングを削除するだけでもかまいません。

3. オブジェクト・リコンシリエーション・ページの「リコンシリエーション・フィールド」タブで、attr1、attr2およびattr3以外のTS2属性をすべて削除します。また、OIMユーザーと既存のTS2アカウントの照合に使用する属性は保持してください。つまり、リコンシリエーション・ルールの評価に使用される属性のみを保持します。たとえば、Oracle Identity Managerのusername属性を使用して、TS1のfirst name属性の値を照合できます。

4. オブジェクト・リコンシリエーション・ページのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションのマッピングを作成します。ルール条件とアクションのマッピングの1つを次のようにしてください。
ルール条件: 一致が見つからなかった場合

アクション: ユーザーの作成以外

11.9.4.3.2 複数の信頼できるソースのリコンシリエーション - MTS非互換コネクタを使用する場合

注意:

コネクタがMTS互換かどうかを調べる方法は、コネクタ固有のドキュメントを参照してください。

複数の信頼できるソースのリコンシリエーション設定でMTS非互換のコネクタを使用する場合は、次の前提条件を満たす必要があります。

i.信頼できるソース・リソース・オブジェクトをXellerateユーザーに指定できるのは、いずれか1つに制限されています。現在の動作環境において、信頼できるソースのリコンシリエーション用にXellerateユーザー・リソース・オブジェクトがコネクタですでに使用されている状況で、信頼できるソースのコネクタを構成するには、新しいリソース・オブジェクトおよびプロセス定義を作成する必要があります。

ii.コネクタのスケジュール済タスクには、信頼できるソースのユーザー・リコンシリエーションに使用されるリソース・オブジェクトの名前を値として受け入れる属性が必要です。

次の各項では、MTS非互換コネクタを使用して複数の信頼できるソースのリコンシリエーションを実装する場合のシナリオについて説明します。

- 信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合のMTS非互換コネクタの構成

- 信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合のMTS非互換コネクタの構成

信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合のMTS非互換コネクタの構成

このコンテキストにおけるユーザー・タイプとは、リコンサイル対象のレコードを持つユーザーのタイプのことです。ユーザー・タイプの例としては、Contractor、Employee、Customerなどがあげられます。

動作環境においてMicrosoft Active DirectoryおよびOracle e-Business Suiteを信頼できるソースとして使用します。Active Directoryは、Contractorユーザー・タイプに属するアイデンティティに関する情報を格納するために使用します。Oracle e-Business Suiteは、CustomerおよびEmployeeユーザー・タイプに属するアイデンティティに関する情報を格納するために使用します。ContractorレコードをActive Directoryからリコンサイルし、EmployeeレコードをOracle e-Business Suiteからリコンサイルするものとします。そのための手順は、次のとおりです。

Active Directoryの場合:

1. Active Directoryコネクタをデプロイするために必要なすべての手順を実行し、そのコネクタを信頼できるソースのリコンシリエーション用に構成します。

関連項目:

信頼できるソースのリコンシリエーションを構成する手順の詳細は、デプロイ対象のコネクタのドキュメントを参照してください。

信頼できるソースのリコンシリエーション用にコネクタXMLファイルをインポートすると、Active Directoryに固有の情報がXellerateユーザー・リソース・オブジェクトおよびプロセス定義に追加されます。

2. 「リソース・オブジェクト」タブで、信頼できるソースのリコンシリエーションをActive Directoryによって行うためのActDirリソース・オブジェクトを作成します。

注意:

リソース・オブジェクトには任意の名前を割り当てることができます。この手順では、リソース・オブジェクトの名前としてActDirを割り当てて使用しています。

リソース・オブジェクトを作成する手順の詳細は、「「リソース・オブジェクト」フォーム」を参照してください。

リソース・オブジェクトの作成時に、次の手順を実行します。

1. 「リソース・オブジェクト」タブにある信頼できるソース・チェック・ボックスを選択します。

2. オブジェクト・リコンシリエーションの「リコンシリエーション・フィールド」タブで、Xellerateユーザー・リソース・オブジェクトを確認し、Active Directory固有のフィールドをリコンサイル対象としてActDirに追加します。このタブに追加するフィールドで、OIMユーザーに関するすべての必須フィールドを扱う必要があります。

3. オブジェクト・リコンシリエーションのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションのマッピングを作成します。ルール条件とアクションのマッピングの1つを次のようにしてください。
ルール条件: 一致が見つからなかった場合

アクション: ユーザーの作成

4. Active Directoryに固有のフィールドおよびそれに対応するルールをXellerateユーザー・リソース・オブジェクトから削除します。

5. 「プロセス定義」フォームでActDirプロセス定義を作成します。
プロセス定義を作成する手順の詳細は、「「プロセス定義」フォーム」を参照してください。リコンシリエーション・フィールド・マッピング・タブで、Xellerateユーザー・プロセス定義のリコンシリエーション・フィールド・マッピングを基準にして、ActDirプロセス定義のリコンシリエーション・フィールド・マッピングを追加します。

6. Xellerateユーザー・リソース・オブジェクトからActive Directory固有のフィールド・マッピングを削除します。

7. 「リコンシリエーション・ルール」ページのリコンシリエーション・ルール・ビルダー・フォームで、このコネクタのリコンシリエーション・ルールを問い合せて開き、「オブジェクト」フィールドの値を変更して、作成したリソース・オブジェクトにマップします。デフォルトでは、このフィールドの値はXellerateユーザー・リソース・オブジェクトのフィールドにマップされます。

Oracle e-Business Suiteについても、Active Directoryに対して実行したすべての手順を繰り返します。その手順をOracle e-Business Employee Reconciliationコネクタ用に変えて、次のように実行してください。

1. 「リソース・オブジェクト」タブで、信頼できるソースのリコンシリエーションをOracle e-Business Suiteによって行うためのEmpReconリソース・オブジェクトを作成します。

注意:

リソース・オブジェクトには名前を割り当てることができます。この手順では、リソース・オブジェクトの名前としてEmpReconを割り当てて使用しています。

2. オブジェクト・リコンシリエーションのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションのマッピングを作成します。ルール条件とアクションのマッピングの1つを次のようにしてください。
ルール条件: 一致が見つからなかった場合

アクション: ユーザーの作成

制限付きリコンシリエーション機能を使用して、Employeeユーザー・タイプに属するアイデンティティのみがリコンサイルされるように指定してください。

3. フィールドとリコンシリエーション・ルールを追加した後、Xellerateユーザー・リソース・オブジェクトに作成されたOracle e-Business Suite固有のフィールドおよびそれに対応するルールを削除します。

4. 「プロセス定義」フォームでEmpReconプロセス定義を作成します。プロセス定義を作成する手順の詳細は、「「プロセス定義」フォーム」を参照してください。リコンシリエーション・フィールド・マッピング・タブで、Xellerateユーザーのリコンシリエーション・フィールド・マッピングを基準にして、EmpReconプロセス定義のフィールド・マッピングを追加します。

5. Xellerateユーザー・リソース・オブジェクトからOracle e-Business Suite固有のフィールド・マッピングを削除します。

6. 「リコンシリエーション・ルール」>>リコンシリエーション・ルール・ビルダー・フォームで、このコネクタのリコンシリエーション・ルールを問い合せて開き、「オブジェクト」フィールドの値を変更して、作成したリソース・オブジェクトにマップします。デフォルトでは、このフィールドの値はXellerateユーザー・リソース・オブジェクトのフィールドにマップされます。

Active DirectoryとOracle e-Business Suiteのどちらについても、信頼できるソースのリコンシリエーションを構成するために必要な残りの手順を実行してください。たとえば、各コネクタに対してリコンシリエーションのスケジュール済タスクを構成するときに、信頼できるソースのユーザー・リコンシリエーション実行時に使用する必要がある信頼できるソース・リソース・オブジェクトの名前を指定します。

スケジュール済タスク属性の現在の値はXellerateユーザーですが、このコネクタでの信頼できるソースのユーザー・リコンシリエーション用に構成した新しいリソース・オブジェクトの名前に更新する必要があります。

図11-39に、信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合のデザインタイム実装を示します。

図11-39 信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合

「図11-39 信頼できるソースのリコンシリエーションをユーザー・タイプに基づいて行う場合」の説明

信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合のMTS非互換コネクタの構成

複数のターゲット・システムの特定のOIMユーザー属性に対して、信頼できるソースのリコンシリエーションを行うように構成することもできます。この場合の実装手順については、次のサンプル・シナリオを例にして説明します。

Microsoft Active DirectoryおよびIBM Lotus Notesをターゲット・システムとして使用します。アイデンティティをActive Directoryからリコンサイルし、(Active DirectoryからOracle Identity Managerにリコンサイルされた)各アイデンティティのe-mail address属性の値のみをLotus Notesからリコンサイルするものとします。そのために、次の手順を実行します。

Active Directoryコネクタの場合:

1. Active Directoryコネクタをデプロイするために必要なすべての手順を実行し、そのコネクタを信頼できるソースのリコンシリエーション用に構成します。

関連項目:

信頼できるソースのリコンシリエーションを構成する手順の詳細は、デプロイ対象のコネクタのドキュメントを参照してください。

信頼できるソースのリコンシリエーション用にコネクタXMLファイルをインポートすると、Active Directoryに固有の情報がXellerateユーザー・リソース・オブジェクトおよびプロセス定義に追加されます。

2. 「リソース・オブジェクト」タブで、信頼できるソースのリコンシリエーションをActive Directoryによって行うためのActDirリソース・オブジェクトを作成します。

注意:

リソース・オブジェクトには任意の名前を割り当てることができます。この手順では、リソース・オブジェクトの名前としてActDirを割り当てて使用しています。

リソース・オブジェクトを作成する手順の詳細は、「「リソース・オブジェクト」フォーム」を参照してください。

リソース・オブジェクトの作成時に、次の手順を実行します。

i.「リソース・オブジェクト」タブにある信頼できるソース・チェック・ボックスを選択します。

ii.オブジェクト・リコンシリエーションの「リコンシリエーション・フィールド」タブで、Xellerateユーザー・リソース・オブジェクトを確認し、Active Directory固有のフィールドをリコンサイル対象としてActDirに追加します。このタブに追加するフィールドで、OIMユーザーに関するすべての必須フィールドを扱う必要があります。

3. オブジェクト・リコンシリエーションのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションのマッピングを作成します。ルール条件とアクションのマッピングの1つを次のようにしてください。
ルール条件: 一致が見つからなかった場合

アクション: ユーザーの作成

4. Active Directoryに固有のフィールドおよびそれに対応するルールをXellerateユーザー・リソース・オブジェクトから削除します。

5. 「プロセス定義」フォームでActDirプロセス定義を作成します。プロセス定義を作成する手順の詳細は、「「プロセス定義」フォーム」を参照してください。リコンシリエーション・フィールド・マッピング・タブで、Xellerateユーザー・プロセス定義のリコンシリエーション・フィールド・マッピングを基準にして、ActDirプロセス定義のフィールド・マッピングを作成します。

6. Xellerateユーザー・リソース・オブジェクトからActive Directory固有のフィールド・マッピングを削除します。

7. 「リコンシリエーション・ルール」>>リコンシリエーション・ルール・ビルダー・フォームで、このコネクタのリコンシリエーション・ルールを問い合せて開き、「オブジェクト」フィールドの値を変更して、作成したリソース・オブジェクトにマップします。デフォルトでは、このフィールドの値はXellerateユーザー・リソース・オブジェクトのフィールドにマップされます。

IBM Lotus Notesについても、Active Directoryに対して実行したすべての手順を繰り返します。その手順をLotus Notesコネクタ用に変えて、次のように実行してください。

1. 「リソース・オブジェクト」タブで、信頼できるソースのリコンシリエーションをLotus Notesによって行うためのLotNotesリソース・オブジェクトを作成します。

注意:

リソース・オブジェクトには名前を割り当てることができます。この手順では、リソース・オブジェクトの名前としてLotNotesを割り当てて使用しています。

2. リソース・オブジェクトの作成時には、e-mail address属性のみを追加します。

3. オブジェクト・リコンシリエーションのリコンシリエーション・アクション・ルール・タブで、ルール条件とアクションのマッピングを作成します。一致が見つからなかった場合のルール条件(ユーザーの作成以外)を作成します。一致が見つかった場合は、リンクが確立されます。

4. フィールドとリコンシリエーション・ルールを追加した後、Xellerateユーザー・リソース・オブジェクトに作成されたLotus Notes固有のフィールドおよびそれに対応するルールを削除します。

5. 「プロセス定義」フォームでLotNotesプロセス定義を作成します。プロセス定義を作成する手順の詳細は、「「プロセス定義」フォーム」を参照してください。リコンシリエーション・フィールド・マッピング・タブで、Xellerateユーザーのリコンシリエーション・フィールド・マッピングを基準にして、LotNotesプロセス定義のフィールド・マッピングを追加します。

6. Xellerateユーザー・リソース・オブジェクトからLotus Notes固有のフィールド・マッピングを削除します。

Active DirectoryとLotus Notesのどちらについても、信頼できるソースのリコンシリエーションを構成するために必要な残りの手順を実行してください。たとえば、各コネクタに対してリコンシリエーションのスケジュール済タスクを構成するときに、リコンシリエーション実行時に使用する必要がある信頼できるソース・リソース・オブジェクトの名前を指定します。

スケジュール済タスク属性の現在の値はXellerateユーザーですが、このコネクタでの信頼できるソースのユーザー・リコンシリエーション用に構成した新しいリソース・オブジェクトの名前に更新する必要があります。

図11-40に、信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合のデザインタイム実装を示します。

図11-40 信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合

「図11-40 信頼できるソースのリコンシリエーションを特定のOIMユーザー属性に対して行う場合」の説明

11.9.5 サービス・アカウントの管理

Oracle Identity Managerでは、サービス・アカウントがサポートされています。サービス・アカウントは一般管理者アカウント(admin1、admin2、admin3など)であり、メンテナンス用途に使用され、通常は複数のユーザーによって共有されます。サービス・アカウントの管理およびプロビジョニングのモデルは、標準のプロビジョニングとは若干異なります。

サービス・アカウントは、通常のアカウントと同様の方法でリクエスト、プロビジョニングおよび管理されます。これらは、通常アカウントと同じリソース・オブジェクト、プロビジョニング・プロセスおよびプロセス・フォームを使用します。サービス・アカウントは、内部フラグによって通常のアカウントと区別されます。

ユーザーがサービス・アカウントを使用してプロビジョニングされると、Oracle Identity Managerで、ユーザーのアイデンティティからサービス・アカウントへのマッピングが管理されます。リソースが失効された場合、またはユーザーが削除された場合、(取消しタスクが発生するはずだった)サービス・アカウントのプロビジョニング・プロセスの取消しは行われません。かわりに、(Oracle Identity Managerでの無効化および有効化アクションと同様の方法で)タスクがプロビジョニング・プロセスに挿入されます。このタスクによってユーザーからサービス・アカウントへのマッピングが削除され、サービス・アカウントが使用可能なアカウントのプールに戻されます。

この管理機能はAPIを通じて使用できます。

12 プロビジョニング・プロセスの開発

この章では、Design Consoleでのプロセス管理について説明します。内容は次のとおりです。

- プロセス管理の概要

- 「電子メール定義」フォーム

- 「プロセス定義」フォーム

12.1 プロセス管理の概要

「プロセス管理」フォルダには、Oracle Identity Managerのプロセスと電子メール・テンプレートを作成および管理するためのツールが用意されています。

このフォルダには、次のフォームが含まれます。

- 電子メール定義: このフォームでは、電子メール通知用のテンプレートを作成できます。

- プロセス定義: このフォームでは、プロビジョニング・プロセスを作成および管理できます。また、ワークフロー定義をグラフィカルに表示するワークフロー定義レンダラを起動できます。

12.2 「電子メール定義」フォーム

図12-1に示す「電子メール定義」フォームは「プロセス管理」フォルダにあります。このフォームでは、電子メール通知用のテンプレートを作成できます。これらの通知は、次の場合にユーザーに送信するように設定できます。

- タスクがユーザーに割り当てられた場合。

- タスクが特定のステータスになった場合。

図12-1 「電子メール定義」フォーム

電子メール定義の適用は、「プロセス定義」フォームの「割当て」タブで行います。

12.2.1 電子メール・サーバーの指定

「電子メール定義」フォームを使用する前に、Oracle Identity Managerでユーザーに電子メール通知を送信するために使用される電子メール・サーバーのアドレスを指定する必要があります。

Oracle Identity Manager 11g リリース1(11.1.1)では、管理およびユーザー・コンソールを使用して電子メール・サーバーを指定します。電子メール・サーバーを指定するには、次の手順を実行します。

1. 管理およびユーザー・コンソールにログインし、拡張管理に移動します。

2. 「システム管理」タブをクリックし、「システム構成」をクリックします。

3. 「電子メール・サーバー」システム・プロパティを検索し、そのプロパティをクリックして詳細を開きます。

4. プロパティ名が電子メール・サーバーを表すリソース・アセット・インスタンスの名前に設定されていることを確認し、「保存」をクリックします。

注意:

「電子メール・サーバー」システム・プロパティの値は、電子メール・サーバーのホスト名ではなく、電子メール・サーバーITリソースになっている必要があります。

5. 管理およびユーザー・コンソールで、「拡張」、「システム管理」の順にクリックします。「電子メール・サーバー」システム・プロパティを検索します。このプロパティの値は、電子メール・サーバーに関連付けられている電子メール・サーバーITリソースです。

6. このITリソースが表示されたら、電子メール・サーバーのIPアドレス、およびこのサーバーの使用を検証するユーザーの名前とパスワードを指定します。

12.2.2 「電子メール定義」フォーム

表12-1に、「電子メール定義」フォームのフィールドを示します。

表12-1 「電子メール定義」フォームのフィールド

フィールド名

説明

名前

電子メール定義の名前。

タイプ

このリージョンには、次のことを指定する3つのオプションがあります。

- 電子メール定義をリクエスト関連またはプロビジョニング・プロセス関連として分類するかどうか。

- 電子メール定義の変数をリクエストまたはプロビジョニング・プロセスに関連付けるかどうか。

- 電子メール定義の変数を一般プロセスに関連付けるかどうか。

電子メール定義をプロビジョニング定義として分類する場合、または電子メール変数をプロビジョニング・プロセスに関連付ける場合は、プロビジョニング関連オプションを選択します。

電子メール定義を一般通知として分類する場合は、「一般」オプションを選択します。

オブジェクト名

この参照フィールドでは、電子メール定義が関連するプロビジョニング・プロセスに関連付けられるリソース・オブジェクトを選択します。

注意: 電子メール定義をすべてのリソース・オブジェクトで使用できるようにするには、この参照フィールドを空のままにしてください。

プロセス名

この参照フィールドでは、選択したリソース・オブジェクトに割り当てられているプロビジョニング・プロセスを選択します。これは、電子メール定義が関連するプロビジョニング・プロセスです。

注意: プロビジョニング関連オプションを選択しなかった場合、「オブジェクト名」参照フィールドと「プロセス名」参照フィールドはどちらもグレー表示になります。

言語

この参照フィールドでは、電子メール定義に関連付けられる言語を選択します。

リージョン

この参照フィールドでは、電子メール定義の言語に関連付けられるリージョンを選択します。

ターゲット

電子メール定義の変数のソースを選択します。たとえば、変数として「ユーザー・ログイン」を選択する場合は、ソースとして「ユーザー・プロファイル情報」を選択します。

注意: このボックスに表示される項目は、「タイプ」リージョンで選択したオプションによって変わります。

変数

このボックスでは、電子メール定義の変数(「ユーザー・ログイン」など)を選択します。このボックスに表示される変数は、「ターゲット」ボックスで選択した項目によって変わります。

差出人

このボックスでは、現在、次の2つのタイプのユーザーを選択できます。

- リクエスタ: リクエストを作成したユーザー。

- ユーザー: 電子メール・アドレスを持つあらゆるOracleユーザー(「ユーザー」フォームの「連絡先情報」タブに表示されます)。

ユーザー・ログイン

電子メール通知の差出人リージョンのユーザーのID。

注意: 差出人ボックスに「ユーザー」項目が表示されない場合、「ユーザー・ログイン」フィールドはグレー表示になります。

件名

電子メール定義のタイトル。

本文

電子メール定義の内容。

12.2.3 電子メール定義の作成

電子メール定義を作成するには、次の手順を実行します。

1. 「電子メール定義」フォームを開きます。

2. 「名前」フィールドに、電子メール定義の名前を入力します。

3. 電子メール定義をプロビジョニング・プロセスで使用する場合は、プロビジョニング関連オプションを選択します。

4. 「言語」参照フィールドをダブルクリックし、この電子メール定義に関連付ける言語を選択します。

5. 「リージョン」参照フィールドをダブルクリックし、電子メール定義の言語に関連付けるリージョンを選択します。

注意:

電子メール通知は、最初にOracle Identity Managerをインストールしたときに指定したロケールに基づきます。

6. 「保存」をクリックします。
これで、「電子メール定義」フォームの残りのデータ・フィールドが有効になります。

7. この電子メール定義を特定のリソース・オブジェクトに関連付けるには、「参照」ダイアログ・ボックスで「オブジェクト名」参照フィールドをダブルクリックします。その後、この電子メール定義が関連するプロビジョニング・プロセスに関連付けられるリソース・オブジェクトを選択します。

電子メール定義をすべてのリソース・オブジェクトで使用できるようにするには、この参照フィールドを空のままにしてください。

8. 「プロセス名」参照フィールドをダブルクリックします。
「参照」ダイアログ・ボックスで、手順7で選択したリソース・オブジェクトに割り当てられるプロビジョニング・プロセスを選択します。これは、この電子メール定義が関連するプロビジョニング・プロセスです。

注意:

プロビジョニング関連オプションを選択しなかった場合、「オブジェクト名」参照フィールドと「プロセス名」参照フィールドはどちらもグレー表示になります。

9. 差出人ボックスをクリックします。
カスタム・メニューが表示されたら、電子メール通知の差出人リージョンに表示されるユーザーのタイプを選択します(「リクエスタ」、「ユーザー」または「プロビジョニングされたユーザーのマネージャ」)。

注意:

手順3でプロビジョニング関連オプションを選択しなかった場合、差出人ボックスにプロビジョニングされたユーザーのマネージャ項目は表示されません。

10. オプション。差出人ボックスで「ユーザー」オプションを選択した場合は、「ユーザー・ログイン」参照フィールドをダブルクリックします。
「参照」ダイアログ・ボックスで、電子メール通知の差出人リージョンに表示されるユーザーIDを選択します。

差出人ボックスで「ユーザー」項目を選択しなかった場合、「ユーザー・ログイン」フィールドはグレー表示になります。

11. 件名フィールドに情報を追加します。
このフィールドには、電子メール定義のタイトルが含まれます。

12. 本文テキスト領域に情報を追加します。
このテキスト領域には、電子メール定義の内容が含まれます。

13. 必要に応じて、件名フィールドおよび本文テキスト領域に電子メール変数を移入します。
次の表に、電子メール定義用にカスタマイズ可能な電子メール変数を示します。

名前

説明

タイプ

これらのオプションでは、電子メール定義の変数をプロビジョニング・プロセスに関連付けるかどうかを指定します。

電子メール変数をプロビジョニング・プロセスに関連付けるには、プロビジョニング関連オプションを選択します。

ターゲット

このボックスでは、電子メール定義の変数のソースを選択します。たとえば、「ユーザー・ログイン」変数を使用する場合は、ソースとして「ユーザー・プロファイル情報」を選択します。

変数

このボックスでは、電子メール定義の変数(「ユーザー・ログイン」など)を選択します。

注意:

「ターゲット」ボックスのカスタム・メニューに表示される項目は、「プロビジョニング関連」と「一般」のどちらのラジオ・ボタンを選択するかによって変わります。同様に、変数ボックスのカスタム・メニューに表示される項目は、「ターゲット」、「ロケーション・タイプ」および「連絡先タイプ」の各ボックスに表示される項目に対応します。

14. 件名フィールドまたは本文テキスト領域で使用する電子メール変数を作成します。

15. 「保存」をクリックします。
電子メール定義が作成されます。

12.3 「プロセス定義」フォーム

プロセスとは、Oracle Identity Managerでのプロビジョニングの論理ワークフローを表すメカニズムのことです。プロセス定義は複数のタスクで構成されます。プロセス・タスクは、プロセスの目的を満たすために完了する必要がある手順を表します。たとえば、プロビジョニング・プロセスでは、ユーザーまたは組織がターゲット・リソースにアクセスできるようにするためにタスクが使用されます。

図12-2に示す「プロセス定義」フォームは「プロセス管理」フォルダにあります。このフォームでは、リソース・オブジェクトに関連付けるプロビジョニング・プロセスを作成および管理できます。

図12-2 「プロセス定義」フォーム

図12-2では、Xellerate Organizationプロビジョニング・プロセスが作成され、同名のリソース・オブジェクトに割り当てられています。

注意:

すべてのフォーム列が図12-2に表示されているわけではありません。「タスク」表の右側にその他のフィールド列があります。

表12-2に、「プロセス定義」フォームのフィールドを示します。

表12-2 「プロセス定義」フォームのフィールド

フィールド名

説明

名前

プロセスの名前。

タイプ

プロセス定義の分類タイプ。

オブジェクト名

プロセスが割り当てられるリソース・オブジェクトの名前。

記述フィールドのマップ

インスタンスがリソース・オブジェクトに割り当てられた後、このボタンをクリックして、プロセス定義の識別子として使用されるフィールドを選択します。

レンダラ・ワークフロー

このボタンをクリックしてWebブラウザを起動し、ワークフロー・レンダラ・ツールによって現在のワークフロー定義を表示します。

デフォルト・プロセス

このチェック・ボックスでは、現在のプロセスをそれが関連付けられたリソース・オブジェクトのデフォルトのプロビジョニング・プロセスにするかどうかを指定します。

プロセスを割当て先リソース・オブジェクトのデフォルトのプロビジョニング・プロセスとして設定するには、このチェック・ボックスを選択します。チェック・ボックスを選択解除した場合、プロセスはデフォルトではなくなります。プロセス選択ルールによって選択された場合にのみ呼び出されます。

自動保存フォーム

このチェック・ボックスでは、このプロビジョニング・プロセスに関連付けられているカスタム・フォームの表示を抑制するか、フォームを表示して、プロセスがインスタンス化されるたびにユーザーがデータを入力できるようにするかを指定します。

カスタム・プロセス・フォームを表示せずにフォームにデータが自動的に保存されるようにするには、このチェック・ボックスを選択します。このチェック・ボックスを選択した場合、ユーザーがフォームにアクセスできなくなるため、システム定義データを入力するか、必須データが確実にフォームに移入されるようにアダプタを構成する必要があります。カスタム・プロセス・フォームを表示して、ユーザーがデータをフィールドに入力できるようにするには、このチェック・ボックスを選択解除します。

自動事前移入

このチェック・ボックスでは、カスタム・フォームのフィールドへの移入をOracle Identity Managerとユーザーのどちらに任せるかを指定します。次の2つのタイプのフォームに関係します。

- プロセスに関連付けられているフォーム

- 事前移入アダプタがアタッチされているフィールドを含むフォーム

自動事前移入チェック・ボックスを選択した場合、関連付けられているカスタム・フォームが表示されると、事前移入アダプタがアタッチされたフィールドにOracle Identity Managerによってデータが移入されます。

このチェック・ボックスを選択解除した場合、ツールバーの事前移入ボタンをクリックするか、手動でデータを入力することで、ユーザーがフィールドにデータを移入する必要があります。

注意: この設定は事前移入アダプタのトリガーを制御するものではありません。アダプタの実行によって得られる内容を関連するフォーム・フィールドに表示するのが、Oracle Identity Managerとユーザーのどちらかということだけを決定するものです。

事前移入アダプタの詳細は、「事前移入アダプタに関する作業」を参照してください。

注意: このチェック・ボックスは、プロセスに関連付けられるプロセス・フォームを作成し、事前移入アダプタをそのフォームとともに使用する場合にのみ関係します。

表名

プロセス定義に関連付けられているフォームを表す表の名前。

12.3.1 プロセス定義の作成

プロセス定義を作成するには、次の手順を実行します。

1. 「プロセス定義」フォームを開きます。

2. 「名前」フィールドに、プロセス定義の名前を入力します。

3. 「タイプ」参照フィールドをダブルクリックします。
「参照」ダイアログ・ボックスが表示されたら、プロセス定義の分類タイプ(「承認」)を選択します。

4. 「オブジェクト名」参照フィールドをダブルクリックします。
「参照」ダイアログ・ボックスが表示されたら、プロセス定義に関連付けられるリソース・オブジェクトを選択します。

5. オプション。プロセスを割当て先リソース・オブジェクトのデフォルトのプロビジョニング・プロセスとして設定するには、デフォルト・プロセス・チェック・ボックスを選択します。
現在のプロセス定義をデフォルトにしない場合は、手順6に進んでください。

6. オプション。プロビジョニング・プロセスのカスタム・フォームの表示を抑制して、フォームにデータが自動的に保存されるようにするには、「自動保存フォーム」チェック・ボックスを選択します。

この設定は、プロビジョニング・プロセスにのみ適用されます。

プロビジョニング・プロセスのカスタム・フォームを表示して、ユーザーに情報の入力を求めるには、このチェック・ボックスを選択解除します。

注意:

「自動保存フォーム」チェック・ボックスを選択した場合は、関連するカスタム・プロセス・フォームのすべてのフィールドに、アダプタが関連付けられていることを確認してください。ただし、プロセス・フォームには、プロセス・データ・フロー・マッピングまたは組織デフォルトに対するデフォルトのデータまたはオブジェクトが存在することがあります。

アダプタの詳細、およびアダプタとカスタム・フォームのフィールドとのリレーションシップの詳細は、第3章「アダプタの使用」を参照してください。

7. カスタム・フォームがプロセス定義に関連付けられ、このフォームに含まれるフィールドに事前移入アダプタがアタッチされている場合に、Oracle Identity Managerによってこれらのフィールドにデータが自動的に移入されるようにするには、自動事前移入チェック・ボックスを選択します。
ユーザーにこのフォームのフィールドに手動でデータを移入させる場合は(ツールバーの事前移入ボタンをクリック)、自動事前移入チェック・ボックスを選択解除します。

注意:

プロセス定義にカスタム・フォームが関連付けられていないか、このフォームのフィールドに事前移入アダプタがアタッチされていない場合は、自動事前移入チェック・ボックスを選択解除してください。事前移入アダプタの詳細は、「事前移入アダプタに関する作業」を参照してください。

8. 表名参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス定義に関連付けられているフォームを表す表を選択します。

9. 「保存」をクリックします。
プロセス定義が作成され、「記述フィールドのマップ」ボタンが有効になります。このボタンをクリックすると、「記述フィールドのマップ」ダイアログ・ボックスが表示されます。

このウィンドウでは、プロセスのインスタンスがリソース・オブジェクトに割り当てられる際にプロセス定義の識別子として使用されるフィールド(「組織名」フィールドなど)を選択できます。このフィールドとその値は、「リコンシリエーション・マネージャ」フォームに表示されます。

関連項目:

プロセスにカスタム・プロセス・フォームがアタッチされている場合は、そのフォーム上のフィールドもこのウィンドウに表示され、選択できます。

10. ワークフロー定義をグラフィック表現で表示するには、ワークフローのレンダリング・ボタンをクリックします。
ワークフロー・レンダラは、プロセス定義の開発を支援する強力なツールです。

注意:

ワークフロー定義レンダラの使用方法の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドを参照してください。

12.3.2 「プロセス定義」フォームのタブ

「プロセス定義」フォームを起動してプロセス定義を作成すると、このフォームのタブが有効になります。

「プロセス定義」フォームには、次のタブがあります。

- 「タスク」タブ

- リコンシリエーション・フィールド・マッピング・タブ

- 「管理者」タブ

それぞれのタブについて、次の各項で説明します。

12.3.2.1 「タスク」タブ

このタブでは、次のことが可能です。

- 現在のプロセス定義を構成するプロセス・タスクの作成および変更

- プロセス定義からのプロセス・タスクの削除(有効でなくなった場合)

図12-3に、「プロセス定義」フォームの「タスク」タブを示します。

図12-3 「プロセス定義」フォームの「タスク」タブ

「図12-3 「プロセス定義」フォームの「タスク」タブ」の説明

関連項目:

プロセス・タスクを編集する方法の詳細は、「プロセス・タスクの変更」を参照してください。

12.3.2.1.1 プロセス・タスクの追加

プロセス・タスクは、プロセスの中で完了する必要がある手順を表します。

プロセス・タスクを追加するには、次の手順を実行します。

1. 「追加」をクリックします。
新しいタスクの作成ダイアログ・ボックスが表示されます。

2. 「タスク名」フィールドに、プロセス・タスクの名前を入力します。

3. 新しいタスクの作成ウィンドウのツールバーで、「保存」をクリックします。次に、「閉じる」をクリックします。
プロセス・タスクがプロセス定義に追加されます。

12.3.2.1.2 プロセス・タスクの編集

プロセス・タスクを編集および設定する手順は、「プロセス・タスクの変更」を参照してください。

12.3.2.1.3 プロセス・タスクの削除

プロセス・タスクを削除するには、次の手順を実行します。

1. 削除対象のプロセス・タスクを選択します。

2. 「削除」をクリックします。
プロセス・タスクがプロセス定義から削除されます。

12.3.2.2 リコンシリエーション・フィールド・マッピング・タブ

図12-4に示すリコンシリエーション・フィールド・マッピング・タブでは、ターゲット・システムまたは信頼できるソースのデータ要素とOracle Identity Managerのフィールドとの間のリレーションシップを定義できます。

図12-4 「プロセス定義」フォームのリコンシリエーション・フィールド・マッピング・タブ

「図12-4 「プロセス定義」フォームのリコンシリエーション・フィールド・マッピング・タブ」の説明

マッピングで選択できるのは、関連付けられているリソースの「リコンシリエーション・フィールド」タブで定義したフィールドのみです。これらのマッピングにより、リコンシリエーション・イベントでターゲット・システムからの情報がOracle Identity Managerのどのフィールドに移入されるかが決まります。ターゲット・リソースの場合(信頼できるソースではない)、このタブを使用して、どのフィールドがキー・フィールドかを示すことができます。キー・フィールドとは、「リコンシリエーション・マネージャ」フォームのプロセス一致ツリー・タブで一致を生成するために、プロセス・フォームとリコンシリエーション・イベントのどの値が同じである必要があるかを決定するものです。

各マッピングについて、次の情報が表示されます。

- Oracle Identity Managerのデータとリコンサイルされるターゲット・システムまたは信頼できるソースのフィールドの名前(関連付けられているリソースの「リコンシリエーション・フィールド」タブで定義)。

- フィールドに関連付けられているデータ型(関連付けられているリソースの「リコンシリエーション・フィールド」タブで定義)。
有効な値は「複数値」、「文字列」、「数値」、「日付」および「ITリソース」です。

- 信頼できるソースの場合: ユーザー検出の場合、信頼できるソース・フィールドのデータとユーザー・フォーム上のフィールドの名前のマッピング。組織検出の場合、信頼できるソース・フィールドのデータとOracle Identity Managerの「組織」フォーム上のフィールドの名前のマッピング。
信頼できるソースでユーザー検出と組織検出を実行する場合は、組織検出を先に実行する必要があります。

関連項目:

複数の信頼できるソースのリコンシリエーション用にフィールドをマップする方法の詳細は、「複数の信頼できるソースのリコンシリエーション」を参照してください。

- ターゲット・リソースの場合: ターゲット・リソース・フィールドのデータがマップされる、リソースのカスタム(プロビジョニング)プロセス・フォーム上のフィールドの名前。

- ターゲット・リソースの場合: フィールドがこのターゲット・リソースのリコンシリエーションにおけるキー・フィールドかどうかを示すインジケータ。
リコンシリエーション・イベント・データを照合するプロビジョニング・プロセスの場合は、プロセス・フォームのキー・フィールド値がリコンシリエーション・イベントのものと一致する必要があります。

12.3.2.2.1 ユーザー・アカウント・ステータスのリコンシリエーション

ユーザー・アカウント・ステータスのリコンシリエーションを構成するには、次の操作を実行する必要があります。

- 信頼できるソースの場合: ターゲットのユーザーのステータスを表すリコンシリエーション・フィールド(「ステータス」など)をそれに対応する信頼できるリソース・オブジェクトに作成する必要があります。このフィールドの値は、「有効」または「無効」のいずれかにする必要があります。このリコンシリエーション・フィールドは、対応するプロセス定義のユーザー属性statusにマップする必要があります。

- ターゲット・リソースの場合: ターゲットのリソースのステータスを表すリコンシリエーション・フィールド(「ステータス」など)をそれに対応するリソース・オブジェクトに作成する必要があります。このリコンシリエーション・フィールドは、対応するプロセス定義のプロセス属性OIM_OBJECT_STATUSにマップする必要があります。ターゲット・リソース・リコンシリエーションでは、次のステータスがサポートされています。

- 失効

- プロビジョニング済

- 準備完了

- 情報の指定

- 有効

- なし

- 待機中

- プロビジョニング

- 無効

12.3.2.2.2 ターゲット・リソース・フィールドとOracle Identity Managerのマッピング

ターゲット・リソースまたは信頼できるソースのフィールド(関連付けられているリソース定義の「リコンシリエーション・フィールド」タブで定義)とOracle Identity Managerの該当するフィールドをマップすることができます。これらのマッピングにより、リコンシリエーション・イベントでOracle Identity Managerのどのフィールドが更新されるかが決まります。これらのマッピングは、「リコンシリエーション・マネージャ」フォームで次のいずれかをクリックしたときに行われます。

- 「ユーザーの作成」または「組織の作成」ボタン

- 「一致したユーザー」または「一致した組織」タブにある「リンク」ボタン

- プロセス一致ツリー・タブにあるリンクの確立ボタン

信頼できるソースのユーザー検出では、ユーザー・リソースからユーザー・プロビジョニング・プロセスのフィールドにマップされるフィールドを定義します。信頼できるソース・フィールドのマップ先のフィールド(ユーザー属性)は、「ユーザー」フォームから導出されます。

信頼できるソースの組織検出では、Oracle Identity Manager組織リソースからOracle Identity Manager組織プロビジョニング・プロセスのフィールドにマップされるフィールドを定義します。信頼できるソース・フィールドのマップ先のフィールド(組織属性)は、「組織」フォームから導出されます。

関連付けられているリソースのプロビジョニング・プロセス定義にアクセスし、リコンシリエーション・フィールド・マッピング・タブを選択した後、次の各項で説明するの2つの手順のいずれかを使用してください。

単一値フィールドのマップ

単一値フィールドをマップするには、次の手順を実行します。

1. 「フィールド・マップの追加」をクリックします。
リコンシリエーション・フィールド・マッピングの追加ダイアログ・ボックスが表示されます。

2. 「フィールド名」フィールドのメニューから、マップするターゲット・システムのフィールドを選択します。
Oracle Identity Managerで、関連付けられている「リソース・オブジェクト」フォームの入力内容に基づいて、このフィールドのフィールド・タイプが自動的に設定されます。

3. 信頼できるソースの場合:
「ユーザー属性」メニューから値を選択し、「OK」をクリックします。手順4に進みます。

ターゲット・リソースの場合:

「プロセス・データ・フィールド」をダブルクリックします。「参照」ダイアログ・ボックスで正しいマッピングを選択し、「OK」をクリックします。

4. 信頼できるソースのマッピングを定義している場合は、手順5に進みます。

ターゲット・リソースの場合にのみ、リコンシリエーション照合用キー・フィールド・チェック・ボックスを設定します。このチェック・ボックスを選択した場合、Oracle Identity Managerによって、プロビジョニング・プロセス・フォームのこのフィールドの値が、リコンシリエーション・イベントのフィールドの値と一致しているかどうかが評価されます。一致したすべてのプロセスが「リコンシリエーション・マネージャ」フォームのプロセス一致ツリー・タブに表示されます。このチェック・ボックスを選択解除した場合、Oracle Identity Managerでのプロセス照合で、このフィールドの値がプロセス・フォームやリコンシリエーション・イベントと一致する必要はありません。

注意:

フィールドをキー・フィールドとして設定するには、該当するリソースのオブジェクト・リコンシリエーション・タブで必須に設定されている必要があります。

5. 「保存」をクリックします。
選択したフィールドのマッピングは、ターゲット・リソースまたは信頼できるソースから次にリコンシリエーション・イベントを受け取ったときに適用されます。

複数値フィールドのマップ(ターゲット・リソースの場合のみ)

複数値フィールドをマップするには、次の手順を実行します。

1. 「表マップの追加」をクリックします。
リコンシリエーション表マッピングの追加ダイアログ・ボックスが表示されます。

2. 「フィールド名」フィールドのメニューから、マップするターゲット・システムの複数値フィールドを選択します。
Oracle Identity Managerで、関連付けられている「リソース・オブジェクト」フォームの入力内容に基づいて、このフィールドのフィールド・タイプが自動的に設定されます。

3. 表名メニューから、ターゲット・リソースのプロセス・フォームで定義した子表を選択します。

4. プロセス・データ・フィールドをダブルクリックし、「参照」ダイアログ・ボックスで正しいマッピングを選択し、「OK」をクリックします。

5. 保存して、リコンシリエーション表マッピングの追加ダイアログ・ボックスを閉じます。

6. マップしたばかりの複数値フィールドを右クリックし、表示されるメニューから「プロパティ・フィールド・マップの定義」を選択します。

7. マップ対象のコンポーネント(子)フィールドを選択します。
Oracle Identity Managerで、関連付けられている「リソース・オブジェクト」フォームの入力内容に基づいて、このフィールドのフィールド・タイプが自動的に設定されます。

8. 「プロセス・データ・フィールド」フィールドをダブルクリックします。
「参照」ダイアログ・ボックスで正しいマッピングを選択し、「OK」をクリックします。

9. リコンシリエーション照合用キー・フィールド・チェック・ボックスを設定します。

このチェック・ボックスを選択した場合、Oracle Identity Managerによって、プロビジョニング・プロセスの子フォームのフィールド値とリコンシリエーション・イベントのフィールド値が比較されます。一致したすべてのプロセスが「リコンシリエーション・マネージャ」フォームのプロセス一致ツリー・タブに表示されます。このチェック・ボックスを選択解除した場合、プロセス照合で、このフィールドの値がプロセス・フォームやリコンシリエーション・イベントと一致する必要はありません。各複数値フィールドの少なくとも1つのコンポーネント(子)フィールドがキー・フィールドとして設定されていることを確認してください。これにより、プロセス一致ツリー・タブで生成される一致の質が向上します。

注意:

キー・フィールドは、該当するリソースのオブジェクト・リコンシリエーション・タブで必須に設定されている必要があります。

10. 複数値フィールドで定義されている各コンポーネント(子)フィールドについて、手順6から9を繰り返します。

11. 「保存」をクリックします。
選択したフィールドのマッピングは、ターゲット・リソースから次にリコンシリエーション・イベントを受け取ったときに適用されます。

12.3.2.2.3 マッピングの削除

この手順は、Oracle Identity Managerのフィールドとターゲット・システムまたは信頼できるソースのフィールド(関連付けられているリソース定義の「リコンシリエーション・フィールド」タブで定義)の間に確立されているマッピングを削除する際に使用します。

マッピングを削除するには、次の手順を実行します。

1. 関連付けられているリソースのプロビジョニング・プロセス定義にアクセスします。

2. リコンシリエーション・フィールド・マッピング・タブを選択します。

3. 削除対象のフィールド・マッピングを選択します。

4. 「マップの削除」をクリックします。
選択したフィールドのマッピングが削除されます。

12.3.2.3 「管理者」タブ

このタブでは、現在のプロセス定義の表示、変更および削除を許可するロールを選択できます。

このタブにある「書込み」チェック・ボックスを選択した場合、対応するロールが現在のプロセス定義を読み取って変更できるようになります。「削除」チェック・ボックスを選択した場合、対応するロールが現在のプロセス定義を削除できるようになります。

12.3.2.3.1 プロセス定義へのロールの割当て

ロールを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「グループ」ウィンドウが表示されます。

2. 未割当てのロールを選択し、それをプロセス定義に割り当てます。

3. 「OK」をクリックします。
ロールが「管理者」タブに表示されます。

4. このロールに現在のプロセス定義の表示または変更、あるいはその両方を許可するには、対応する「書込み」チェック・ボックスをダブルクリックします。それ以外の場合は、手順5に進みます。

5. このロールに現在のプロセス定義の削除を許可するには、対応する「削除」チェック・ボックスをダブルクリックします。そうでない場合は、手順6に進みます。

6. 「保存」をクリックします。

ロールがプロセス定義に割り当てられます。

12.3.2.3.2 プロセス定義からのロールの削除

ロールを削除するには、次のようにします。

1. 削除対象のロールを選択します。

2. 「削除」をクリックします。
ロールがプロセス定義から削除されます。

12.3.3 プロセス・タスクの変更

プロセス定義のプロセス・タスクを変更するには、その行ヘッダーをダブルクリックします。プロセス・タスクに関するその他の情報を含むタスクの編集ウィンドウが表示されます。

タスクの編集ウィンドウには、次のタブがあります。

- 「一般」タブ

- 統合タブ

- タスク依存性タブ

- 「レスポンス」タブ

- 取消し/リカバリ・タブ

- 「通知」タブ

- タスクとオブジェクトのステータス・マッピング・タブ

- タスクの編集ウィンドウの「割当て」タブ

12.3.3.1 「一般」タブ

このタブでは、変更対象のタスクに関する概要情報を設定できます。この例では、Solaris環境にユーザーを作成するために「ユーザーの作成」タスクが使用されています。

表12-3に、「一般」タブのフィールドを示します。

表12-3 タスクの編集ダイアログ・ボックスの「一般」タブのフィールド

フィールド名

説明

タスク名

プロセス・タスクの名前。

タスクの説明

プロセス・タスクに関する説明。

期間

現在のプロセス・タスクの予定完了時刻(日、時、分)。

条件付き

このチェック・ボックスでは、プロセスに現在のプロセス・タスクを追加するために、ある条件を満たす必要があるかどうかを指定します。

条件が満たされないとプロセスにプロセス・タスクが追加されないようにするには、このチェック・ボックスを選択します。

条件が満たされなくてもプロセスにプロセス・タスクが追加されるようにするには、このチェック・ボックスを選択解除します。

完了に必須

このチェック・ボックスでは、プロセスを完了するのに、現在のプロセス・タスクの完了を必須とするかどうかを指定します。

プロセス・タスクのステータスが「完了」にならないとプロセスを完了できないようにするには、このチェック・ボックスを選択します。

プロセス・タスクのステータスがプロセスの完了ステータスに影響しないようにするには、このチェック・ボックスを選択解除します。

一定期間

適用外

タスクの結果

このボックスでは、タスクに関連付けるプロセス・アクション(無効化や有効化など)を選択します。プロセスでは、リソースへのユーザーのアクセスを有効化または無効化できます。無効化アクションを選択すると、無効化アクションに関連付けられているすべてのタスクが挿入されます。

注意: プロセス・タスクを特定のプロセス・アクションに関連付けない場合は、ボックスから「NONE」を選択してください。

手動挿入不可

このチェック・ボックスでは、現在のプロセス・タスクをユーザーがプロセスに手動で追加できるようにするかどうかを指定します。

プロセスにプロセス・タスクを手動で追加できないようにするには、このチェック・ボックスを選択します。

ユーザーがプロセスにプロセス・タスクを追加できるようにするには、このチェック・ボックスを選択解除します。

保留中の取消しを許可

このチェック・ボックスでは、ステータスが「保留」のときにプロセス・タスクの取消しを許可するかどうかを指定します。

ステータスが「保留」のときにプロセス・タスクの取消しを許可するには、このチェック・ボックスを選択します。

ステータスが「保留」のときにプロセス・タスクの取消しを禁止するには、このチェック・ボックスを選択解除します。

複数のインスタンスを許可

このチェック・ボックスでは、現在のプロセスにプロセス・タスクを複数回挿入できるようにするかどうかを指定します。

プロセスにプロセス・タスクのインスタンスを複数追加できるようにするには、このチェック・ボックスを選択します。

現在のプロセスにプロセス・タスクを1回のみ追加できるようにするには、このチェック・ボックスを選択解除します。

再試行期間(分)

このフィールドでは、プロセス・タスクが却下された場合に、Oracle Identity Managerによってそのタスクの新規インスタンス(ステータスは「保留」)が挿入されるまでの間隔を指定します。

再試行期間(分)フィールドの値が30の場合、「ユーザーの作成」プロセス・タスクが却下されると、Oracle Identity Managerによって30分後にこのタスクの新規インスタンスが追加され、「保留」ステータスが割り当てられます。

再試行回数

却下されたタスクがOracle Identity Managerによって再試行される回数を指定します。「再試行回数」フィールドの値が5の場合、「ユーザーの作成」プロセス・タスクが却下されると、Oracle Identity Managerによってこのタスクの新規インスタンスが追加され、「保留」ステータスが割り当てられます。このプロセス・タスクが5回目に却下されると、それ以降、新規インスタンスは挿入されません。

子表/トリガー・タイプ

これらのボックスでは、現在のプロセスに関連付けられているカスタム・フォームの子表(「プロセス定義」フォームの表名フィールドに表示)に対してOracle Identity Managerによって実行されるアクションを指定します。

子表ボックスでは、Oracle Identity Managerによって実行されるアクションの対象となるカスタム・フォームの子表を選択します。

トリガー・タイプ・ボックスでは、Oracle Identity Managerによって子表に対して実行されるアクションを指定します。次のアクションがあります。

- 挿入。子表の指定した列に新しい値が追加されます。

- 更新。子表の対応する列の既存の値が変更されます。

- 削除。子表の指定した列から値が削除されます。

注意: カスタム・プロセス・フォームに子表が関連付けられていない場合、子表ボックスは空になります。また、トリガー・タイプ・ボックスはグレー表示になります。

オフライン

このフラグは、ユーザー属性伝播タスクにのみ適用されます。ユーザー属性伝播タスクに対してフラグを設定すると、タスクの挿入が非同期になります。

12.3.3.1.1 プロセス・タスクの一般情報の変更

プロセス・タスクの一般情報を変更するには、次の手順を実行します。

1. 変更対象のタスクの行ヘッダーをダブルクリックします。
タスクの編集ダイアログ・ボックスが表示されます。

2. 「一般」タブをクリックします。

3. 「説明」フィールドに、プロセス・タスクに関する説明を入力します。

4. オプション。期間領域に、プロセス・タスクの予定完了時刻(日、時、分)を入力します。

5. ある条件を満たさないとプロセス・タスクが「プロセス・インスタンス」に追加されないようにするには、条件付きチェック・ボックスを選択します。それ以外の場合は、手順6に進みます。

注意:

条件付きチェック・ボックスを選択した場合は、タスクをプロセスに追加するための必須条件を指定する必要があります。

6. プロセスの完了ステータスがプロセス・タスクの完了ステータスに依存するようにするには、完了に必須チェック・ボックスを選択します。
それにより、プロセス・タスクのステータスが「完了」にならないと、プロセスを完了できなくなります。

プロセス・タスクのステータスがプロセスの完了ステータスに影響しないようにする場合は、手順7に進みます。

7. 現在実行中のプロセスのインスタンスに、ユーザーが手動でプロセス・タスクを追加できないようにするには、「手動挿入不可」チェック・ボックスを選択します。それ以外の場合は、手順8に進みます。

8. プロセス・タスクのステータスが「保留」のときにそのプロセス・タスクの取消しをユーザーに許可するには、「保留中の取消しを許可」チェック・ボックスを選択します。保存しない場合は、手順9に進みます。

9. このタスクを単一のプロセス・インスタンスに複数回挿入できるようにするには、「複数のインスタンスを許可」チェック・ボックスを選択します。それ以外の場合は、ステップ10に進みます。

10. 「タスクの結果」ボックスをクリックします。

カスタム・メニューが表示されたら、次のいずれかを選択します。

- アプリケーションに対するプロセスまたはアクセスの有効化。有効化機能を使用してリソースを再アクティブ化した場合、この結果が設定されているすべてのタスクがプロセスに挿入されます。このオプションを選択した場合は、「複数のインスタンスを許可」チェック・ボックスも選択する必要があります。

- アプリケーションに対するプロセスまたはアクセスの無効化。無効化機能を使用してリソースを非アクティブ化した場合、この結果が設定されているすべてのタスクがプロセスに挿入されます。このオプションを選択した場合は、「複数のインスタンスを許可」チェック・ボックスも選択する必要があります。

- 無効。これは、すべてのタスクに関連付けられているデフォルトのプロセス・アクションです。このオプションを選択した場合、条件付きでないタスクは、標準のプロビジョニングの実行時にのみ挿入されます。

11. オプション。プロセス・タスクが「却下」の場合、Oracle Identity Managerによってこのプロセス・タスクの新規インスタンス(ステータスは「保留」)が挿入されるようにすることができます。
そのためには、再試行期間(分)フィールドに値を入力します。これは、Oracle Identity Managerによってこのプロセス・タスク・インスタンスが追加されるまでの待機時間(分単位)です。

「再試行回数」フィールドに、却下されたタスクがOracle Identity Managerによって再試行される回数を入力します。たとえば、「再試行回数」フィールドに3と表示されているとします。タスクが却下されると、Oracle Identity Managerによってこのタスクの新規インスタンスが追加され、「保留」ステータスが割り当てられます。このプロセス・タスクが4回目に却下されると、それ以降、新規インスタンスは挿入されません。

注意:

「再試行期間」および「再試行回数」は相互に関連しているため、一方を選択した場合は、もう一方のオプションのパラメータも指定する必要があります。

12. 子表ボックスでは、Oracle Identity Managerによって実行されるアクションの対象となるカスタム・フォームの子表を選択します。
トリガー・タイプ・ボックスでは、Oracle Identity Managerによって子表に対して実行されるアクションを指定します。次のアクションがあります。

- 挿入: 子表の指定した列に新しい値が追加されます。

- 更新: 子表の対応する列の既存の値が変更されます。

- 削除: 子表の指定した列から値が削除されます。

注意:

カスタム・プロセス・フォームに子表が関連付けられていない場合、子表ボックスは空になります。また、トリガー・タイプ・ボックスはグレー表示になります。

13. 「保存」をクリックします。
プロセス・タスクの概要情報に対する変更には、「一般」タブで行った変更が反映されます。

12.3.3.1.2 Lookup.USR_PROCESS_TRIGGERSフィールドで定義されたイベントのプロセス・タスクのトリガー

Lookup.USR_PROCESS_TRIGGERSでユーザー属性が定義されている場合、その属性が変更されるたびに、プロビジョニングされた各リソースに対して対応するプロセス・タスクがトリガーされます。これは、「名」、「姓」、「表示名」(USR_DISPLAY_NAME)ユーザー属性およびカスタム・ユーザー属性に当てはまります。ただし、Lookup.USR_PROCESS_TRIGGERSフィールドのUSR_STATUS、USR_LOCKED、USR_LOCKED_ONおよびUSR_MANUALLY_LOCKEDについては、アタッチされているプロセス・タスクはトリガーされません。

次の各項では、Lookup.USR_PROCESS_TRIGGERSフィールドのプロセス・タスクをトリガーする方法について説明します。

USR_STATUS属性の場合

USR_STATUS属性はOracle Identity Managerで個別に処理されるため、この属性については、Lookup.USR_PROCESS_TRIGGERSによってタスクを実行することはできません。この属性は、ユーザーを有効化、無効化または削除すると変更されます。これらの操作は、対応するプロセス・タスクが「タスクの結果」設定に従って開始されるため、プロビジョニングされたリソースに特別な結果をもたらします(表12-3 「タスクの編集ダイアログ・ボックスの「一般」タブのフィールド」を参照)。これらの3つの操作については、Lookup.USR_PROCESS_TRIGGERSは使用されません。したがって、ステータスが変わったときに、次の手順に従ってプロセス・タスクを実行します。

ステータスが「無効」から「有効」に遷移した場合:

1. 「プロセス定義」フォームで、「ユーザーの有効化」という名前のプロセス・タスクを作成します。

2. タスクの編集ウィンドウを開き、「一般」タブをクリックします。

3. 「タスクの結果」リストから「アプリケーションに対するプロセスまたはアクセスの有効化」を選択します。

4. 「条件付き」を選択し、タスクをプロセスに追加するための必須条件を指定します。

ステータスが「有効」から「無効」に遷移した場合:

1. 「プロセス定義」フォームで、「ユーザーの無効化」という名前のプロセス・タスクを作成します。

2. タスクの編集ウィンドウを開き、「一般」タブをクリックします。

3. 「タスクの結果」リストから「アプリケーションに対するプロセスまたはアクセスの有効化」を選択します。

4. 「条件付き」を選択し、タスクをプロセスに追加するための必須条件を指定します。

ステータスが「有効」/「無効」/「プロビジョニング済」から「失効」に遷移した場合:

1. 「プロセス定義」フォームで、「ユーザーの削除」という名前のプロセス・タスクを作成します。

2. その後、このタスクを「ユーザーの作成」タスク(通常は無条件でユーザーを作成するタスク)の取消しタスクとして設定します。

3. 「条件付き」を選択し、タスクをプロセスに追加するための必須条件を指定します。

注意:

OIMユーザーが削除されると、各リソースで完了したそれぞれのタスクに対して、Oracle Identity Managerで取消しタスクの実行が試みられます。

USR_LOCKED、USR_LOCKED_ON、USR_MANUALLY_LOCKED属性の場合

ロック操作とロック解除操作は、Oracle Identity Managerで個別の編成として処理されます。編成は次のように行います。

entity-type="User" operation="LOCK"

または

entity-type="User" operation="UNLOCK"

Lookup.USR_PROCESS_TRIGGERSの評価を行うイベント・ハンドラは次のとおりです。

oracle.iam.transUI.impl.handlers.TriggerUserProcesses

これは、次のユーザー編成でのみトリガーされます。

- MODIFY: 一般フィールドの場合

- CHANGE_PASSWORD、RESET_PASSWORD: USR_PASSWORD伝播の場合

- ENABLE、DISABLE、DELETE: プロセス・タスクの実行を処理する場合

ロック/ロック解除操作の場合、TriggerUserProcessesイベント・ハンドラはトリガーされません。したがって、ロック/ロック解除操作によって変更された属性に対しては、Lookup.USR_PROCESS_TRIGGERSはチェックされません。

これらのフィールドが変更されたときにこれらの操作のカスタム・コードを実行する場合は、イベント・ハンドラを作成し、この項で説明した編成に登録できます。

12.3.3.2 統合タブ

統合タブでは、次のことが可能です。

- イベント・ハンドラまたはタスク・アダプタをアタッチすることでプロセス・タスクを自動化します。

- タスク・アダプタの変数をマップすることで、アダプタがトリガーされたときに、Oracle Identity Managerから適切な情報が渡されるようにします。これは、プロセス・タスクのステータスが「保留」の場合に発生します。

- アダプタまたはイベント・ハンドラがプロセス・タスクに適用できなくなった場合に、アダプタ/イベント・ハンドラとプロセス・タスクの間のリンクを解除します。

たとえば、adpSOLARISCREATEUSERアダプタが「ユーザーの作成」プロセス・タスクにアタッチされているとします。このアダプタには9つのアダプタ変数があり、そのすべてが適切にマップされています(各変数名の前にYが付加されています)。

注意:

イベント・ハンドラの先頭には、tcCheckAppInstalledのように、「tc」(Thorクラス)が付加されます。これらは、オラクル社が提供しているイベント・ハンドラです。カスタマ側が作成したイベント・ハンドラの場合、名前の先頭に「tc」を付加することができません。アダプタの先頭には、adpSOLARISCREATEUSERのように、「adp」が付加されます。

関連項目:

アダプタおよびイベント・ハンドラの詳細は、第2章「アダプタの開発」および「「イベント・ハンドラ・マネージャ」フォーム」を参照してください。

12.3.3.2.1 プロセス・タスクへのアダプタまたはイベント・ハンドラの割当て

次の手順では、プロセス・タスクにアダプタまたはイベント・ハンドラを割り当てる方法について説明します。

重要:

プロセス・タスクにアダプタを割り当てる場合、アダプタ変数を正しくマップするまで、アダプタは機能しません。詳細は、「アダプタ変数のマップ」を参照してください。

プロセス・タスクにアダプタまたはイベント・ハンドラを割り当てるには、次の手順を実行します。

1. イベント・ハンドラまたはアダプタを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 統合タブをクリックします。

3. 「追加」をクリックします。
図12-5に示すように、ハンドラの選択ダイアログ・ボックスが表示されます。

4. プロセス・タスクにイベント・ハンドラを割り当てるには、「システム」オプションを選択します。
プロセス・タスクにアダプタを追加するには、「アダプタ」オプションを選択します。プロセス・タスクに割り当てることができるイベント・ハンドラまたはアダプタのリストが「ハンドラ名」リージョンに表示されます。

図12-5 ハンドラの選択ダイアログ・ボックス

「図12-5 ハンドラの選択ダイアログ・ボックス」の説明

5. プロセス・タスクに割り当てるイベント・ハンドラまたはアダプタを選択します。

6. ハンドラの選択ウィンドウのツールバーで、「保存」をクリックします。
「確認」ダイアログ・ボックスが表示されます。

7. 「OK」をクリックします。
イベント・ハンドラまたはアダプタがプロセス・タスクに割り当てられます。

12.3.3.2.2 アダプタ変数のマップ

関連項目:

この手順で選択する項目の詳細は、「アダプタ・マッピング情報」を参照してください。

注意:

親フォーム・フィールドに対する変更に関連付けられているタスクをトリガーするには、タスクの名前が「更新されたfield」になっている必要があります。ここで、fieldは親フォーム・フィールドの名前です。タスクの名前がこの表記規則に従っていない場合は、フィールドが更新されてもタスクはトリガーされません。

アダプタ変数をマップするには、次の手順を実行します。

1. マップ対象のアダプタ変数を選択します。

2. マップをクリックします。
変数のデータ・マッピング・ウィンドウが表示されます。

3. 「マップ先」、「修飾子」、「ITアセット・タイプ」、「ITアセット・プロパティ」、「リテラル値」および「古い値」の各フィールドを指定します。

4. 変数のデータ・マッピング・ウィンドウのツールバーで、「保存」をクリックします。

5. 「閉じる」をクリックします。
アダプタ変数のマッピング・ステータスが「N」から「Y」に変わります。これは、アダプタ変数がマップされたことを示します。

12.3.3.2.3 プロセス・タスクからのアダプタまたはイベント・ハンドラの削除

プロセス・タスクからアダプタまたはイベント・ハンドラを削除するには、次の手順を実行します。

1. 「削除」をクリックします。
「確認」ダイアログ・ボックスが表示されます。

2. 「OK」をクリックします。
イベント・ハンドラまたはアダプタがプロセス・タスクから削除されます。

12.3.3.3 タスク依存性タブ

タスク依存性タブでは、プロセスにおけるプロセス・タスクの論理フローを決定できます。このタブでは、次のことが可能です。

- 先行タスクをプロセス・タスクに割り当てます。
これらのタスクのステータスが「完了」になってからでないと、Oracle Identity Managerまたはユーザーは現在のプロセス・タスクをトリガーできません。

- 依存タスクをプロセス・タスクに割り当てます。
現在のプロセス・タスクのステータスが「完了」になってからでないと、Oracle Identity Managerまたはユーザーはこれらのタスクをトリガーできません。

- 先行タスクの完了ステータスと現在のタスクのトリガーに関係がなくなるように、先行タスクと現在のタスクの間のリンクを解除します。

- 現在のタスクの完了ステータスと依存タスクのトリガーに関係がなくなるように、現在のタスクと依存タスクの間のリンクを解除します。

たとえば、「ユーザーの作成」プロセス・タスクには、先行タスクはありません。タスクがプロセスに挿入されると(関連付けられているリソースがリクエストされた場合など)、Oracle Identity Managerによって常にこのタスクがトリガーされます。「ユーザーの作成」プロセス・タスクには、7つの依存タスクがあります。このプロセス・タスクが完了するまで、各依存タスクのステータスは「待機中」になります。このタスクのステータスが「完了」になると、これらのプロセス・タスクのそれぞれに「保留」ステータスが割り当てられ、Oracle Identity Managerでそれらをトリガーできるようになります。

12.3.3.3.1 プロセス・タスクへの先行タスクの割当て

プロセス・タスクに先行タスクを割り当てるには、次の手順を実行します。

1. 先行タスクを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. タスク依存性タブをクリックします。

3. 先行タスク・リージョンで、「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

4. このウィンドウで、先行タスクを選択し、それをプロセス・タスクに割り当てます。

5. 「OK」をクリックします。
先行タスクがプロセス・タスクに割り当てられます。

12.3.3.3.2 プロセス・タスクからの先行タスクの削除

プロセス・タスクから先行タスクを削除するには、次の手順を実行します。

1. 削除対象の先行タスクを選択します。

2. 先行タスク・リージョンで、「削除」をクリックします。
先行タスクがプロセス・タスクから削除されます。

12.3.3.3.3 プロセス・タスクへの依存タスクの割当て

プロセス・タスクに依存タスクを割り当てるには、次の手順を実行します。

1. 依存タスクを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. タスク依存性タブをクリックします。

3. 依存タスク・リージョンで、「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

4. このウィンドウで、依存タスクを選択し、それをプロセス・タスクに割り当てます。

5. 「OK」をクリックします。
依存タスクがプロセス・タスクに割り当てられます。

12.3.3.3.4 プロセス・タスクからの依存タスクの削除

プロセス・タスクから依存タスクを削除するには、次の手順を実行します。

1. 削除対象の依存タスクを選択します。

2. 依存タスク・リージョンで、「削除」をクリックします。
依存タスクがプロセス・タスクから削除されます。

12.3.3.4 「レスポンス」タブ

「レスポンス」タブでは、次のことが可能です。

- 特定のプロセス・タスクの実行と同時に受け取ることができるレスポンス・コードを定義します。レスポンス・コードを使用して、ターゲット・システム上の特定の条件を表すことができます。

- このプロセス・タスクの実行時にレスポンス・コードを受け取った場合に開始される条件付きタスクを定義します。これらのタスクは生成済タスクと呼ばれます。

- プロセス・タスクからレスポンスを削除します。

- プロセス・タスクから生成済タスクを削除します。

たとえば、「ユーザーの作成」プロセス・タスクが完了したときに、SUCCESSレスポンスがアクティブになります。このレスポンスにより、「ユーザーが正常に作成されました」というメッセージを含むダイアログ・ボックスが表示されます。また、Oracle Identity Managerによって「ユーザーの有効化」プロセス・タスクがトリガーされます。

注意:

デフォルトでは、各プロセス・タスクの却下に対しては不明レスポンスが定義されています。したがって、システム管理者がプロセス・タスクにレスポンスを追加しない場合でも、このタスクが却下されると、ユーザーにはダイアログ・ボックスでエラー・メッセージが通知されます。

12.3.3.4.1 プロセス・タスクへのレスポンスの追加

プロセス・タスクにレスポンスを追加するには、次の手順を実行します。

1. レスポンスを追加するプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 「レスポンス」タブをクリックします。

3. 「レスポンス」リージョンで、「追加」をクリックします。
空白行が「レスポンス」リージョンに表示されます。

4. 「レスポンス」フィールドに情報を入力します。
このフィールドには、レスポンス・コード値が含まれます。このフィールドでは、大文字/小文字が区別されます。

5. 「説明」フィールドに情報を入力します。このフィールドには、レスポンスに関する説明が含まれます。
プロセス・タスクによってレスポンスがトリガーされると、この情報がタスク情報ダイアログ・ボックスに表示されます。

6. 「ステータス」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、タスク・ステータス・レベルを選択します。レスポンス・コードを受け取ると、タスクがこのステータスに設定されます。

7. 「保存」をクリックします。
追加したレスポンスに、入力した設定が反映されるようになります。

12.3.3.4.2 プロセス・タスクからのレスポンスの削除

プロセス・タスクからレスポンスを削除するには、次の手順を実行します。

1. 削除するレスポンスを選択します。

2. 「レスポンス」リージョンで、「削除」をクリックします。
レスポンスがプロセス・タスクから削除されます。

注意:

レスポンスが既存のものであっても、新しく追加されたものであっても、プロビジョニング・インスタンスに対して呼び出されるプロセス・タスクからはレスポンスを削除できません。ただし、プロセス・タスクがどのプロビジョニング・インスタンスに対しても呼び出されない場合は、レスポンスを削除できます。

12.3.3.4.3 プロセス・タスクへの生成済タスクの割当て

プロセス・タスクに生成済タスクを割り当てるには、次の手順を実行します。

1. 生成済タスクを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 「レスポンス」タブをクリックします。

3. 生成済タスクを割り当てるレスポンス・コードを選択します。

4. 生成するタスク・リージョンで、「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

5. このウィンドウで、生成済タスクを選択し、それをプロセス・タスク・レスポンスに割り当てます。

6. 「OK」をクリックします。
生成済タスクがプロセス・タスクに割り当てられます。

12.3.3.4.4 プロセス・タスクからの生成済タスクの削除

プロセス・タスクから生成済タスクを削除するには、次の手順を実行します。

1. レスポンス・コードを選択します。

2. 削除対象の生成済タスクを選択します。

3. 生成するタスク・リージョンで、「削除」をクリックします。
生成済タスクがプロセス・タスクから削除されます。

12.3.3.5 取消し/リカバリ・タブ

取消し/リカバリ・タブでは、次のことが可能です。

- 現在のプロセス・タスクが取り消されたときにトリガーされるプロセス・タスクを定義します。これらのプロセス・タスクは取消しタスクと呼ばれます。

- 有効でなくなった取消しタスクをプロセス・タスクから削除します。

- 現在のプロセス・タスクが却下されたときにトリガーされるプロセス・タスクを定義します。これらのタスクはリカバリ・タスクと呼ばれます。

- プロセス・タスクからリカバリ・タスクを削除します。

たとえば、「ユーザーの作成」プロセス・タスクのステータスが「取消」になると、「ユーザーの削除」取消しタスクがトリガーされます。同様に、「ユーザーの作成」タスクが「却下」になると、Oracle Identity Managerによって「ユーザーの有効化」リカバリ・タスクがトリガーされます。

注意:

現在のプロセス・タスクが却下されると、そのプロセス・タスクに割り当てられているリカバリ・タスクがOracle Identity Managerによってトリガーされます。「リカバリの完了」チェック・ボックスを選択すると、生成されたすべてのリカバリ・タスクが完了したときに、現在のプロセス・タスクのステータスが「却下」から「完了に失敗」に変更されます。これによって、Oracle Identity Managerで他の依存プロセス・タスクをトリガーできるようになります。

次の各項では、現在のプロセス・タスクに取消しタスクやリカバリ・タスクを割り当てる方法、および現在のプロセス・タスクから取消しタスクやリカバリ・タスクを削除する方法について説明します。

12.3.3.5.1 プロセス・タスクへの取消しタスクの割当て

プロセス・タスクに取消しタスクを割り当てるには、次の手順を実行します。

1. 取消しタスクを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 取消し/リカバリ・タブをクリックします。

3. 取消しタスク・リージョンで、「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

4. このウィンドウで、取消しタスクを選択し、それをプロセス・タスクに割り当てます。

5. 「OK」をクリックします。
取消しタスクがプロセス・タスクに割り当てられます。

12.3.3.5.2 プロセス・タスクからの取消しタスクの削除

プロセス・タスクから取消しタスクを削除するには、次の手順を実行します。

1. 削除対象の取消しタスクを選択します。

2. 取消しタスク・リージョンで、「削除」をクリックします。
取消しタスクがプロセス・タスクから削除されます。

12.3.3.5.3 プロセス・タスクへのリカバリ・タスクの割当て

プロセス・タスクにリカバリ・タスクを割り当てるには、次の手順を実行します。

1. リカバリ・タスクを割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 取消し/リカバリ・タブをクリックします。

3. リカバリ・タスク・リージョンで、「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

4. このウィンドウで、リカバリ・タスクを選択し、それをプロセス・タスクに割り当てます。

5. 「OK」をクリックします。
リカバリ・タスクがプロセス・タスクに割り当てられます。

6. オプション。生成されたすべてのリカバリ・タスクが完了したときに、現在のプロセス・タスクのステータスを「却下」から「完了に失敗」に変更する場合は(これにより、Oracle Identity Managerで他の依存プロセス・タスクをトリガーできるようになります)、「リカバリの完了」チェック・ボックスを選択します。それ以外の場合は、このチェック・ボックスを選択しないでください。

12.3.3.5.4 プロセス・タスクからのリカバリ・タスクの削除

プロセス・タスクからリカバリ・タスクを削除するには、次の手順を実行します。

1. 削除対象のリカバリ・タスクを選択します。

2. リカバリ・タスク・リージョンで、「削除」をクリックします。
リカバリ・タスクがプロセス・タスクから削除されます。

12.3.3.6 「通知」タブ

このタブでは、現在のプロセス・タスクが特定のステータスになったときに生成される電子メール通知を指定できます。タスクに割り当てられる各ステータスについて、別々の電子メール通知を生成できます。電子メール通知が有効でなくなったら、「通知」タブから削除できます。

たとえば、「ユーザーの作成」プロセス・タスクのステータスが「完了」になると、Oracle Identity Managerによって、リソースのプロビジョニング対象となっているユーザーに対して電子メール通知「プロセス・タスクの完了」が送信されます。「ユーザーの作成」プロセス・タスクが却下されると、電子メール通知「プロセス・タスクの完了」がユーザーとそのマネージャに送信されます。

注意:

Oracle Identity Managerでユーザーに電子メール通知を送信できるようにするには、「電子メール定義」フォームを使用して電子メール・メッセージのテンプレートを事前に作成する必要があります。詳細は、「「電子メール定義」フォーム」を参照してください。

次の各項では、プロセス・タスクに電子メール通知を割り当てる方法、およびプロセス・タスクから電子メール通知を削除する方法について説明します。

12.3.3.6.1 プロセス・タスクへの電子メール通知の割当て

プロセス・タスクに電子メール通知を割り当てるには、次の手順を実行します。

1. 電子メール通知を割り当てるプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ダイアログ・ボックスが表示されます。

2. 「通知」タブをクリックします。

3. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

4. このウィンドウで、使用する電子メール・テンプレート定義を選択し、それをプロセス・タスクに割り当てます。

5. 「OK」をクリックします。
電子メール通知の名前が「通知」タブに表示されます。

6. 「ステータス」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、完了ステータス・レベルを選択します。プロセス・タスクがこのステータス・レベルになると、Oracle Identity Managerによって、関連付けられている電子メール通知が送信されます。

7. 電子メール通知を受信するユーザーを表すチェック・ボックスを選択します。
現在、電子メール通知は、次のユーザーに送信できます。

- 割当て先。このユーザーは、関連付けられているプロセス・タスクを完了する必要があります。

- リクエスタ。このユーザーは、対応するプロセス・タスクが含まれるプロセスをリクエストしました。

- ユーザー。関連付けられているプロセス・タスクが「完了」になると、このユーザーにリソースがプロビジョニングされます。

- ユーザーのマネージャ。このユーザーはユーザーのスーパーバイザであり、対応するプロセス・タスクが「完了」になると、このユーザーにリソースがプロビジョニングされます。

8. 「保存」をクリックします。
電子メール通知がプロセス・タスクに割り当てられます。

12.3.3.6.2 プロセス・タスクからの電子メール通知の削除

次の手順では、プロセス・タスクから電子メール通知を削除する方法について説明します。

プロセス・タスクから電子メール通知を削除するには、次の手順を実行します。

1. 削除対象の電子メール通知を選択します。

2. 「削除」をクリックします。
電子メール通知がプロセス・タスクから削除されます。

12.3.3.7 タスクとオブジェクトのステータス・マッピング・タブ

リソース・オブジェクトには、ユーザーやアプリケーションへのリソースのプロビジョニングに使用するデータが含まれます。

また、リソース・オブジェクトには、事前定義されたプロビジョニング・ステータスがあり、リソース・オブジェクトがターゲットのユーザーや組織にプロビジョニングされるのに応じて、そのライフサイクルを通じて様々なステータスを表します。

注意:

プロビジョニング・ステータスは、「リソース・オブジェクト」フォームのステータスの定義タブに定義されています。

リソース・オブジェクトのプロビジョニング・ステータスは、関連付けられているプロビジョニング・プロセスのステータス、およびそれらのプロセスを構成するタスクのステータスによって決まります。このため、プロセス・タスクのステータスとその割当て先リソース・オブジェクトのプロビジョニング・ステータスの間にリンクを確立する必要があります。

タスクとオブジェクトのステータス・マッピング・タブを使用して、このリンクを作成します。また、この接続が不要になったり、プロセス・タスクのステータスをリソース・オブジェクトの別のプロビジョニング・ステータスに関連付ける場合は、その時点で存在するリンクを解除する必要があります。

この例では、プロセス・タスクのステータスとリソース・オブジェクトのプロビジョニング・ステータスの間に5つのマッピングがあります。「ユーザーの作成」プロセス・タスクのステータスが「完了」になると、関連付けられているリソース・オブジェクトには「プロビジョニング済」というプロビジョニング・ステータスが割り当てられます。ただし、このタスクが取り消されると、そのリソース・オブジェクトのプロビジョニング・ステータスは「失効」になります。「なし」は、このステータスがリソース・オブジェクトのプロビジョニング・ステータスに何の影響もないことを示します。

次の各項では、プロビジョニング・ステータスにプロセス・タスクのステータスをマップする方法、およびプロビジョニング・ステータスからプロセス・タスクのステータスをマップ解除する方法について説明します。

12.3.3.7.1 プロビジョニング・ステータスへのプロセス・タスクのステータスのマップ

プロビジョニング・ステータスにプロセス・タスクのステータスをマップするには、次の手順を実行します。

1. ステータスをリソース・オブジェクトのプロビジョニング・ステータスにマップするプロセス・タスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. タスクのオブジェクト・ステータス・マッピング・タブをクリックします。

3. 目的のプロセス・タスクのステータスを選択します。

4. 「オブジェクト・ステータス」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス・タスクのステータスをマップするリソース・オブジェクトのプロビジョニング・ステータスを選択します。

5. 「OK」をクリックします。
選択したプロビジョニング・ステータスがタスクとオブジェクトのステータス・マッピング・タブに表示されます。

6. 「保存」をクリックします。
プロセス・タスクのステータスがプロビジョニング・ステータスにマップされます。

12.3.3.7.2 プロビジョニング・ステータスからのプロセス・タスクのステータスのマップ解除

プロビジョニング・ステータスからプロセス・タスクのステータスをマップ解除するには、次の手順を実行します。

1. 目的のプロセス・タスクのステータスを選択します。

2. 「オブジェクト・ステータス」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、「なし」を選択します。「なし」は、このステータスがリソース・オブジェクトのプロビジョニング・ステータスに何の影響もないことを示します。

3. 「OK」をクリックします。
プロビジョニング・ステータス「なし」がタスクとオブジェクトのステータス・マッピング・タブに表示されます。

4. 「保存」をクリックします。
プロセス・タスクのステータスがリソース・オブジェクトのプロビジョニング・ステータスからマップ解除されます。

12.3.3.8 タスクの編集ウィンドウの「割当て」タブ

このタブでは、現在のプロセス・タスクの割当てルールを指定できます。これらのルールによって、プロセス・タスクの割当て方法を決定します。

注意:

タスク割当てルールは、手動で完了する必要があるタスクに関連付けて使用すると便利です。ほとんどのプロビジョニング・プロセス・タスクは自動化されているため、タスク割当てルールは不要です。

Oracle Identity Managerでは、「Solarisプロセス・タスク - ユーザー」というルールの基準が満たされない場合に、「Solarisプロセス・タスク - グループ」というルールの基準が評価されます。そのルールの基準が満たされると、タスクはSYSTEM ADMINISTRATORSロールに割り当てられ、10分後にエスカレートされるようにマークされます。

注意:

プロセス・タスクに割り当てることができるのは、分類タイプが「タスクの割当て」のルールのみです。ルールの分類タイプを指定する方法の詳細は、「「ルール・デザイナ」フォーム」を参照してください。また、Oracle Identity Managerでは、デフォルト・ルールが事前に定義されています。このルールは常にTrueと評価されます。このため、他のルールがすべて失敗しても、少なくとも1つの事前定義のタスク割当てが実行されることを保証する安全策として使用できます。

表12-4に、「割当て」タブのフィールドを示します。

表12-4 タスクの編集ウィンドウの「割当て」タブのフィールド

フィールド名

説明

ルール

評価するタスク割当てルールの名前。

ターゲット・タイプ

現在のプロセス・タスクを完了する必要があるユーザーまたはロールの分類タイプ。現在、プロセス・タスクの割当て先候補となるのは次のとおりです。

- ユーザー。Oracle Identity Managerユーザー。

- ロール。ロール。

- 最小ロードのグループ・ユーザー。割り当てられるプロセス・タスクの数が最も少ない特定ロールのメンバー。

- リクエスト・ターゲット・ユーザーのマネージャ。リソースがプロビジョニングされるユーザーのスーパーバイザ。

- 最小ロードのオブジェクト認可ユーザー。割り当てられるプロセス・タスクの数が最も少ないロール(リソースのオブジェクト認可ロールとして指定されたもの)のメンバー。

- オブジェクト管理者。関連付けられているリソース・オブジェクトの管理者として定義されているロール。

- 最小ロードのオブジェクト管理ユーザー。割り当てられるプロセス・タスクの数が最も少ないロール(オブジェクト管理者ロールとして指定されたもの)のメンバー。

注意: オブジェクト認可者およびオブジェクト管理者の各ロールは、それぞれ「リソース・オブジェクト」フォームの「オブジェクト認可者」および「管理者」タブに定義されています。

アダプタ

アダプタの名前。このフィールドをダブルクリックすると、既存のすべてのアダプタを参照できるフォームが表示されます。

アダプタ・ステータス

アダプタのステータス。

グループ

現在のプロセス・タスクが割り当てられているロール。

ユーザー

現在のプロセス・タスクが割り当てられているユーザー。

「電子メール名」および「電子メールの送信」

電子メール名参照フィールドから電子メール通知を選択し、「電子メールの送信」チェック・ボックスを選択することにより、現在のプロセス・タスクが割り当てられたときに、Oracle Identity Managerによってユーザーまたはロールに電子メール通知が送信されるようになります。

エスカレーション時間

Oracle Identity Managerによってトリガーされるルールに関連付けられているユーザーまたはロールがプロセス・タスクを完了する必要がある制限時間(ミリ秒)。このプロセス・タスクが所定時間内に完了しない場合、Oracle Identity Managerによってタスクが別のユーザーまたはロールに再割当てされます。エスカレーション・ルールは、ターゲット・タイプ・パラメータで定義された順序に従います。

優先度

現在のプロセス・タスクに関連付けられているルールの優先度値。この値は、Oracle Identity Managerでルールが評価される順序を示します。

次の各項では、プロセス・タスクにタスク割当てルールを追加する方法、およびプロセス・タスクからタスク割当てルールを削除する方法について説明します。

12.3.3.8.1 プロセス・タスクへのルールの追加

プロセス・タスクにルールを追加するには、次の手順を実行します。

1. ルールを追加するタスクの行ヘッダーをダブルクリックします。
タスクの編集ウィンドウが表示されます。

2. 「割当て」タブをクリックします。

3. 「追加」をクリックします。
空白行が「割当て」タブに表示されます。

4. 「ルール」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス・タスクに追加するルールを選択します。次に、「OK」をクリックします。

5. 「ターゲット・タイプ」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス・タスクを完了する必要があるユーザーまたはロールの分類タイプ(「ユーザー」、「ロール」、「最小ロードのグループ・ユーザー」、「リクエスト・ターゲット・ユーザーのマネージャ」、「最小ロードのオブジェクト認可ユーザー」、「オブジェクト管理者」、「最小ロードのオブジェクト管理ユーザー」)を選択します。次に、「OK」をクリックします。

6. 「グループ」参照フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス・タスクを完了する必要があるロールを選択します。この設定が必要になるのは、「ターゲット・タイプ」フィールドで「グループ」または「最小ロードのグループ・ユーザー」を選択した場合のみです。その後、「OK」をクリックします。

または

「ユーザー」参照フィールドをダブルクリックします。「参照」ウィンドウが表示されたら、プロセス・タスクを完了する必要があるユーザーを選択します。この設定が必要になるのは、「ターゲット・タイプ」フィールドで「ユーザー」を選択した場合のみです。その後、「OK」をクリックします。

7. 電子メール名フィールドをダブルクリックします。
「参照」ウィンドウが表示されたら、プロセス・タスクが割り当てられたときに、対応するユーザーまたはロールに送信される電子メール通知を選択します。「OK」をクリックします。その後、「電子メールの送信」チェック・ボックスを選択します。

タスクが割り当てられたときにOracle Identity Managerによって電子メール通知が送信されないようにする場合は、手順8に進みます。

8. 「エスカレーション時間」フィールドに、選択したユーザーまたはロールがプロセス・タスクを完了する必要がある制限時間(ミリ秒)を入力します。
プロセス・タスクに追加するルールに制限時間を関連付けない場合は、「エスカレーション時間」フィールドを空白のままにして、手順10に進みます。

9. 「優先度」フィールドに、プロセス・タスクに追加するルールの優先度値を入力します。

10. 「保存」をクリックします。
ルールがプロセス・タスクに追加されます。

12.3.3.8.2 プロセス・タスクからのルールの削除

プロセス・タスクからルールを削除するには、次の手順を実行します。

1. 削除対象のルールを選択します。

2. 「削除」をクリックします。
ルールがプロセス・タスクから削除されます。

13 プロセス・フォームの開発

この章では、Design Consoleを使用してプロビジョニング・プロセス・フォームを開発する方法について説明します。この章には次の項目があります。

- 「フォーム・デザイナ」フォーム

- 「エラー・メッセージ定義」フォーム

13.1 「フォーム・デザイナ」フォーム

リソースをターゲット・ユーザーまたは組織にプロビジョニングするために必要な情報を既存のOracle Identity Managerフォームから取得できない場合があります。「開発ツール」フォルダにある「フォーム・デザイナ」フォームを使用して、関連情報を含むフィールドを持つフォームを作成できます。作成したフォームは、ユーザーまたは組織へのリソースのプロビジョニングに関連付けられているプロセスまたはリソース・オブジェクトに割り当てます。図13-1に、「フォーム・デザイナ」フォームを示します。

Oracle Identity Managerでは、次の理由でユーザーが「フォーム・デザイナ」フォームを使用して作成したリソース・オブジェクトまたはプロセス・フォームを表示します。

プロセス・フォームが適切なプロビジョニング・プロセスにアタッチされ、「組織」フォームまたは「ユーザー」フォームのオブジェクト・プロセス・コンソールタブでプロセスを右クリックすることによってフォームの起動メニュー・コマンドが選択された場合。

たとえば、Oracle Identity Managerまたはそのいずれかのユーザーがリソース・オブジェクトまたはプロセスを完了しようとすると、割り当てられているフォームがトリガーされます。この場合、Oracle Identity Managerまたはユーザーによって、このフォームのフィールドにデータが移入されます。データを保存すると、対応するプロセスまたはリソース・オブジェクトは「完了」ステータスになり、Oracle Identity Managerは適切なリソースをターゲット組織またはユーザーにプロビジョニングできます。

図13-1 「フォーム・デザイナ」フォーム

たとえば、「Solaris」フォーム(「表名」フィールドでUD_SOLARISという名前で示されている)が作成され、Solarisリソース・オブジェクトとプロビジョニング・プロセスの両方に割り当てられています。

注意:

表名は、接頭辞UD_の後にフォーム名が続きます。この例では、フォーム名がSOLARISであるため、表名はUD_SOLARISとなります。

表13-1に、「フォーム・デザイナ」フォームのデータ・フィールドを示します。

表13-1 「フォーム・デザイナ」フォームのフィールド

フィールド名

説明

表名

フォームに関連付けられるデータベース表の名前。

注意: 表名は、接頭辞UD_の後にフォーム名が続きます。フォーム名がSOLARISの場合、表名はUD_SOLARISとなります。

説明

フォームに関する説明。

重要: 「説明」フィールドに表示されるテキストは、フォーム名です。

フォームのプレビュー

このボタンをクリックすると、フォームが表示されます。これにより、フォームをアクティブ化する前にフォームの外観と動作を確認できます。

フォーム・タイプ

これらのオプションは、フォームをプロセスに割り当てるかリソース・オブジェクトに割り当てるかを指定するために使用します。

「プロセス」オプションを選択した場合、フォームは承認プロセスまたはプロビジョニング・プロセスに関連付けられます。

オブジェクト名

これは、プロビジョニング可能なリソース(データベース、サーバー、ソフトウェア・アプリケーション、ファイル、ディレクトリ・アクセスなど)の名前です。リソース・オブジェクト名とも呼ばれます。

このフィールドをダブルクリックすると、使用可能なリソース・オブジェクト名が表示されます。

最新バージョン

フォームの最新バージョン。

アクティブ・バージョン

指定されたプロセスまたはリソース・オブジェクトで使用されるフォームのバージョン。

注意: アクティブ・バージョン・フィールドに表示されたフォームのバージョンは変更できません。

現行バージョン

このバージョンのフォームが現在表示されており、情報が「フォーム・デザイナ」フォームの各種タブを介して表示されます。

新しいバージョンの作成

このボタンをクリックすると、フォームの既存のバージョンに追加の名前を割り当てることができます。その結果、フォームの元のバージョンに影響を及ぼすことなく、このバージョンを変更できます。

注意: フォームの新しいバージョンを作成して「リフレッシュ」をクリックすると、このバージョンに対して指定した名前が現行バージョン・ボックスに表示されます。

バージョンをアクティブにする

このボタンをクリックすると、フォームの現行バージョンをプロセスまたはリソース・オブジェクトに割り当てるように指定できます。つまり、このバージョンがアクティブになります。

注意: アクティブになったバージョンのフォームは変更できません。かわりに、(新しいバージョンの作成ボタンをクリックして)フォームの別の追加バージョンを作成する必要があります。

次の各項で、フォームの使用方法について説明します。

- フォームの作成

- 「フォーム・デザイナ」フォームのタブ

- フォームの追加バージョンの作成

13.1.1 フォームの作成

フォームを作成するには、次の手順を実行します。

1. 「フォーム・デザイナ」フォームを開きます。

2. 「表名」フィールドに、フォームに関連付けるデータベース表の名前を入力します。

注意:

表名は、接頭辞UD_の後にフォーム名が続きます。フォーム名がSOLARISの場合、表名はUD_SOLARISとなります。

3. 「説明」フィールドに、フォームに関する説明を入力します。

4. 「プロセス」オプションを選択します。これは、フォームをプロビジョニング・プロセスに割り当てるためです。

5. 「保存」をクリックします。
フォームが作成されます。最新バージョン・フィールドに、初期バージョンと表示されます。このことは、「フォーム・デザイナ」フォームのタブに情報を移入でき、フォームが割り当てられたプロセスまたはリソースで動作することを意味します。

13.1.2 「フォーム・デザイナ」フォームのタブ

「フォーム・デザイナ」フォームを開いてフォームを作成すると、このフォームのタブが機能するようになります。「フォーム・デザイナ」フォームには次のタブがあります。

- 「追加列」タブ

- 子表タブ

- オブジェクト権限タブ

- 「プロパティ」タブ

- 「管理者」タブ

- 「使用方法」タブ

- 「事前移入」タブ

- デフォルト列タブ

- 「ユーザー定義フィールド」タブ

13.1.2.1 「追加列」タブ

「追加列」タブを使用して、データ・フィールドを作成および管理します。これらのフィールドは、「フォーム・デザイナ」フォームを使用して作成された、関連付けられているフォームに表示されます。

表13-2に、「追加列」タブのデータ・フィールドを示します。

表13-2 「追加列」タブのフィールド

名前

説明

名前

データベースに表示され、Oracle Identity Managerによって認識されるデータ・フィールドの名前。

注意: この名前は、<TABLENAME_>接頭辞の後にデータ・フィールドの名前が続きます。

たとえば、「フォーム・デザイナ」フォームの「表名」フィールドの名前がUD_PASSWORDでデータ・フィールドの名前がUSERNAMEの場合、データベースに表示されてOracle Identity Managerによって認識されるデータ・フィールド名はUD_PASSWORD_USERNAMEです。

バリアント型

この参照フィールドから、データ・フィールドのバリアント型を選択します。バリアント型は、フィールドで受け入れられるデータの型を示します。

このデータ・フィールドは、9つのバリアント型(Byte、Double、Date、バイト配列、Boolean、Long、String、ShortおよびInteger)のいずれかである必要があります。

長さ

データ・フィールドの長さ(文字数)。

フィールド・ラベル

データ・フィールドに関連付けられるラベル。このラベルは、Oracle Identity Managerによって生成されたフォームのデータ・フィールドの横に表示されます。

フィールド・タイプ

この参照フィールドから、データ・フィールドのデータ型を選択します。データ型は、フィールドにおけるデータの表示方法を表します。

次のいずれかのデータ型を選択できます。

- TextField: このデータ・フィールドは、生成されたフォームにテキスト・フィールドとして表示されます。
テキスト・フィールドが表示専用である(フィールドのテキストが赤色のフォントで表示されている)場合、ユーザーはフィールドを問合せの実行のためにのみ使用できます。それ以外の場合は、フィールドに情報を移入し、データベースに保存することもできます。

- LookupField: このデータ・フィールドは、生成されたフォームに参照フィールドとして表示されます。
この参照フィールドが表示専用の場合、ユーザーはフィールドを問合せの実行のためにのみ使用できます。それ以外の場合は、関連付けられた「参照」ウィンドウの値をフィールドに移入し、その値をデータベースに保存することもできます。

- TextArea: このデータ・フィールドは、生成されたフォームにテキスト領域として表示されます。
このテキスト領域が表示専用の場合、ユーザーは表示された情報の読取りのみを行うことができます。それ以外の場合は、テキスト領域にデータを移入し、その情報をデータベースに保存することもできます。

- ITResourceLookupField: このデータ・フィールドは、生成されたフォームに参照フィールドとして表示されます。この参照フィールドから、ITリソースを表す参照値を選択し、その値をデータベースに保存できます。
注意: このデータ・フィールドを選択した場合は、「プロパティ値」フィールドでITリソースのサーバー・タイプを指定する必要があります。

データ・フィールドにプロパティ値を追加する方法の詳細は、「データ・フィールドへのプロパティおよびプロパティ値の追加」を参照してください。

- DateFieldWithDialog: このデータ・フィールドは、生成されたフォームにテキスト・フィールドとして表示されます。
このテキスト・フィールドが表示専用の場合、ユーザーはフィールドを問合せの実行のためにのみ使用できます。

それ以外の場合は、フィールドをダブルクリックし、日時ウィンドウで日付および時間を選択して、フィールドに日付および時間を移入することもできます。その後、この日付および時間をデータベースに保存できます。

- Checkbox: このデータ・フィールドは、生成されたフォームにチェック・ボックスとして表示されます。
このチェック・ボックスが表示専用の場合、ユーザーはチェック・ボックスが選択されているかどうかの確認のみを行うことができます。それ以外の場合は、チェック・ボックスを選択または選択解除し、その設定をデータベースに保存することもできます。

- PasswordField: このフィールドに入力されたテキストは、一連のアスタリスク(*)文字として表示されます。
フィールド・タイプがパスワード・フィールドである列の名前がPASSWORDで、関連付けられたリソース・オブジェクトにパスワード・ポリシーがアタッチされている場合、このフィールドに入力されたパスワードはパスワード・ポリシーと照合されます。

- RADIOBUTTON: このデータ・フィールドは、生成されたフォームにオプションとして表示されます。
ユーザーはラジオ・ボタンを選択または選択解除し、その設定をデータベースに保存できます。

- DataCombobox: このデータ・フィールドは、生成されたフォームにリストとして表示されます。
ユーザーはリストから項目を選択し、その選択をデータベースに保存できます。

- DisplayOnlyField: このデータ・フィールドにはユーザーが値を入力できません。このタイプのフィールドには、他のフィールドの値に基づいてデータが表示されるのみです。

デフォルト値

この値は、フォームの生成後、次のシナリオで他のデフォルト値が指定されていない場合に、関連付けられているデータ・フィールドに表示されます。

- フォーム・フィールドにアタッチされている事前移入アダプタが実行されています。

- あるプロセスに割り当てられているカスタム・フォームのフィールドと別のプロセスに関連付けられているカスタム・フォームのフィールドの間に、データ・フローが存在します。

- 組織に対してリクエストされたリソース・オブジェクトにカスタム・フォームがアタッチされています。さらに、このカスタム・フォームのいずれかのフィールドにデフォルト値が関連付けられています。パスワード・フィールドおよび暗号化されたフィールドにはデフォルト値を指定しないことをお薦めします。

順序

生成されたフォームにおけるデータ・フィールドの位置を表す順序番号。

たとえば、順序番号が2のデータ・フィールドは、順序番号が1のデータ・フィールドの下に表示されます。

アプリケーション・プロファイル

このチェック・ボックスは、このフォームに関連付けられているリソースがユーザーにプロビジョニングされ、「有効」ステータスになった後、このフィールドの最新の値を「ユーザー」フォームの「オブジェクト・プロファイル」タブに表示するかどうかを示します。

このチェック・ボックスを選択すると、このフィールドのラベルおよび値は、リソースがプロビジョニングされたユーザーの「ユーザー」フォームの「オブジェクト・プロファイル」タブに表示されます。

暗号化

このチェック・ボックスは、関連付けられているデータ・フィールドに表示される情報をサーバーとクライアントの間で転送するときに暗号化するかどうかを指定します。

このチェック・ボックスを選択すると、データ・フィールドに表示される情報がサーバーとクライアントの間で転送されるときに暗号化されます。

13.1.2.1.1 フォームへのデータ・フィールドの追加

フォームにデータ・フィールドを追加するには、次の手順を実行します。

注意:

パスワード・フィールドは、デフォルトで暗号化されます。パスワード・フィールド・タイプのデータ・フィールドを作成した場合、値は管理およびユーザー・コンソールにアスタリスク(*)文字として表示され、データはデータベースで暗号化されます。

1. 「追加列」タブで、「追加」をクリックします。
「追加列」タブに空白行が表示されます。

2. 「名前」フィールドに、データベースに表示されOracle Identity Managerによって認識されるデータ・フィールドの名前を入力します。

注意:

この名前は、<TABLENAME_>接頭辞の後にデータ・フィールドの名前が続きます。

たとえば、「表名」フィールドに表示される名前がUD_PASSWORDでデータ・フィールドの名前がUSERNAMEの場合、データベースに表示されてOracle Identity Managerによって認識されるデータ・フィールド名はUD_PASSWORD_USERNAMEです。

3. バリアント型参照フィールドをダブルクリックします。
表示される「参照」ウィンドウで、データ・フィールドのバリアント型を選択します。

現在は、データ・フィールドに9つのバリアント型(Byte、Double、Date、バイト配列、Boolean、Long、String、ShortおよびInteger)のいずれかを指定できます。

4. 「長さ」フィールドに、データ・フィールドの長さ(文字数)を入力します。

5. フィールド・ラベル・フィールドに、データ・フィールドに関連付けるラベルを入力します。
このラベルは、Oracle Identity Managerによって生成されたフォームのデータ・フィールドの横に表示されます。

6. 「フィールド・タイプ」参照フィールドをダブルクリックします。
表示される「参照」ダイアログ・ボックスで、データ・フィールドのデータ型を選択します。現在は、データ・フィールドに9つのデータ型(テキスト・フィールド、参照フィールド、テキスト領域、ITリソース参照フィールド、日付フィールド、チェック・ボックス、パスワード・フィールド、ラジオ・ボタンおよびボックス)のいずれかを指定できます。

関連項目:

データ型の詳細は、表13-2を参照してください。

7. 「デフォルト値」フィールドに、フォームの生成後、他のデフォルト値が指定されていない場合に関連付けられているデータ・フィールドに表示される値を入力します。

関連項目:

デフォルト値を設定できるシナリオの詳細は、表13-2を参照してください。

8. 「順序」フィールドに、生成されたフォーム上でのデータ・フィールドの位置を表す順序番号を入力します。
たとえば、順序番号が2のデータ・フィールドは、順序番号が1のデータ・フィールドの下に表示されます。

9. 「デフォルト値」フィールドに表示される値よりも、特定の組織またはユーザーの値が優先されるようにする場合は、アプリケーション・プロファイルチェック・ボックスを選択します。それ以外の場合は、ステップ10に進みます。

10. データ・フィールドに表示される情報をクライアントとサーバーの間で転送するときに暗号化するには、「暗号化」チェック・ボックスを選択します。そうでない場合は、手順11に進みます。

11. 「保存」をクリックします。

13.1.2.1.2 フォームからのデータ・フィールドの削除

フォームからデータ・フィールドを削除するには、次の手順を実行します。

注意:

新しいフィールドを追加するときに、削除されたフィールドと同じ名前をそのフィールドに割り当てると、新しいフィールドのバリアント型(データ型)は削除されたフィールドの型と同じままになります。たとえば、Stringバリアント型が適用されているAddr1フィールドを削除したとします。同じ名前のフィールドを作成し、そのフィールドにBooleanバリアント型を適用します。ここで新しいAddr1フィールドを追加したフォームを表示または使用すると、フィールドのバリアント型はBooleanではなくStringになります。

1. 第13.1.2.4.3項「データ・フィールドからのプロパティおよびプロパティ値の削除」の手順に従って、削除するデータ・フィールドに関連付けられているすべてのプロパティを削除します。

2. 削除するデータ・フィールドを選択します。

3. 「削除」をクリックします。
データ・フィールドがフォームから削除されます。

新しいフィールドを追加するときに、削除されたフィールドと同じ名前をそのフィールドに割り当てると、新しいフィールドのバリアント型(データ型)は削除されたフィールドの型と同じままになります。たとえば、Stringバリアント型が適用されているAddr1フィールドを削除したとします。同じ名前のフィールドを作成し、そのフィールドにBooleanバリアント型を適用します。ここで新しいAddr1フィールドを追加したフォームを表示または使用すると、フィールドのバリアント型はBooleanではなくStringになります。

13.1.2.2子表タブ

「フォーム・デザイナ」フォームを使用して作成された複数のフォームに同じデータ・フィールドを追加する必要がある場合があります。これを行うには、次の2つの方法があります。

- フォームの「追加列」タブを使用して、データ・フィールドを各フォームに手動で追加できます。

- データ・フィールドをグループ化し、1つのフォーム名で保存できます。その後、これらのデータ・フィールドを必要とする各フォームにこのフォームを割り当てることができます。

別のフォームが必要とするデータ・フィールドが含まれているフォームは、子表と呼ばれます。

子表をフォームに割り当てると、ユーザーの効率が向上します。子表を使用しない場合は、データ・フィールドを必要とするすべてのフォームについて、各フィールドにパラメータを設定する必要があります。たとえば、5つのフォームに同じデータ・フィールドが必要な場合、このフィールドのパラメータを5回(フォームごとに1回)設定する必要があります。

あるフォーム使用している子表を別のフォームに適用する場合は、Design Consoleを使用します。最初のフォームから子表を削除し、それをターゲット・フォームに割り当てます。このように、「フォーム・デザイナ」フォームで作成されたすべてのフォームで、1つのフォームに割り当てた子表を再利用できます。

子表の列で次のいずれかのアクションを実行するようにOracle Identity Managerを構成できます。

- 挿入: 子表の指定した列に新しい値が追加されます。

- 更新: 子表の対応する列の既存の値が変更されます。

- 削除: 子表の指定した列から値が削除されます。

関連項目:

子表の列に対して値を挿入、編集または削除するようにOracle Identity Managerを設定する方法の詳細は、第12.3項「「プロセス定義」フォーム」を参照してください。

たとえば、UD_SOUTH子表を「Results of 1Q 2004 Sales」フォーム(表名UD_SALES2)に割り当てるとします。このフォームを開始すると、UD_SOUTH子表のデータ・フィールドがフォームに表示されます。

次の各項で、フォームに子表を割り当てる方法およびフォームから子表を削除する方法について説明します。

注意:

子表で表されるフォームがアクティブになっていない場合は、そのフォームを親フォームに割り当てることができません。

13.1.2.2.1 フォームへの子表の割当て

フォームに子表を割り当てるには、次の手順を実行します。

注意:

子表で表されるフォームがアクティブになっている場合、そのフォームは「割当て」ウィンドウに表示されず、親フォームに割り当てることができません。

1. 「割当て」をクリックします。
「割当て」ウィンドウが表示されます。

2. このウィンドウで、子表を選択してフォームに割り当てます。

3. 「OK」をクリックします。
選択した子表がフォームに割り当てられます。

13.1.2.2.2 フォームからの子表の削除

フォームから子表を削除するには、次の手順を実行します。

1. 削除する子表を選択します。

2. 「削除」をクリックします。
子表がフォームから削除されます。

13.1.2.3 オブジェクト権限タブ

このタブを使用して、カスタム・フォームのインスタンス化時にそのフォームに対して情報を追加、変更および削除できるユーザー・グループを選択します。

「挿入の許可」チェック・ボックスが選択されている場合、対応するユーザー・グループはユーザー作成フォームのフィールドに情報を追加できます。このチェック・ボックスが選択されていない場合、ユーザー・グループはこのフォームのフィールドに情報を移入できません。

「更新の許可」チェック・ボックスが選択されている場合、関連付けられているユーザー・グループはユーザー作成フォームのフィールドの既存情報を変更できます。このチェック・ボックスが選択されていない場合、ユーザー・グループはこのフォームのフィールドを編集できません。

「削除の許可」チェック・ボックスが選択されている場合、対応するユーザー・グループはユーザー作成フォームのインスタンス化時にデータを削除できます。このチェック・ボックスが選択されていない場合、ユーザー・グループは(インスタンス化時に)このフォームのフィールドからデータを削除できません。

図13-2に、「フォーム・デザイナ」フォームのオブジェクト権限タブを示します。

図13-2 「フォーム・デザイナ」フォームのオブジェクト権限タブ

SYSTEM ADMINISTRATORSユーザー・グループが「Results of 1Q 2004 Sales」フォーム(「表名」フィールドでUD_SALES2という名前で示されている)に表示される情報を作成、変更および削除できるとします。IT DEPARTMENTユーザー・グループは、このフォームのレコードの削除のみ可能です(「挿入の許可」および「更新の許可」チェック・ボックスが選択されていない)。HR DEPARTMENTユーザー・グループは、「Results of 1Q 2004 Sales」フォーム内で情報を作成および変更できます。ただし、「削除の許可」チェック・ボックスが選択されていないため、このユーザー・グループはこの情報を削除できません。

次の項で、ユーザー作成フォームにユーザー・グループを割り当てる方法およびユーザー作成フォームからユーザー・グループを削除する方法について説明します。

13.1.2.3.1 ユーザー作成フォームへのユーザー・グループの割当て

ユーザー作成フォームにユーザー・グループを割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. ユーザー・グループを選択し、ユーザーが作成したフォームに割り当てます。

3. 「OK」をクリックします。
ユーザー・グループがオブジェクト権限タブに表示されます。

4. このユーザー・グループがユーザー作成フォームのレコードに情報を追加できないようにする場合は、対応する「挿入の許可」チェック・ボックスをダブルクリックします。それ以外の場合は、手順5に進みます。

5. このユーザー・グループがユーザー作成フォームのレコードの情報を変更できないようにする場合は、対応する「更新の許可」チェック・ボックスをダブルクリックします。そうでない場合は、手順6に進みます。

6. このユーザー・グループがユーザー作成フォームのレコードを削除できないようにする場合は、対応する「削除の許可」チェック・ボックスをダブルクリックします。それ以外の場合は、手順7に進みます。

7. 「保存」をクリックします。

ユーザー・グループがユーザー作成フォームに割り当てられます。

13.1.2.3.2 ユーザー作成フォームからのユーザー・グループの削除

ユーザー作成フォームからユーザー・グループを削除するには、次の手順を実行します。

1. 削除するユーザー・グループを選択します。

2. 「削除」をクリックします。
ユーザー・グループがユーザー作成フォームから削除されます。

13.1.2.4 「プロパティ」タブ

図13-3に、「フォーム・デザイナ」フォームの「プロパティ」タブを示します。このタブを使用して、「フォーム・デザイナ」フォームで作成されたフォームに表示されるデータ・フィールドにプロパティおよびプロパティ値を割り当てます。

図13-3 「フォーム・デザイナ」フォームの「プロパティ」タブ

たとえば、「Results of 1Q 2004 Sales」フォームに2つのデータ・フィールド「User Name」および「Password」があるとします。各データ・フィールドのプロパティは次のとおりです。

- 必須: 生成されたフォームを保存するためにデータ・フィールドにデータを移入する必要があるかどうかを指定します。「必須」プロパティのデフォルト値はfalseです。

- 表示フィールド: Oracle Identity Managerによってフォームが生成された後、データ・フィールドをフォームに表示するかどうかを指定します。表示フィールドプロパティのデフォルト値は「true」です。

両方のデータ・フィールドの「必須」および表示フィールドプロパティの値が「true」の場合、「Results of 1Q 2004 Sales」フォームが生成されると、これらの両方のデータ・フィールドが表示されます。さらに、フォームを保存するには各フィールドにデータを移入する必要があります。

次の各項で、データ・フィールドにプロパティおよびプロパティ値を追加する方法およびデータ・フィールドからプロパティおよびプロパティ値を削除する方法について説明します。

注意:

「プロパティ」タブは、「追加列」タブを使用してフォームのデータ・フィールドを作成するまでグレー表示になります。

選択できるプロパティおよびプロパティ値の詳細は、ルール要素、変数、データ型およびシステム・プロパティに関する説明を参照してください。

13.1.2.4.1 データ・フィールドへのプロパティおよびプロパティ値の追加

データ・フィールドにプロパティおよびプロパティ値を追加するには、次の手順を実行します。

1. プロパティおよびプロパティ値を追加するデータ・フィールドを選択します。

2. 「プロパティの追加」をクリックします。
図13-4に示す「プロパティの追加」ダイアログ・ボックスが表示されます。

図13-4 「プロパティの追加」ダイアログ・ボックス

注意:

「列名」フィールドおよび「列の型」フィールドに表示されるテキストは、選択したデータ・フィールドの名前および型です。

この例では、「User Name」データ・フィールドが選択されています(「列名」フィールドにUser Nameと表示されています)。さらに、このフィールドのデータ型はテキスト・フィールドです。

表13-3に、「プロパティの追加」ダイアログ・ボックスのフィールドを示します。

表13-3 「プロパティの追加」ダイアログ・ボックスのフィールド

名前

説明

列名

データ・フィールドの名前

列の型

データ・フィールドのデータ型

プロパティ名

このボックスで、データ・フィールドのプロパティを選択します。

プロパティ値

このフィールドに、「プロパティ名」ボックスに表示されたプロパティに関連付けるプロパティ値を入力します。

注意:

「プロパティ名」ボックスに表示されるメニュー項目には、選択されたデータ・フィールドのデータ型が反映されます。

3. データ・フィールドに追加するプロパティおよびプロパティ値のパラメータを設定します。図13-5に、値が入力された「プロパティの追加」ダイアログ・ボックスを示します。

図13-5 値が入力された「プロパティの追加」ダイアログ・ボックス

この例では、「User Name」データ・フィールドのRequiredプロパティの値がtrueに設定されているため、関連付けられているフォームが作成されたら、このフィールドにデータを移入する必要があります。このようにしない場合は、フォームを保存できません。

関連項目:

選択するパラメータおよびプロパティ値の詳細は、ルール要素、変数、データ型およびシステム・プロパティに関する説明を参照してください。

4. 「プロパティの追加」ウィンドウのツールバーで「保存」をクリックします。

5. 「閉じる」をクリックします。
プロパティおよびプロパティ値がデータ・フィールドに追加されます。

13.1.2.4.2 カスタマイズされた参照問合せのプロパティおよびプロパティ値の追加

カスタマイズされた参照問合せのプロパティおよびプロパティ値を追加するには、次の手順を実行します。

1. プロパティおよびプロパティ値を追加するデータ・フィールドを選択します。

2. 「プロパティの追加」をクリックします。
図13-6に示す「プロパティの追加」ダイアログ・ボックスが表示されます。

図13-6 「プロパティの追加」ダイアログ・ボックス

注意:

「列名」フィールドおよび「列の型」フィールドに表示されるテキストは、(「フォーム・デザイナ」の「プロパティ」タブで)選択したデータ・フィールドの名前および型です。

この例では、「Name」データ・フィールドが選択されています(「列名」フィールドにNameと表示されています)。さらに、このフィールドのデータ型は参照フィールドです。

「プロパティの追加」ダイアログ・ボックスのボックスは、カスタム参照問合せのWHERE句を作成するのに役立ちます。(メニューから)各ボックスの値を選択すると、カスタム参照問合せにWHERE句が追加されます。

表13-4に、「プロパティの追加」ダイアログ・ボックスのリージョンを示します。最初は、すべてのフィールドがグレー表示されています。参照問合せを定義して「保存」をクリックすると、フィールドがアクティブになります。

表13-4 「プロパティの追加」ダイアログ・ボックスのフィールド

名前

説明

列名

データ・フィールドの名前

列の型

データ・フィールドのデータ型

プロパティ名

このリストから、データ・フィールドのプロパティを選択します。

プロパティ値

このフィールドに、「プロパティ名」ボックスに表示されたプロパティに関連付けるプロパティ値を入力します。

参照問合せの場合、問合せで参照されデータベースによって認識されるOracle Identity Managerのフォームとフィールドの両方を指定する必要があります。

たとえば、Oracle Identity Managerがユーザーのログインを参照する場合、「プロパティ値」フィールドにselect usr_key fromusrと入力します。「保存」をクリックすると、表のすべての列を含む「フィルタ列」がアクティブになります。

フィルタ列

これは、参照問合せで参照されるOracle Identity Managerフォームのフィールドであり、データベースによって認識されます。このフィールドには、「プロパティ値」フィールドで指定された表のすべての列が移入されます。問合せで複数の表が使用されている場合は、すべての表が表示されます。

たとえば、usr.USR_LOGINは、Oracle Identity Managerが参照問合せで「ユーザー」フォームの「ユーザー・ログイン」フィールドを参照することを意味します。

ソース

「フィルタ列」で変数を選択すると、「ソース」フィールドに考えられるすべての値のソースが移入されます。このフィールドの値のリストは、参照フィールドが定義されているフォームのタイプによって異なります。たとえば、参照問合せがオブジェクト・フォームの場合とプロセス・フォームの場合とでは、表示されるリストが異なります。「ソース」フィールドは、「フィルタ列」ボックスに表示される値のわかりやすい名前です。

たとえば、「リクエスタ情報」は、「フィルタ列」値のusr.USR部分を参照します。

フィールド

このフィールドには、「ソース」フィールドで選択された値に基づいてデータが移入されます。このフィールドを使用して、列名に必要なSELECT文を作成します。

たとえば、「ユーザー・ログイン」は、「フィルタ列」値の_LOGIN部分に対応します。

注意:

「プロパティ名」ボックスに表示されるメニュー項目は、選択されたデータ・フィールドのデータ型を示します。

「プロパティの追加」ダイアログ・ボックスの「ソース」および「フィールド」ボックスは、「プロパティ名」に「参照問合せ」が表示される場合にのみ適用できます。

3. データ・フィールドに追加するプロパティおよびプロパティ値のパラメータを設定します。図13-7に、「プロパティの編集」ダイアログ・ボックスを示します。

図13-7 「プロパティの編集」ダイアログ・ボックス

13.1.2.4.3 データ・フィールドからのプロパティおよびプロパティ値の削除

データ・フィールドからプロパティおよびプロパティ値を削除するには、次の手順を実行します。

1. 削除するプロパティおよびプロパティ値を選択します。

2. 「プロパティの削除」をクリックします。
プロパティおよび関連付けられている値がデータ・フィールドから削除されます。

13.1.2.5 「管理者」タブ

このタブは、ユーザーによって「フォーム・デザイナ」フォームを使用して作成されたフォームの現行レコードを表示、変更および削除できるユーザー・グループを選択するために使用します。

「書込み」チェック・ボックスが選択されている場合、対応するユーザー・グループはフォームの現行レコードの情報を表示および変更できます。このチェック・ボックスが選択されていない場合、ユーザー・グループはこのレコードの情報を表示または編集できません。

「削除」チェック・ボックスが選択されている場合、関連付けられているユーザー・グループはフォームの現行レコードから情報を削除できます。このチェック・ボックスが選択されていない場合、ユーザー・グループはこのレコードから情報を削除できません。

図13-8に、「フォーム・デザイナ」フォームの「管理者」タブを示します。

図13-8 「フォーム・デザイナ」フォームの「管理者」タブ

次の各項で、ユーザー作成フォームのレコードに対する管理権限をユーザー・グループに割り当てる方法およびその権限をユーザー・グループから削除する方法について説明します。

13.1.2.5.1 ユーザー作成フォームのレコードに対する権限のユーザー・グループへの割当て

ユーザー作成フォームのレコードに対する管理権限をユーザー・グループに割り当てるには、次の手順を実行します。

1. 「割当て」をクリックします。
「割当て」ダイアログ・ボックスが表示されます。

2. ユーザー・グループを選択し、ユーザー作成フォームのレコードに割り当てます。

3. 「OK」をクリックします。
ユーザー・グループが「管理者」タブに表示されます。

4. このユーザー・グループがユーザー作成フォームの現行レコードの情報を作成および変更できるようにする場合は、対応する「書込み」チェック・ボックスをダブルクリックします。それ以外の場合は、手順5に進みます。

5. このユーザー・グループがユーザー作成フォームの現行レコードから情報を削除できるようにする場合は、対応する「削除」チェック・ボックスをダブルクリックします。そうでない場合は、手順6に進みます。

6. 「保存」をクリックします。

これで、ユーザー作成フォームのこのレコードに対する管理権限がユーザー・グループに割り当てられました。

13.1.2.5.2 ユーザー作成フォームのレコードに対するユーザー・グループ権限の削除

ユーザー作成フォームのレコードに対する管理権限をユーザー・グループから削除するには、次の手順を実行します。

1. 削除するユーザー・グループを選択します。

2. 「削除」をクリックします。
ユーザー・グループにユーザー作成フォームのこのレコードに対する管理権限がなくなりました。

13.1.2.6 「使用方法」タブ

このタブでは、現行フォームが割り当てられているリソース・オブジェクトおよびプロセスを確認できます。

たとえば、「Solaris」フォーム(「表名」フィールドでUD_SOLARISという名前で示されている)が作成され、Solarisのリソース・オブジェクトとプロビジョニング・プロセスの両方に割り当てられています。

注意:

表名は、接頭辞UD_の後にフォーム名が続きます。この例では、フォーム名がSolarisであるため、表名はUD_SOLARISです。

このタブに情報が移入されるのは、「バージョンをアクティブにする」をクリックした後のみです。

13.1.2.7 「事前移入」タブ

このタブを使用して、次の操作を実行します。

- 事前移入アダプタをユーザー作成フォームのデータ・フィールドにアタッチします。

- このアダプタを実行して指定されたデータ・フィールドに情報を移入するかどうかを決定するルールを選択します。

- 選択したルールの優先度値を設定します。

- 事前移入アダプタのアダプタ変数を正しい場所にマップします。

関連項目:

事前移入アダプタ、ユーザー作成フォームのフィールドへの事前移入アダプタのアタッチまたは事前移入アダプタの変数のマップの詳細は、第3章「アダプタの使用」を参照してください。

13.1.2.8 デフォルト列タブ

「フォーム・デザイナ」フォームを使用して作成されたフォームは、2つのタイプのデータ・フィールドで構成されます。

- (「追加列」タブを使用して)ユーザーによって作成されたデータ・フィールド

- Oracle Identity Managerによって作成され、フォームの作成後にフォームに追加されたデータ・フィールド

デフォルト列タブでは、ユーザー作成フォームにデフォルトで追加されるデータ・フィールドの名前、バリアント型および長さを確認できます。その結果、これらのデータ・フィールドを表示することによって、SQL*Plusまたは同様のデータベース・アプリケーションを起動しないでこのタイプのフォームのデータ・フィールドをすべて確認できます。

13.1.2.9 「ユーザー定義フィールド」タブ

このタブを使用して、「フォーム・デザイナ」フォームで作成されたユーザー定義フィールドを表示したり、そのフィールドにアクセスします。作成されたユーザー定義フィールドは、このタブに表示され、データを受け入れたり提供できます。

関連項目:

ユーザー作成フォームのフィールドを作成する方法の詳細は、第15.3項「「ユーザー定義フィールドの定義」フォーム」を参照してください。

13.1.3 フォームの追加バージョンの作成

フォームを作成し、「フォーム・デザイナ」フォームのタブに情報を移入して、フォームが割り当てられるプロセスまたはリソース・オブジェクトを使用して動作するようにする場合、フォームの別のバージョンを作成する必要があることがあります。このようにすると、フォームの元のバージョンを変更することなくこのバージョンを変更できます。

フォームの追加バージョンを作成するには、次の手順を実行します。

1. 「フォーム・デザイナ」フォームを開きます。

2. 別のバージョンを作成する特定のフォームを検索します。

3. 現行バージョン・ボックスをクリックします。
表示されたドロップダウン・メニューから、追加バージョンを作成するフォームのバージョンを選択します。

4. 新しいバージョンの作成ボタンをクリックします。
新しいバージョンの作成ウィンドウが表示されます。

5. 「ラベル」フィールドに、フォームの追加バージョンの名前を入力します。

6. 新しいバージョンの作成ウィンドウのツールバーで「保存」をクリックします。

7. このツールバーで「閉じる」をクリックします。
フォームの追加バージョンが作成されます。現行バージョン・ボックスをクリックすると、手順5の「ラベル」フィールドに入力したバージョン名が表示されます。このバージョンを選択すると、フォームの元のバージョンを変更しないで「フォーム・デザイナ」フォームのタブに情報を移入できます。

13.2 「エラー・メッセージ定義」フォーム

図13-9に示す「エラー・メッセージ定義」フォームは、「開発ツール」フォルダにあります。次の目的で使用します。

- 特定の問題が発生した場合にダイアログ・ボックスに表示されるエラー・メッセージを作成します。

- ユーザーが「アダプタ・ファクトリ」フォームを使用してエラー・ハンドラ・タスクを作成するときにアクセスできるエラー・メッセージを定義します。
作成したエラー・メッセージは、障害状態に基づくエラー・ハンドラ・ロジック・タスクを使用して新しいアダプタを作成するときにアダプタ定義に追加すると、管理およびユーザー・コンソールに表示されます。

注意:

フィールド値の検証のためにエンティティ・アダプタがプロセス・フォームまたはオブジェクト・フォームにアタッチされている場合、ダイレクト・プロビジョニングまたはリクエスト・プロビジョニングの完了後にこれらのフォームのデータを編集すると、これらのアダプタが実行されます。

Oracle Identity Manager 11gリリース1(11.1.1)では、新しいエンティティ・アダプタの作成はサポートされていません。

図13-9 「エラー・メッセージ定義」フォーム

表13-5に、「エラー・メッセージ定義」フォームのデータ・フィールドを示します。

表13-5 「エラー・メッセージ定義」フォームのフィールド

フィールド名

説明

キー

システムによって生成された、エラー・メッセージ定義の一意のID番号

コード

エラー・メッセージ定義を表すコード

カウントのリセット

このボタンをクリックすると、Oracle Identity Managerによってカウンタがゼロにリセットされます。このカウンタは、エラー・メッセージの表示回数です。

説明

エラー・メッセージの説明

処置

エラー・メッセージが表示される原因となった状態を修正する方法に関する説明

ヘルプURL

このエラー・メッセージに関するオンライン・ヘルプ・トピックを含むURLへのリンク

アクション

エラー・メッセージが表示される原因となった状態の重大度を表す1文字のコード。

エラー・メッセージの重大度には、「エラー」(E)、拒否(R)、致命的拒否(F)の3つのレベルがあります。

重大度

エラー・メッセージが表示される原因となった状態の重大度をさらに分類できます。

エラー・メッセージの重大度には、「なし」(N)、「低」(L)、「中」(M)、「高」(H)、クラッシュ(C)の5つのサブレベルがあります。

注意

エラー・メッセージに関する説明

13.2.1 エラー・メッセージの作成

エラー・メッセージを作成すると、Oracle Identity Managerによって「キー」フィールドに一意のID番号が移入されます。エラー・メッセージが表示される原因となる状態が発生すると、「説明」フィールドのテキストがダイアログ・ボックスに表示されます。

注意:

エラー・メッセージ定義の作成後、エラー・メッセージの表示回数をリセットするには、カウントのリセットボタンをクリックします。これにより、カウントがゼロにリセットされます。

エラー・メッセージを作成するには、次の手順を実行します。

1. 「エラー・メッセージ定義」フォームを開きます。

2. 「コード」フィールドに、エラー・メッセージ定義を表すコードを入力します。

3. 「説明」フィールドに、エラー・メッセージの説明を入力します。

4. 処置フィールドに、エラー・メッセージが表示される原因となった状態を修正する方法に関する説明を入力できます。

5. 「ヘルプURL」フィールドに、このエラー・メッセージに関するオンライン・ヘルプ・トピックを含むURLへのリンクを入力できます。

6. (オプション)アクションの参照フィールドをダブルクリックします。
表示される「参照」ダイアログ・ボックスから、エラー・メッセージが表示される原因となった状態の重大度を表すコードを選択できます。これらのコードを重大度の低い順に示します。

- 「エラー」(E)。エラー・メッセージが格納され、関連する操作のトリガーが阻止されます。かわりに、操作が前の操作にロールバックされます。

- 拒否(R)。拒否メッセージが格納されますが、後続の操作の実行は阻止されません。

- 致命的拒否(F)。拒否メッセージが格納され、後続の操作のトリガーが阻止されます。ただし、致命的拒否までに実行されたすべての操作は格納されます。

7. (オプション)重大度の参照フィールドをダブルクリックします。表示された「参照」ダイアログ・ボックスから、コード(「なし」(N)、「低」(L)、「中」(M)、「高」(H)またはクラッシュ(C))を選択できます。このコードは、「アクション」参照フィールドに表示されるコードの詳細な分類です。

8. 「注意」フィールドに、エラー・メッセージに関する説明を入力します。

9. 「保存」をクリックします。
エラー・メッセージが作成されます。

「エラー・メッセージ定義」フォームを使用してエラー・メッセージを作成した後に、Oracle Identity ManagerのcustomResources.propertiesリソース・バンドルに新しいエラー・コードおよび忠告メッセージを追加する必要があります。これらのローカライズされたコードおよび忠告メッセージは、管理およびユーザー・コンソールに表示されます。

14 リコンシリエーション操作のカスタマイズ

Oracle Identity Managerでは、Microsoft Active Directory、Sun Java System Directory、Oracle Internet Directory、Oracle E-Business Suiteなどの様々なターゲット・システムからユーザーやアカウントをリコンシリエーションするためのコネクタを提供しています。これらのコネクタの詳細は、次のURLのOracle Technology Network(OTN)WebサイトにあるOracle Identity Managerコネクタのドキュメントを参照してください。

http://www.oracle.com/technetwork/indexes/documentation/index.html

ただし、カスタム・コネクタを作成するには、次を実行する新しいスケジュール済タスクを開発する必要があります。

1. ターゲット・システムからユーザーやアカウント情報を取得します。

2. リコンシリエーションAPIを使用して、イベント・データを送信するリコンシリエーション・イベントを作成します。

3. エンティティを作成、変更または削除するためのイベントを作成します。

関連項目:

スケジュール済タスクの開発の詳細は、第6章「スケジュール済タスクの開発」を参照してください。

14.1 リコンシリエーションのスケジュール済タスクの開発

特定のターゲット・システムに接続するには、次のことを実行する必要があります。

- 新規ITリソース・タイプの作成

- 新規ITリソースの定義

- スケジュール済タスクの入力パラメータとしてITリソースを使用

関連項目:

ITリソース定義を参照するためのAPIの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

Oracle Identity Managerでは、プロビジョニング・プロセスとプロセス・インスタンスは、ユーザーまたはアカウントに関係するアクティビティに関連付けられています。これにより、様々なアクションに対するカスタマイズを追加するためのフックまたはポイントが提供されます。

ユーザー状態またはアカウント状態に対する変更が、直接APIまたはリコンシリエーションを介して発生する場合があります。変更には、次のように様々なタイプがあります。

関連項目:

リコンシリエーションAPIの詳細は、「リコンシリエーションAPIの理解」を参照してください。

- ユーザーまたはアカウント・プロファイルでのデータ変更

- 有効化や無効化などのステータス変更

- アテステーション・プロセスに基づくユーザーへの変更

- 組織の変更

- 属性の伝播

- パスワードの伝播

これらの各変更の場合は、プロセス定義により、これらのいずれかの変更時に実行されるフックを追加する機能が提供されます。リコンシリエーションの場合は、プロセス定義により、次の条件付きタスクの形式でフックが提供されます。

- 受信したリコンシリエーションの挿入: この条件付きタスクは、アカウントがリコンシリエーションを介して作成された場合に挿入されます。

- 受信したリコンシリエーションの更新: この条件付きタスクは、ユーザーにリンクされている既存のアカウントがリコンシリエーションを介して更新された場合に挿入されます。プロセス・フォーム内のデータ、またはアカウントのステータスが更新されます。

- 受信したリコンシリエーションの削除: この条件付きタスクは、既存のアカウントがリコンシリエーションを介して失効された場合に挿入されます。

これらのタスクでは、ワークフローの開始ポイントを提供します。プロビジョニング・プロセスにカスタム・ワークフローを作成したり、リコンシリエーション・トリガー・タスクとワークフロー間の依存性を作成できます。これにより、ワークフローが個別のトリガーで実行されるようになります。

ユーザーまたはアカウントに正常にリンクされているすべてのリコンシリエーション・イベントが、条件付きタスクからの単一トリガーを挿入します。ユーザー・プロファイルおよびアカウント・プロファイル内のすべてのデータが、これらの依存タスクのいずれかにアタッチされているアダプタで状況依存データとして使用できます。

関連項目:

条件付きタスク、アダプタおよび依存性の作成の詳細は、第V部「リクエストおよび承認プロセス」および第I部「概念」を参照してください。

14.2 リコンシリエーションAPIの理解

リコンシリエーションAPIは、単一値や複数値の属性データおよびその他の機能でリコンシリエーション・イベントを作成するために使用できる一連の公開APIです。

リコンシリエーション・コネクタの開発者は、これらのAPIを使用して、リコンシリエーション・イベント・リポジトリにデータをプッシュする必要があります。

関連項目:

Oracle Identity ManagerでのAPIの使用の詳細は、第31章「APIの使用」を参照してください。

これらのAPIのほとんどが、以前のバージョンのOracle Identity Managerに存在していました。ただし、11gリリース1(11.1.1)では、実装が変更され、このリリースで導入された新しいリコンシリエーション・アーキテクチャに基づいています。

以前のAPIが引き続きサポートされているため、既存の標準コネクタでもこれらのAPIが使用され、これらのコネクタに対する変更は必要ありません。

callingEndOfJobAPIは、11gリリース1(11.1.1)における唯一の新しいリコンシリエーションAPIです。

コネクタの各実行は、ジョブと呼ばれます。11gリリース1(11.1.1)では、リコンシリエーション・イベントはリコンシリエーション・エンジンにバッチ送信されます。ジョブが終了すると、(コネクタのスケジュール済タスクを実行する)スケジューラはリスナーを実行し、リスナーはcallingEndOfJOBAPIを呼び出します。このAPIは、すべてのオープン・バッチを処理のためにリコンシリエーション・エンジンに送信します。

このAPIコールは、多言語サポート(MLS)データと非MLSデータで類似しています。コネクタは、HashMapとしてリコンサイルされるデータを渡します。相違点は、属性がMLS対応である場合、キーが属性名で、値がMLSデータの別のHashMapであることです。このMLS固有のHashMapのキーは言語コードで、値はターゲット・システムから取得された対応するロケール固有データです。定義されたロケールがないMLSデータがターゲット・システムに存在する場合、そのデータはMLS入力データHashMapでキーbaseを使用して渡されます。

14.3 信頼できるリコンシリエーションの後処理

信頼できるリコンシリエーションにユーザー・ログインが渡されない場合は、ログイン・ハンドラがユーザー・ログインを生成します。パスワードは、後処理イベント・ハンドラで生成されます。このことを示す通知を送信するようにOracle Identity Managerを構成できます。

通知は、Recon.SEND_NOTIFICATIONシステム・プロパティの値がtrueに設定されている場合にのみ送信されます。Recon.SEND_NOTIFICATIONシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する説明を参照してください。

SSOが無効な環境では、リコンシリエーションを介したユーザー作成の場合、ユーザー・ログインとパスワードの両方が後処理ハンドラで生成され、単一の通知がユーザー・ログインとパスワードの両方に送信されます。

SSOが有効な環境では、パスワードは生成されないため、ログインが後処理ハンドラで生成されると、通知はユーザー・ログインに対してのみ送信されます。

14.4 リコンシリエーションのトラブルシューティング

リコンシリエーションに関連する問題をトラブルシューティングする前に、リコンシリエーション・ロギング・レベルをINFOに変更します。これを行うには、次の行をlogging.xmlファイルに追加し、Oracle Identity Managerを再起動します。

<LOGGER NAME="ORACLE.IAM.RECONCILIATION" LEVEL="INFO"/>

この項では、リコンシリエーション問題のトラブルシューティングについて次の各項で説明します。

- 一般的なリコンシリエーション問題のトラブルシューティング

- 信頼できるソースのリコンシリエーションのトラブルシューティング

- ターゲット・リソース・リコンシリエーションのトラブルシューティング

- データベース関連のリコンシリエーション問題のトラブルシューティング

14.4.1 一般的なリコンシリエーション問題のトラブルシューティング

表14-1に、リコンシリエーション・エラーが発生した場合に実行できるトラブルシューティング手順を示します。

表14-1 リコンシリエーションのトラブルシューティング

問題

解決策

イベント処理での失敗

エラーの詳細は、リコンシリエーション表から次のように取得できます。

- バッチ処理の場合、例外はRECON_BATCHES.RB_NOTE列に格納されています。

- 単一イベントの処理の場合、例外はRECON_EVENTS.RE_NOTE列に格納されています。

カーネル編成ハンドラで発生した失敗

編成IDは、リコンシリエーション表で追跡でき、この表をさらに使用して、次のように関連ハンドラのステータスを確認できます。

- バッチ処理の場合、後処理のみの編成IDをRECON_BATCHES.RB_NOTE列から読み取ることができます。

- 単一イベントの処理の場合、エンドツーエンド編成IDをRECON_EVENTS.RE_NOTE列から読み取ることができます。

リコンシリエーション時にLDAP同期を表示するUIはありません。したがって、LDAPの成功または失敗は、RB_NOTE/RE_NOTE列で使用可能なIDに基づいて、編成内のLDAP同期イベント・ハンドラのステータスを確認することによってのみ追跡できます。

ジョブの実行後、多数のイベントが「データを受信しました」ステータスになる

次の文を使用して、関連するバッチが処理の準備完了ステータスであるかどうかを確認します。

select rb_batch_status, rb_note from recon_batches where rb_batch_status = 'Ready For Processing' and rj_key = JOB_ID_ON_UI

また、RECON_BATCHES.RB_NOTEには、接続の問題などの一般的な例外が含まれています。問題を修正し、次のいずれかを実行します。

- 多数のデータがある場合は、リコンシリエーション・ジョブを返します。

- このような失敗したバッチを手動で再試行するために提供されているスケジュール済タスク、「リコンシリエーション・バッチの再試行」があります。これは、特定のバッチの再試行にのみ使用できます。カンマ区切りの複数のバッチがサポートされています。このスケジュール済タスクに関連付けられている事前定義済ジョブはありません。必要に応じて、ジョブを作成できます。

信頼できるソースのリコンシリエーションの場合にユーザー更新を実行すると、次のエラーが生成される

ORA Error Code =>ORA-00001: unique constraint (.) violated

信頼できるソースのリコンシリエーションでは、一致ルールがUsr_loginに基づいている場合、その一致ルールでは大文字/小文字が区別されていないことが必要です。そうでないと、ユーザーの更新がユーザーの作成として機能し、エラーが生成される場合があります。

14.4.2 信頼できるソースのリコンシリエーションのトラブルシューティング

この項では、信頼できるソースのリコンシリエーションに関連する次の問題について説明します。

リコンシリエーション・プロファイルが存在しない

リコンシリエーション・プロファイルが欠落している場合、次のエラーがログに記録されます。

[EXEC] ORACLE.IAM.RECONCILIATION.EXCEPTION.RECONCILIATIONEXCEPTION: EXCEPTION OCCURRED WHILE INSERTING DATA INTO TABLE RA_TESTRORECON7 DUE TO RA_TESTRORECON7
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.RECONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.API.RECONOPERATIONSSERVICEEJB.CREATERECONCILIATIONEVENTX(UNKNOWN SOURCE)
.....
.....
.....
[EXEC] CAUSED BY: ORACLE.IAM.PLATFORM.ENTITYMGR.NOSUCHENTITYEXCEPTION: RA_TESTRORECON7
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERCONFIGIMPL.EXISTS(ENTITYMANAGERCONFIGIMPL.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERCONFIGIMPL.GETDATAPROVIDER(ENTITYMANAGERCONFIGIMPL.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERIMPL.GETENTITYCAPABILITY(ENTITYMANAGERIMPL.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERIMPL.GETENTITYCAPABILITY(ENTITYMANAGERIMPL.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERIMPL.CREATEENTITY(ENTITYMANAGERIMPL.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ENTITYMGR.IMPL.ENTITYMANAGERIMPL.CREATEENTITY(ENTITYMANAGERIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.RECONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.RECONOPERATIONSSERVICEIMPL.CREATERECONCILIATIONEVENT(RECONOPERATIONSSERVICEIMPL.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.API.RECONOPERATIONSSERVICEEJB.CREATERECONCILIATIONEVENTX(UNKNOWN SOURCE)
.....
.....
.....

リコンシリエーション・フィールド・マッピングの欠落または非アクティブな所有者ルール

次のエラーがログに記録される場合は、次のとおりです。

- 定義されているリコンシリエーション・フィールドがありません。

- リコンシリエーション・フィールドが追加されているが、マッピングが定義されていません。

- 定義されている一致ルールが存在しないか、または一致ルールが非アクティブです。

[EXEC] ORACLE.IAM.PLATFORM.UTILS.SUPERRUNTIMEEXCEPTION: -100: ERROR OCCURED IN XL_SP_RECONBLKUSRRQDCVALDNMTCH WHILE PROCESSING BATCH ID 4   ONE OR MORE INPUT PARAMETER PASSED AS NULL
[EXEC] AT ORACLE.IAM.RECONCILIATION.DAO.RECONACTIONDAO.EXECUTEBULKUSERMATCHCRUD(RECONACTIONDAO.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.USERHANDLER.EXECUTEBULKCUD(USERHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.BASEENTITYTYPEHANDLER.PROCESS(BASEENTITYTYPEHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.PROCESSBATCH(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.EXECUTE(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONTASK.EXECUTE(ACTIONTASK.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ASYNC.IMPL.TASKEXECUTOR.EXECUTEUNMANAGEDTASK(TASKEXECUTOR.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ASYNC.IMPL.TASKEXECUTOR.EXECUTE(TASKEXECUTOR.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ASYNC.MESSAGING.MESSAGERECEIVER.ONMESSAGE(MESSAGERECEIVER.JAVA)
.....
.....
.....
[EXEC] CAUSED BY: ORACLE.IAM.PLATFORM.UTILS.SUPERRUNTIMEEXCEPTION: -100: ERROR OCCURED IN XL_SP_RECONBLKUSRRQDCVALDNMTCH WHILE PROCESSING BATCH ID 4   ONE OR MORE INPUT PARAMETER PASSED AS NULL
[EXEC] AT ORACLE.IAM.RECONCILIATION.DAO.RECONACTIONDAO.EXECUTEBULKUSERMATCHCRUD(RECONACTIONDAO.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.USERHANDLER.EXECUTEBULKCUD(USERHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.BASEENTITYTYPEHANDLER.PROCESS(BASEENTITYTYPEHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.PROCESSBATCH(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.EXECUTE(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONTASK.EXECUTE(ACTIONTASK.JAVA)
[EXEC] AT ORACLE.IAM.PLATFORM.ASYNC.IMPL.TASKEXECUTOR.EXECUTEUNMANAGEDTASK(TASKEXECUTOR.JAVA)

リコンシリエーション・アクション・ルールの欠落

適切なリコンシリエーション・フィールドとマッピングが定義されており、一致ルールも有効かつアクティブであるが、依然としてイベント・ステータスが「ユーザーの一致が見つかりません」である場合は、定義されたアクション・ルールが存在しない可能性があります。リコンシリエーション・アクション・ルールを追加すると、ユーザーが正常に作成されます。

14.4.3 ターゲット・リソース・リコンシリエーションのトラブルシューティング

この項では、ターゲット・リソースのリコンシリエーションに関連する次の問題について説明します。

プロセス・フォームの欠落

すべてのプロセス・データ・フィールド・マッピングを削除し、プロファイルを再生成した場合に、次のエラーがログに記録されます。

[EXEC] <APR 19, 2011 11:13:48 PM PDT> <ERROR> <ORACLE.IAM.RECONCILIATION.IMPL> <IAM-5010000> <GENERIC INFORMATION: {0}
[EXEC] ORACLE.IAM.PLATFORM.UTILS.SUPERRUNTIMEEXCEPTION: -1: ERROR OCCURRED IN XL_SP_RECONINPUTPARAMSVALDN ORA-20001: COMMA-SEPARATED LIST INVALID NEAR D
[EXEC] AT ORACLE.IAM.RECONCILIATION.DAO.RECONACTIONDAO.EXECUTEBULKUSERMATCHCRUD(RECONACTIONDAO.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.USERHANDLER.EXECUTEBULKCUD(USERHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.BASEENTITYTYPEHANDLER.PROCESS(BASEENTITYTYPEHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.PROCESSBATCH(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.EXECUTE(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONTASK.EXECUTE(ACTIONTASK.JAVA)

このエラーの原因として、プロセス・フォームの欠落が考えられます。

プロセス・フォーム・マッピングの欠落またはWHERE句選択の欠落

すべてのプロセス・データ・フィールド・マッピングを削除し、プロセス・フォームを追加し、プロファイルを再生成した場合に、次のエラーがログに記録されます。

[EXEC] <APR 19, 2011 11:25:31 PM PDT> <WARNING> <JNDI> <BEA-050007> <AN ATTEMPT WAS MADE TO LOOK UP NON-VERSIONED GLOBAL RESOURCE "QUEUE" FROM AN APPLICATION VERSION "OIM [VERSION=11.1.1.5.0]". THIS CAN POTENTIALLY CAUSE CONFLICT OF THE GLOBAL RESOURCE USAGES AMONG MULTIPLE APPLICATION VERSIONS.>
[EXEC] <APR 19, 2011 11:25:31 PM PDT> <ERROR> <ORACLE.IAM.RECONCILIATION.IMPL> <IAM-5010000> <GENERIC INFORMATION: {0}
[EXEC] JAVA.LANG.NULLPOINTEREXCEPTION
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.CONFIG.PROFILE.GETACCOUNTMATCHINGRULESWHERECLAUSE(PROFILE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.PROFILEDATA.GETACCOUNTMATCHINGRULES(PROFILEDATA.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.DAO.RECONACTIONDAO.EXECUTEBULKACCOUNTMATCHCRUD(RECONACTIONDAO.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACCOUNTHANDLER.EXECUTEBULKCUD(ACCOUNTHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.BASEENTITYTYPEHANDLER.PROCESS(BASEENTITYTYPEHANDLER.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.PROCESSBATCH(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.EXECUTE(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONTASK.EXECUTE(ACTIONTASK.JAVA)

このエラーの原因として、プロセス・フォーム・マッピングの欠落またはWHERE句選択の欠落が考えられます。

有効なアクション・ルールの欠落

すべてのプロセス・データ・フィールド・マッピングを削除し、プロセス・フォームとマッピングを追加し、WHERE句選択を追加し、プロファイルを再生成した場合に、次のエラーがログに記録されます。

[EXEC] <APR 19, 2011 11:36:20 PM PDT> <WARNING> <ORACLE.IAM.PLATFORM.ASYNC> <BEA-000000> <EXCEPTION FOR ABOVE MESSAGE I.E IAM-0050000
[EXEC] ORACLE.IAM.PLATFORM.UTILS.SUPERRUNTIMEEXCEPTION: ORACLE.IAM.PLATFORM.UTILS.SUPERRUNTIMEEXCEPTION: -15: ERROR IN  XL_SP_RECONBLKACNTRQDCMTCHCRUD WHILE PROCESSING BATCH ID 18 ERROR OCCURED IN XL_SP_RECONBLKCHILDMTHACNTCRUD WHILE PROCESSING BATCH ID - 18 ACTION RULE 'CREATE USER' FOR NO ENTITY MATCH FOUND IS INVALID.  YOU MUST PASS A VALID NO USER MATCH FOUND ACTION RULE. -20101 -ERROR- ORA-20101:
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.PROCESSBATCH(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONENGINE.EXECUTE(ACTIONENGINE.JAVA)
[EXEC] AT ORACLE.IAM.RECONCILIATION.IMPL.ACTIONTASK.EXECUTE(ACTIONTASK.JAVA)

このエラーの原因として、有効なアクション・ルールが追加されていないことが考えられます。図14-1に、無効なアクション・ルールが表示されたDesign Console画面を示します。

図14-1 無効なアクション・ルール

「図14-1 無効なアクション・ルール」の説明

有効なアクション・ルールを追加すると、アカウントが正常に作成されます。図14-2に、有効なアクション・ルールが表示されたDesign Console画面を示します。

図14-2 有効なアクション・ルール

「図14-2 有効なアクション・ルール」の説明

プロファイルが生成されていない

すべてのプロセス・データ・フィールド・マッピングを削除し、プロセス・フォームとマッピングを追加し、WHERE句選択を追加し、一致ルールを更新した場合に、プロファイルが生成されず、「有効なアクション・ルールの欠落」と同じエラーがログに記録されます。

一致ルールがNULLまたは非アクティブである

一致ルールがNULLまたは非アクティブな場合、次のエラーがログに記録されます。

Thor.API.Exceptions.tcAPIException:
oracle.iam.reconciliation.exception.ReconciliationException: Matching rule where clause is null

プロファイルXMLファイルを更新します。プロファイルXMLファイルを手動で更新する場合は、次のサンプルXMLを、プロファイル内の明確に定義されたアクティブな一致ルールに使用します。

<ReconUserMatchingRule repo-type="RDBMS" name="AS400TrustedUser Recon
Rule">
<RRL_UPDATE>1301687006000</RRL_UPDATE>
<RRL_VALID>1</RRL_VALID>
<RRL_OPERATOR>AND</RRL_OPERATOR>
<RRL_DESCRIPTION>AS400TrustedUser Recon Rule</RRL_DESCRIPTION>
<RRL_ACTIVE>1</RRL_ACTIVE>
<ReconRuleElement repo-type="RDBMS" id="RRE1">
<RRE_SEQUENCE>1</RRE_SEQUENCE>
<RRE_UPDATE>1301689575000</RRE_UPDATE>
<RRE_FIELDNAME>User Login</RRE_FIELDNAME>
<RRE_CASESENSITIVE>0</RRE_CASESENSITIVE>
<RRE_VALID>1</RRE_VALID>
<RRE_TRANSFORM>None</RRE_TRANSFORM>
<RRE_OPERATOR>Equals</RRE_OPERATOR>
<ORF_KEY Resource="AS400TrustedUser" ReconField="User Login"/>
</ReconRuleElement>
</ReconUserMatchingRule>

Design Consoleを使用した変更の場合は、ルールを更新し、プロファイルを再生成します。

イベントの子データの欠落

イベントの子データを渡さなかった場合にデータが削除されないという現象が、アカウントのターゲットですべての子データが削除されている場合に一部のコネクタで発生します。

アカウントからユーザーへの非定型リンクがある場合に、複数のアカウントが一致する

アカウントからユーザーへの非定型リンクがある場合は、特定のユーザーのアカウントを指定しても、アカウントの一致ルールに基づいて、複数のアカウントが一致する場合があります。これは、一致したアカウント・リストからアカウントを選択し、管理およびユーザー・コンソールで「リンク」をクリックすることによって解決できます。

14.4.4 データベース関連のリコンシリエーション問題のトラブルシューティング

この項では、次のデータベース関連のリコンシリエーション問題について説明します。

Oracle Database 11gリリース1の重要な個別パッチの欠落

RDBMS個別パッチ# 7614692が欠落している場合は、次のエラーがログに記録されます。

ORA-02291: INTEGRITY CONSTRAINT (FK_RECON_EVENTS_USR) VIOLATED - PARENT KEY NOT FOUND
[EXEC] ORA-06512: AT "OIM_SP_RECONBLKUSERCRUD"
[EXEC] ORA-06512: AT "OIM_SP_RECONBLKUSRMLSWRAPPER"
[EXEC] ORA-06512:

この問題を解決するには、次のパッチがOracle Database 11gリリース1(11.1.0.7.0)にインストールされている必要があります。

- p7614692_111070

- p7000281_111070

- p8327137_111070

- p8617824_111070

注意:

次のURLからすべての個別パッチをダウンロードできます。

http://support.oracle.com

Oracle Database 11gリリース2の重要な個別パッチの欠落

一部のSQLスクリプトを実行すると、Oracle Database 11gリリース2(11.2.0.2.0)で誤った結果または矛盾した結果が生成される場合があり、これは以前のリリースのOracle Databaseでは発生しませんでした。

この問題を解決するには、Oracle Database 11gリリース2用のパッチ# 10259620がインストールされている必要があります。

低速なリコンシリエーションおよびエラー・ログ内の類似トレース

SQLスクリプトに大量の一致ルールがある場合、エンティティ表が低速になるのは、データベースでの全表スキャンや最適化されていないSQL計画が原因であると考えられます。

リコンシリエーションは、一致ルールの列が適切に索引付けされていなかったり、スキーマ統計が古いと、低速になる場合があります。低速の結果として、次のようなエラー・ログが記録されます。

oracle.iam.platform.utils.SuperRuntimeException: java.sql.SQLException:
ORA-01013: user requested cancel of current operation
ORA-06512: at "XL_SP_RECONBLKROLEMATCH"
ORA-06512: at "OIM_SP_RECONBLKROLEMLSWRAPPER"
ORA-06512:

at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkMana gerImpl.java)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java)
at weblogic.work.ExecuteThread.run(ExecuteThread.java)
Caused by: java.sql.SQLException: ORA-01013: user requested cancel of current operation
ORA-06512: at "XL_SP_RECONBLKROLEMATCH"
ORA-06512: at "OIM_SP_RECONBLKROLEMLSWRAPPER"
ORA-06512:
.
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java)

この問題の解決方法:

1. 一致ルールの列に対して適切な索引がすべて作成されていることを確認します。

2. データベースのスキーマ統計がガイドラインに従って収集されていることを確認します。

関連項目:

リコンシリエーション用の索引の作成およびデータベース統計の収集の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのリコンシリエーションのコネクタに関する説明を参照してください。

15 参照定義、UDFおよびRemote Managerの開発

この章では、Design Consoleを使用してOracle Identity Managerを管理する方法について説明します。内容は次のとおりです。

- 概要

- 「参照定義」フォーム

- 「ユーザー定義フィールドの定義」フォーム

- 「Remote Manager」フォーム

15.1 概要

Design Consoleの「管理」フォルダには、システム管理者がOracle Identity Manager管理機能を管理するためのツールがあります。このフォルダには、次のフォームが含まれます。

- 参照定義: このフォームは、参照定義の作成と管理に使用します。参照定義とは、参照フィールドと、その参照フィールドからアクセスできる値を示すものです。

- ユーザー定義フィールドの定義: このフォームは、ユーザー定義フィールドの作成と管理に使用します。ユーザー定義フィールドを使用すると、Design Consoleフォームの追加情報を格納できます。

- Remote Manager: このフォームは、Oracle Identity Managerがサード・パーティのプログラムとの通信に使用するサーバーの情報を表示するために使用します。これらのサーバーは、リモート・マネージャと呼ばれます。

- パスワード・ポリシー: このフォームは、ユーザーに適用されるパスワード関連の制限を設定したり、パスワード・ポリシーに関連付けられたルールとリソース・オブジェクトを表示するために使用します。パスワード・ポリシーの詳細は、『Oracle Fusion Middleware Oracle Identity Manager管理者ガイド』のパスワード・ポリシーの管理に関する説明を参照してください。

注意:

このリリースでは、「システム構成」フォームと「タスク・スケジューラ」フォームは、管理およびユーザー・コンソールの一部となっています。詳細は、Oracle Identity Manager管理者ガイドを参照してください。

15.2 「参照定義」フォーム

参照定義は、次のいずれかを表します。

- テキスト・フィールドの名前と説明

- 参照フィールド、および参照フィールドをダブルクリックしてその参照フィールドからアクセス可能な値

- ボックス、およびそのボックスから選択可能なコマンド

テキスト・フィールド、参照フィールドまたはボックスに関する情報が含まれたこれらの項目は、参照値と呼ばれます。ユーザーは、次の2つのいずれかの場所から参照定義にアクセスできます。

- Oracle Identity Managerとともにパッケージ化されているフォームまたはタブ

- 「フォーム・デザイナ」フォームを使用して構築されたユーザー定義のフォームまたはタブ

図15-1に示す「参照定義」フォームは、Design Consoleの「管理」フォルダにあります。このフォームを使用して、参照定義を作成および管理します。

図15-1 「参照定義」フォーム

表15-1に、「参照定義」フォームのデータ・フィールドを示します。

表15-1 「参照定義」フォームのフィールド

フィールド名

説明

コード

参照定義の名前。

フィールド

テキスト・フィールド、参照フィールドまたはボックス・フィールドにアクセスできるフォームまたはタブの表の列名。

参照タイプ/フィールド・タイプ

このオプションでは、参照定義がテキスト・フィールド、参照フィールドまたはボックスのいずれを表すかを指定します。

フィールド・タイプ・オプションを選択した場合、参照定義はテキスト・フィールドを表します。

参照タイプオプションを選択した場合、参照定義は参照フィールドまたはボックスのいずれかを表し、さらにその参照フィールドまたはボックスからアクセス可能な値を表します。

注意: Oracle Identity Managerとともにパッケージ化されているフォームまたはタブの場合、参照定義は参照フィールドまたはボックスのいずれかとしてすでに設定されています。これは変更できません。ただし、参照フィールドまたはボックスからアクセスできる値を追加または変更することはできます。

ユーザー定義のフォームまたはタブの場合は、ユーザーが「フォーム・デザイナ」フォームの追加列タブを使用して、参照定義が参照フィールドまたはボックスのいずれを表すかを指定します。

参照定義のデータ型指定の詳細は、「追加列タブ」を参照してください。

必須

このチェック・ボックスを選択すると、参照定義が必須として指定されます。その結果、その参照定義が表すフィールドまたはボックスにデータが入力されるまで、Oracle Identity Managerでは対応するフォームまたはタブの内容の保存が許可されません。

グループ

参照定義を表示するOracle Identity Managerフォームまたはユーザー定義フォームの名前。

次の項では、参照定義を作成する方法について説明します。

15.2.1 参照定義の作成

参照定義を作成するには、次の手順を実行します。

1. 「参照定義」フォームを開きます。

2. 「コード」フィールドに、参照定義の名前を入力します。

3. 「フィールド」フィールドに、テキスト・フィールド、参照フィールドまたはボックス・フィールドにアクセスできるOracle Identity Managerまたはユーザー作成のフォームまたはタブの表の列名を入力します。

4. 参照定義が参照フィールドまたはボックスを表す場合は、参照タイプ・オプションを選択します。
参照定義がテキスト・フィールドを表す場合は、フィールド・タイプ・オプションを選択します。

5. オプション。参照定義が表すフィールドまたはボックスにデータが入力された場合にのみこのフォームまたはタブの内容を保存するには、「リクエスト」チェック・ボックスを選択します。そうでない場合は、手順6に進みます。

6. 「グループ」フィールドに、参照定義を表示するOracle Identity Managerフォームまたはユーザー定義フォームの名前を入力します。

「コード」、「フィールド」および「グループ」フィールドに入力するテキストは、ネーミング規則に従っている必要があります。

関連項目:

ネーミング規則の詳細は、「「参照定義」フォーム」を参照してください。

7. 「保存」をクリックします。
参照定義が作成されます。関連付けられたテキスト・フィールド、参照フィールドまたはボックスが、指定したOracle Identity Managerまたはユーザー定義のフォームまたはタブに表示されます。

15.2.2 参照コード情報タブ

参照コード情報タブは、「参照定義」フォームの下半分にあります。このタブは、選択した参照定義の詳細情報を作成および管理するために使用します。この情報には、参照定義に関連する値の名前、説明、言語コードおよび国コードが含まれます。これらの項目は参照値と呼ばれます。

次の手順では、参照値を作成、変更および削除する方法について説明します。

15.2.2.1 参照値の作成および変更

参照値を作成または変更するには、次の手順を実行します。

注意:

国際化の目的で、参照値には言語コードと国コードの両方を指定する必要があります。

新しい参照定義を作成する場合は、参照定義を保存してから参照値を追加してください。

1. 「参照定義」フォームを開きます。

2. 参照定義にアクセスします。

3. 参照値を作成する場合は、「追加」をクリックします。
参照コード情報タブに空白行が表示されます。

参照値を変更する場合は、編集する参照値を選択します。

4. コード・キー・フィールドで情報を追加または編集します。
このフィールドには参照値の名前が含まれています。

また、参照タイプ・オプションが選択されている場合、このフィールドは、ユーザーが選択を行ったときに参照フィールドまたはボックスに表示される内容も表します。

5. デコード・フィールドで情報を追加または編集します。
このフィールドには参照値の説明が含まれています。

注意:

このデコード値は、人が読むためのフィールドの説明です。このデコード値は、プロビジョニングに使用される実際のコード値です。たとえば、デコード値はLDAPグループ名、エンコード値はLDAPグループGUIDとなります。

参照タイプ・オプションが選択されている場合、このフィールドは次のいずれかも表します。

- ユーザーが対応する参照フィールドをダブルクリックした後に参照ウィンドウに表示される項目

- 関連付けられたボックスに表示されるコマンド

6. 「保存」をクリックします。
これで、作成または変更した参照値に、入力した設定が反映されます。

15.2.2.2 参照値の削除

参照値を削除するには、次の手順を実行します。

注意:

参照値を削除すると、その参照が表す内容によっては問題が発生する場合があります。たとえば、参照値が権限を表しており、それを削除する場合は、様々な場所(その権限が含まれているアクセス・ポリシーや、その権限が付与されているユーザー・アカウントなど)から削除する必要があります。このため、参照値を削除する前に、考えられる影響をすべて確認することをお薦めします。

1. 「参照定義」フォームを開きます。

2. 参照定義を検索します。

3. 削除する参照値を選択します。

4. 「削除」をクリックします。選択した参照値が削除されます。

15.2.3 ユーザーのチャレンジ質問の構成

「参照定義」フォームを使用して、ユーザーのチャレンジ質問を構成できます。これらのチャレンジ質問は、ユーザーがパスワードを忘れ、再取得しようとするときに表示されます。ユーザーは、パスワードの作成時に指定したのと同じ回答を入力する必要があります。

ユーザーのチャレンジ質問を構成するには、次の手順を実行します。

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

2. 「管理」、「参照定義」に移動します。

3. チャレンジ質問の参照、つまりlookup Code = Lookup.WebClient.Questionsを検索します。

4. 参照コード情報タブで、コード・キー・フィールドとデコード・フィールドに適切な値を入力して、質問を追加します。

5. 「追加」をクリックします。

6. このキーをカスタム・リソース・バンドルに追加します。

15.3 「ユーザー定義フィールドの定義」フォーム

Oracle Identity Managerによりデフォルトで提供されるフィールドを補足する必要がある場合があります。新しいフィールドを作成して、それらを様々なOracle Identity Managerフォームに追加できます。これらのフィールドはユーザー定義フィールド(UDF)と呼ばれます。つまり、Oracle Identity Managerでは、管理者は一部のOracle Identity Manager表のスキーマを拡張できます。これは、UDFの形式で提供されます。

ユーザー定義フィールドは、「フォーム名」フィールドに表示されるフォームの「ユーザー定義フィールド」タブに表示されます。たとえば、図15-2に、「組織」フォームの「ユーザー定義フィールド」タブに追加された「Access Code Number」ユーザー定義フィールドを示します。

図15-2に示すように、Design Consoleの「管理」フォルダに「ユーザー定義フィールドの定義」フォームが表示されます。このフォームは、「組織」、「リソース・オブジェクト」、「ロール」および「フォーム・デザイナ」の各フォームのユーザー定義フィールドを作成および管理するために使用します。

表15-2に、「ユーザー定義フィールドの定義」フォームのデータ・フィールドを示します。

表15-2 「ユーザー定義フィールドの定義」フォームのフィールド

フィールド名

説明

フォーム名

ユーザー定義フィールドを含むフォームの名前。このフィールドはユーザー定義列タブに表示されます。

注意: ユーザーのユーザー定義フィールドはユーザーのプロファイル情報に関連しているため、「ユーザー」フォームの「ユーザー・プロファイル」タブに表示されます。

説明

ユーザー定義フィールドに関する追加情報。

自動事前移入

このチェック・ボックスは、事前移入アダプタがアタッチされたフォームのユーザー定義フィールドがOracle Identity Managerとユーザーのいずれによって移入されるかを指定します。

これらのフィールドをOracle Identity Managerによって移入する場合は、自動事前移入チェック・ボックスを選択します。

このフィールドに、ユーザーがツールバーの事前移入ボタンをクリックして移入するか、手動でデータを入力することによって移入する場合は、このチェック・ボックスの選択を解除します。

注意: この設定により、事前移入アダプタのトリガーは制御されません。アダプタの実行によって得られる内容を関連するユーザー定義フィールドに表示するのが、Oracle Identity Managerとユーザーのどちらかということだけを決定するものです。

事前移入アダプタの詳細は、『Oracle Identity Manager Toolsリファレンス・ガイド』を参照してください。

注意: このチェック・ボックスは、ユーザー定義フィールドを作成し、そのフィールドに事前移入アダプタが関連付けられている場合にのみ有効です。

次の項では、ユーザー定義フィールドのターゲット・フォームを選択する方法について説明します。

15.3.1 ユーザー定義フィールドのターゲット・フォームの選択

ユーザー定義フィールドのターゲット・フォームを選択するには、次の手順を実行します。

1. 「ユーザー定義フィールドの定義」フォームを開きます。

2. 「フォーム名」参照フィールドをダブルクリックします。
表示される参照ウィンドウから、作成するユーザー定義フィールドが表示されるOracle Identity Managerフォーム(「リソース・オブジェクト」、「組織」、「ロール」または「フォーム・デザイナ」)を選択します。

3. 「OK」をクリックします。
ユーザー定義フィールドの追加先のフォームが選択されます。

15.3.2 「ユーザー定義フィールドの定義」フォームのタブ

「ユーザー定義フィールドの定義」フォームを起動し、ユーザー定義フィールドのターゲット・フォームを選択すると、このフォームのタブが有効になります。

「ユーザー定義フィールドの定義」フォームには次のタブが含まれています。

- ユーザー定義列タブ

- 「プロパティ」タブ

- 「管理者」タブ

これらのタブについては、以降の項でそれぞれ詳しく説明します。

15.3.2.1 ユーザー定義列タブ

このタブは、次のことを行うために使用します。

- ユーザー定義フィールドを作成します。

- ユーザー定義フィールドの変数タイプ、長さおよびフィールド・タイプを設定します。

- ターゲット・フォームの「ユーザー定義フィールド」タブに表示されるユーザー定義フィールドの順序を指定します。
フィールドの順序番号によって、ユーザー定義フィールドがフォームに表示される順序が決まります。図15-2では、「Access Code Number」ユーザー定義フィールドの順序番号は1であるため、「組織」フォームの「ユーザー定義フィールド」タブにはこのフィールドが最初に表示されます。

- ユーザー定義フィールドに関連付けられた情報をクライアントとサーバー間で交換するときに暗号化するかどうかを指定します。

- ユーザー定義フィールドを削除します。

図15-2に、「ユーザー定義フィールドの定義」フォームのユーザー定義列タブを示します。

図15-2 「ユーザー定義フィールドの定義」フォームのユーザー定義列タブ

次の項では、Oracle Identity Managerフォームにユーザー定義フィールドを追加する方法と、Oracle Identity Managerフォームからユーザー定義フィールドを削除する方法について説明します。

Oracle Identity Managerフォームへのユーザー定義フィールドの追加

ユーザー定義フィールドを追加するには、次の手順を実行します。

1. 「追加」をクリックします。
図15-3に示すように、「ユーザー定義フィールド」ダイアログ・ボックスが表示されます。

図15-3 「ユーザー定義フィールド」ダイアログ・ボックス

次の表に、「ユーザー定義フィールド」ダイアログ・ボックスに表示されるフィールドを示します。

表15-3 「ユーザー定義フィールド」ダイアログ・ボックスのフィールド

フィールド名

説明

ラベル

ユーザー定義フィールドのラベル。このラベルは、ターゲット・フォームの「ユーザー定義フィールド」タブのユーザー定義フィールドの隣に表示されます。

ラベルの最大長は30文字です。

データ型

このボックスで、ユーザー定義フィールドのデータ型を次のうちから1つ選択します。

- String。ユーザーはこのフィールドに英数字の文字列を入力できます。

- Date。ユーザーがこのフィールドをダブルクリックすると、日付と時間ダイアログ・ボックスが表示されます。

- Integer。ユーザーは、このユーザー定義フィールドに小数点なしの数字(3など)を入力できます。

- Boolean。ユーザーは、このフィールドにTrue (1)またはFalse (0)の2つの値を入力できます。

- Double。ユーザーは、このフィールドに倍精度浮動小数点数(double数値)を入力できます。

フィールド・サイズ

フィールド・サイズ・テキスト・フィールドは、Stringデータ型の場合にのみ有効です。

このフィールドには、ユーザーがフィールドに入力できる数字または文字の最大数を入力します。サイズが4000文字以下の場合、これはvarchar2フィールドです。サイズが4000を超える場合、これはCLOBです。

フィールド・タイプ

このボックスで、ユーザー定義フィールドのフィールド・タイプを次のうちから1つ選択します。

- テキスト・フィールド。フィールドは、テキスト・フィールドとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。

- 参照フィールド。フィールドは、参照フィールドとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。

- コンボ・ボックス。フィールドは、ボックスとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。

- テキスト領域。フィールドは、テキスト領域としてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。

- パスワード・フィールド。フィールドは、テキスト・フィールドとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。エンティティ問合せを実行し、エンティティの詳細を取得する場合、暗号化され、一連のアスタリスク(*)として表示されるパスワード値が取得されます。

- チェック・ボックス。フィールドは、チェック・ボックスとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。

- ダイアログ付きのデータ・フィールド。フィールドは、参照フィールドとしてターゲット・フォームの「ユーザー定義フィールド」タブに表示されます。ユーザーがこの参照フィールドをダブルクリックすると、日時ウィンドウが表示されます。ユーザーがこのウィンドウで選択した日付と時刻が、Oracle Identity Managerによってデータ・フィールドに移入されます。

注意: このボックスに表示されるフィールド・タイプには、「データ型」ボックスに表示されているデータ型が反映されています。

列名

データベースによって認識されるユーザー定義フィールドの名前。

注意: この名前は、接頭辞TABLE NAME_UDF_と、ユーザー定義フィールドに関連付けられたラベルで構成されます。

たとえば、「組織」フォームの表名フィールドがACTで、データ・フィールドの名前がACNの場合、データベースによって認識されるユーザー定義フィールドの名前はACT_UDF_ACNになります。

注意: 列名フィールド内の名前にスペースを含めることはできません。

デフォルト値

この値は、ターゲット・フォームのユーザー定義フィールドに表示されます。パスワードや暗号化されたフィールドにはデフォルト値を指定しないことをお薦めします。

暗号化

このチェック・ボックスは、関連付けられたユーザー定義フィールドに表示される情報をクライアントとサーバー間で交換するときに暗号化するかどうかを指定します。

ユーザー定義フィールドに表示される情報を暗号化する場合は、このチェック・ボックスを選択します。

ユーザー定義フィールドに表示される情報を暗号化しない場合は、このチェック・ボックスの選択を解除します。

注意: ここで、暗号化とは、フィールドがデータベースで暗号化されているが、UIではクリア・テキストで表示されることを意味します。パスワード・フィールドの場合は、フィールドがデータベースで暗号化され、UIではアスタリスク文字(***)として表示されます。

順序

このフィールドは、フォームにユーザー定義フィールドが表示される順序を表します。たとえば、順序フィールドに2が表示されている場合、このフィールドは、1の順序番号が付いたユーザー定義フィールドの下に表示されます。

注意: 同じ順序番号を2つのユーザー定義フィールドに割り当てることはできません。

2. 図15-4に示すように、フォームに追加するユーザー定義フィールドのパラメータを設定します。

図15-4 値が入力された「ユーザー定義フィールド」ダイアログ・ボックス

図15-4では、「Process Code Number」ユーザー定義フィールドが、「組織」フォームの「ユーザー定義フィールド」タブで最初に表示されます。このフィールドのデータ型はStringであり、ユーザーはこのフィールドに最大25文字入力できます。

3. このウィンドウで、「保存」をクリックします。

4. 「閉じる」をクリックします。
ユーザー定義フィールドが、ユーザー定義列タブに表示されます。ターゲット・フォームが起動されると、通常、このユーザー定義フィールドがそのフォームの「ユーザー定義フィールド」タブに表示されます。ユーザーのユーザー定義フィールドはユーザーのプロファイル情報に関連しているため、「ユーザー」フォームの「ユーザー・プロファイル」タブに表示されます。

Oracle Identity Managerフォームからのユーザー定義フィールドの削除

ユーザー定義フィールドを削除するには、次の手順を実行します。

1. 目的のユーザー定義フィールドを選択します。

2. 「削除」をクリックします。
そのユーザー定義フィールドが削除されます。

15.3.2.2 「プロパティ」タブ

このタブは、様々なOracle Identity Managerフォームの「ユーザー定義フィールド」タブに表示されるデータ・フィールドにプロパティおよびプロパティ値を割り当てるために使用します。

この例では、「リクエスト」フォームの「ユーザー定義フィールド」タブに、「Issue Tracking Item」という1つのデータ・フィールドが表示されます。このデータ・フィールドには次のプロパティが含まれています。

- 必須: 「リクエスト」フォームを保存するためにデータ・フィールドへの移入が必要かどうかを指定します。「必須」プロパティのデフォルト・プロパティ値はfalseです。

- 表示フィールド: 「リクエスト」フォームにデータ・フィールドを表示するかどうかを設定します。表示フィールドプロパティのデフォルト・プロパティ値はtrueです。

このデータ・フィールドでは「必須」プロパティと表示フィールドプロパティのプロパティ値はtrueであるため、「リクエスト」フォームが起動されると、「ユーザー定義フィールド」タブに「Issue Tracking Item」データ・フィールドが表示されます。また、フォームを保存するためには、このフィールドにデータを移入する必要があります。

図15-5に、「ユーザー定義フィールドの定義」フォームの「プロパティ」タブを示します。

図15-5 「ユーザー定義フィールドの定義」フォームの「プロパティ」タブ

次の項では、データ・フィールドにプロパティおよびプロパティ値を追加する方法と、データ・フィールドからこれらを削除する方法について説明します。

関連項目:

データ・フィールドにプロパティおよびプロパティ値を追加する方法と、データ・フィールドからこれらを削除する方法の詳細は、「「フォーム・デザイナ」フォーム」を参照してください。

15.3.2.3 「管理者」タブ

図15-6に、「ユーザー定義フィールドの定義」フォームの「管理者」タブを示します。

図15-6 「ユーザー定義フィールドの定義」フォームの「管理者」タブ

このタブは、「ユーザー定義フィールドの定義」フォームの現在のレコードに対する管理権限を持つロールを指定するために使用します。このフォームの「書込み」および「削除」チェック・ボックスでは、これらの管理ロールが、現在のユーザー定義フィールド(UDF)定義に関する情報を変更または削除できるかどうかを指定します。

15.4 「Remote Manager」フォーム

Remote Managerは軽量のネットワーク・サーバーであり、ネットワークで通信できないAPIを持つターゲット・システムや、ネットワーク対応であってもセキュアではないターゲット・システムとの統合を可能にします。Remote Managerはターゲット・システム上でサーバーとして動作し、Oracle Identity Managerサーバーはそのクライアントとして動作します。Oracle Identity ManagerサーバーはRemote Managerに対するリクエストを送信して、ターゲット・システム自体でターゲット・システムAPIをインスタンス化し、ターゲット・システムにかわってメソッドを起動します。

図15-7に示す「Remote Manager」フォームは、Design Consoleの「管理」フォルダにあります。次の情報が表示されます。

- Oracle Identity Managerと通信するRemote Managerの名前およびIPアドレス

- Remote Managerが稼働しているかどうか

- Oracle Identity Managerで使用できるITリソースを表しているかどうか

図15-7 「Remote Manager」フォーム

この例では、Oracle Identity Managerと通信できる1つのRemote Manager(RManager)のみを定義できます。

このRemote ManagerはOracle Identity Managerとハンドシェイクできますが、「実行中」チェック・ボックスの選択が解除されているため、使用できません。「ITリソース」チェック・ボックスが選択されているため、このRemote ManagerはOracle Identity Managerで使用できるITリソースまたはリソースを表しています。

第III部

Identity Connector Framework

この部では、Identity Connector Frameworkおよびこれを使用してアイデンティティ・コネクタを作成する方法について説明します。

この部の内容は次のとおりです。

- 第16章「Identity Connector Frameworkの理解」

- 第17章「アイデンティティ・コネクタの開発」

16 Identity Connector Frameworkの理解

アイデンティティ・コネクタは、Oracle Identity Managerをアプリケーション、ディレクトリおよびデータベースの外部ストアとリンクする目的で開発されたコンポーネントです。このリリースのOracle Identity Managerでは、Identity Connector Framework(ICF)を使用してアイデンティティ・コネクタを開発および構築できます。ICFを使用すると、Oracle Identity Managerが接続先の他のアプリケーションから切り離されます。そのため、アイデンティティ・コネクタを構築およびテストしてから、Oracle Identity Managerと統合できます。この章は、概念情報およびサンプル・コードを示す次の項で構成されます。

- ICFアーキテクチャの概要

- ICF APIの使用

- ICF SPIの概要

- アイデンティティ・コネクタ・バンドルの拡張

- アイデンティティ・コネクタ・サーバーの使用

注意:

以前のリリースのOracle Identity Managerでは、他のオプションによってアイデンティティ・コネクタを構築していました。これらのオプションも引き続きサポートされていますが、ICFを使用して新しいアイデンティティ・コネクタを構築することをお薦めします。

16.1 ICFアーキテクチャの概要

アイデンティティ・コネクタにより、Oracle Identity Managerが企業内のターゲット・システムでユーザーのプロビジョニングおよびリコンシリエーションの処理を実行できるようになります。ICFを使用すると、Oracle Identity Managerなどのコール側アプリケーションがコネクタの実装から切り離されます。同様に、コネクタの実装がコール側アプリケーションから切り離されます。同じコネクタ実装を複数の異なるコール側アプリケーションと連携させることができます。図16-1では、Oracle Identity Managerとターゲット・システムの間にICF APIおよびSPIを配置することによって、これを実現しています。

API実装では、必ず、SPI Search処理によって返された結果が後処理されます。コネクタ・バンドルによってすべてのフィルタ・タイプが実装されるわけではない場合、またはフィルタ・タイプがすべての属性に対して適切に実装されるわけではない場合、これがSPI実装の二重チェックになります。SPI Searchの実装によって、指定したタイプのすべてのオブジェクトが返される場合、API実装によって、指定したフィルタに一致しないすべてのオブジェクトが破棄されます。API実装における後処理は処理時間とネットワーク帯域幅の面でコスト高になるため、ターゲット・アプリケーションでネイティブにサポートできるすべてのタイプのフィルタ(検索述語や論理演算子)を各コネクタ・バンドルでサポートすると、より効率的です。詳細は、「共通クラス」のFilterTranslatorを参照してください。

図16-1では、コール側アプリケーションはICF APIのみを認識しています。ICF APIでは各コネクタ・バンドルに専用のクラスローダーが割り当てられるため、コネクタ・バンドル(SPI)の実装におけるクラスやライブラリにコール側アプリケーションは公開されません。バンドル・クラスローダーは、バンドル間を確実に分離するだけでなく、バンドルされたライブラリを対象のコネクタ・バンドルのみに公開して、依存関係による競合を防止する役割も担います。

図16-1 Identity Connector Frameworkのデプロイメント

「図16-1 Identity Connector Frameworkのデプロイメント」の説明

図16-2に、ICFの下位互換性を示します。新しいバンドルをデプロイしても、既存のバンドルには影響しません。また、新しいバージョンのICFには、一般に既存のバンドルとの下位互換性があります。

図16-2 ICFとコネクタ・バンドルの互換性

「図16-2 ICFとコネクタ・バンドルの互換性」の説明

アイデンティティ・コネクタは、設計上ステートレスです。アイデンティティ・コネクタには何も格納されません。コール側アプリケーションからコネクタに構成値(ターゲット・アプリケーションに接続するために必要な情報を含む)が提供されます。アイデンティティ・コネクタはステートレスであるため、各バンドル実装はできるだけ単純な状態に保たれ、コール側アプリケーションの実装との結合も回避されます。

16.2 ICF APIの使用

org.identityconnectors.framework.apiパッケージには、ICF APIが含まれています。Oracle Identity Managerでは、このAPIを使用して、コネクタ実装をコールします。このAPIは、サポートされている処理に関係なく、実装されているコネクタに関して一貫した外観を提供します。次の各項では、これらのインタフェースおよびクラスについて説明します。

- ConnectorInfoManagerFactoryクラス

- ConnectorInfoManagerインタフェース

- ConnectorKeyクラス

- ConnectorInfoインタフェース

- APIConfigurationインタフェース

- ConfigurationPropertiesインタフェース

- ConnectorFacadeFactoryクラス

- ConnectorFacadeインタフェース

16.2.1 ConnectorInfoManagerFactoryクラス

ConnectorInfoManagerFactoryクラスは、Oracle Identity Managerが一連のバンドルからコネクタ・クラスをロードすることを可能にします。静的なgetInstanceメソッドは、ConnectorInfoManagerFactoryタイプのオブジェクトを返します。このオブジェクトを使用して、ConnectorInfoManagerへの参照を取得できます。(詳細は、第16.2.2項「ConnectorInfoManagerインタフェース」を参照してください。)例16-1に、ConnectorInfoManagerFactoryの実装を示します。

例16-1 ConnectorInfoManagerFactoryの実装

//create ConnectorInfoManagerFactory
ConnectorInfoManagerFactory cInfoManagerFactory =
ConnectorInfoManagerFactory.getInstance();

16.2.2 ConnectorInfoManagerインタフェース

ConnectorInfoManagerインタフェースは、ConnectorInfoインスタンスのリストを管理します。各インスタンスがアイデンティティ・コネクタを表します。ConnectorInfoManagerFactoryに対してgetLocalManagerメソッドをコールすると、ConnectorInfoManagerが取得され、それにバンドルURLのリストが渡されます。ConnectorInfoManagerは、ConnectorInfoManagerFactoryに対してgetRemoteManagerメソッドをコールすることによっても取得できます。getRemoteManagerメソッドは、コネクタ・サーバーにデプロイされたコネクタに関する情報を取得するために使用されるRemoteFrameworkConnectionInfoandのインスタンスを受け入れます。

例16-2では、cInfoManagerFactoryがConnectorInfoManagerFactoryのインスタンスであり、bundleURLがバンドルURL(JARバンドルまたはそれを解凍した内容で構成されるディレクトリをポイントするURL)のリストです。

例16-2 ConnectorInfoManagerの実装

//get the ConnectorInfoManager
ConnectorInfoManager cInfoManager =
cInfoManagerFactory.getLocalManager(bundleURL);

16.2.3 ConnectorKeyクラス

ConnectorKeyは、インストール環境内でConnectorインスタンスを一意に識別します。ConnectorKeyクラスには、例16-3に示すように、bundleName(コネクタ・バンドルの名前)、bundleVersion(コネクタ・バンドルのバージョン)およびconnectorName(コネクタ・バンドルの名前)を指定します。

例16-3 ConnectorKeyの実装

//get the ConnectorKey reference
ConnectorKey flatFileConnectorKey =
new ConnectorKey(bundleName, bundleVersion, connectorName);

16.2.4 ConnectorInfoインタフェース

ConnectorInfoインタフェースは、特定のアイデンティティ・コネクタに関する情報を格納します。格納されるのは、特定のアイデンティティ・コネクタに関する表示名、キーおよびメッセージの詳細です。例16-4に、ConnectorInfoを実装する方法を示します。

例16-4 ConnectorInfoの実装

//get the ConnectorInfo
ConnectorInfo info =
cInfoManager.findConnectorInfo(flatFileConnectorKey);

例では、cInfoManagerがConnectorInfoManagerであり、flatFileConnectorKeyがアイデンティティ・コネクタ・キーです。

16.2.5 APIConfigurationインタフェース

APIConfigurationインタフェースは、SPI側とAPI側の両方の構成プロパティを示します。getConfigurationPropertiesメソッドは、コネクタの構成実装に基づいてConfigurationPropertiesインスタンスを返し、このインスタンスはデフォルトに初期化されます。その後、コール元は必要に応じてプロパティを変更できます。例16-5に、これを示します。

例16-5 APIConfiguration定義

APIConfiguration apiConfig =
info.createDefaultAPIConfiguration();

16.2.6 ConfigurationPropertiesインタフェース

ConfigurationPropertiesインタフェースは、SPI構成をカプセル化し、リフレクションを使用して、アプリケーションで操作できる個々のプロパティを識別します。例16-6の定義に従って、setPropertyValueメソッドを使用してアイデンティティ・コネクタのすべての構成プロパティを設定します。

例16-6 setPropertyValueメソッド・シグネチャ

public void setPropertyValue
(java.lang.String name, java.lang.Object value)

例16-7に、ConfigurationPropertiesインタフェースの実装を示します。

例16-7 ConfigurationPropertiesの実装

//get the default APIConfiguration
ConfigurationProperties flatFileConfigProps =
apiConfig.getConfigurationProperties();

16.2.7 ConnectorFacadeFactoryクラス

ConnectorFacadeFactoryクラスは、アプリケーションがコネクタ・インスタンスを取得したり、コネクタ・インスタンスのプールを管理することを可能にします。例16-8に、ConnectorFacadeFactoryの定義を示します。

例16-8 ConnectorFacadeFactoryの定義

//get a reference to ConnectorFacadeFactory
ConnectorFacadeFactory facadeFactory =
ConnectorFacadeFactory.getinstance();

16.2.8 ConnectorFacadeインタフェース

ConnectorFacadeインタフェースは、ターゲット・システムでAPI側の特定のアイデンティティ・コネクタを表すことによってアイデンティティ・コネクタ処理を呼び出すために使用されます。例16-9に、ConnectorFacadeの実装を示します。

例16-9 ConnectorFacadeの実装

//create a ConnectorFacade (nothing but a reference to Connector on SPI side)
ConnectorFacade connectorFacade = facadeFactory.newInstance(apiConfig)

16.3 ICF SPIの概要

開発者は、ICF SPIを実装してアイデンティティ・コネクタを作成します。ICF SPIは多数のインタフェースで構成されますが、開発者が実装する必要があるのは、ターゲット・システムでサポートされているインタフェースのみです。SPIは、さらに必須インタフェース、処理インタフェースおよび機能ベースのインタフェースに分類できます。必須インタフェースは、サポートされている処理に関係なく実装する必要があり、コネクタの作成やターゲット・システムとの接続の維持に利用されるのに対し、処理インタフェースはコネクタで各種処理をサポートするために利用されます。機能ベースのインタフェースは、ICFでサポートされている特定の機能に対応しています。

詳細は、次の各項を参照してください。

- 必須インタフェースの実装

- 機能ベースのインタフェースの実装

- 処理インタフェースの実装

- 共通クラス

16.3.1 必須インタフェースの実装

2つのインタフェースの実装には、すべてのアイデンティティ・コネクタが必要になります。これらの2つのインタフェースは、ターゲット・システムとのアイデンティティ・コネクタを宣言し、初期化します。詳細は、次の各項を参照してください。

- org.identityconnectors.framework.spi.Connector

- org.identityconnectors.framework.spi.Configuration

16.3.1.1 org.identityconnectors.framework.spi.Connector

これはアイデンティティ・コネクタを宣言するためのメイン・インタフェースです。コネクタの多くは、接続が必要になったときにターゲット・システムとの接続を確立し、処理が終了したら接続を解除し、使用していたリソースをすべて解放します。インタフェースには、この目的のためにinitとdisposeのライフサイクル・メソッドが用意されています。

注意:

コネクタ実装には、configurationClassおよびdisplayNameKeyの情報を提供することによって、org.identityconnectors.framework.spi.ConnectorClassタイプでアノテーションを付ける必要があります。displayNameKeyは、Messages.propertiesファイルに定義されたキーにする必要があります。

すべてのコネクタ実装に@ConnectorClassというアノテーションを付ける必要があります。ICFではコネクタ・バンドル内の最上位にあるすべての.classファイルをスキャンし、@ConnectorClassというアノテーションが付いたクラスを探すため、このアノテーションは必須です(これにより、バンドルに定義されたコネクタは自動的に検出されます)。このアノテーションには、次の要素が必要です。

- configurationClass: このコネクタ用の構成クラス。このクラスにはターゲットに関するすべての情報が保持され、コネクタはこの情報を使用してターゲットに接続し、プロビジョニングおよびリコンシリエーションの各種処理を実行できます。構成クラスを実装する方法の詳細は、「org.identityconnectors.framework.spi.Configuration」を参照してください。

- displayNameKey: メッセージ・カタログに存在する必要がある表示名キー。

例16-10に、コネクタ実装のサンプルを示します。

例16-10 フラット・ファイル・コネクタの実装

/**
* Flat file connector implementation. This connector supports create,
* delete, search and update operations.
*/
@ConnectorClass
(configurationClass=FlatFileConfigurationImpl.class,
displayNameKey="FLAT_FILE_CONNECTOR")
public class FlatFileConnector implements Connector,
CreateOp, DeleteOp,SearchOp<Map<String, String>>,UpdateOp{

次に、例16-10について説明します。

- CreateOp: コネクタがターゲット・システムにエンティティを作成できるようにします。

- DeleteOp: コネクタがターゲット・システムのエンティティを削除できるようにします。

- SearchOp: コネクタがターゲット・システムのエンティティを検索できるようにします。

- UpdateOp: コネクタがターゲット・システムの既存のエンティティを更新できるようにします。

詳細は、「処理インタフェースの実装」を参照してください。

次の各項では、コネクタ・メソッドを実装する方法を例示する情報とサンプル・コードを示します。コネクタ実装に関する完全なコードは、「フラット・ファイル・コネクタの開発」を参照してください。

- initメソッドの実装

- disposeメソッドの実装

- getConfigurationメソッドの実装

16.3.1.1.1 initメソッドの実装

initメソッドは、コネクタを初期化します。コネクタは、@ConnectorClassというアノテーションが付いた構成インスタンスを使用して自分自身を初期化します。initメソッドには、引数として構成オブジェクトを指定します。構成オブジェクトには、コネクタがターゲット・システムに接続するために必要なすべての情報が保持されています。

例16-11に、JDK 1.6でインタフェースのinitメソッドを実装する方法を示します。

注意:

このドキュメントで紹介されているすべてのサンプル・コードにおいて、JDK 1.6でインタフェースを実装するメソッドが使用されています。

例16-11 initメソッドの実装

@Override
public void init(Configuration config) {
this.flatFileConfig = (FlatFileConfiguration) config;

FlatFileIOFactory flatFileIOFactory =
FlatFileIOFactory.getInstance(flatFileConfig);
this.flatFileMetadata = flatFileIOFactory.getMetadataInstance();
this.flatFileParser = flatFileIOFactory.getFileParserInstance();
this.flatFileWriter = flatFileIOFactory.getFileWriterInstance();
log.ok("Initialization done");
}

注意:

FlatFileIOFactory、FlatFileMetadata、FlatFileParserおよびFlatFileWriterはサポート・クラスであり、ICFには含まれていません。これらのクラスの実装は、「フラット・ファイル・コネクタの開発」に例示されています。

例16-11に示すinitメソッドの実装では、次のことを行います。

- ターゲット・システムの構成情報を格納します。これは後で処理を実行するときに使用できます。

- プロビジョニングおよびリコンシリエーションの処理を実行するときに使用されるすべてのサポート・クラスを初期化します。

16.3.1.1.2 disposeメソッドの実装

disposeメソッドは、このコネクタ・インスタンスによって使用されていたリソースをすべて解放します。メソッドがコールされると、コネクタ・インスタンスが破棄され、使用できなくなります。例16-12に、disposeメソッドを実装する方法を示します。

例16-12 disposeメソッドの実装

/**
* Disposes any resource used by the connector.
*/
@Override
public void dispose() {
//close any open FileReader or FileWriter instances.

//close connection with the target

//close connection if any with database
}

16.3.1.1.3 getConfigurationメソッドの実装

getConfigurationメソッドは、initメソッドの使用時にコネクタに渡された構成インスタンスを返します。例16-13に、getConfigurationメソッドを実装する方法を示します。

例16-13 getConfigurationメソッドの実装

/**
* returns the Configuration of this connector
*/
@Override
public Configuration getConfiguration() {
return this.flatFileConfig;
}

注意:

コンポーネントは、初期化後に構成インスタンスにアクセスできる必要がある場合があります。これはアクセッサ・メソッドgetConfiguration()によってサポートされています。

16.3.1.2 org.identityconnectors.framework.spi.Configuration

このインタフェースの実装は、コネクタの構成をカプセル化します。構成実装にはターゲット・システムに関して必要なすべての情報が保持され、コネクタ実装はこの情報を使用してターゲット・システムに接続し、プロビジョニングおよびリコンシリエーションの各種処理を実行します。実装には、setterとgetterがプロパティに定義されたデフォルトのコンストラクタが必要です。宣言されたすべてのプロパティが必要になるわけではありませんが、必須のプロパティについては、アノテーションorg.identityconnectors.framework.spi.ConfigurationPropertyによって必須としてマークする必要があります。構成実装はJava beanであり、すべてのインスタンス変数(必須かどうかは問わない)がデフォルト値を持ちます。たとえば、文字列userNameはターゲット・システムに接続するために使用され、必須の属性です。このデフォルト値はNULLです。userNameが必須の属性である場合、ICFはOracle Identity Managerから値が提供されるものと想定します。言い換えると、Oracle Identity Managerはこのパラメータを見落としてはなりません。見落とされた場合、コネクタからConfigurationExceptionがスローされます。

実装自体がコネクタに渡される前に、その実装によってすべての必須プロパティが存在し、検証されたことがチェックされる必要があります。インタフェースには、この目的のためにvalidateメソッドが用意されています。たとえば、ターゲットのIPアドレス、ターゲットに接続するときのユーザー名、そのユーザーのパスワードなど、必須の構成パラメータが3つ存在するものとします。validateメソッドでは、regexを使用して、NULL以外の値および有効なIPアドレスをチェックできます。

注意:

ICFには、構成オブジェクトを拡張できる便利なベース・クラスorg.identityconnectors.framework.spi.AbstractConfigurationも用意されています。

例16-14 構成実装

/**
* Configuration implementation for the flat file connector.
*/
public class FlatFileConfigurationImpl extends AbstractConfiguration{

次の各項では、構成メソッドを実装する方法を例示する情報とサンプル・コードを示します。

構成実装では、次のメソッドの実装を提供する必要があります。

- validate()メソッド

- setConnectorMessages()メソッド

- getConnectorMessages()メソッド

16.3.1.2.1 validate()メソッド

validateメソッドは、すべての必須プロパティの値が設定されていることをチェックします。また、構成プロパティの値がすべて有効であることを検証します。言い換えると、構成プロパティのすべての値が期待される範囲内にあり、期待される形式になっていることを検証します。構成が有効でない場合、実装によって最も固有のRuntimeExceptionが生成されます。固有の例外が利用不可の場合、実装ではConfigurationExceptionをスローできます。例16-15に、validateメソッドを実装する方法を示します。

例16-15 validateメソッドの実装

@Override
public void validate() {
// Validate if file exists and is usable
boolean validFile = (this.storeFile.exists() &&
this.storeFile.canRead() &&
this.storeFile.canWrite() &&
this.storeFile.isFile());
if (!validFile)
throw new ConfigurationException("User store file not valid");
FlatFileIOFactory.getInstance(this);
}

ここでは、指定されたターゲット・フラット・ファイルが有効かどうか(ファイルであるか、書込み可能か、読取り可能かなど)がチェックされます。有効でない場合は、例外が生成されます。

validateメソッドの実装では、プロパティの検証時にターゲット・システムに接続しないでください。

注意:

この実装は、インスタンス変数(private File storeFile)およびサポート・クラス(FlatFileIOFactory)に依存します。完全な実装は、「フラット・ファイル・コネクタの開発」に例示されています。

16.3.1.2.2 setConnectorMessages()メソッド

setConnectorMessagesメソッドは、org.identityconnectors.framework.common.objects.ConnectorMessagesメッセージ・カタログ・インスタンスを設定し、コネクタがメッセージをローカライズすることを可能にします。例16-16に、setConnectorMessagesメソッドの定義を示します。

例16-16 setConnectorMessagesメソッドの定義

public final void setConnectorMessages(ConnectorMessages messages) {_connectorMessages = messages;}

16.3.1.2.3 getConnectorMessages()メソッド

getConnectorMessagesメソッドは、setConnectorMessagesメソッドによって設定されたConnectorMessagesを返します。例16-17に、getConnectorMessagesメソッドの定義を示します。

例16-17 getConnectorMessagesメソッドの定義

public final ConnectorMessages getConnectorMessages() {return _connectorMessages;}

16.3.2 機能ベースのインタフェースの実装

次の各項では、アイデンティティ・コネクタ・プーリングや属性の正規化を有効にするときに使用されるインタフェースについて説明します。

- org.identityconnectors.framework.spi.PoolableConnector

- org.identityconnectors.framework.spi.AttributeNormalizer

16.3.2.1 org.identityconnectors.framework.spi.PoolableConnector

ICFによる接続プーリングは、フレームワークでコネクタ・インスタンスのプールを管理し、プロビジョニングおよびリコンシリエーションの処理の実行時にそれらのコネクタ・インスタンスを使用できるようにする機能です。単純なConnectorインタフェースのかわりにPoolableConnectorインタフェースを実装することによって、コネクタでプーリングを使用できるようになります。この機能を使用するには、PoolableConnectorインタフェースを実装します。Connectorインタフェースを実装した場合、ICFは処理ごとに新しいコネクタ・インスタンスを作成し、ターゲットとの新しい接続を確立し、プロビジョニング/リコンシリエーションの処理を実行し、ターゲット・システムとの接続を解除し、最後にこのコネクタ・インスタンスを破棄します。したがって、PoolableConnectorを実装すると、構成可能なコネクタ・インスタンスのプールが管理され、多くの処理に再利用されるという利点があります。

構成可能なオプションの一部を次に示します。

- プール内のアイドル状態およびアクティブ状態のコネクタ・オブジェクトの最大数(_maxObjects)

- アイドル状態のコネクタ・オブジェクトの最大数(_maxIdle)

- 未使用のオブジェクトが利用可能になるのをプールで待つ最大時間(この時間が経過すると、オブジェクトを放棄)(_maxWait)

- アイドル状態のオブジェクトを追い出すまでの最小待機時間(_minEvictableIdleTimeMillis)

- アイドル状態のオブジェクトの最小数(_minIdle)

これらの値はコネクタAPI開発者が設定する必要があり、設定しなかった場合は、次のデフォルト値が使用されます。

- _maxObjects = 10

- _maxIdle = 10

- _maxWait = 150 * 1000 ms

- _minEvictableIdleTimeMillis = 120 * 1000 ms

- _minIdle = 1

PoolableConnectorインタフェースはConnectorインタフェースを拡張します。これを実装すると、ICFが提供するアイデンティティ・コネクタ・プーリングが有効になります。ICFでは、コネクタ・インスタンスが使用される前に、そのインスタンスが動作していることを確認する必要があります。インタフェースには、この目的のためにcheckAliveメソッドが用意されています。例16-18に、フラット・ファイルPoolableConnectorの実装のサンプルを示します。

例16-18 フラット・ファイルPoolableConnectorの実装

/**
* Flat file connector implementation. This is a poolable connector
which supports create, delete, search and update operations.
*/
@ConnectorClass
(configurationClass=FlatFileConfigurationImpl.class,
displayNameKey="FLAT_FILE_CONNECTOR")
public class FlatFileConnector implements PoolableConnector,
CreateOp, DeleteOp,SearchOp<Map<String, String>>,UpdateOp{

PoolableConnectorインタフェースを実装するには、第16.3.1.1項「org.identityconnectors.framework.spi.Connector」で説明したすべてのメソッドに加えて、checkAliveメソッドの実装を提供します。checkAliveメソッドは、コネクタ・インスタンスが動作しているかどうかを確認するためのもので、ターゲット・システムでの処理用に使用できます。checkAliveは頻繁にコールできるため、開発者は実装を高速化する必要があります。メソッドは、コネクタが動作しなくなったときに、固有のRuntimeException(利用可能な場合)をスローする必要があります。例16-19に、checkAliveメソッドを実装する方法を示します。

例16-19 checkAliveメソッドの実装

/**
* Checks if this connector is alive, if not throws a RuntimeException
*/
@Override
public void checkAlive() {
//check if the connector is still connected to target
}

16.3.2.2 org.identityconnectors.framework.spi.AttributeNormalizer

このインタフェースは、コネクタに渡される属性を正規化する必要がある場合に、実装する必要があります。正規化では、表示、消費または比較用に値が標準形式に変換されます。たとえば、正規化では、テキスト値を大文字または小文字に変換したり、空白の切捨てを行ったり、DNの要素を特定の方法で並べることができます。

インタフェースには、この目的のためにnormalizeAttributeメソッドが定義されています。このメソッドには、引数としてObjectClassと正規化対象の属性を指定し、戻り値は正規化した属性になります。属性の正規化は、次のような様々な項目を処理するときに適用されます。

- SearchOpに渡されるフィルタ

- SearchOpから返される結果

- SyncOpから返される結果

- UpdateAttributeValuesOpに渡される属性

- UpdateAttributeValuesOpから返されるUid

- UpdateOpに渡される属性

- UpdateOpから返されるUid

- CreateOpに渡される属性

- CreateOpから返されるUid

- DeleteOpに渡されるUid

例16-20に、normalizeAttributeメソッドの定義を示します。

例16-20 normalizeAttributeメソッドの定義

public Attribute normalizeAttribute (ObjectClass oClass, Attribute attribute) {
if (attribute instanceof Uid) {
return new Uid(LdapUtil.createUniformUid((String)newValues.get(0), configuration.getSuffix()));
}
}

16.3.3 処理インタフェースの実装

処理インタフェースごとに、コネクタがターゲット・システムで実行できるアクション(サポートされている場合)が定義されています。処理インタフェースは、org.identityconnectors.framework.spi.operationsパッケージに属しています。これらの処理インタフェースの名前は次のとおりですが、各インタフェースの詳細は後続の項を参照してください。

- AuthenticateOp

- CreateOp

- DeleteOp

- ResolveUsernameOp

- SchemaOp

- ScriptOnConnectorOp

- ScriptOnResourceOp

- SearchOp<T>SyncOp

- TestOp

- UpdateAttributeValuesOp

- UpdateOp

次の各項では、これらの処理のいくつかについて詳しく説明します。

- SchemaOpインタフェースの実装

- CreateOpインタフェースの実装

- DeleteOpインタフェースの実装

- SearchOpインタフェースの実装

- UpdateOpインタフェースの実装

16.3.3.1 SchemaOpインタフェースの実装

SchemaOpインタフェースを実装すると、ターゲット・システムで処理できるオブジェクトをコネクタが表すことが可能になります。コネクタから返されるスキーマは、コネクタが管理用に公開するオブジェクト・クラスを表します。各オブジェクト・クラスは、名前、説明および一連の属性定義を持ちます。各属性定義には、名前、構文のほか、複数値、単一値、読取り可能、書込み可能などのプロパティを表す特定のフラグが含まれます。

コネクタから返されるスキーマは、コネクタが公開する各タイプのオブジェクトの属性を表します。内部表現からこのスキーマ形式への変換が必要になる場合もあります。それ以外に、スキーマは、ターゲットAPIへのコールを通じてのみネイティブに利用できる情報を属性として表す場合もあります。SPI実装でネイティブ表現とそれに対応するConnectorObjectの間のマッピングがどのように行われるかに関係なく、スキーマはメタデータを提供し、このメタデータを通じて、各タイプ(objectClass)のConnectorObject内に含まれるものとクライアントが想定する情報を表します。

このインタフェースを実装するには、例16-21の定義に従って、schemaメソッドの実装を提供します。

例16-21 schemaメソッド・シグネチャ

public Schema schema

実装では、このアイデンティティ・コネクタでサポートされるオブジェクトのタイプを含むスキーマを返す必要があります。

例16-22 schemaメソッドの実装

@Override
public Schema schema() {
SchemaBuilder flatFileSchemaBldr = new SchemaBuilder(this.getClass());
Set<AttributeInfo> attrInfos = new HashSet<AttributeInfo>();
for (String fieldName : flatFileMetadata.getOrderedTextFieldNames()) {
AttributeInfoBuilder attrBuilder = new AttributeInfoBuilder();
attrBuilder.setName(fieldName);
attrBuilder.setCreateable(true);
attrBuilder.setUpdateable(true);
attrInfos.add(attrBuilder.build());
}

// Supported class and attributes
flatFileSchemaBldr.defineObjectClass
(ObjectClass.ACCOUNT.getDisplayNameKey(), attrInfos);
return flatFileSchemaBldr.build();
}

注意:

返されるスキーマにUidが含まれないようにする必要があります。

16.3.3.2 CreateOpインタフェースの実装

CreateOpインタフェースを実装すると、ターゲット・システムでのオブジェクトの作成が可能になります。このインタフェースを実装するには、例16-23に示すように、create()メソッドの実装を提供します。

例16-23 createメソッド・シグネチャ

public Uid create
(ObjectClass objectClass, Set<Attribute> attributes,
OperationOptions options)

このメソッドには、ObjectClass(アカウントやグループなど)、一連のオブジェクト属性および処理オプションを指定します。実装では、渡されたオブジェクト属性とObjectClassで定義されたオブジェクト・タイプを使用して、ターゲット・システムにオブジェクトを作成します。ObjectClass引数では、作成対象のオブジェクトのクラスを指定します。作成対象のオブジェクトのクラスは、作成処理に対する入力の1つです。例16-24に示すように、ObjectClassはcreate()メソッドの最初の引数です。

例16-24 createメソッドの実装

@Override
public Uid create(ObjectClass arg0, Set<Attribute> attrs,
OperationOptions ops) {

System.out.println("Creating user account " + attrs);
assertUserObjectClass(arg0);
try {
FlatFileUserAccount accountRecord = new FlatFileUserAccount(attrs);
// Assert uid is there
assertUidPresence(accountRecord);

// Create the user
this.flatFileWriter.addAccount(accountRecord);

// Return uid
String uniqueAttrField = this.flatFileConfig
.getUniqueAttributeName();
String uniqueAttrVal = accountRecord
.getAttributeValue(uniqueAttrField);
System.out.println("User " + uniqueAttrVal + " created");

return new Uid(uniqueAttrVal);
} catch (Exception ex) {

// If account exists
if (ex.getMessage().contains("exists"))
throw new AlreadyExistsException(ex);

// For all other causes
System.out.println("Error in create " + ex.getMessage());
throw ConnectorException.wrap(ex);
}
}

処理が成功すると、ターゲット・システム上でのオブジェクト識別子を表すUidインスタンスが作成され、返されます。コール元は、このUidを使用して、作成されたオブジェクトを参照できます。

16.3.3.3 DeleteOpインタフェースの実装

DeleteOpインタフェースを実装すると、ターゲット・システムからのオブジェクトの削除が可能になります。このインタフェースを実装するには、例16-25の定義に従って、deleteメソッドの実装を提供します。

例16-25 deleteメソッド・シグネチャ

public void delete
(ObjectClass objectClass, Uid uid, OperationOptions options)

このメソッドには、ObjectClass(アカウントやグループなど)、ターゲット・システムから削除するオブジェクトのUidおよび処理オプションを指定します。実装では、指定されたUidで識別されるオブジェクトをターゲット・システムから削除します。オブジェクトがターゲット・システムに存在しない場合は、org.identityconnectors.framework.common.exceptions.UnknownUidExceptionが生成されます。例16-26に、deleteメソッドを実装する方法を示します。

例16-26 deleteメソッドの実装

@Override
public void delete(ObjectClass arg0, Uid arg1, OperationOptions arg2) {
final String uidVal = arg1.getUidValue();
this.flatFileWriter.deleteAccount(uidVal);
log.ok("Account {0} deleted", uidVal);
}

注意:

削除処理が失敗すると、ICFはRuntimeExceptionのサブクラスを生成します。詳細は、Oracle Fusion Middleware Java APIリファレンス(Identity Connector Framework用)を参照してください。

16.3.3.4 SearchOpインタフェースの実装

SearchOpインタフェースを実装すると、ターゲット・システムでのオブジェクトの検索が可能になります。この場合、検索処理では次のことが行われます。

- 一般に指定される検索条件を実装するためのネイティブ・フィルタが作成されます。

- 実際の問合せが実行されます。

SPIでこれらのメソッドを実装すると、APIで検索をサポートできるようになります。APIでは、指定されたフィルタ条件をネイティブ検索条件に変換することなどによって、コネクタで実行されないすべてのフィルタを(結果の後処理を通じて)実行します。

このインタフェースを実装するには、次の各項にまとめられたcreateFilterTranslatorメソッドおよびexecuteQueryメソッドの実装を提供します。

- createFilterTranslatorメソッドの実装

- executeQueryメソッドの実装

16.3.3.4.1 createFilterTranslatorメソッドの実装

createFilterTranslatorメソッドは、API側から渡されたICFフィルタ・オブジェクトをネイティブ問合せに変換するFilterTranslator実装のインスタンスを返します。変換後、ICFは問合せをexecuteQueryメソッドに渡します。例16-27に、createFilterTranslatorメソッドの定義を示します。

例16-27 createFilterTranslatorメソッド・シグネチャ

public FilterTranslator createFilterTranslator
(ObjectClass oClass, OperationsOptions options)

注意:

NULLの戻り値は許可されていません。

例16-28に、createFilterTranslatorメソッドの実装を示します。

例16-28 createFilterTranslatorメソッドの実装

@Override
public FilterTranslator<Map<String, String>> createFilterTranslator
(ObjectClass arg0, OperationOptions arg1) {
return new ContainsAllValuesImpl() {
};
}

この例では、単一タイプの検索述語(ContainsAllValues)のみがサポートされています。ContainsAllValuesImplの実装例は、「AbstractFilterTranslator<T>の実装」を参照してください。ContainsAllValuesの実装では、条件の形式をネイティブ形式に変換します。属性Aには、すべての値V(1)、V(2) ... V(N)が含まれます。

org.identityconnectors.framework.common.objects.filter.FilterTranslatorの詳細は、「共通クラス」を参照してください。

16.3.3.4.2 executeQueryメソッドの実装

executeQueryメソッドは、FilterTranslatorの実装(「createFilterTranslatorメソッドの実装」を参照)によって生成されるすべての問合せに対してコールされます。例16-29に示すように、ObjectClass(アカウントやグループなど)、問合せ、見つかったオブジェクトを処理するときにコールバックとして使用されるResultsHandlerのインスタンスおよび処理オプションを指定します。

例16-29 executeQueryメソッド・シグネチャ

public void executeQuery
(ObjectClass oClass, T query,
ResultsHandler handler, OperationOptions options)

executeQueryメソッドの実装では、渡された問合せを使用してターゲット・オブジェクトを検索し、見つかったターゲット・オブジェクトごとにConnectorObjectのインスタンスを作成し、ResultsHandlerを使用してConnectorObjectを処理します。ConnectorObjectは、ターゲット・リソース・オブジェクトのICF表現です。ObjectClass、Uid、名前、一連の属性などの情報が保持されます。ConnectorObjectは検索の中心となります。executeQueryは、ConnectorObjectをストリームとしてResultsHandlerに送り、そしてクライアントに送ります。例16-30に、exectueQueryメソッドを実装する方法を示します。

例16-30 executeQueryメソッドの実装

@Override
public void executeQuery(ObjectClass objectClass,
Map<String, String> matchSet, ResultsHandler resultHandler,
OperationOptions ops) {

// searches the flat file for accounts which fulfil the condition 'matchSet' created by FilterTranslator
Iterator<FlatFileUserAccount> userAccountIterator = this.flatFileParser
.getAccountIterator(matchSet);

boolean handleMore = true;
while (userAccountIterator.hasNext() && handleMore) {
FlatFileUserAccount userAcc = userAccountIterator.next();
ConnectorObject userAccObject = convertToConnectorObject(userAcc);
// Let the client handle the result by doing callback
handleMore = resultHandler.handle(userAccObject);
}
while (userAccountIterator.hasNext()) {
FlatFileUserAccount userAcc = userAccountIterator.next();
ConnectorObject userAccObject = convertToConnectorObject(userAcc);
if (!resultHandler.handle(userAccObject)) {
System.out.println("Not able to handle " + userAcc);
break;
}
}
}

16.3.3.5 UpdateOpインタフェースの実装

UpdateOpインタフェースを実装すると、ターゲット・システムでのオブジェクトの更新が可能になります。このインタフェースを実装するには、例16-31の定義に従って、updateメソッドの実装を提供します。

例16-31 updateメソッド・シグネチャ

public Uid update(ObjectClass oClass, Uid uid,
Set<Attribute> attributes, OperationOptions options)

このメソッドには、ObjectClass(アカウントやグループなど)、更新対象のオブジェクトのUid、更新対象の一連のオブジェクト属性および処理オプションを指定します。実装では、ターゲット・システム上でUidによって識別されるオブジェクトを新しい属性値で更新します。Uidによって識別されるオブジェクトがターゲット・システムに存在しない場合は、UnknowUidExceptionが生成されます。例16-32に、updateメソッドを実装する方法を示します。

例16-32 updateメソッドの実装

@Override
public Uid update(ObjectClass arg0, Uid arg1,
Set<Attribute> arg2, OperationOptions arg3) {
String accountIdentifier = arg1.getUidValue();
// Fetch the account
FlatFileUserAccount accountToBeUpdated = this.flatFileParser
.getAccount(accountIdentifier);

// Update
accountToBeUpdated.updateAttributes(arg2);
this.flatFileWriter
.modifyAccount(accountIdentifier, accountToBeUpdated);
log.ok("Account {0} updated", accountIdentifier);

// Return new uid
String newAccountIdentifier = accountToBeUpdated
.getAttributeValue
(this.flatFileConfig.getUniqueAttributeName());
return new Uid(newAccountIdentifier);
}

16.3.4 共通クラス

前の各項で示したように、ICFには多数のクラスが用意されています。最も重要なクラスは次のとおりです。

- org.identityconnectors.framework.common.objects.Attribute
属性は、ターゲット・システム・オブジェクト内の値の名前付きコレクションです。ターゲット・システム・オブジェクトには多数の属性が保持され、それぞれの属性が多数の値を持つ場合があります。最も単純な形式の属性は、ターゲット・システム・オブジェクトの名前/値ペアとみなすことができます。空の値およびNULL値がサポートされています。開発者は、org.identityconnectors.framework.common.objects.AttributeBuilderを使用して、属性インスタンスを構築する必要があります。

注意:

このモデルでは、すべての属性が構文的に複数値になります。単一値になる特定の属性は、セマンティック制限のみです。

- org.identityconnectors.framework.common.objects.Uid
ターゲット・リソース上でのオブジェクトの一意の識別子を表す単一値属性です(Uidは属性のサブクラスです)。理想的には、不変である必要があります。

注意:

単一値属性は、特に一意の識別子となるUIDに関連します。

- org.identityconnectors.framework.common.objects.ObjectClass
ObjectClassは、ターゲット・システム上のオブジェクトのタイプを定義します。このようなタイプの例としては、アカウント、グループまたは組織があります。ICFでは、アカウントのObjectClassとしてObjectClass.ACCOUNT、グループのObjectClassとしてObjectClass.GROUPが事前に定義されています。

- org.identityconnectors.framework.common.objects.ConnectorObject
ConnectorObjectは、ターゲット・システム上のオブジェクト(アカウントやグループなど)を表します。開発者は、org.identityconnectors.framework.common.objects.ConnectorObjectBuilderを使用して、ConnectorObjectを構築する必要があります。

- org.identityconnectors.common.security.GuardedString
ガード文字列は、パスワードをメモリーにプレーン文字列形式で格納するという問題を解決するセキュアな文字列実装です。パスワードは、暗号化された形式でバイトとして格納されます。暗号化鍵はランダムに生成されます。

- org.identityconnectors.framework.common.objects.filter.FilterTranslator
FilterTranslaterオブジェクトは、検索処理の実行時に、ICFのAPI側で指定されたすべてのフィルタをネイティブ問合せに変換します。ICFフィルタでは、検索述語と論理演算子の両方がサポートされています。

- 検索述語では、指定した属性の値に基づいてオブジェクトを照合します。たとえば、EqualsFilterは、少なくとも1つの属性値が指定した値と等しい場合に、trueを返します。

- 論理演算子ANDおよびORでは、検索述語を結合して、複雑な式を作成します。たとえば、「A AND B」という形式の式は、AとBの両方がtrueの場合にのみtrueになります。「A OR B」という形式の式は、AとBの少なくとも一方がtrueの場合にtrueになります。

ICFが提供するAbstractFilterTranslator<T>ベース・クラスを使用すると、検索の実装が容易になります。FilterTranslatorサブクラスは、次のものを可能なかぎりオーバーライドする必要があります。

- createAndExpression(T, T)

- createOrExpression(T, T)

- createContainsExpression(ContainsFilter, boolean)

- createEndsWithExpression(EndsWithFilter, boolean)

- createEqualsExpression(EqualsFilter, boolean)

- createGreaterThanExpression(GreaterThanFilter, boolean)

- createGreaterThanOrEqualExpression(GreaterThanOrEqualFilter, boolean)

- createStartsWithExpression(StartsWithFilter, boolean)

- createContainsAllValuesExpression(ContainsAllValuesFilter, boolean)

詳細は、第16.3.3.4項「SearchOpインタフェースの実装」を参照してください。

- org.identityconnectors.framework.common.objects.ResultsHandler
これは、処理で1つ以上の結果が返される場合のコールバック・インタフェースです。サブクラスはメソッドを処理するための実装を提供する必要があるのに対し、コール元は結果に対する処理を決めることができます。現在、これはSearchOpインタフェースでのみ使用されます。詳細は、第16.3.3.4項「SearchOpインタフェースの実装」を参照してください。

16.4 アイデンティティ・コネクタ・バンドルの拡張

アイデンティティ・コネクタ・バンドルは、特定のターゲット・システムに固有の実装です。バンドルは、アイデンティティ・コネクタがターゲット・システムに接続し、処理を実行するために必要なすべてのファイルを含むJavaアーカイブ(JAR)として提供されます。ICFで認識される特別な属性(MANIFESTファイルで定義)も含まれます。それらは次のとおりです。

- ConnectorBundle-FrameworkVersionは、このアイデンティティ・コネクタ・バンドルを動作させるために最低限必要なICFのバージョンです。新しいICFバージョンには下位互換性があります。

- ConnectorBundle-Nameは、このアイデンティティ・コネクタ・バンドルの一意の名前です。一般に、パッケージ名になります。

- ConnectorBundle-Versionは、このバンドルのバージョンです。Oracle Identity Managerの特定のデプロイメント内で、ConnectorBundle-NameとConnectorBundle-Versionの組合せが一意になるようにする必要があります。

共通クラスを再利用する場合などに、アイデンティティ・コネクタ・バンドルを拡張します。AbtractDatabaseConnectorがよい例です。異なるタイプのコネクタで、JDBCを使用してデータベース表にアクセスする同一の基本ロジックを再利用できるためです。データベース表用のコネクタは、この共通コードをOracle Databaseユーザー用のコネクタ、IBM DB2データベース・ユーザー用のコネクタおよびMySQLユーザー用のコネクタと共有できます。

特定のコネクタを拡張するには、拡張したバンドルを新しいバンドルの/libディレクトリに追加し、ターゲット・クラスをサブクラス化する新しいクラスを作成します。この方法は、AbstractDatabaseConnectorバンドルを使用して例示できます。共通ロジックは、次のように共通バンドルに含まれます。

注意:

元のバンドルは拡張しません。かわりに、元のバンドルをラップする新しいバンドルの中に元のバンドルを組み込むことで、コネクタを拡張します。

- META-INF/MANIFEST.MF

- ConnectorBundle-FrameworkVersion: 1.0

- ConnectorBundle-Name: org.identityconnectors.database.common

- ConnectorBundle-Version: 1.0

- org.identityconnectors/database/common/AbstractDatabaseConnector.class

注意:

このアイデンティティ・コネクタには、@ConnectorClassというアノテーションは付きません。

- org/identityconnectors/database/common/*(その他の共通ソース・ファイル)

- lib/

データベース(リソース)に固有のバンドルを必要な数だけ使用できます。例:

- META-INF/MANIFEST.MF

- ConnectorBundle-FrameworkVersion: 1.0

- ConnectorBundle-Name: org.identityconnectors.database.mysql

- ConnectorBundle-Version: 1.0

- org/identityconnectors/database/mysql/MySQLConnector.class(AbstractDatabaseConnectorのサブクラス)

注意:

このアイデンティティ・コネクタには、@ConnectorClassというアノテーションが付きます。

- org/identityconnectors/database/mysql/*(その他のMySQLソース・ファイル)

- lib/org.identityconnectors.database.common-1.0.jar(前述の親バンドル)

- lib/*(特定のデータベース・ドライバおよびライブラリ(必要に応じて))

16.5 アイデンティティ・コネクタ・サーバーの使用

アイデンティティ・コネクタ・バンドルがアプリケーション内で直接実行されない場合は、アイデンティティ・コネクタ・サーバーが必要です。ICFアーキテクチャでは、1つ以上のアイデンティティ・コネクタ・サーバーを使用することで、アプリケーションと外部にデプロイされたアイデンティティ・コネクタ・バンドルとの通信が可能になります。アイデンティティ・コネクタ・サーバーは、Java(tm)およびMicrosoft .NET Frameworkアプリケーションに対応しています。

単一のコネクタ・サーバーで複数のICFコネクタをサポートでき、これらのICFコネクタのタイプもそれぞれ異なっていてかまいません。単一のICFコネクタを使用して、複数のターゲットと通信できます。

図16-3に、Oracle Identity ManagerコネクタがICFコネクタを介してリソースと統合される仕組みを示します。

図16-3 ICFコネクタおよびコネクタ・サーバー

「図16-3 ICFコネクタおよびコネクタ・サーバー」の説明

次に、図16-3について説明します。

- Oracle Identity Managerコネクタは、ターゲット・リソースと直接対話することはありません。かわりに、適切なICFコネクタを介して、作成、読取り、更新、削除および問合せ(CRUDQ)の各処理が実行されます。

- 単一のICFコネクタを使用して、リソース・タイプが同じ複数のリソースに接続できます。図16-3では、LDAP用のICFコネクタを使用して、ローカルLDAPリソースとリモートLDAPリソースの両方に接続しています。

- .NETコネクタ・サーバーを使用して、.NET ICFコネクタをターゲット・ホストにデプロイします。この方法でActive Directoryリソースが接続されます。

- Google Apps用のICFコネクタは、インターネット上のGoogle Appsとの接続に使用されます。

- 図には示されていませんが、コネクタ・サーバーではリソース・タイプが異なる複数のICFコネクタをサポートできます。

コネクタ・サーバーのタイプについては、次の各項で説明します。

- Javaコネクタ・サーバーの使用

- Microsoft .NET Frameworkコネクタ・サーバーの使用

ヒント:

どちらのコネクタ・サーバーを構成する場合も、次の情報(インストール時に定義)を準備してください。

- ホスト名およびIPアドレス

- コネクタ・サーバー・ポート

- コネクタ・サーバー・キー

- SSL対応

16.5.1 Javaコネクタ・サーバーの使用

アプリケーションと同じJava仮想マシン(JVM)でJavaコネクタ・バンドルを実行しない場合は、Javaコネクタ・サーバーを使用します。バンドルを管理対象ターゲット・システムと同じホストにデプロイすると、動作速度が向上するため、このデプロイメントはパフォーマンスの面で有効です。また、Javaコネクタ・サーバーを使用すると、JNIベースのコネクタの障害が原因でアプリケーションJVMがクラッシュする可能性を排除できます。

Javaコネクタ・サーバーの使用方法については、次の各項で説明します。

- Javaコネクタ・サーバーのインストールおよび構成

- Microsoft WindowsでのJavaコネクタ・サーバーの実行

- SolarisおよびLinuxでのJavaコネクタ・サーバーの実行

- Javaコネクタ・サーバーへのアイデンティティ・コネクタのインストール

- SSLを使用したコネクタ・サーバーとの通信

16.5.1.1 Javaコネクタ・サーバーのインストールおよび構成

Javaコネクタ・サーバーをインストールおよび構成するには、次の手順を実行します。

1. Javaコネクタ・サーバーをインストールするコンピュータに新しいディレクトリを作成します。この項では、このディレクトリをCONNECTOR_SERVER_HOMEとしています。

2. 手順1で作成した新しいディレクトリにJavaコネクタ・サーバー・パッケージを解凍します。Javaコネクタ・サーバーは、次のURLにあるOracle Technology Network Webサイトからダウンロードできます。
http://www.oracle.com/technetwork/index.html

3. conf/ディレクトリにあるConnectorServer.propertiesファイルで、デプロイメントで必要になるプロパティを設定します。表16-1に、ConnectorServer.propertiesファイル内のプロパティを示します。

表16-1 ConnectorServer.propertiesファイル内のプロパティ

プロパティ

説明

connectorserver.port

Javaコネクタ・サーバーがリクエストをリスニングするポート。デフォルト値は8759です。

connectorserver.bundleDir

コネクタ・バンドルがデプロイされるディレクトリ。デフォルト値はbundlesです。

connectorserver.libDir

依存ライブラリを配置するディレクトリ。デフォルト値はlibです。

connectorserver.usessl

trueに設定すると、Javaコネクタ・サーバーでSSLを使用してセキュアな通信が実現されます。デフォルト値はfalseです。

trueを指定する場合は、Javaコネクタ・サーバーの起動時にコマンドラインで次のオプションを使用してください。

- -Djavax.net.ssl.keyStore

- -Djavax.net.ssl.keyStoreType(オプション)

- -Djavax.net.ssl.keyStorePassword

connectorserver.ifaddress

バインド・アドレス。このプロパティを設定する場合は、必要に応じてファイル内でプロパティのコメントアウトを解除してください。バインド・アドレスは、コンピュータにその他のNICが取り付けられている場合に役立ちます。

connectorserver.key

Javaコネクタ・サーバー・キー。

4. ConnectorServer.propertiesファイル内のプロパティを次のように設定します。

- connectorserver.keyを設定するには、/setKeyオプションを指定してJavaコネクタ・サーバーを実行します。詳細は、「Microsoft WindowsでのJavaコネクタ・サーバーの実行」および「SolarisおよびLinuxでのJavaコネクタ・サーバーの実行」を参照してください。

- その他すべてのプロパティについては、ConnectorServer.propertiesファイルを手動で編集します。

5. confディレクトリにはlogging.propertiesファイルもあり、デプロイメントで必要になる場合は編集できます。

16.5.1.2 Microsoft WindowsでのJavaコネクタ・サーバーの実行

Microsoft WindowsでJavaコネクタ・サーバーを実行するには、次のようにConnectorServer.batスクリプトを使用します。

1. 「Javaコネクタ・サーバーのインストールおよび構成」の説明に従って、デプロイメントで必要になるプロパティをConnectorServer.propertiesファイルで設定したことを確認します。

2. CONNECTOR_SERVER_HOME\binディレクトリに移動し、ConnectorServer.batスクリプトを探します。
表16-2に、ConnectorServer.batスクリプトでサポートされているオプションを示します。

表16-2 ConnectorServer.batスクリプトでサポートされているオプション

オプション

説明

/install [serviceName] ["-J java-option"]

Javaコネクタ・サーバーをMicrosoft Windowsサービスとしてインストールします。

必要に応じて、サービス名およびJavaオプションを指定できます。サービス名を指定しない場合は、ConnectorServerJavaがデフォルトの名前として使用されます。

/run ["-J java-option"]

コンソールからJavaコネクタ・サーバーを実行します。

必要に応じて、Javaオプションを指定できます。たとえば、Javaコネクタ・サーバーをSSL対応として実行するには、次のようにします。

ConnectorServer.bat /run
"-J-Djavax.net.ssl.keyStore=mykeystore.jks"
"-J-Djavax.net.ssl.keyStorePassword=password"

/setKey [key]

Javaコネクタ・サーバー・キーを設定します。ConnectorServer.batスクリプトでは、ConnectorServer.propertiesファイル内のconnectorserver.keyプロパティにキーのハッシュ値を格納します。

/uninstall [serviceName]

Javaコネクタ・サーバーをアンインストールします。サービス名を指定しない場合は、スクリプトによってConnectorServerJavaサービスがアンインストールされます。

3. Javaコネクタ・サーバーを停止する必要がある場合は、対応するMicrosoft Windowsサービスを停止します。

16.5.1.3 SolarisおよびLinuxでのJavaコネクタ・サーバーの実行

SolarisおよびLinuxでJavaコネクタ・サーバーを実行するには、次のようにconnectorserver.shスクリプトを使用します。

1. 「Javaコネクタ・サーバーのインストールおよび構成」の説明に従って、デプロイメントで必要になるプロパティをConnectorServer.propertiesファイルで設定したことを確認します。

2. CONNECTOR_SERVER_HOME/binディレクトリに移動します。

3. chmodコマンドを使用して、connectorserver.shスクリプトを実行可能にするための権限を設定します。

4. connectorserver.shスクリプトを実行します。
表16-3に、connectorserver.shスクリプトでサポートされているオプションを示します。

表16-3 connectorserver.shスクリプトでサポートされているオプション

オプション

説明

/run [ -Jjava-option ]

コンソールからJavaコネクタ・サーバーを実行します。必要に応じて、1つ以上のJavaオプションを指定できます。たとえば、Javaコネクタ・サーバーをSSL対応として実行するには、次のようにします。

./connectorserver.sh /run
-J-Djavax.net.ssl.keyStore=mykeystore.jks
-J-Djavax.net.ssl.keyStorePassword=password

/start [ -Jjava-option ]

Javaコネクタ・サーバーをバックグラウンドで実行します。必要に応じて、1つ以上のJavaオプションを指定できます。

/stop

プロセスが終了するまで最大で5秒間待ってから、Javaコネクタ・サーバーを停止します。

/stop n

プロセスが終了するまで最大でn秒間待ってから、Javaコネクタ・サーバーを停止します。

/stop -force

Javaコネクタ・サーバーを停止します。最大で5秒間待った後もまだプロセスが実行されている場合は、kill -KILLコマンドを使用します。

/stop n -force

Javaコネクタ・サーバーを停止します。最大でn秒間待った後もまだプロセスが実行されている場合は、kill -KILLコマンドを使用します。

/setKey key

Javaコネクタ・サーバー・キーを設定します。connectorserver.shスクリプトでは、ConnectorServer.propertiesファイル内のconnectorserver.keyプロパティにキーのハッシュ値を格納します。

16.5.1.4 Javaコネクタ・サーバーへのアイデンティティ・コネクタのインストール

この項では、Javaコネクタ・サーバーにJavaコネクタ・バンドルをデプロイする手順について説明します。

1. Javaコネクタ・サーバー・ディレクトリのbundlesディレクトリに移動します。

2. Javaコネクタ・バンドルJARをbundlesディレクトリにコピーします。

3. アイデンティティ・コネクタで必要になるサード・パーティJARファイルが存在する場合は、それらをlibディレクトリに追加します。

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

16.5.1.5 SSLを使用したコネクタ・サーバーとの通信

Secure Sockets Layer(SSL)を使用してコネクタ・サーバーと通信するには、次の手順を実行します。

1. コネクタ・サーバーのシステムにSSL証明書をデプロイします。

2. SSLソケットを提供するようにコネクタ・サーバーを構成します。

3. SSLを使用してコネクタ・サーバーと通信するようにアプリケーションを構成します。
アイデンティティ・コネクタ・サーバーとの接続構成に固有の注意事項は、ターゲット・システムのマニュアルを参照してください。各SSL対応コネクタ・サーバーとの接続を確立するときにはSSL接続が必要になることをアプリケーションに指示します。さらに、コネクタ・サーバーで使用されるSSL証明書のいずれかが非標準認証局によって発行される場合は、追加の認証局を考慮するようにアプリケーションを構成する必要があります。認証局に関する注意事項は、該当するマニュアルを参照してください。

注意:

Javaアプリケーションにおいて非標準認証局に関する問題を解決するには、アプリケーションの起動時に次のJavaシステム・プロパティが渡されるようにします。

- javax.net.ssl.trustStorePassword
例:

-Djavax.net.ssl.trustStorePassword=changeit

- javax.net.ssl.trustStore
例:

-Djavax.net.ssl.trustStore=/usr/myApp_cacerts

また、非標準認証局を標準の${JAVA_HOME}/lib/security/cacertsディレクトリにインポートすることもできます。

16.5.2 Microsoft .NET Frameworkコネクタ・サーバーの使用

アプリケーションがJavaで記述されていて、コネクタ・バンドルがC#で記述されている場合は、Microsoft .NET Framework(.NET)コネクタ・サーバーを使用すると便利です。Java Platform, Enterprise Edition(JEE(tm))アプリケーションではC#クラスをロードできないため、.NETコネクタ・サーバーの配下にC#バンドルをデプロイできます。これにより、Javaアプリケーションはネットワーク上でC#(.NET)コネクタ・サーバーと通信できるようになります。C#(.NET)コネクタ・サーバーは、C#バンドルへの認証アプリケーション・アクセスを実現するプロキシとして機能します。次の各項では、追加情報を示します。

- .NETコネクタ・サーバーのインストール

- .NETコネクタ・サーバーの構成

- トレース設定の構成

- .NETコネクタ・サーバーの実行

- .NETコネクタ・サーバーへの複数のコネクタのインストール

16.5.2.1 .NETコネクタ・サーバーのインストール

.NETコネクタ・サーバーを実行するための最低要件は次のとおりです。

- Microsoft Windows Server 2003または2008

- Microsoft .NET Framework 3.5以上

追加要件の有無は、特定の.NETアイデンティティ・コネクタのドキュメントを参照してください。

.NETコネクタ・サーバーをインストールするには、ServiceInstall.msiファイルを実行し、インストール・ウィザードに表示される指示に従います。インストールが完了すると、コネクタ・サーバーはWindowsサービスとしてインストールされます。

16.5.2.2 .NETコネクタ・サーバーの構成

.NETコネクタ・サーバーを構成するには、次の手順を実行します。共通構成には、ポート、トレース、SSL設定およびコネクタ・サーバー・キーが含まれます。

1. Microsoftサービス・コンソールを起動します。

2. コネクタ・サーバーが現在実行されているかどうかを確認します。実行されている場合は停止します。

3. コマンド・プロンプトを使用して、コネクタ・サーバーにキーを設定します。
このキーは、クライアントがこのコネクタ・サーバーに接続するときに必要になります。

1. コネクタ・サーバーがインストールされているディレクトリに移動します。
デフォルト: \Program Files\Identity Connectors\Connector Server

2. 次のコマンドを実行します。
ConnectorServer /setkey NEWKEY

ここで、NEWKEYはキーの値です。

4. connectorserver.exe.config内の設定を調べて、その他のプロパティを構成します。
connectorserver.exe.configファイルには、コネクタ・サーバーに関する情報が含まれています。最もよく変更するのは、ポート、SSL構成およびトレース設定です。ポートおよびSSL設定は、次のようにAppSettingsというタグ内にあります。

<add key="connectorserver.port" value="8759" />
<add key="connectorserver.usessl" value="false" />
<add key="connectorserver.certificatestorename" value="ConnectorServerSSLCertificate" />
<add key="connectorserver.ifaddress" value="0.0.0.0" />

ポートを設定するには、connectorserver.portの値を変更します。SSLを使用するには、connectorserver.usesslの値をtrueに設定し、connectorserver.certifacatestorenameの値を証明書ストアの名前に設定します。リスニング・ソケットは特定のアドレスにバインドすることも、0.0.0.0のままにすることもできます。コネクタ・サーバーをSSL対応として構成する方法の詳細は、第16.5.1.5項「SSLを使用したコネクタ・サーバーとの通信」を参照してください。トレース設定の構成の詳細は、第16.5.2.3項「トレース設定の構成」を参照してください。

16.5.2.3 トレース設定の構成

コネクタ・サーバーでは、標準の.NETトレース・メカニズムが使用されます。トレース設定は、connectorserver.exe.config構成ファイルに定義されています。例16-33に、定義の例を示します。

例16-33 トレース設定の定義

<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<remove name="Default" />
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="c:\connectorserver2.log"
traceOutputOptions="DateTime">
<filter type="System.Diagnostics.EventTypeFilter"
initializeData="Information" />
</add>
</listeners>
</trace>
</system.diagnostics>

デフォルト設定でも十分適していますが、これらの設定を次のように変更してもかまいません。

- トレース量を減らすには、フィルタ・タイプのinitializeData設定をWarningまたはErrorに変更します。

- より詳細なロギングを行うには、値をVerboseまたはAllに設定します。

注意:

ロギングの量は、コネクタ・サーバーのパフォーマンスに直接影響します。

構成を変更する場合は、コネクタ・サーバーの停止と再起動が必要になります。

注意:

トレース・オプションの詳細は、System.Diagnosticsに関するMicrosoft .NETドキュメントを参照してください。

16.5.2.4 .NETコネクタ・サーバーの実行

.NETコネクタ・サーバーを実行する最適な方法は、Windowsサービスとして実行することです。インストール時に、コネクタ・サーバーはWindowsサービスとしてインストールされます。これが環境に適さない場合は、コマンド・プロンプトで/installまたは/uninstall引数を使用して、コネクタ・サーバーをWindowsサービスとしてインストールまたはアンインストールできます。

コネクタ・サーバーを対話形式で実行するには、ConnectorServer /runコマンドを実行します。

16.5.2.5 .NETコネクタ・サーバーへの複数のコネクタのインストール

新しいアイデンティティ・コネクタをインストールするには、コネクタ・サーバーがインストールされているディレクトリに移動し、このディレクトリに新しいアイデンティティ・コネクタのZIPを解凍してから、コネクタ・サーバーを再起動します。

17 アイデンティティ・コネクタの開発

この章は、Identity Connector Framework(ICF)とOracle Identity Managerメタデータを使用してアイデンティティ・コネクタを開発するのに必要な手順全体を確認するチュートリアルとなります。ここには、重要なICFクラスとインタフェース、コネクタ・バンドルおよびコネクタ・サーバーについての情報と、フラット・ファイル・アイデンティティ・コネクタの実装のコード・サンプルや、ユーザー・プロビジョニングとリコンシリエーションのプロセス用にOracle Identity Managerメタデータを作成するコード・サンプルが含まれています。この章には次の項目があります。

- フラット・ファイル・コネクタの開発

- Oracle Identity Managerデータベースへのアイデンティティ・コネクタ・バンドルのアップロード

- フラット・ファイル・アカウントのプロビジョニング

17.1 フラット・ファイル・コネクタの開発

フラット・ファイル・コネクタは、構成インタフェースの実装を開発し、その後、コネクタ・クラスを実装するという手順で開発します。開始する前に、フラット・ファイル・コネクタのすべての操作用のIO表現モジュールを準備する必要があります。このことには、次のすべてまたは一部が含まれる場合があります。

- フラット・ファイルの列名を読み込み、メタデータ情報を準備します。

- 指定のデリミタで区切られた、対応する列値を含むレコードをフラット・ファイルに追加します。

- UID値に基づいて、フラット・ファイルへのレコードを削除します。

- フラット・ファイルで検索操作を実行します。

このチュートリアルではアイデンティティ・コネクタの開発に焦点を当てているため、これらの準備の詳細は説明していません。

注意:

次のサポート・クラスが、アイデンティティ・コネクタ操作時のファイル入力および出力の処理に使用されます。

- org.identityconnectors.flatfile.io.FlatFileIOFactory

- org.identityconnectors.flatfile.io.FlatFileMetadata

- org.identityconnectors.flatfile.io.FlatFileParser

- org.identityconnectors.flatfile.io.FlatFileWriter

入力および出力処理のサポート・クラスの実装については、「ファイル入力および出力処理用のサポート・クラス」を参照してください。

フラット・ファイル・コネクタを開発するには、次の手順を実行します。

1. org.identityconnectors.framework.spi.AbstractConfigurationベース・クラスを拡張して、フラット・ファイル・コネクタ用の構成クラスを実装します。
例17-1に、このサンプルを示します。詳細は、第16.3.1.2項「org.identityconnectors.framework.spi.Configuration」を参照してください。

例17-1 AbstractConfigurationの実装

package org.identityconnectors.flatfile;
import java.io.File;
import org.identityconnectors.flatfile.io.FlatFileIOFactory;
import org.identityconnectors.framework.common.exceptions.ConfigurationException;
import org.identityconnectors.framework.spi.AbstractConfiguration;
import org.identityconnectors.framework.spi.ConfigurationProperty;
/**
* Class for storing the flat file configuration
*/
public class FlatFileConfiguration extends AbstractConfiguration {
/*
* Storage file name
*/
private File storeFile;
/*
* Delimeter used
*/
private String textFieldDelimeter;
/*
* Unique attribute field name
*/
private String uniqueAttributeName = "";
/*
* Change attribute field name. Should be numeric
*/
private String changeLogAttributeName = "";

public File getStoreFile() {
return storeFile;
}

public String getTextFieldDelimeter() {
return textFieldDelimeter;
}

public String getUniqueAttributeName() {
return uniqueAttributeName;
}

public String getChangeLogAttributeName() {
return changeLogAttributeName;
}

/**
* Set the store file
* @param storeFile
*/
@ConfigurationProperty(order = 1, helpMessageKey = "USER_ACCOUNT_STORE_HELP",
displayMessageKey = "USER_ACCOUNT_STORE_DISPLAY")
public void setStoreFile(File storeFile) {
this.storeFile = storeFile;
}

/**
* Set the text field delimeter
* @param textFieldDelimeter
*/
@ConfigurationProperty(order = 2,
helpMessageKey = "USER_STORE_TEXT_DELIM_HELP",
displayMessageKey = "USER_STORE_TEXT_DELIM_DISPLAY")
public void setTextFieldDelimeter(String textFieldDelimeter) {
this.textFieldDelimeter = textFieldDelimeter;
}

/**
* Set the field whose values will be considered as unique attributes
* @param uniqueAttributeName
*/
@ConfigurationProperty(order = 3, helpMessageKey = "UNIQUE_ATTR_HELP",
displayMessageKey = "UNIQUE_ATTR_DISPLAY")
public void setUniqueAttributeName(String uniqueAttributeName) {
this.uniqueAttributeName = uniqueAttributeName;
}

/**
* Set the field name where change number should be stored
* @param changeLogAttributeName
*/
@ConfigurationProperty(order = 3, helpMessageKey = "CHANGELOG_ATTR_HELP",
displayMessageKey = "CHANGELOG_ATTR_DISPLAY")
public void setChangeLogAttributeName(String changeLogAttributeName) {
this.changeLogAttributeName = changeLogAttributeName;
}
@Override
public void validate() {

// Validate if file exists and is usable
boolean validFile = (this.storeFile.exists() &&
this.storeFile.canRead() &&
this.storeFile.canWrite() &&
this.storeFile.isFile());

if (!validFile)
throw new ConfigurationException("User store file not valid");

// Validate if there is a field on name of unique attribute field name
// Validate if there is a field on name of change attribute field name
FlatFileIOFactory.getInstance(this);
// Initialization does the validation
}

}

2. org.identityconnectors.framework.spi.Connectorインタフェースを実装して、フラット・ファイル・コネクタのコネクタ・クラスを作成します。
例17-2では、CreateOp、DeleteOp、SearchOpおよびUpdateOpの各インタフェースを実装するため、4つの操作すべてをサポートします。FlatFileMetadata、FlatFileParserおよびFlatFileWriterの各クラスは、サポート・クラスです。これらの実装は、ICFに属していないため表示されません。

例17-2 PoolableConnectorの実装

package org.identityconnectors.flatfile;

import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.identityconnectors.flatfile.io.FlatFileIOFactory;
import org.identityconnectors.flatfile.io.FlatFileMetadata;
import org.identityconnectors.flatfile.io.FlatFileParser;
import org.identityconnectors.flatfile.io.FlatFileWriter;
import org.identityconnectors.framework.api.operations.GetApiOp;
import org.identityconnectors.framework.common.exceptions.AlreadyExistsException;
import org.identityconnectors.framework.common.exceptions.ConnectorException;
import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.AttributeInfo;
import org.identityconnectors.framework.common.objects.AttributeInfoBuilder;
import org.identityconnectors.framework.common.objects.ConnectorObject;
import org.identityconnectors.framework.common.objects.ConnectorObjectBuilder;
import org.identityconnectors.framework.common.objects.ObjectClass;
import org.identityconnectors.framework.common.objects.OperationOptions;
import org.identityconnectors.framework.common.objects.ResultsHandler;
import org.identityconnectors.framework.common.objects.Schema;
import org.identityconnectors.framework.common.objects.SchemaBuilder;
import org.identityconnectors.framework.common.objects.Uid;
import org.identityconnectors.framework.common.objects.filter.AbstractFilterTranslator;
import org.identityconnectors.framework.common.objects.filter.FilterTranslator;
import org.identityconnectors.framework.spi.Configuration;
import org.identityconnectors.framework.spi.ConnectorClass;
import org.identityconnectors.framework.spi.PoolableConnector;
import org.identityconnectors.framework.spi.operations.CreateOp;
import org.identityconnectors.framework.spi.operations.DeleteOp;
import org.identityconnectors.framework.spi.operations.SchemaOp;
import org.identityconnectors.framework.spi.operations.SearchOp;
import org.identityconnectors.framework.spi.operations.UpdateOp;

/**
* The main connector class
*/
@ConnectorClass(configurationClass = FlatFileConfiguration.class, displayNameKey = "FlatFile")
public class FlatFileConnector implements SchemaOp, CreateOp, DeleteOp,
UpdateOp, SearchOp<Map<String, String>>, GetApiOp, PoolableConnector {

private FlatFileConfiguration flatFileConfig;
private FlatFileMetadata flatFileMetadata;
private FlatFileParser flatFileParser;
private FlatFileWriter flatFileWriter;
private boolean alive = false;

@Override
public Configuration getConfiguration() {
return this.flatFileConfig;
}

@Override
public void init(Configuration config) {
this.flatFileConfig = (FlatFileConfiguration) config;

FlatFileIOFactory flatFileIOFactory =
FlatFileIOFactory.getInstance(flatFileConfig);
this.flatFileMetadata = flatFileIOFactory.getMetadataInstance();
this.flatFileParser = flatFileIOFactory.getFileParserInstance();
this.flatFileWriter = flatFileIOFactory.getFileWriterInstance();
this.alive = true;
System.out.println("init called: Initialization done");
}

@Override
public void dispose() {
this.alive = false;
}

@Override
public Schema schema() {
SchemaBuilder flatFileSchemaBldr = new SchemaBuilder(this.getClass());
Set<AttributeInfo> attrInfos = new HashSet<AttributeInfo>();
for (String fieldName : flatFileMetadata.getOrderedTextFieldNames()) {
AttributeInfoBuilder attrBuilder = new AttributeInfoBuilder();
attrBuilder.setName(fieldName);
attrBuilder.setCreateable(true);
attrBuilder.setUpdateable(true);
attrInfos.add(attrBuilder.build());
}

// Supported class and attributes
flatFileSchemaBldr.defineObjectClass
(ObjectClass.ACCOUNT.getDisplayNameKey(),attrInfos);
System.out.println("schema called: Built the schema properly");
return flatFileSchemaBldr.build();
}

@Override
public Uid create(ObjectClass arg0, Set<Attribute> attrs,
OperationOptions ops) {

System.out.println("Creating user account " + attrs);
assertUserObjectClass(arg0);
try {
FlatFileUserAccount accountRecord = new FlatFileUserAccount(attrs);
// Assert uid is there
assertUidPresence(accountRecord);

// Create the user
this.flatFileWriter.addAccount(accountRecord);

// Return uid
String uniqueAttrField = this.flatFileConfig
.getUniqueAttributeName();
String uniqueAttrVal = accountRecord
.getAttributeValue(uniqueAttrField);
System.out.println("User " + uniqueAttrVal + " created");

return new Uid(uniqueAttrVal);
} catch (Exception ex) {

// If account exists
if (ex.getMessage().contains("exists"))
throw new AlreadyExistsException(ex);

// For all other causes
System.out.println("Error in create " + ex.getMessage());
throw ConnectorException.wrap(ex);
}
}

@Override
public void delete(ObjectClass arg0, Uid arg1, OperationOptions arg2) {
final String uidVal = arg1.getUidValue();
this.flatFileWriter.deleteAccount(uidVal);
System.out.println("Account " + uidVal + " deleted");
}

@Override
public Uid update(ObjectClass arg0, Uid arg1, Set<Attribute> arg2,
OperationOptions arg3) {
String accountIdentifier = arg1.getUidValue();
// Fetch the account
FlatFileUserAccount accountToBeUpdated = this.flatFileParser
.getAccount(accountIdentifier);

// Update
accountToBeUpdated.updateAttributes(arg2);
this.flatFileWriter
.modifyAccount(accountIdentifier, accountToBeUpdated);
System.out.println("Account " + accountIdentifier + " updated");

// Return new uid
String newAccountIdentifier = accountToBeUpdated
.getAttributeValue(this.flatFileConfig.getUniqueAttributeName());
return new Uid(newAccountIdentifier);
}

@Override
public FilterTranslator<Map<String, String>> createFilterTranslator(
ObjectClass arg0, OperationOptions arg1) {
// TODO: Create a fine grained filter translator

// Return a dummy object as its not applicable here.
// All processing happens in the execute query
return new AbstractFilterTranslator<Map<String, String>>() {
};
}

@Override
public ConnectorObject getObject(ObjectClass arg0, Uid uid,
OperationOptions arg2) {
// Return matching record
String accountIdentifier = uid.getUidValue();
FlatFileUserAccount userAcc = this.flatFileParser
.getAccount(accountIdentifier);
ConnectorObject userAccConnObject = convertToConnectorObject(userAcc);
return userAccConnObject;
}

/*
* (non-Javadoc)
* This is the search implementation.
* The Map passed as the query here, will map to all the records with
* matching attributes.
*
* The record will be filtered if any of the matching attributes are not
* found
*
* @see
* org.identityconnectors.framework.spi.operations.SearchOp#executeQuery
* (org.identityconnectors.framework.common.objects.ObjectClass,
* java.lang.Object,
* org.identityconnectors.framework.common.objects.ResultsHandler,
* org.identityconnectors.framework.common.objects.OperationOptions)
*/
@Override
public void executeQuery(ObjectClass objectClass,
Map<String, String> matchSet, ResultsHandler resultHandler,
OperationOptions ops) {

System.out.println("Inside executeQuery");

// Iterate over the records and handle individually
Iterator<FlatFileUserAccount> userAccountIterator = this.flatFileParser
.getAccountIterator(matchSet);

while (userAccountIterator.hasNext()) {
FlatFileUserAccount userAcc = userAccountIterator.next();
ConnectorObject userAccObject = convertToConnectorObject(userAcc);
if (!resultHandler.handle(userAccObject)) {
System.out.println("Not able to handle " + userAcc);
break;
}
}
}

private void assertUserObjectClass(ObjectClass arg0) {
if (!arg0.equals(ObjectClass.ACCOUNT))
throw new UnsupportedOperationException(
"Only user account operations supported.");

}

private void assertUidPresence(FlatFileUserAccount accountRecord) {
String uniqueAttrField = this.flatFileConfig.getUniqueAttributeName();
String uniqueAttrVal = accountRecord.getAttributeValue(uniqueAttrField);

if (uniqueAttrVal == null) {
throw new IllegalArgumentException("Unique attribute not passed");
}
}

private ConnectorObject convertToConnectorObject(FlatFileUserAccount userAcc) {
ConnectorObjectBuilder userObjBuilder = new ConnectorObjectBuilder();
// Add attributes
List<String> attributeNames = this.flatFileMetadata
.getOrderedTextFieldNames();
for (String attributeName : attributeNames) {
String attributeVal = userAcc.getAttributeValue(attributeName);
userObjBuilder.addAttribute(attributeName, attributeVal);

if (attributeName.equals(this.flatFileConfig
.getUniqueAttributeName())) {
userObjBuilder.setUid(attributeVal);
userObjBuilder.setName(attributeVal);
}
}
return userObjBuilder.build();
}

@Override
public void checkAlive() {
if (!alive)
throw new RuntimeException("Connection not alive");
}

}

3. このコネクタは、ContainsAllValuesFilter操作のみをサポートします。ContainsAllValuesFilter操作を実装します(例17-3に、フィルタ操作を定義するorg.identityconnectors.framework.common.objects.filter.AbstractFilterTranslator<T>のサンプル実装を示します)。

例17-3 AbstractFilterTranslator<T>の実装

package org.identityconnectors.flatfile.filteroperations;

import java.util.HashMap;
import java.util.Map;

import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.filter.AbstractFilterTranslator;
import org.identityconnectors.framework.common.objects.filter.ContainsAllValuesFilter;

public class ContainsAllValuesImpl extends AbstractFilterTranslator<Map<String, String>>{
@Override
protected Map<String, String> createContainsAllValuesExpression(
ContainsAllValuesFilter filter, boolean not) {
Map<String, String> containsAllMap = new HashMap<String, String>();
Attribute attr = filter.getAttribute();
containsAllMap.put(attr.getName(), attr.getValue().get(0).toString());
return containsAllMap;
}
}

4. コネクタ・バンドルJARを作成します。MANIFEST.MFファイルには、次のエントリが含まれている必要があります。

- ConnectorBundle-FrameworkVersion

- ConnectorBundle-Name

- ConnectorBundle-Version

例17-4に、MANIFEST.MFファイルの内容を示します。

例17-4 MANIFEST.MFファイル

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 14.1-b02 (Sun Microsystems Inc.)
ConnectorBundle-FrameworkVersion: 1.0
ConnectorBundle-Name: org.identityconnectors.flatfile
ConnectorBundle-Version: 1.0
Build-Number: 609
Subversion-Revision: 4582

5. 手順4で作成したコネクタ・バンドルJARを更新します。これを行うには、次の手順を実行します。

1. コネクタ・バンドルJARを目的の場所に抽出します。

2. JARを抽出したディレクトリ内にlibディレクトリを作成します。

3. 依存しているサード・パーティのJARをこのlibディレクトリに追加します。

4. ディレクトリ全体をJARします。

注意:

MANIFEST.MFファイルには、手順4で示したエントリが含まれている必要があります。

17.1.1 ファイル入力および出力処理のサポート・クラス

この項では、ファイル入力および出力処理用の次のサポート・クラスの実装について説明します。

- 例17-5「FlatFileIOFactory」

- 例17-6「FlatFileMetadata」

- 例17-7「FlatFileParser」

- 例17-8「FlatFileWriter」

例17-5に、FlatFileIOFactoryサポート・クラスの実装を示します。

例17-5 FlatFileIOFactory

package org.identityconnectors.flatfile.io;

import org.identityconnectors.flatfile.FlatFileConfiguration;

public class FlatFileIOFactory {

private FlatFileMetadata flatFileMetadata;
private FlatFileConfiguration flatFileConfig;

/**
* Provides instance of the factory
* @param flatfileConfig Configuration bean for the flat file
*/
public static FlatFileIOFactory getInstance(FlatFileConfiguration fileConfig) {
return new FlatFileIOFactory(fileConfig);
}

/**
* Making it private to avoid public instantiation. Encouraging use of getInstance
* @param fileConfig
*/
private FlatFileIOFactory(FlatFileConfiguration fileConfig) {
this.flatFileConfig = fileConfig;
this.flatFileMetadata = new FlatFileMetadata(flatFileConfig);
System.out.println("Metadata set");
}

/**
* Returns the metadata instance
* @return
*/
public FlatFileMetadata getMetadataInstance() {
return this.flatFileMetadata;
}

/**
* Returns the FlatFileParser instance
* @return
*/
public FlatFileParser getFileParserInstance() {
return new FlatFileParser(this.flatFileMetadata, this.flatFileConfig);
}

/**
* Returns the FlatFileWriter instance
* @return
*/
public FlatFileWriter getFileWriterInstance() {
return new FlatFileWriter(this.flatFileMetadata, this.flatFileConfig);
}
}

例17-6に、FlatFileMetaDataサポート・クラスの実装を示します。

例17-6 FlatFileMetadata

package org.identityconnectors.flatfile.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import org.identityconnectors.flatfile.FlatFileConfiguration;

/**
* This class contains all the metadata related information Example: Ordering of
* columns, Number of columns etc.
*
* @author harsh
*
*/
public class FlatFileMetadata {

private FlatFileConfiguration fileConfig;

private List<String> orderedTextFieldNames;

private String changeLogFieldName;
private String uniqueAttributeFiledName;

/**
* Instantiates the class with the file configuration.
* Making it package private to encourage instantiation from Factory class
* @param fileConfig
*/
FlatFileMetadata(FlatFileConfiguration fileConfig) {
/*
* Ideally you should not take connector specific configuration class in
* flat file resource classes. Change if this has to go to production.
* Probably make another configuration class for flat file with same
* signatures.
*/
this.fileConfig = fileConfig;

initializeMetadata();
validateConfigProps();
}

/**
* Returns the text field names in the order of their storage
*
* @return
*/
public List<String> getOrderedTextFieldNames() {
return this.orderedTextFieldNames;
}

/**
* Returns the number of columns
*/
public int getNumberOfFields() {
int numberOfTextFields = this.orderedTextFieldNames.size();
return numberOfTextFields;
}

/**
* Specifies if number of tokens are matching with the standard length of metadata
* @param countTokens
* @return
*/
public boolean isDifferentFromNumberOfFields(int countTokens) {
return (getNumberOfFields() != countTokens);
}

/**
* Reads the header line and sets the metadata
*/
private void initializeMetadata() {
// Read the file.
File recordsStore = this.fileConfig.getStoreFile();

try {
BufferedReader storeFileReader = new BufferedReader(new FileReader(
recordsStore.getAbsolutePath()));

// Read the header line
String headerString = storeFileReader.readLine();

// Tokenize the headerString
StringTokenizer tokenizer = new StringTokenizer(headerString,
fileConfig.getTextFieldDelimeter());

this.orderedTextFieldNames = new ArrayList<String>();
while (tokenizer.hasMoreTokens()) {
String header = tokenizer.nextToken();
this.orderedTextFieldNames.add(header);
}

System.out.println("Columns read - " + this.orderedTextFieldNames);
} catch (IOException e) {
throw new RuntimeException("How can I read a corrupted file");
}

// Store the change log and unique attribute field names
this.changeLogFieldName = fileConfig.getChangeLogAttributeName();
this.uniqueAttributeFiledName = fileConfig.getUniqueAttributeName();
}

/**
* Validate if the attribute names in config props object are present in the
* column names
*
* @throws RuntimeException
*             if validation fails
*/
private void validateConfigProps() {
// Check if unique attribute col name is present
if (!this.orderedTextFieldNames.contains(this.changeLogFieldName))
throw new RuntimeException("Change log field name "
+ this.changeLogFieldName + " not found in the store file ");

// Check if change col name is present
if (!this.orderedTextFieldNames.contains(this.uniqueAttributeFiledName))
throw new RuntimeException("Unique attribute field name "
+ this.uniqueAttributeFiledName
+ " not found in the store file");
}
}

例17-7に、FlatFileParserサポート・クラスの実装を示します。

例17-7 FlatFileParser

package org.identityconnectors.flatfile.io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.identityconnectors.flatfile.FlatFileConfiguration;
import org.identityconnectors.flatfile.FlatFileUserAccount;
import org.identityconnectors.flatfile.utils.AccountConversionHandler;

public class FlatFileParser {

private File recordsStore;
private FlatFileConfiguration fileConfig;
private FlatFileMetadata metadata;
private AccountConversionHandler accountConverter;

/**
* Instantiates the parser class. Making it package private to encourage
* instantiation from Factory class
*
* @param metadata
* @param fileConfig
*/
FlatFileParser(FlatFileMetadata metadata, FlatFileConfiguration fileConfig) {
this.fileConfig = fileConfig;
this.recordsStore = fileConfig.getStoreFile();
this.accountConverter = new AccountConversionHandler(metadata,
fileConfig);
this.metadata = metadata;
}

/**
* Returns all accounts in the file
*
* @return
*/
public List<FlatFileUserAccount> getAllAccounts() {
try {
BufferedReader userRecordReader = new BufferedReader(
new FileReader(recordsStore.getAbsolutePath()));
String recordStr;

// Skip headers
userRecordReader.readLine();

// Loop over records and make list of objects
List<FlatFileUserAccount> allAccountRecords = new ArrayList<FlatFileUserAccount>();
while ((recordStr = userRecordReader.readLine()) != null) {
try {
FlatFileUserAccount accountRecord = accountConverter
.convertStringRecordToAccountObj(recordStr);
allAccountRecords.add(accountRecord);
} catch (RuntimeException e) {
System.out.println("Invalid entry " + e.getMessage());
}
}
userRecordReader.close();

return allAccountRecords;
} catch (IOException e) {
throw new RuntimeException("How can I read a corrupted file");
}
}

/**
* Gets the account of matching account identifier
*
* @param accountIdentifier
* @return
*/
public FlatFileUserAccount getAccount(String accountIdentifier) {

/*
* I know its not right to get all account details. Don't want to focus
* on efficiency and scalability as this is just a sample.
*/
// Iterate over all records and check for matching account
Map<String, String> matchSet = new HashMap<String, String>();
matchSet.put(fileConfig.getUniqueAttributeName(), accountIdentifier);
for (FlatFileUserAccount userRecord : getAllAccounts()) {
if (userRecord.hasMatchingAttributes(matchSet))
return userRecord;
}

// Got nothing..
return null;
}

/**
* Returns all records with matching Attributes If more than attributes are
* passed. it will check all the attributes
*
* @param matchSet
*            Checks if all provided attributes are matched
*/
public List<FlatFileUserAccount> getAccountsByMatchedAttrs(
Map<String, String> matchSet) {
/*
* I know its not right to get all account details. Don't want to focus
* on efficiency and scalability as this is just a sample.
*/
// Iterate over all records and check for matching account
List<FlatFileUserAccount> matchingRecords = new ArrayList<FlatFileUserAccount>();
for (FlatFileUserAccount userRecord : getAllAccounts()) {
if (userRecord.hasMatchingAttributes(matchSet))
matchingRecords.add(userRecord);
}

return matchingRecords;
}

/**
* Returns the records that fall after the specified change number This
* function helps in checking the function of sync
*
* @param changeNumber
*            the change number for the last search
*/
public List<FlatFileUserAccount> getUpdatedAccounts(int changeNumber) {
/*
* I know its not right to get all account details. Don't want to focus
* on efficiency and scalability as this is just a sample.
*/
// Iterate over all records and check for matching account
List<FlatFileUserAccount> matchingRecords = new ArrayList<FlatFileUserAccount>();
String changeLogAttrName = fileConfig.getChangeLogAttributeName();
for (FlatFileUserAccount userRecord : getAllAccounts()) {
int recordChangeNumber = userRecord
.getChangeNumber(changeLogAttrName);
if (recordChangeNumber >= changeNumber)
matchingRecords.add(userRecord);
}
return matchingRecords;

}

/**
* Returns an iterator that iterates over the records. This is provided for
* dynamic retrieval of records
*
* @param matchSet
*            Filters the records by matching the given attributes. Use null
*            or empty set to avoid filtering
* @return
*/
public Iterator<FlatFileUserAccount> getAccountIterator(
Map<String, String> matchSet) {
Iterator<FlatFileUserAccount> recordIterator = new FlatFileLineIterator(
this.metadata, this.fileConfig, matchSet);

return recordIterator;
}

/**
* Gives the next change number. Logic is max of existing change numbers + 1
* @return
*/
public int getNextChangeNumber() {
int maximumChangeNumber = 0;

/*
* I know its not right to get all account details. Don't want to focus
* on efficiency and scalability as this is just a sample.
*/
// Iterate over all records and check for matching account
String changeLogAttrName = fileConfig.getChangeLogAttributeName();
for (FlatFileUserAccount userRecord : getAllAccounts()) {
int changeNumber = userRecord.getChangeNumber(changeLogAttrName);

if (changeNumber >= maximumChangeNumber) {
maximumChangeNumber = changeNumber + 1;
}
}
return maximumChangeNumber;
}
}

例17-8に、FlatFileWriterサポート・クラスの実装を示します。

例17-8 FlatFileWriter

package org.identityconnectors.flatfile.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import org.identityconnectors.flatfile.FlatFileConfiguration;
import org.identityconnectors.flatfile.FlatFileUserAccount;
import org.identityconnectors.flatfile.utils.AccountConversionHandler;

/**
* Class for searching operations on files
*
* @author Harsh
*/
public class FlatFileWriter {

private File recordsStore;
private FlatFileParser recordParser;
private FlatFileConfiguration fileConfig;
private AccountConversionHandler accountConverter;

/**
* Initializes the writer with the configuration Making it package private
* to encourage use of Factory class for global instantiation
*
* @param metadata
* @param fileConfig
*/
FlatFileWriter(FlatFileMetadata metadata, FlatFileConfiguration fileConfig) {
this.fileConfig = fileConfig;

this.recordsStore = fileConfig.getStoreFile();
recordParser = new FlatFileParser(metadata, fileConfig);
accountConverter = new AccountConversionHandler(metadata, fileConfig);
}

/**
* Appends the user record at the end of
*
* @param accountRecord
*/
public void addAccount(FlatFileUserAccount accountRecord) {
try {
BufferedWriter userRecordWriter = new BufferedWriter(
new FileWriter(this.recordsStore.getAbsolutePath(), true));

// Set the latest changelog number
int latestChangeNumber = recordParser.getNextChangeNumber();
accountRecord.setChangeNumber(fileConfig
.getChangeLogAttributeName(), latestChangeNumber);

// Validate if same account id doesn't exist
String accountUid = accountRecord.getAttributeValue(fileConfig
.getUniqueAttributeName());
FlatFileUserAccount accountByAccountId = recordParser
.getAccount(accountUid);

if (accountByAccountId != null)
throw new RuntimeException("Account " + accountUid
+ " already exists");

// Put the user record in formatted way
String userRecordAsStr = accountConverter
.convertAccountObjToStringRecord(accountRecord);
userRecordWriter.write("\n" + userRecordAsStr);

// Close the output stream
userRecordWriter.close();
} catch (IOException e) {// Catch exception if any
throw new RuntimeException("How can I write on a corrupted file");
}
}

/**
* Removes the entry for respective account identifier
*
* @param accountIdentifier
*/
public void deleteAccount(String accountIdentifier) {
String blankRecord = "";
this.modifyAccountInStore(accountIdentifier, blankRecord);
}

/**
* Updates the entry with respective account identifier
*
* @param accountIdentifier
* @param updatedAccountRecord
* @return new accountIdentifier
*/
public String modifyAccount(String accountIdentifier,
FlatFileUserAccount updatedAccountRecord) {

// Frame a record string and update back to file
int nextChangeNumber = recordParser.getNextChangeNumber();

String changeNumberFieldName = fileConfig.getChangeLogAttributeName();
updatedAccountRecord.setChangeNumber(changeNumberFieldName,
nextChangeNumber);

String newRecordAsStr = accountConverter
.convertAccountObjToStringRecord(updatedAccountRecord);
// Update to the file
this.modifyAccountInStore(accountIdentifier, newRecordAsStr);

// Return new UID
String uniqueAttrFieldName = fileConfig.getUniqueAttributeName();
String newAccountIdentifier = updatedAccountRecord
.getAttributeValue(uniqueAttrFieldName);
return newAccountIdentifier;
}

/**
* Returns the complete flat file as string.
*
* @return
*/
private String getCompleteFlatFileAsStr() {
try {
BufferedReader userRecordReader = new BufferedReader(
new FileReader(recordsStore.getAbsolutePath()));
String recordStr;

// Loop over records and make list of objects
StringBuilder flatFileStr = new StringBuilder();
while ((recordStr = userRecordReader.readLine()) != null) {
if (!recordStr.isEmpty())
flatFileStr.append(recordStr + "\n");
}
userRecordReader.close();

return flatFileStr.toString();
} catch (IOException e) {
throw new RuntimeException("How can I read a corrupted file");
}
}

/**
* Updates the account with the new record. this can also be used for delete
*
* @param accountIdentifier
* @param updatedRecord
*/
private void modifyAccountInStore(String accountIdentifier,
String updatedRecord) {
try {
// Load the complete flat file
String completeFlatFile = this.getCompleteFlatFileAsStr();

// Construct the string to be removed and replace it with blank
FlatFileUserAccount accountToBeRemoved = recordParser
.getAccount(accountIdentifier);
String updatableString = accountConverter
.convertAccountObjToStringRecord(accountToBeRemoved);
String updatedFlatFile = completeFlatFile.replaceAll(
updatableString, updatedRecord);

// Rewrite the file
BufferedWriter userRecordWriter = new BufferedWriter(
new FileWriter(this.recordsStore.getAbsolutePath(), false));
userRecordWriter.write(updatedFlatFile);

/*** debug ***/
System.out.println("Old string " + updatableString);
System.out.println("New String" + updatedRecord);
System.out.println("new file - " + updatedFlatFile);

/******/
// Close the output stream
userRecordWriter.close();
} catch (IOException e) {// Catch exception if any
throw new RuntimeException("How can I write on a corrupted file");
}
}
}

17.2 Oracle Identity Managerデータベースへのアイデンティティ・コネクタ・バンドルのアップロード

アイデンティティ・コネクタ・バンドルは、Oracle Identity ManagerデータベースのICFで使用できる必要があります。ICFアイデンティティ・コネクタをOracle Identity Managerと統合するには、次に示す項に従います。これらの手順の一部には、Oracle Identity Manager Design Consoleを使用して行う構成が含まれています。

- Oracle Identity Managerへのコネクタ・バンドルの登録

- 基本的なアイデンティティ・コネクタ・メタデータの作成

- プロビジョニング・メタデータの作成

- リコンシリエーション・メタデータの作成

17.2.1 Oracle Identity Managerへのコネクタ・バンドルの登録

コネクタ・バンドルは、Oracle Identity Managerに対してローカルなコネクタ・サービスで使用できる必要があります。このことを実現する手順は、次のとおりです。

1. Oracle Identity Managerがインストールされているマシンに、コネクタ・バンドルJARをコピーします。

2. 次のコマンドを実行して、JARをアップロードします。
$MW_HOME/server/bin/UploadJars.sh

注意:

この章では、DW_HOMEは$MW_HOME/Oracle_IDM1を表します。

3. ICFBundleをJARタイプとして選択します。

4. コネクタ・バンドルJARの場所を入力します。

5. [Enter]を押します。

17.2.2 基本的なアイデンティティ・コネクタ・メタデータの作成

このメタデータ構成は、プロビジョニングとリコンシリエーションの両方で必要となります。この項における一連の手順は、Oracle Identity Manager Design Consoleを使用して完了します。

- ITリソース・タイプ定義の作成

- リソース・オブジェクトの作成

- メインの構成参照の作成

- オブジェクト・タイプの構成参照の作成

17.2.2.1 ITリソース・タイプ定義の作成

ITリソース・タイプ定義は、リソースの接続情報の表現です。ITリソース・タイプ定義内の構成パラメータは、コネクタ・バンドルの構成パラメータと一致する必要があります。ITリソース内のパラメータの値は、バンドル構成で設定されます。

注意:

バンドル構成によって使用されないパラメータを含めることができます。これらは、バンドル操作に悪影響は与えません。

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

2. 「リソース管理」の下のITリソース・タイプ定義をクリックします。

3. 「サーバー・タイプ」をFlat Fileとして定義して、新しいITリソース・タイプ定義を作成します。

4. 図17-1に示すように、次のパラメータを追加します。

- Configuration Lookupは、リソース用のメインの構成参照のマーカーです。パラメータの名前は、Configuration Lookupである必要があります。「デフォルトのフィールド値」に値を追加することをお薦めします。

- textFieldDelimeterは、バンドル構成のtextFieldDelimeterパラメータにマップされます。このパラメータの値が渡されます。

- storeFileは、バンドル構成のstoreFileパラメータにマップされます。このパラメータの値が渡されます。

図17-1 Design ConsoleのITリソース・タイプ定義

「図17-1 Design ConsoleのITリソース・タイプ定義」の説明

17.2.2.2 リソース・オブジェクトの作成

リソース・オブジェクトは、Oracle Identity Managerでのリソースの表現です。コネクタ・バンドルは、リソース・オブジェクトに関連付けられています。

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

2. 「リソース管理」の下の「リソース・オブジェクト」をクリックします。

3. FLATFILEROという名前で新しいリソース・オブジェクトを作成します。
リソース・オブジェクトはターゲット・リソースであるため、図17-2に示すように、「信頼できるソース」ボックスは選択しません。

図17-2 Design Consoleの「リソース・オブジェクト」

「図17-2 Design Consoleの「リソース・オブジェクト」」の説明

17.2.2.3 参照の作成

コネクタ・バンドルでサポートされている様々なオブジェクトに対して個別の参照を定義する必要があります。この参照には、これらのオブジェクトのプロビジョニングおよびリコンシリエーションに関連する情報を含めることができます。メインの構成参照は、これらの参照へのポインタが含まれているため、オブジェクト固有の参照のルートになります。次の項では、参照の作成方法について説明します。

- メインの構成参照の作成

- オブジェクト・タイプの構成参照の作成

17.2.2.3.1 メインの構成参照の作成

(第17.2.2.1項「ITリソース・タイプ定義の作成」で定義した)構成参照には、接続情報とは見なされないコネクタ・バンドル構成が保持されます。ITリソース・タイプ定義で構成パラメータが見つからない場合、Oracle Identity Managerは構成参照を検索します。メインの構成参照には、バンドル・プロパティおよびバンドル構成が含まれています。バンドル・プロパティ・パラメータは、正しいバンドルの識別に必要であるため、必須です。ITリソース・タイプ定義の一部として定義されていないバンドル構成(第17.2.2.1項「ITリソース・タイプの定義の作成」を参照)は、ここで宣言できます。

注意:

コード・キーの値は、図と完全に一致する必要があります。デコードの値は、コネクタ・バンドルに固有です。

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

2. 「管理」の下の「参照定義」をクリックします。

3. 新しい参照を作成し、Lookup.FF.Configurationをコードの値として追加します。

4. 図17-3に示すように、次の参照コード情報を追加します。

- VERSIONを必須バンドル・バージョンとして追加します。

- org.identityconnectors.flatfileを必須バンドル名として追加します。

- org.identityconnectors.flatfile.FlatFileConnectorを必須コネクタ名として追加します。

- AccountIdをuniqueAttributeNameの値として追加します。AccountIdは、プロビジョニングまたはリコンサイルされるアカウントを表す一意の文字列識別子です。フラット・ファイル内の列の名前です。AccountIdは、一意であり、ユーザー(アカウントの詳細)を一意に表すために使用されます。

- ChangeNumberをchangeLogAttributeNameの値として追加します。アカウントが作成されると、作成されたアカウントの合計数を示すために番号が付加されます。この値は、ChangeNumberと呼ばれる変数で保持されます。

- OBJECT_TYPE_NAME Configuration Lookupは、特定のオブジェクト・タイプの構成参照です。この例では、User Configuration Lookupが定義されているため、オブジェクト・タイプはUserになります。

図17-3 Design Consoleの「参照定義」

「図17-3 Design Consoleの「参照定義」」の説明

17.2.2.3.2 オブジェクト・タイプの構成参照の作成

オブジェクト・タイプの構成参照には、特定のオブジェクト・タイプに固有のパラメータが含まれています。オブジェクト・タイプは、アイデンティティ・コネクタが動作するエンティティです。ICF ObjectClassにマップされます。第17.2.2.3.1項「メインの構成参照の作成」でUser Configuration Lookupが参照されているため、Userがオブジェクト・タイプとなり、この場合はObjectClass.ACCOUNTにマップされています。(RolesとUserJobDataが、その他の2つのオブジェクト・タイプです。)オブジェクト・タイプ名は、アイデンティティ・コネクタ・バンドルでサポートされているオブジェクト・クラス名と一致する必要があります。Userオブジェクト・タイプは事前定義済のObjectClass.ACCOUNTにマップされ、Groupオブジェクト・タイプは事前定義済ObjectClass.GROUPにマップされます。アイデンティティ・コネクタが複数のオブジェクトをサポートしている場合、この手順をそれぞれに対して繰り返す必要があります。

注意:

これらのユースケースは基本機能のみを対象としているため、この構成は必須属性として保持されます。

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

2. 「管理」の下の「参照定義」をクリックします。

3. 新しい参照を作成し、Lookup.FF.UM.Configurationをコードとして追加します。

4. 図17-4に示すように、次の属性を設定します。

注意:

このチュートリアルは、アイデンティティ・コネクタの実行に最低限必要な構成に焦点を当てています。

- プロビジョニング属性マップの値はLookup.FF.UM.ProvAttrMapとします。この参照には、Oracle Identity Managerフィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、プロビジョニング時に使用されます。

- リコンシリエーション属性マップの値はLookup.FF.UM.ReconAttributeMapとします。この参照には、Oracle Identity Managerリコンシリエーション・フィールドとアイデンティティ・コネクタ属性との間のマッピングが含まれています。このマッピングは、リコンシリエーション時に使用されます。

図17-4 Design Consoleの2番目の「参照定義」

「図17-4 Design Consoleの2番目の「参照定義」」の説明

17.2.3 プロビジョニング・メタデータの作成

次の項は、フラット・ファイル・プロビジョニング用にOracle Identity Managerを構成するために実行する必要があります。

- プロセス・フォームの作成

- アダプタの作成

- プロセス定義の作成

- プロビジョニング属性マッピング参照の作成

17.2.3.1 プロセス・フォームの作成

プロセス・フォームは、Oracle Identity Managerでのオブジェクト属性の表現として使用されます。これにより、操作のためにオブジェクト属性がコネクタ・バンドルに渡される前に、ユーザーが設定を容易に入力できます。

プロセス・フォームで定義された属性は、規則ではありません。このフォームは、アイデンティティ・コネクタに渡される必要がある属性に対するチャレンジの方法です。一般的に、アイデンティティ・コネクタのサポートされている各属性に対して属性を定義します。

注意:

アイデンティティ・コネクタ属性で1対1のマッピングを設定することをお薦めします。

対応するITリソース・タイプ定義に関連付ける必要があるITリソースを問い合せるためのフィールドが存在する必要があります。各フィールドの変数タイプは、オブジェクト属性のタイプにマップする必要があります。

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

2. 「開発ツール」の下の「フォーム・デザイナ」をクリックします。

3. 図17-5に示すように、「表名」がUD_FLAT_FILである新しいフォームを作成します。

図17-5 Design Consoleの「フォーム・デザイナ」

「図17-5 Design Consoleの「フォーム・デザイナ」」の説明

4. 表17-1に示されているように、コネクタ・スキーマで定義されている属性を追加します。

表17-1 「フォーム・デザイナ」のフィールド

名前

バリアント

フィールド・ラベル

フィールド・タイプ

UD_FLAT_FIL_FIRSTNAME

String

First Name

TextField

UD_FLAT_FIL_UID

String

Universal ID

TextField

UD_FLAT_FIL_CHANGENO

String

Change Number

TextField

UD_FLAT_FIL_MAILID

String

Email ID

TextField

UD_FLAT_FIL_SERVER

long

Server

ITResource

UD_FLAT_FIL_LASTNAME

String

Last Name

TextField

UD_FLAT_FIL_ACCOUNTID

String

Account ID

TextField

UD_FLAT_FIL_RETURN

String

Return ID

TextField

注意:

フラット・ファイルの列名は、FirstName、ChangeNo、EmailID、Server、LastNameおよびAccountIDです。

5. 「Properties」タブをクリックします。

6. 図17-6に示しているように、次のプロパティをServer(ITResourceLookupField)に追加します。

- Required = true

- Type = Flat File

図17-6 Design Consoleの「フォーム・デザイナ」のプロパティ

「図17-6 Design Consoleの「フォーム・デザイナ」のプロパティ」の説明

7. フォームを保存します。

8. バージョンのアクティブ化をクリックします。

17.2.3.2 アダプタの作成

コネクタ・バンドルでサポートされているすべての操作(作成、更新、削除など)に対してアダプタを作成する必要があります。

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

2. 「開発ツール」の下の「アダプタ・ファクトリ」をクリックします。

3. 新しいアダプタを作成し、「アダプタ名」としてFFCreateUserを追加します。

4. 「アダプタ・タイプ」として「プロセス・タスク」を追加します。

5. アダプタを保存します。

6. 図17-7に示すように、変数リスト・タブをクリックして、次の変数を追加します。

- 「タイプ」が「文字列」で、マップが実行時に解決であるobjectType。

- 「タイプ」が「ロング」で、マップが実行時に解決であるprocessInstanceKey。

- 「タイプ」が「文字列」で、マップが実行時に解決であるitResourceFieldName。

図17-7 Design Consoleの「アダプタ・ファクトリ」の変数リスト

「図17-7 Design Consoleの「アダプタ・ファクトリ」の変数リスト」の説明

7. 図17-8に示すように、次のサブ手順を実行して、Java機能タスクをアダプタに追加します。

1. アダプタ・タスク・タブをクリックします。

2. アダプタを選択し、「追加」をクリックします。

3. タスク・オプションからJavaを選択します。

4. APIソースから「icf-oim-intg.jar」を選択します。

5. APIソースとして「oracle.iam.connetors.icfcommon.prov.ICProvisioninManager」を選択します。

6. タスクのメソッドとして「createObject」を選択します。

7. 構成を保存します。

8. (すでに変数リストに追加した)変数を、適切なメソッド入力および出力にマップします。

9. 構成パラメータを、適切なメソッド入力および出力にマップします。
データベース参照はデータベース参照(アダプタ参照)にマップし、戻り変数は戻り変数(アダプタ変数)にマップします。

図17-8 Design Consoleの「アダプタ・ファクトリ」

「図17-8 Design Consoleの「アダプタ・ファクトリ」」の説明

8. アダプタを保存してビルドします。

17.2.3.3 プロセス定義の作成

プロセス定義では、特定の操作用のコネクタ・バンドルの動作を定義します。すべての操作には、関連付けられている対応タスクがあります。この手順では、作成操作のプロセス定義、およびプロセス・タスクの統合を構成します。

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

2. 「プロセス管理」タブの「プロセス定義」をクリックします。

3. 図17-9に示すように、新しいプロセス定義を作成し、それにFlat Fileという名前を付けます。

図17-9 Design Consoleの「プロセス定義」

「図17-9 Design Consoleの「プロセス定義」」の説明

4. プロセスのタイプとして「プロビジョニング」を選択します。

5. アイデンティティ・コネクタのリソース・オブジェクト名を指定します(この例ではFLATFILERO)。

6. プロセス・フォームの表名を指定します(この例ではUD_FLAT_FIL)。

7. プロセス・タスクを追加してCreate Userという名前を付けます。

8. 図17-10に示すように、「Create User」をダブルクリックして、編集します。

図17-10 Design Consoleのタスクの編集画面

「図17-10 Design Consoleのタスクの編集画面」の説明

9. 統合タブをクリックします。

10. 図17-11に示すように、「追加」をクリックして、リストからFFCreateUserアダプタを選択します。
このアダプタは、コンパイルされた後にのみ使用できます。

図17-11 Design Consoleの「統合」タブ

「図17-11 Design Consoleの「統合」タブ」の説明

11. 次のように変数をマップして、アイデンティティ・コネクタによって返されるレスポンス・コードを設定します。

- Adapter Return Variable - レスポンス・コード

- Object Type - [Literal:String] User(オブジェクト・タイプの名前)

- Process Instance Key - [Process Data] プロセス・インスタンス

- IT Resource Field Name - [Literal:String] UD_FLAT_FIL_SERVER(ITリソース情報が含まれたフォーム・フィールド名)

12. 図17-12に示すように、「レスポンス」タブをクリックして、レスポンスを構成します。

- UNKNOWNを、ステータスがR(拒否)の不明なレスポンスの受信として指定できます。

- SUCCESSを、ステータスがC(完了)の操作の完了として指定できます。

- ERRORを、ステータスがRのエラーの発生として指定できます。

図17-12 Design Consoleでのレスポンスの構成

「図17-12 Design Consoleでのレスポンスの構成」の説明

13. タスクのオブジェクト・ステータス・マッピング・タブをクリックします。

14. 図17-13に示すように、オブジェクト・ステータスをステータスがCのProvisionedに更新します。

図17-13 タスクとオブジェクトのステータス・マッピング

「図17-13 タスクとオブジェクトのステータス・マッピング」の説明

15. プロセス・タスクを保存します。

17.2.3.4 プロビジョニング属性マッピング参照の作成

プロビジョニング属性マッピング参照には、アイデンティティ・コネクタ・バンドル属性へのOracle Identity Managerフィールドのマッピングが含まれます。プロビジョニング属性マッピング参照の説明を次に示します。

- コード・キーは、プロセス・フォームのフィールド・ラベルです。

- デコードは、アイデンティティ・コネクタ・バンドル属性です。

- 子フォーム属性は、入力での埋込みオブジェクトとして構成できます。

- アイデンティティ・コネクタのプロビジョニング操作は、レスポンスでUIDを返します。これは、アイデンティティ・コネクタ・バンドル属性に対してコーディングして、フォーム・フィールドに設定できます。

プロビジョニング属性マッピング参照を作成する手順は、次のとおりです。

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

2. 「管理」タブの「参照定義」をクリックします。

3. 新しい参照を作成し、Lookup.FF.UM.ProvAttrMapという名前を付けます。
参照の名前は、オブジェクト・タイプの構成参照から参照されます。第17.2.2.3.2項「オブジェクト・タイプの構成参照の作成」を参照してください。

4. フォーム・フィールド・ラベルをコード・キーとして追加し、アイデンティティ・コネクタ・バンドル属性をデコードとして追加します。

- Return ID : __UID__

- Account ID: AccountId

- Change Number: ChangeNumber

- First Name: FirstName

- Last Name: LastName

- Email ID: MailId

17.2.3.4.1 プロビジョニング属性マップで使用されるフィールド・フラグ

プロビジョニング属性マッピングの場合、次のフィールド・フラグをコード・キーに追加できます。

- LOOKUP: これは、参照リコンシリエーション・ジョブの実行によって値が取得されるすべてのフィールドに指定する必要があります。参照リコンシリエーション・ジョブから取得された値には、ITリソース名/キーが追加されています。このフラグを指定すると、追加された値をバンドルに渡す直前にICF統合で削除するのに役立ちます。たとえば、ラベルがDatabaseで、参照リコンシリエーション・ジョブの実行により値が取得されたフィールドのコード・キーは、Database[LOOKUP]のようになります。

注意:

LOOKUPフラグは、プロビジョニングとリコンシリエーション両方の属性マップに指定できます。プロビジョニングの場合、ITリソース名/ITリソース・キー接頭辞を削除する必要があります。リコンシリエーションの場合、ITリソース名/ITリソース・キー接頭辞を追加する必要があります。

- IGNORE: これは、値が無視され、バンドルに送信されないすべてのフィールドに指定する必要があります。たとえば、ラベルがDatabaseで、値をバンドルに送信する必要がないフィールドのコード・キーは、Database[IGNORE]のようになります。

- WRITEBACK: これは、作成操作または更新操作の直後に値をプロセス・フォームに書き戻す必要があるすべてのフィールドに指定する必要があります。このフラグを追加すると、ICF統合レイヤー・コールICF Get APIが、WRITEBACKフラグのマークがある属性の値を取得するようになります。たとえば、ラベルがDatabaseで、作成/更新の直後に値がプロセス・フォームに書き戻される必要があるフィールドのコード・キーは、Database[WRITEBACK]のようになります。これが機能するには、コネクタはGetApiOpインタフェースを実装し、ConnectorObject getObject(ObjectClass objClass、Uid uid、OperationOptionsオプション)APIに実装を提供する必要があります。このAPIは、Uidが渡されたUidと同じであるアカウントのターゲットを検索し、プロセス・フォームに書き戻されるすべての属性(およびその値)が含まれたコネクタ・オブジェクトをビルドします。

注意:

コネクタがGetApiOpインタフェースを実装していない場合、WRITEBACKフラグは機能せず、エラーが生成されます。

- DATE: これは、タイプがDateと見なされる必要があるフィールドに指定する必要があり、これがない場合、値は標準の文字列と見なされます。たとえば、ラベルがTodayで、値が日付形式で表示される必要があるフィールドのコード・キーは、Today[DATE]のようになります。

- PROVIDEONPSWDCHANGE: これは、パスワード更新が発生した場合に、バンドル(ターゲット)に提供する必要があるすべてのフィールドに指定する必要があります。一部のターゲットは、追加の属性がすべてのパスワード変更で指定されると予測します。PROVIDEONPSWDCHANGEフラグを指定することで、パスワード変更がリクエストされた場合は必ずすべての追加フィールドまたは属性を送信するようICF統合に伝えます。たとえば、ラベルがExtra Attribute Needed for Password Changeで、パスワード更新時に値をバンドル(ターゲット)に提供する必要があるフィールドのコード・キーは、Extra Attribute Needed for Password Change[PROVIDEONPSWDCHANGE]のようになります。

17.2.4 リコンシリエーション・メタデータの作成

この項では、フラット・ファイルのレコードのリコンシリエーションを構成する手順について説明します。ターゲット・リコンシリエーションを例として使用しますが、信頼できるリコンシリエーションも同様の方法で構成できます。リストされている順序で手順を実行してください。

1. リコンシリエーション・スケジュール・タスクの作成

2. リコンシリエーション・プロファイルの作成

3. リコンシリエーション・アクション・ルールの設定

4. リコンシリエーション・マッピングの作成

5. リコンシリエーション一致ルールの定義

17.2.4.1 リコンシリエーション・スケジュール・タスクの作成

デフォルトでは、リコンシリエーションはコネクタ・バンドルで検索操作を使用します。この操作は、Oracle Identity Managerを使用して構成されたスケジュール・タスクで呼び出されます。この手順は、次のサブ手順で構成されています。

1. スケジュール・タスクの定義

2. スケジュール済タスクの作成

17.2.4.1.1 スケジュール・タスクの定義

スケジュール済タスクを定義するには、次の手順を実行します。

1. 例17-9に示すように、スケジュール済タスク詳細が含まれたデプロイメント・マネージャXMLファイルを作成します。データベースの値を、使用しているデータベースに必ず更新してください。

例17-9 スケジュール済タスク詳細が含まれたデプロイメント・マネージャXML

<?xml version = '1.0' encoding = 'UTF-8'?>
<xl-ddm-data version="2.0.1.0" user="XELSYSADM" database="jdbc:oracle:thin:@localhost:5524/estView.regress.rdbms.dev.us.oracle.com" exported-date="1307546406635" description="FF">
<scheduledTask repo-type="MDS" name="Flat File Connector User Reconciliation" mds-path="/db" mds-file="Flat File Connector User Reconciliation.xml">
<completeXml>
<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>Flat File Connector User Reconciliation</name>
<class>oracle.iam.connectors.icfcommon.recon.SearchReconTask</class>
<description>Flat File Connector User Reconciliation</description>
<retry>0</retry>
<parameters>
<string-param required="false" encrypted="false" helpText="Filter">Filter</string-param>
<string-param required="false" encrypted="false" helpText="Incremental Recon Date Attribute">Incremental Recon Date Attribute</string-param>
<string-param required="false" encrypted="false" helpText="IT Resource Name">IT Resource Name</string-param>
<string-param required="false" encrypted="false" helpText="Object Type">Object Type</string-param>
<string-param required="false" encrypted="false" helpText="Latest Token">Latest Token</string-param>
<string-param required="false" encrypted="false" helpText="Resource Object Name">Resource Object Name</string-param>
</parameters>
</task>
</scheduledTasks>
</completeXml>
</scheduledTask>
</xl-ddm-data>

2. このファイルをFlat File Connector User Reconciliation.xmlとして保存します。

3. 管理およびユーザー・コンソールにログインします。「デプロイメント・マネージャ・ファイルのインポート」をクリックします。

4. Flat File Connector User Reconciliation.xmlファイルを選択し、「インポート」をクリックします。

5. ウィザードのステップを完了します。

17.2.4.1.2 スケジュール済タスクの作成

この手順では、スケジュール済タスクの作成方法について説明します。

1. Oracle Identity Manager拡張管理にログインします。

2. 「システム管理」タブの「スケジューラ」をクリックします。

3. 図17-14に示すように、スケジュール・タスクを追加し、タイプとしてFlat File Connector User Reconciliationを追加します。

図17-14 拡張コンソールの「スケジュール・タスク」画面

「図17-14 拡張コンソールの「スケジュール・タスク」画面」の説明

4. パラメータを次のように設定します。

- 「ITリソース名」の値はFlat Fileとします。

- リソース・オブジェクト名の値はFLATFILEROとします。

- 「オブジェクト・タイプ」の値は「ユーザー」とします。

5. 「適用」をクリックします。

17.2.4.2 リコンシリエーション・プロファイルの作成

リコンシリエーション・プロファイルでは、リコンシリエーション時のオブジェクト属性の構造を定義します。リコンシリエーション・プロファイルには、リコンシリエーションをサポートしているすべての属性が含まれている必要があります。

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

2. 「リソース管理」の下の「リソース・オブジェクト」をクリックします。

3. 「FLATFILERO」リソース・オブジェクトを開きます。

4. 図17-15に示すように、オブジェクト・リコンシリエーション・タブをクリックします。

図17-15 Design Consoleのオブジェクト・リコンシリエーション

「図17-15 Design Consoleのオブジェクト・リコンシリエーション」の説明

5. 次のリコンシリエーション・フィールドを追加します。

- First Name [String]

- Universal ID [String]

- Email ID [String]

- IT Resource Name [String]

- Last Name [String]

- Account ID [String]、必須

6. 構成を保存します。

17.2.4.3 リコンシリエーション・アクション・ルールの設定

リコンシリエーション・アクション・ルールでは、リコンシリエーションの動作を定義します。この手順では、一致が見つかった場合に行われるアクションを定義します。この手順では、Oracle Identity Manager Design Consoleにログインしていることを前提にしています。

1. 「FLATFILERO」リソース・オブジェクトを開きます。

2. オブジェクト・リコンシリエーション・タブをクリックします。

3. 右側のフレームのリコンシリエーション・アクション・ルール・タブをクリックします。

図17-16 Design Consoleのリコンシリエーション・アクション・ルール

「図17-16 Design Consoleのリコンシリエーション・アクション・ルール」の説明

4. 1つのプロセス一致が見つかった場合(「ルール条件」)およびリンクの確立(「アクション」)として定義したアクション・ルールを追加します。

5. 1つのエンティティ一致が見つかった場合(「ルール条件」)およびリンクの確立(「アクション」)として定義したアクション・ルールを追加します。

6. リコンシリエーション・プロファイルの作成をクリックします。

7. 「保存」をクリックします。

17.2.4.4 リコンシリエーション・マッピングの作成

リコンシリエーション・マッピングは、プロセス定義で実行する必要があります。これは、サポートされているリコンシリエーション・フィールドを(リソース・オブジェクトから)プロセス・フォーム・フィールドにマッピングすることです。このマッピングは、ターゲット・リコンシリエーションを構成する場合にのみ必要となります。

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

2. 「プロセス管理」の下の「プロセス定義」をクリックします。

3. Flat Fileプロセス定義を開きます。

4. 図17-17に示すように、リコンシリエーション・フィールド・マッピング・タブをクリックします。

図17-17 Design Consoleのリコンシリエーション・フィールド・マッピング

「図17-17 Design Consoleのリコンシリエーション・フィールド・マッピング」の説明

5. リコンシリエーション・プロファイル・フィールドとプロセス・フォーム・フィールドとの間のマッピングを追加します。

- First Name[String] = UD_FLAT_FIL_FIRSTNAME

- Email ID[String] = UD_FLAT_FIL_MAILID

- IT Resource Name[String] = UD_FLAT_FIL_SERVER

- Last Name[String] = UD_FLAT_FIL_LASTNAME

- Account ID [String] = UD_FLAT_FIL_ACCOUNTID <KEY>
<KEY>は、Account IDをキー・フィールドとして設定します。

6. 構成を保存します。

17.2.4.4.1 リコンシリエーション属性マップで使用されるフィールド・フラグ

リコンシリエーション属性マッピングの場合は、次のフィールド・フラグをコード・キーに追加できます。

- TRUSTED: これは、アカウントのステータスを表すフィールドのリコンシリエーション属性マップで指定する必要があります。このフラグは、信頼できるリコンシリエーションにのみ指定する必要があります。これが指定されている場合、アカウントのステータスは「アクティブ」または「無効」のいずれかになります。それ以外の場合、ステータスは「有効」または「無効」のいずれかになります。たとえば、ラベルがStatusで、値が「アクティブ」または「無効」のいずれかである必要があるフィールドのコード・キーは、Status[TRUSTED]のようになります。

- DATE: これは、リコンシリエーション属性マップにおいて、タイプがDateと見なされる必要があるフィールドに指定する必要があります。たとえば、ラベルがTodayで、値が日付形式で表示される必要があるフィールドのコード・キーは、Today[DATE]のようにする必要があります。

17.2.4.5 リコンシリエーション一致ルールの定義

リコンシリエーション一致ルールでは、ユーザー一致の計算用の式を定義します。

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

2. 「開発ツール」の下の「リコンシリエーション・ルール」フォームを開きます。

3. 「ルールの追加」をクリックします。

図17-18 リコンシリエーション一致ルールの追加

「図17-18 リコンシリエーション一致ルールの追加」の説明

4. リソース・オブジェクト「FLATFILERO」を選択します。

5. このルール要素を保存して追加します。
ユーザー・プロファイル・データの「ユーザー・ログイン」は、「アカウントID」リソース属性と同等です。

6. ルールを保存します。

17.3 フラット・ファイル・アカウントのプロビジョニング

フラット・ファイル・コネクタが動作する準備が整ったため、ユーザーは、Oracle Identity Managerにログインし、次の手順を使用してITリソース(ターゲット)を作成する必要があります。

- タイプがFlat FileであるITリソースを作成します。

- 必要に応じて、ITリソース・パラメータを指定します。

- 必要に応じて、Lookup.FF.Configurationに構成パラメータを指定します。

第IV部

汎用テクノロジ・コネクタ

この部では、コネクタの開発および管理方法について説明します。

次の章で構成されます。

- 第18章「汎用テクノロジ・コネクタの理解」

- 第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」

- 第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」

- 第21章「汎用テクノロジ・コネクタの作成および管理」

- 第22章「汎用テクノロジ・コネクタのトラブルシューティング」

18 汎用テクノロジ・コネクタの理解

この章では、汎用テクノロジ・コネクタと、汎用テクノロジ・コネクタを使用するためにOracle Identity Managerで提供される機能について説明します。

この章には次の項が含まれます:

- 汎用テクノロジ・コネクタの必要性

- 汎用テクノロジ・コネクタの機能アーキテクチャ

- 汎用テクノロジ・コネクタの機能

- 汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト

- このマニュアルでの汎用テクノロジ・コネクタに関する情報のロードマップ

18.1 汎用テクノロジ・コネクタの必要性

Oracle Identity Managerの事前定義済コネクタは、Microsoft Active DirectoryおよびPeopleSoft Enterprise Applicationsなどの、一般的に使用されているターゲット・システムにあわせて設計されています。事前定義済コネクタはアダプタ・ファクトリ機能を使用して開発され、そのアーキテクチャは、ターゲット・システムがサポートしているAPI、またはターゲット・システムがユーザー・データを格納するデータ・リポジトリのタイプおよびスキーマのいずれかに基づきます。

事前定義済コネクタは、アダプタ・ファクトリを使用して開発されるため、高度なワークフローおよびアダプタのカスタマイズ機能を備えています。ターゲット・システムでこれらのコネクタが使用できる場合は、統合の方法として事前定義済コネクタの使用をお薦めします。

対応する事前定義済コネクタがないターゲット・システムとOracle Identity Managerを統合する場合があります。その例として、次のようなシナリオについて考えます。

シナリオ1: Acme Inc.のすべての従業員は、バックアップ・サーバーにディスク領域を割り当てられています。従業員は、バックアップ・サーバー上の従業員アカウントを管理するようにシステム管理者にリクエストを送信します。システム管理者は、従業員からのリクエストを取得、確認および処理するWebベース・アプリケーションを開発しています。このアプリケーションのフロント・エンドは、CSV形式のデータを受け取って格納するWebサービスです。バックエンドに格納される従業員アカウント・データは、XMLファイルとして指定の場所にエクスポートできます。

シナリオ2: Ceeam Travels Inc.では、顧客が航空運賃の見積りのリクエストに使用できるカスタムのWebベース・アプリケーションを所有しています。Ceeam Travelsの従業員でもあるエージェントは、これらのリクエストに対し、同じアプリケーションを使用して応答します。顧客は、自己登録によりこのアプリケーション内にアカウントを作成します。ただし、Ceeam Travelsの従業員は、人事管理上の役職に基づいて自動的にプロビジョニングされたアカウントを持っている必要があります。アプリケーションのアカウント管理機能(作成、更新および削除など)は、Java APIを介して使用可能です。

これらのいずれのシナリオでも、ターゲット・システムとOracle Identity Managerをリンクするためのカスタム・コネクタを作成する必要があります。カスタム・コネクタを作成する簡単な方法を模索しており、アダプタ・ファクトリのカスタマイズ機能は必要ないという場合には、コネクタの作成にOracle Identity Managerの汎用テクノロジ・コネクタ機能を使用できます。18.2項「汎用テクノロジ・コネクタの機能アーキテクチャ」で説明しているように、プロバイダは汎用テクノロジ・コネクタのビルディング・ブロックです。

- シナリオ1では、事前定義済の共有ドライブ・リコンシリエーション・トランスポート・プロバイダおよびCSVリコンシリエーション・フォーマット・プロバイダを使用することにより、フラット・ファイルとして格納されているデータをOracle Identity Managerに対してリコンサイルする汎用テクノロジ・コネクタを作成できます。

- シナリオ2では、カスタム・アプリケーションをOracle Identity Managerに統合する場合に使用できる事前定義済プロバイダはありません。この場合、第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」に記載の手順を使用して、ターゲット・アプリケーションにより公開されたJava APIをコールするカスタム・プロバイダを作成できます。

18.2 汎用テクノロジ・コネクタの機能アーキテクチャ

事前定義済コネクタと同様に、汎用テクノロジ・コネクタは、Oracle Identity Managerとターゲット・システムの間でリコンシリエーションおよびプロビジョニング操作を仲介する役割をはたします。機能的に、汎用テクノロジ・コネクタは、リコンシリエーション・モジュールとプロビジョニング・モジュールに分けられます。汎用テクノロジ・コネクタを作成する際には、リコンシリエーション・モジュールとプロビジョニング・モジュールをともに組み込むか、どちらか一方のみ組み込むかを指定できます。

事前定義済コネクタは、同一のターゲットのコンテキストでリコンシリエーション機能とプロビジョニング機能を備えています。それに対して、汎用テクノロジ・コネクタのリコンシリエーション・モジュールおよびプロビジョニング・モジュールは、選択した再使用可能コンポーネントで構成されます。それぞれのコンポーネントでは、プロビジョニング時またはリコンシリエーション時に、特定の機能が実行されます。たとえば、フラット・ファイルから信頼できるソース・リコンシリエーションを実行するとともに、SPMLプロトコルを使用したSPML対応ターゲットへのターゲット・リソース・プロビジョニングを実行するコネクタを作成できます。

このマニュアルでは、汎用テクノロジ・コネクタを構成するコンポーネントをプロバイダと呼びます。

各プロバイダは、入力として受け取るデータに対するトランスポート機能、フォーマット変更機能、検証機能または変換機能を実行します。つまり、プロバイダにより処理されたデータ項目は新しい場所に移動されるか、指定された基準に照らして検証されるか、構造または値の変更が行われます。このガイドでは、データセットという用語は、レイヤー形式で配置されたデータ構造を表すために使用されます。データは、プロビジョニングおよびリコンシリエーション中にレイヤー間を流れます。

汎用テクノロジ・コネクタを作成する場合、各データセットに含まれる必要があるフィールド(ユーザー・アイデンティティ・メタデータ)を指定できます。また、異なるデータセットのフィールド間にマッピングを定義することもできます。マッピングは、次のいずれかを目的としています。

- プロビジョニングまたはリコンシリエーションで使用するための、2つのデータセットのフィールド間のデータ・フロー・パスの確立。
このタイプのマッピングに基づいて、ターゲット・システムからフェッチされたデータの検証または変換が行われます。

- 2つのデータセットのフィールド値の比較(一致)の基盤の構築。

図18-1は、汎用テクノロジ・コネクタの機能アーキテクチャを示しています。

図18-1 汎用テクノロジ・コネクタの機能アーキテクチャ

次の各項では、汎用テクノロジ・コネクタを構成するプロバイダおよびデータセットについて説明します。

- リコンシリエーション・モジュールのプロバイダおよびデータセット

- プロビジョニング・モジュールのプロバイダおよびデータセット

- Oracle Identity Managerデータセット

18.2.1 リコンシリエーション・モジュールのプロバイダおよびデータセット

リコンシリエーション・モジュールは、次のプロバイダおよびデータセットで構成されています。

- リコンシリエーション・トランスポート・プロバイダ
リコンシリエーション・トランスポート・プロバイダでは、ターゲット・システムのリコンシリエーション・データがOracle Identity Managerへ伝播されます。このプロバイダがリコンシリエーション・データを伝播する方法は、プロバイダの実装によって異なります。たとえば、リコンシリエーション・トランスポート・プロバイダは、ファイルからのデータの読取り、Webサービスからのデータの受取り、またはデータベースへの問合せが可能です。

- リコンシリエーション・フォーマット・プロバイダ
リコンシリエーション・フォーマット・プロバイダでは、リコンシリエーション・トランスポート・プロバイダによりフェッチされたリコンシリエーション・データが解析され、このデータがOracle Identity Managerに格納できるデータ構造に変換されます。

- ソース
「ソース」データセットには、リコンシリエーション・フォーマット・プロバイダにより処理されたデータが保持されます。このデータセットは、子データセットを持つことが可能です。

- 検証プロバイダ
検証プロバイダでは、「ソース」データセット内のデータが指定した基準を満たしているかどうかが確認され、その後データがOracle Identity Managerのリコンシリエーション・エンジンに渡されます。

注意:

1つの汎用テクノロジ・コネクタには、複数の検証プロバイダを組み込むことができます。

- 変換プロバイダ
リコンシリエーション・モジュールに組み込まれている変換プロバイダでは、検証プロバイダから受け取ったデータが変更され、その後データがリコンシリエーション・イベントを作成するためにOracle Identity Managerへ渡されます。

変換プロバイダ機能の例を、次に説明します。

ターゲット・システムの2つのフィールドに、次のように値が設定されているとします。

名: John

姓: Doe

変換プロバイダを使用すると、次のようなリコンシリエーション・フィールドを出力できます。

ログインID: John.Doe

- リコンシリエーション・ステージング
「リコンシリエーション・ステージング」データセットには、検証プロバイダおよび変換プロバイダによって処理されたユーザー・データが保持されます。このデータセットは、子データセットを持つことが可能です。

18.2.2 プロビジョニング・モジュールのプロバイダおよびデータセット

プロビジョニング・モジュールは、次のプロバイダおよびデータセットで構成されています。

- 変換プロバイダ
変換プロバイダを使用すると、次の段階でデータ項目を変更できます。

- プロビジョニング・モジュールに組み込まれている変換プロバイダでは、Oracle Identity Managerプロセス・フォームに入力されたデータが変更され、その後データがターゲット・システムに送信されます。

- プロビジョニング・ステージング
「プロビジョニング・ステージング」データセットには、プロビジョニング・フォーマット・プロバイダに送信される前のユーザー・データが保持されます。このデータは、Oracle Identity Managerに格納されている、信頼できるソースのユーザー・データまたはターゲット・システムのアカウント・データに対して変換機能を実行した場合の出力です。このデータセットは、子データセットを持つことが可能です。

- プロビジョニング・フォーマット・プロバイダ
プロビジョニング・フォーマット・プロバイダでは、(変換プロバイダから受け取った)Oracle Identity Managerのプロビジョニング・データが、ターゲット・システムでサポートされているフォーマットに変換されます。

- プロビジョニング・トランスポート・プロバイダ
プロビジョニング・トランスポート・プロバイダでは、プロビジョニング・フォーマット・プロバイダからターゲット・システムへプロビジョニング・データが伝播されます。このプロバイダがリコンシリエーション・データを伝播する方法は、プロバイダの実装によって異なります。たとえば、プロバイダでは、ファイルへのデータのコピー、Webサービスへのデータの送信、またはデータベースへのデータのポストが可能です。

18.2.3 Oracle Identity Managerデータセット

Oracle Identity Managerデータセットは、Oracle Identity Managerに格納されているデータを表します。これらのデータセットはリコンシリエーション・モジュールまたはプロビジョニング・モジュールには含まれませんが、これらのデータセットにフィールドを追加して、これらのデータセットとその他のデータセットのフィールド間のマッピングを作成できるため、汎用テクノロジ・コネクタの一部と見なされます。Oracle Identity Managerデータセットを次に示します。

- OIM - ユーザー
「OIM - ユーザー」データセットには、Oracle Identity Managerユーザーを定義するメタデータ(アイデンティティ・フィールドのセット)が保持されます。信頼できるソース・リコンシリエーションの場合、このデータセットは、「リコンシリエーション・ステージング」データセットから、新規作成または変更されたユーザー・アカウント情報を受け取ります。ターゲット・リソース・リコンシリエーションの場合は、「OIM - ユーザー」データセットのフィールドを使用して、ターゲット・システムのユーザー・アカウントと既存のOracle Identity Managerユーザーを一致させることができます。このデータセットは、子データセットを持つことはできません。

- OIM - アカウント
「OIM - アカウント」データセットには、Oracle Identity Managerの「プロセス・フォーム」フイールドに格納されているユーザー・アカウント情報が保持されます。このユーザー・アカウント情報は、「リコンシリエーション・ステージング」データセットから受け取ります。「OIM - アカウント」データセットは、子データセットを持つことが可能です。

18.3 汎用テクノロジ・コネクタの機能

次の各項では、汎用テクノロジ・コネクタの機能について説明します。

- リコンシリエーション・モジュールに固有の機能

- その他の機能

18.3.1 リコンシリエーション・モジュールに固有の機能

次の機能は、リコンシリエーション・モジュールに固有のものです。

- 信頼できるソース・リコンシリエーション

- アカウント・ステータスのリコンシリエーション

- 完全リコンシリエーションおよび増分リコンシリエーション

- バッチ・リコンシリエーション

- 複数値属性データ(子データ)の削除のリコンシリエーション

- リコンシリエーション停止の失敗しきい値

18.3.1.1 信頼できるソース・リコンシリエーション

汎用テクノロジ・コネクタは、信頼できるソース・リコンシリエーションに使用できます。信頼できるモードでのリコンシリエーションでは、次が実行されます。

- リコンシリエーション・エンジンでは、新規のターゲット・システム・アカウントが検出されると、対応するOracle Identity Managerユーザーが作成されます。

- リコンシリエーション・エンジンでは、既存のターゲット・システム・アカウントに対する変更が検出されると、対応するOracle Identity Managerユーザーに同様の変更が行われます。

注意:

汎用テクノロジ・コネクタの作成時に「信頼できるソース・リコンシリエーション」オプションを選択しない場合は、ターゲット・リソース・リコンシリエーションが有効になります。ターゲット・リソース・リコンシリエーションでは、ターゲット・システム・アカウントに対する変更のみがリコンサイルされます。リコンシリエーション時に検出された新規のターゲット・システム・アカウントが、Oracle Identity Managerで自動的に作成されることはありません。

信頼できるソース・リコンシリエーションに使用する汎用テクノロジ・コネクタは、プロビジョニングには使用できません。このような設計機能が組み込まれているのは、信頼できるソースとして指定されたターゲット・システム上のユーザー・アカウント情報を、Oracle Identity Managerを介して作成または変更できないようにするためです。

ITリソースおよびリソース・オブジェクトなどのコネクタ・オブジェクトは、汎用テクノロジ・コネクタの作成プロセスの最後に自動的に作成されます。デフォルトでは、汎用テクノロジ・コネクタのリソース・オブジェクトは、信頼できるリソース・オブジェクトです。つまり、汎用テクノロジ・コネクタはあらかじめ、複数の信頼できるソースのリコンシリエーション機能と互換性があります。この機能については、第12章「プロビジョニング・プロセスの開発」を参照してください。

注意:

信頼できるソース・リコンシリエーションでは、複数値(子)データのリコンシリエーションはサポートされていません。

18.3.1.2 アカウント・ステータスのリコンシリエーション

ユーザー・アカウント・ステータス情報は、ターゲット・システム・アカウントの所有者によるアカウントへのアクセスおよびアカウントの使用が許可されるかどうかのトラッキングに使用されます。Oracle identity Managerに格納されている形式のアカウント・ステータス情報がターゲット・システムに格納されていない場合は、事前定義済の翻訳変換プロバイダを使用して、アカウント・ステータスのリコンシリエーションを実装できます。

注意:

ユーザー・アカウント・ステータスのリコンシリエーションは、信頼できるソース・リコンシリエーションを選択するかターゲット・リソース・リコンシリエーションを選択するかに関係なく実装できます。

Design Consoleには、翻訳変換プロバイダを使用せずにアカウント・ステータスのリコンシリエーションを実装するための機能が用意されています。詳細は、12.3.2.2項「リコンシリエーション・フィールド・マッピングタブ」を参照してください。

18.3.1.3 完全リコンシリエーションおよび増分リコンシリエーション

汎用テクノロジ・コネクタを作成する際に、コネクタを完全リコンシリエーションまたは増分リコンシリエーションに使用するよう指定できます。

最後のリコンシリエーション実行後に変更されたレコードをリコンシリエーション・エンジンで識別する方法がターゲット・システムでサポートされている場合は、増分リコンシリエーションを選択します。たとえば、ターゲット・システムでユーザー・レコードの作成または変更にタイムスタンプが付けられている場合、リコンシリエーション・エンジンでは、最後のリコンシリエーション実行後に追加または変更されたレコードを識別できます。増分リコンシリエーションでは、最後のリコンシリエーション実行後に変更されたターゲット・システムのレコードのみがOracle Identity Managerでリコンサイル(格納)されます。

次のいずれかの条件に該当する場合は、完全リコンシリエーションを選択します。

- 最後のリコンシリエーション実行後に変更されたレコードをリコンシリエーション・エンジンで識別する方法がターゲット・システムでサポートされていない場合。

- ターゲット・システムのすべてのユーザー・アカウント・レコードに初めてリコンシリエーションを実行する場合。

完全リコンシリエーションでは、すべてのリコンシリエーション・レコードがターゲット・システムから抽出されます。ただし、最適化リコンシリエーション機能により、Oracle Identity Managerですでにリコンサイル済のレコードが識別されて無視されます。これは、リコンシリエーション・データで占有される領域を削減するために役立ちます。この機能がない場合、Oracle Identity Managerデータベースに格納されるデータ容量は、リコンシリエーションを実行するたびに急速に増加することになります。

注意:

完全リコンシリエーションと増分リコンシリエーションの結果は同じです。

- 最初のリコンシリエーション実行時に、すべてのターゲット・システム・レコードがリコンサイルされます。

- 2回目のリコンシリエーション以降は、最後のリコンシリエーション実行後に作成または更新されたターゲット・システムのレコードが、Oracle Identity Managerによってリコンサイルされます。

18.3.1.4 バッチ・リコンシリエーション

リコンシリエーションのバッチ・サイズを指定できます。これにより、リコンシリエーション実行中にリコンシリエーション・エンジンがターゲット・システムからフェッチするレコードの総数をバッチに分割できます。この機能により、リコンシリエーション・プロセスをさらにきめ細かく制御できるようになります。

18.3.1.5 複数値属性データ(子データ)の削除のリコンシリエーション

ターゲット・システムの複数値属性データの削除をOracle Identity Managerでリコンサイルするかどうかを指定します。

注意:

汎用テクノロジ・コネクタでは、親データの削除のリコンシリエーションはサポートされていません。たとえば、ユーザーJohn Doeのアカウントがターゲット・システムから削除された場合、汎用テクノロジ・コネクタを使用してこのユーザー・アカウントの削除をOracle Identity Managerでリコンサイルすることはできません。

18.3.1.6 リコンシリエーション停止の失敗しきい値

リコンシリエーションの実行中、ターゲット・システム・データをOracle Identity Managerに格納する前に、検証プロバイダでデータのチェックを実行できます。失敗しきい値を設定しておくと、検証チェックに通らなかったレコードの処理済レコードの総数に対する割合が指定のしきい値を超えた場合に、リコンシリエーションの実行を自動的に停止できます。

18.3.2 その他の機能

次の機能は、リコンシリエーション・モジュールまたはプロビジョニング・モジュールに固有のものではありません。

- カスタム・データ・フィールドおよびフィールド・マッピング

- カスタム・プロバイダ

- 多言語サポート

- カスタム日付書式

- Oracle Identity Managerユーザー属性に対する変更のターゲット・システムへの伝播

18.3.2.1 カスタム・データ・フィールドおよびフィールド・マッピング

汎用テクノロジ・コネクタを作成する場合、リコンシリエーションおよびプロビジョニングの実行中に使用する必要があるアイデンティティ・フィールドおよびフィールド・マッピング(データ・フロー・パス)を指定できます。

18.3.2.2 カスタム・プロバイダ

Oracle Identity Managerに付属の事前定義済プロバイダが、動作環境のトランスポート、フォーマット変更、検証または変換についての要件に対応していない場合は、カスタム・プロバイダを作成できます。

18.3.2.3 多言語サポート

汎用テクノロジ・コネクタでは、ユーザー、アカウントまたはその他のタイプのプロビジョニング済リソース・オブジェクトを表す、ASCIIデータおよび非ASCIIデータ(マルチバイト・キャラクタ)の両方を処理できます。

18.3.2.4 カスタム日付書式

汎用テクノロジ・コネクタの作成時は、次のような書式を指定できます。

- リコンシリエーション実行中に抽出されたターゲット・システム・レコードの日付の値の書式

- プロビジョニング実行中にターゲット・システムへ送信する必要がある日付の値の書式

18.3.2.5 Oracle Identity Managerユーザー属性に対する変更のターゲット・システムへの伝播

汎用テクノロジ・コネクタの作成時、Oracle Identity Managerユーザー属性に対する変更が自動的にターゲット・システムへ伝播されるように設定できます。

18.4 汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト

汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクトのリストは、「ステップ1: 基本情報」ページで選択した「リコンシリエーション」オプションおよび「プロビジョニング」オプションの組合せによって異なります。

- 「リコンシリエーション」と「プロビジョニング」の両方の選択

- 「リコンシリエーション」のみの選択

- 「プロビジョニング」のみの選択

注意:

フォーム名を除き、汎用テクノロジ・コネクタ・オブジェクトの名前はGTC_NAME_GTCの形式になります。GTC_NAMEは、コネクタに割り当てた名前です。

たとえば、作成する汎用テクノロジ・コネクタの名前としてDBTables_connを指定すると、すべてのコネクタ・オブジェクト(フォーム以外)の名前はDBTables_conn_GTCとなります。

18.4.1 「リコンシリエーション」と「プロビジョニング」の両方の選択

「ステップ1: 基本情報」ページで「リコンシリエーション」オプションおよび「プロビジョニング」オプションの両方を選択した場合、次のオブジェクトが作成されます。

- ITリソース・タイプ
ITリソース・タイプのパラメータは、最初のページで選択した、リコンシリエーションとプロビジョニングの両方のフォーマット・プロバイダとトランスポート・プロバイダのランタイム・パラメータです。

- ITリソース
ITリソースは、ITリソース・タイプのインスタンスです。これには、プロバイダのランタイム・パラメータ値が格納されます。

- リソース・オブジェクト
リソース・オブジェクトは、「リコンシリエーション・ステージング」親データセットを構成するフィールドの値を保持します。各「リコンシリエーション・ステージング」子データセットでは、複数レベルのリコンシリエーション・フィールドが、(対応する子フィールドを属性として)自動的に作成されます。

注意:

「信頼できるソース・リコンシリエーション」オプションを選択した場合、信頼できるリソース・オブジェクトは、コネクタ作成プロセスの最後に自動的に作成されるオブジェクトの1つになります。

- 親フォームと子フォーム
親フォームと子フォームは「OIM - アカウント」データセットおよびその子データセットにそれぞれ基づいています。デフォルトでは、フォームの名前は対応するデータセットの名前と同じです。「ステップ3: フォーム名の検証」ページで、必要に応じてフォーム名を変更できます。

- プロセス定義
プロセス定義には、リコンシリエーション・フィールド・マッピングと、システム定義およびプロビジョニング固有のプロセス・タスクが含まれます。プロセス定義に含まれるプロセス・タスクの詳細は、21.2.6項「プロビジョニングの構成」を参照してください。

- 汎用アダプタ
汎用アダプタには、汎用テクノロジ・コネクタが行うすべてのプロビジョニング機能に対するコードが含まれています。

- スケジュール済タスク
リコンシリエーションの実行中、スケジュール済タスクは事前定義済の順序でリコンシリエーション・プロセスをトリガーします。スケジュール済タスクの設定の詳細は、21.2.5項「リコンシリエーションの構成」を参照してください。

- リコンシリエーション・ルール
リコンシリエーション・ルールはルール要素で構成されています。単一ルール要素は、「リコンシリエーション・ステージング」データセットと「OIM - ユーザー」データセットのフィールド間で作成されたマッピングを表します。

- アクション・ルール
ターゲット・リソースのリコンシリエーションのために、次のデフォルトのアクション・ルールのいずれかが作成されます。

ルール条件

アクション

1つのエンティティ一致が見つかった場合

リンクの確立

1つのプロセス一致が見つかった場合

リンクの確立

信頼できるソースのリコンシリエーションのために、次のデフォルトのアクション・ルールのいずれかが作成されます。

ルール条件

アクション

一致しない場合

ユーザーの作成

1つのエンティティ一致が見つかった場合

リンクの確立

1つのプロセス一致が見つかった場合

リンクの確立

汎用テクノロジ・コネクタの作成者が属するユーザー・グループは、汎用テクノロジ・コネクタの作成プロセス中に自動的に作成される次のコネクタ・オブジェクトの管理者となります。

- ITリソース

- リソース・オブジェクト(管理者およびオブジェクト認可者)

- すべてのフォーム

- プロセス定義

- リコンシリエーション・フィールド

- リコンシリエーション・フィールド・マッピング

18.4.2 「リコンシリエーション」のみの選択

「リコンシリエーション」オプションおよび「プロビジョニング」オプションの両方を選択した場合に作成されるオブジェクトのリストは、「「リコンシリエーション」と「プロビジョニング」の両方の選択」を参照してください。「ステップ1: 基本情報」ページで「リコンシリエーション」オプションのみを選択した場合、そのリストの中の次のオブジェクトは作成されません。

- 汎用アダプタ

- プロビジョニング固有のプロセス・タスク
ただし、プロセス定義自体とそれを構成するシステム定義プロセス・タスクは作成されます。

18.4.3 「プロビジョニング」のみの選択

「リコンシリエーション」オプションおよび「プロビジョニング」オプションの両方を選択した場合に作成されるオブジェクトのリストは、「「リコンシリエーション」と「プロビジョニング」の両方の選択」を参照してください。「ステップ1: 基本情報」ページで「プロビジョニング」オプションのみを選択した場合、そのリストの中の次のオブジェクトは作成されません。

- スケジュール済タスク

- リコンシリエーション・ルール

- リコンシリエーション・フィールド

- リコンシリエーション・フィールド・マッピング

18.5 このマニュアルでの汎用テクノロジ・コネクタに関する情報のロードマップ

汎用テクノロジ・コネクタに関するその他の章および付録の概要を次に示します。

- 第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」では、共有ドライブ・リコンシリエーション・トランスポート・プロバイダ、CSVリコンシリエーション・フォーマット・プロバイダ、SPMLプロビジョニング・フォーマット・プロバイダ、Webサービス・プロビジョニング・トランスポート・プロバイダ、変換プロバイダおよび検証プロバイダを含む、使用可能なプロバイダの詳細について説明します。

- 第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」では、プロビジョニングおよびリコンシリエーション中のプロバイダの役割およびカスタム・プロバイダの作成方法について説明します。

- 第21章「汎用テクノロジ・コネクタの作成および管理」では、汎用テクノロジ・コネクタの作成方法と管理方法およびカスタム・コネクタでの汎用接続プール・フレームワークの使用方法について説明します。

- 第22章「汎用テクノロジ・コネクタのトラブルシューティング」では、汎用テクノロジ・コネクタに関連する一般的な問題と構成上の問題およびそれらの問題のトラブルシューティング方法について説明します。

19 汎用テクノロジ・コネクタ用事前定義済プロバイダ

Oracle Identity Managerの現在のリリースには、次の事前定義済プロバイダが含まれています。

関連項目:

Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの統合ソリューションに関する説明を参照してください。

注意:

使用するプロバイダ用のパラメータの値を決定する必要があります。この値は、管理およびユーザー・コンソールを使用して汎用テクノロジ・コネクタを作成する間に使用します。

- 共有ドライブ・リコンシリエーション・トランスポート・プロバイダ

- CSVリコンシリエーション・フォーマット・プロバイダ

- SPMLプロビジョニング・フォーマット・プロバイダ

- Webサービス・プロビジョニング・トランスポート・プロバイダ

- 変換プロバイダ

- 検証プロバイダ

19.1 共有ドライブ・リコンシリエーション・トランスポート・プロバイダ

共有ドライブ・リコンシリエーション・トランスポート・プロバイダは、ステージング・ディレクトリに格納されたフラット・ファイルからデータを読み取り、そのファイルをアーカイブ・ディレクトリに移動します。ステージング・ディレクトリとアーカイブ・ディレクトリを共有して、Oracle Identity Managerサーバーからアクセスできるようにする必要があります。

このプロバイダのパラメータを次に示します。

- ステージング・ディレクトリ(親アイデンティティ・データ)
このパラメータを使用して、親データを含むファイルを格納するディレクトリのパスを指定します。このパラメータ値の指定は必須です。これはランタイム・パラメータです。

このマニュアルでは、親データとは、ターゲット・システムに格納されているユーザー・アカウント情報を意味します。

このパラメータのサンプル値は次のとおりです。

T:/TargetSystemDirectory/ParentData

注意:

Oracle Identity Managerがインストールされているサーバー上にステージング・ディレクトリがない場合、そのディレクトリを共有にして、Oracle Identity Managerサーバー上にネットワーク・ドライブとしてマップする必要があります。

親データファイルに格納されるデータは、次の規則に準拠する必要があります。

- ファイルの1行目
親データファイルの1行目は、ファイルの内容を示すファイル・ヘッダーである必要があります。

ファイル・ヘッダーの前に、番号記号(#)で始まる任意の数の行を置くことができます。この記号はファイルの読取り時には無視されます。ただし、ヘッダーの先頭に空白がないようにしてください。英語以外の言語を使用している場合、この行に非ASCII文字は入力できません。

注意:

1行目に非ASCII文字を入力しないようにするチェック機能はありません。また、汎用テクノロジ・コネクタ・フレームワークでは非ASCII文字を解析できます。ただし、非ASCII文字を使用すると、作成した汎用テクノロジ・コネクタのコネクタ・オブジェクトが自動的に作成される時点で問題が発生します。

- ファイルの2行目
親データファイルの2行目には、ファイル内のデータのフィールド名(メタデータ)を入力する必要があります。

注意:

汎用テクノロジ・コネクタのコンテキストでは、メタデータという用語はユーザー・アカウント情報を構成する一連のアイデンティティ・フィールドを意味します。

英語以外の言語を使用している場合、この行に非ASCII文字は入力できません。この制限事項の詳細は、1行目に関する「注意」を参照してください。

- ファイルの3行目以降
親データファイルの3行目以降には、Oracle Identity Managerに対して選択した言語でデータを入力できます。この言語としては、ASCIIキャラクタ・セットと非ASCIIキャラクタ・セットの両方を使用できます。この制限事項の詳細は、「多言語サポート」を参照してください。

3行目以降にデータがなくても、リコンシリエーションが実行され、ファイルがアーカイブされます。

次に、サンプル親データファイルの内容を示します。

##Active Directory user
Name TD,Address TD,User ID TD
John Doe,Park Street,jodoe
Jane Doe,Mark Street,jadoe

関連項目:

「ステージング・ディレクトリとアーカイブ・ディレクトリに設定する権限」

- ステージング・ディレクトリ(複数値アイデンティティ・データ)
このパラメータを使用して、複数値(または子)アカウントまたはアイデンティティ・データ(ロール・メンバーシップのデータなど)を含むファイルを格納するディレクトリのパスを指定します。このパラメータ値の指定は必須ではありません。これはランタイム・パラメータです。

注意:

このマニュアルでは、複数値アカウントまたはアイデンティティ・データと子データという用語は、同義的に使用されています。

このパラメータのサンプル値は次のとおりです。

T:/TargetSystemDirectory/ChildData

注意:

- 親データファイルのステージング・ディレクトリを複数値ユーザー・データファイルのステージング・ディレクトリと同じにすることはできません。また、Oracle Identity Managerがインストールされているのと同じサーバー上にステージング・ディレクトリがない場合、そのディレクトリを共有にして、Oracle Identity Managerサーバー上にネットワーク・ドライブとしてマップする必要があります。

- 「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「ステージング・ディレクトリ(複数値アイデンティティ・データ)」パラメータの値は指定できません。これは、信頼できるソース・リコンシリエーションでは、複数値(子)データのリコンシリエーションがサポートされていないためです。

それぞれの型の複数値アカウントまたはアイデンティティ・データに対し、共有ディレクトリに個別のファイルが必要です。たとえば、特定のターゲット・システムの複数値ユーザー・データがグループ・メンバーシップ・データとロール・データである場合、グループ・メンバーシップ・データのファイルとロール・データのファイルが別々に必要です。

子データファイルに格納されているデータは、親データファイルに指定されている規則(1行目、2行目、3行目以降)に準拠する必要があります。

また、同じ一意のフィールドが親データファイルとそれぞれの子データファイルに存在する必要があります。このフィールドは、子データファイルの各レコードを親データファイルのシングル・レコードに一意にリンクするために使用されます。この構造は、RDBMSの整合性制約(主キーと外部キー)の概念に類似しています。

注意:

一意のフィールドは、子データファイルの最初のフィールドである必要があります。

次に示すサンプルの子データファイルには、前述のサンプル親データファイルにリンクされるロール情報が含まれています。

###Role
User ID TD,Role Name TD,Role Type TD
jodoe,admin1,admin
jadoe,admin2,admin

次に示すサンプルの子データファイルには、前述のサンプル親データファイルにリンクされるグループ・メンバーシップ情報が含まれています。

###Group Membership
User ID TD,Group Name TD,Group Type TD
jodoe,OracleDev1,OracleDev
jadoe,OracleDev2,OracleDev
jadoe,OracleDev3,OracleDev
jadoe,OracleDev4,OracleDev
jadoe,OracleDev5,ConnectorDev

一意のフィールドの名前User ID TDは、子データファイルと親データファイルで同じであることに注意してください。

「「ステップ3: コネクタ構成の変更」ページ」で説明されている「ステップ3: コネクタ構成の変更」ページでは、子データセットの名前は子データファイルで指定したヘッダーと同じです。前述のサンプルの子データファイルの場合、子データセットのラベルはRoleとGroup Membershipになります。また、「ステップ4: コネクタ・フォーム名の検証」ページでは、子データセットに対応するフォームに表示されるデフォルト名はRoleとGroup Membershipになります。「「ステップ4: コネクタ・フォーム名の検証」ページ」で説明されているように、デフォルトのフォーム名を使用することも、変更することもできます。

関連項目:

「ステージング・ディレクトリとアーカイブ・ディレクトリに設定する権限」

- アーカイブ・ディレクトリ
このパラメータを使用して、すでにリコンサイルした親および子データファイルを格納するディレクトリのパスを指定します。これはランタイム・パラメータです。

このパラメータ値の指定は必須です。

リコンシリエーション実行終了時に、データファイルはアーカイブ・ディレクトリにコピーされ、ステージング・ディレクトリから削除されます。

アーカイブ・ディレクトリに移動したファイルにタイムスタンプまたはマークは付きません。このため、アーカイブ・ディレクトリのパスを指定するときは、次のガイドラインに注意してください。

- 指定するアーカイブ・ディレクトリ・パスは、ステージング・ディレクトリ・パスと同じものにしないでください。同じパスを指定すると、アーカイブ・ディレクトリ内の既存のファイルがリコンシリエーションの実行終了時に削除されます。

- 前回のリコンシリエーション実行で使用されたファイルと同じ名前のデータファイルがステージング・ディレクトリに配置されていると、アーカイブ・ディレクトリ内の既存のファイルが、現在のリコンシリエーションの実行終了時に、ステージング・ディレクトリからの新しいファイルで上書きされます。

この点については、「「ステップ2: パラメータ値の指定」ページ」にも記載されています。

関連項目:

「ステージング・ディレクトリとアーカイブ・ディレクトリに設定する権限」

- ファイルの接頭辞
このパラメータを使用して、親データファイルと子データファイルの両方について、ステージング・ディレクトリ内のファイルの名前をフィルタするために使用する接頭辞を指定します。リコンシリエーション中は、ファイル拡張子に関係なく、指定した接頭辞で始まる名前を持つ(ステージング・ディレクトリ内の)すべてのファイルが処理されます。これはランタイム・パラメータです。

例:

「ファイルの接頭辞」パラメータの値としてusrdataを指定すると、複数値(子)ユーザー・データファイルに関して、ステージング・ディレクトリに配置された次のファイルのデータが解析されます。

usrdataRoleData.csv
usrdataGroupMembershipData.txt

同じディレクトリにある次のファイルからはデータは抽出されません。これは、ファイル名がusrdataで始まらないためです。

RoleData.csv
GroupMembershipData.txt

- 指定されたデリミタ
このパラメータを使用して、親および子データファイルでデリミタ文字として使用する文字を指定します。このパラメータの値として指定できるのは1文字のみです。これはランタイム・パラメータです。このパラメータは「タブ区切り」パラメータよりも優先されます。

注意:

空白( )はデリミタとして使用できません。

また、指定する文字が、そのデータファイルでデリミタとしてのみ使用されることを確認する必要があります。この文字がデータ自体にも含まれる場合、データ行(レコード)は正しく解析されません。たとえば、カンマ(,)がデータ値に含まれる場合は、デリミタとしてカンマを使用できません。

- タブ区切り
このパラメータを使用して、ファイルがタブ区切りかどうかを指定します。これはランタイム・パラメータです。「指定されたデリミタ」パラメータの値を指定すると、このパラメータは無視されます。

- 固定列幅
入力ファイルに固定幅データが含まれる場合は、このパラメータを使用してデータ列の文字の幅を指定します。これはランタイム・パラメータです。

注意:

ここでは、固定幅という用語は、データ・フィールドのバイト長ではなく文字数を意味します。たとえば、幅という意味ではシングルバイト・データ4文字とマルチバイト・データ4文字は同じになります。

「指定されたデリミタ」または「タブ区切り」パラメータの値を指定すると、このパラメータは無視されます。

- 一意の属性(親データ)
複数値ユーザー・データの場合は、このパラメータを使用して、親と子の両方のデータファイルに共通するフィールドを指定します。前述の例では、一意の属性に対する要件は、親と子の両方のデータファイルに存在するUser ID TDフィールドで満たされます。これはランタイム・パラメータです。

注意:

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「一意の属性(親データ)」パラメータの値は指定できません。これは、信頼できるソース・リコンシリエーションでは、複数値(子)データのリコンシリエーションがサポートされていないためです。

- ファイル・エンコーディング
このパラメータを使用して、親およびデータファイルで使用されるキャラクタ・セット・エンコーディングを指定します。これは設計パラメータです。

言語設定が英語のオペレーティング・システムを実行しているコンピュータでは、データファイルにCp1251を指定します。これは、汎用テクノロジ・コネクタ・フレームワークでサポートされるjava.io APIの正規名です。「多言語サポート」の項に示されたリストからその他の言語を選択する場合は、次のWebページを参照して、対応するjava.io APIの正規名を指定する必要があります。

http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html

注意:

APIに指定する正規名は、このWebページに表示されているとおりに入力する必要があります。正規名の大/小文字は変更しないでください。

たとえば、Microsoft Windowsコンピュータで繁体字中国語のエンコーディング・セットを指定する場合は、「ファイル・エンコーディング」パラメータの値としてMS950を指定します。

ステージング・ディレクトリとアーカイブ・ディレクトリに設定する権限

ステージング・ディレクトリとアーカイブ・ディレクトリに必要な権限が設定されていることを確認してください。次の表に、ステージングおよびアーカイブのデータファイルの保持に使用される共有ディレクトリに対する様々な権限の影響を示します。

記憶域エンティティ

アクセス権

アクセス権が必要な理由

親データファイルのステージング・ディレクトリ

読取り

この権限は、リコンシリエーションの実行に必要です。この権限が適用されない場合、エラー・メッセージがログに記録されます。

親データファイルのステージング・ディレクトリ

書込み

この権限は、アーカイブ・プロセスの最後にデータファイルを親ステージング・ディレクトリから削除するために必要です。

親データファイルのステージング・ディレクトリ

実行

適用外

子データファイルのステージング・ディレクトリ

読取り

この権限は、子データのリコンシリエーションに必要です。この権限が適用されない場合、エラー・メッセージがログに記録されます。

子データファイルのステージング・ディレクトリ

書込み

この権限は、アーカイブ・プロセスの最後にデータファイルを子ステージング・ディレクトリから削除するために必要です。

子データファイルのステージング・ディレクトリ

実行

適用外

アーカイブ・ディレクトリ

書込み

この権限は、アーカイブ・プロセス中に親および子データファイルをアーカイブ・ディレクトリにコピーするために必要です。この権限が適用されなくても、次の処理が行われます。

- 親および子データのリコンシリエーションが実行されます。

- 親および子ステージング・ディレクトリに必要な権限が設定されていない場合、ファイルはこれらのディレクトリから削除されます。

アーカイブ・ディレクトリ

実行

適用外

ステージング・ディレクトリ内の親または子データファイル

読取り

この権限は、ファイル内のデータのリコンシリエーションに必要です。この権限が適用されない場合、エラー・メッセージがログに記録されます。

ステージング・ディレクトリ内の親または子データファイル

書込み

この権限は、アーカイブ・プロセスの最後にデータファイルを削除するために必要です。この権限が適用されない場合、エラー・メッセージがログに記録されます。ただし、このファイル内のデータはリコンサイルされます。

ステージング・ディレクトリ内の親または子データファイル

実行

適用外

注意:

ステージング・ディレクトリ内のデータファイルは、いずれかのエディタで開かれているか他のプログラムによる書込みのために開かれていると、削除できません。

19.2 CSVリコンシリエーション・フォーマット・プロバイダ

CSVリコンシリエーション・フォーマット・プロバイダは、文字区切り、タブ区切りまたは固定長形式のリコンシリエーション・データをOracle Identity Managerでサポートされている形式に変換します。

CSVリコンシリエーション・フォーマット・プロバイダはスタンドアロン・プロバイダとしてパッケージ化されていますが、そのパラメータはすべて共有ドライブ・トランスポート・プロバイダにバンドルされています。「ステップ1: 基本情報の指定」ページで共有ドライブ・トランスポート・プロバイダを選択した場合は、CSVフォーマット・プロバイダを選択する必要があります。このプロバイダを選択すると、そのパラメータが共有ドライブ・トランスポート・プロバイダのパラメータとともに表示されます。

19.3 SPMLプロビジョニング・フォーマット・プロバイダ

SPMLプロビジョニング・フォーマット・プロバイダは、Oracle Identity Manager上でのプロビジョニング操作中に生成されたプロビジョニング・データをSPML対応のターゲット・システムで処理できるSPMLリクエストに変換します。

注意:

各SPMLリクエストはSOAPメッセージで送信されます。SOAPヘッダーには、リクエストの認証情報が含まれます。SPMLリクエストの実際のデータは、SOAPメッセージ本文に含まれます。

SPML-SOAPメッセージの構造の詳細は、第32章「SPMLサービスの使用」を参照してください。

サンプルSOAPメッセージは、次のディレクトリにあります。

OIM_HOME/GTC/Samples/spml

SPML仕様の詳細は、OASISのWebサイトの次のWebページを参照してください。

http://www.oasis-open.org/specs/index.php#spmlv2.0

図19-1に、SPMLプロビジョニング・フォーマット・プロバイダがリクエスト局(RA)として機能し、ターゲット・システムがプロビジョニング・サービス・プロバイダ(PSP)およびプロビジョニング・サービス・ターゲット(PST)を提供するシステムの設定を示します。

図19-1 SPMLプロビジョニング・フォーマット・プロバイダとターゲット・システムの間の通信

実際のプロビジョニング中は、SOAP-SPMLリクエストの作成にVelocityテンプレート・エンジンが使用されます。次のプロセスでは、プロバイダがSPML 2.0 DSMLプロファイルに基づいてSOAPリクエストを生成します。

- リクエストの追加

- 次のOracle Identity Managerプロセス・タスクに対するリクエストの変更:

- フィールドの更新

- 子データの追加

- 子データの変更

- 子データの削除

- リクエストの一時停止(Oracle Identity Managerプロセス・タスクの無効化)

- リクエストの再開(Oracle Identity Managerプロセス・タスクの有効化)

- リクエストの削除

「組織の作成」、「組織の更新」および「組織の削除」はサポートされていません。これは、汎用テクノロジ・コネクタ用に作成されたリソース・オブジェクトでは組織用のプロビジョニング操作がサポートされていないためです。「グループの作成」、「グループの更新」および「グループの削除」操作はサポートされていません。これは、グループのプロビジョニング操作がOracle Identity Managerでサポートされていないためです。

このプロバイダを選択すると、デフォルトでは、「「ステップ3: コネクタ構成の変更」ページ」で説明されている「ステップ3: コネクタ構成の変更」ページに、次のアイデンティティ・フィールドが「ID」フィールドとともに表示されます。

- objectClass

- containerID

各プロビジョニング・タスク(「ユーザーの作成」や「ユーザーの変更」など)について、このプロバイダによってリクエストが事前定義済の形式で生成されます。

次の各項では、このプロバイダのパラメータについて説明します。

- ランタイム・パラメータ

- 設計パラメータ

使用するアプリケーション・サーバーによっては、一部のランタイム・パラメータと設計パラメータは必須になり、一部のパラメータは固定値になります。次の各項では、これらのパラメータについて説明します。

- 必須でないパラメータ

- 値が事前定義済のパラメータ

19.3.1 ランタイム・パラメータ

SPMLプロビジョニング・フォーマット・プロバイダのランタイム・パラメータを次に示します。

- ターゲットID
この値により、プロビジョニング操作のターゲット・システムを一意に識別します。

- ユーザー名(認証)
これは、Webサービス・インタフェース(PSP)を介してターゲット・システム(PST)に接続するために必要なアカウントのユーザー名です。

- ユーザー・パスワード(認証)
これは、Webサービス・インタフェース(PSP)を介してターゲット・システム(PST)に接続するために必要なユーザー・アカウントのパスワードです。

19.3.2 設計パラメータ

SPMLプロビジョニング・フォーマット・プロバイダの設計パラメータを次に示します。

関連項目:

この項で説明するSOAP要素および属性の詳細は、次のWebサイトを参照してください。

http://www.w3.org/TR/wsdl20/

- WebサービスのSOAPアクション
WSDLファイルでは、これはoperation要素のsoapAction属性の値になります。

- SPML WebサービスのWSSEが構成されていますか。
WS-Security資格証明を使用して着信リクエストを認証するようにWebサービスが構成されている場合は、このチェック・ボックスを選択します。

- カスタム認証資格証明ネームスペース

注意:

「SPML WebサービスWSSEが構成されていますか。」チェック・ボックスを選択した場合は、このパラメータの値を指定する必要はありません。

これは、Webサービス用に定義した資格証明ネームスペースの名前です。多くの場合、このネームスペースはターゲット・ネームスペースと同じになります。

- カスタム認証ヘッダー要素

注意:

「SPML WebサービスWSSEが構成されていますか。」チェック・ボックスを選択した場合は、このパラメータの値を指定する必要はありません。

これは、ターゲット・システムへの接続に使用されるユーザー・アカウントの資格証明が格納される要素の名前です。つまり、SOAPメッセージ・ヘッダーのカスタム認証セクション内の親要素です。

- ユーザー名を格納するカスタム要素

注意:

「SPML WebサービスWSSEが構成されていますか。」チェック・ボックスを選択した場合は、このパラメータの値を指定する必要はありません。

これは、「ユーザー名(認証)」パラメータの値として指定するユーザー名が格納されるカスタム認証セクション内の要素の名前です。

- パスワードを格納するカスタム要素

注意:

「SPML WebサービスWSSEが構成されていますか。」チェック・ボックスを選択した場合は、このパラメータの値を指定する必要はありません。

これは、「ユーザー・パスワード(認証)」パラメータの値として指定するユーザー名が格納されるカスタム認証セクション内の要素の名前です。

- SPML Webサービスのバインディング・スタイル(DOCUMENTまたはRPC)
WSDLファイルでは、これはbinding要素のstyle属性の値になります。DOCUMENTまたはRPCを入力する必要があります。

注意:

値DOCUMENTまたはRPCを入力する必要があります。指定する値に小文字は使用しないでください。

- SPML Webサービスの複合データ型
WSDLファイルでは、これはcomplexType要素のname属性の値になります。このパラメータは、バインディング・スタイルがDOCUMENTの場合にのみ適用されます。ターゲットWebサービスがOracle WebLogic Server上で実行されている場合は、このパラメータの値を指定する必要があります。

- SPML Webサービス操作名
WSDLファイルでは、これはoperation要素のname属性の値になります。このパラメータは、バインディング・スタイルがRPCの場合にのみ適用されます。

- SPML Webサービスのターゲット・ネームスペース
WSDLファイルでは、これはdefinition要素のtargetNamespace属性の値になります。

- SPML WebサービスのSOAPメッセージ本文の接頭辞
これは、SOAPメッセージ本文を含んでいるカスタム接頭辞要素の名前です。ターゲットWebサービスがOracle WebLogic Server、IBM WebSphere Application Server、JBoss Application ServerまたはOracle Application Server上で実行されている場合は、このパラメータの値を指定する必要はありません。ただし、別のアプリケーション・サーバーを使用している場合は、カスタム接頭辞要素の名前を入力する必要があります。次に、WebサービスがOracle WebLogic Server上で実行されている場合の接頭辞要素を示します。

<SPMLv2Document xmlns="http://xmlns.oracle.com/OIM/provisioning">

- グループ・メンバーシップ情報を保持している子データセットのID属性
これは、グループ・メンバーシップ情報を保持しているプロビジョニング・ステージング子データセットの一意のアイデンティティ・フィールドの名前です。このフィールドを含む子データセットに対するプロビジョニング操作では、SOAPパケットにグループ操作のSPMLコードが含まれます。次に、この型のグループ操作のSPMLコード・ブロックを示します。

<modification modificationMode="add">
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true">
<reference typeOfReference="memberOf" xmlns="urn:oasis:names:tc:SPML:2:0:reference">
<toPsoID ID="Groups:1" targeted="120"/>
</reference>
</capabilityData>
</modification>

このフィールドを含まない子データセットに対するプロビジョニング操作では、SOAPパケットに通常のSPMLコードが含まれます。次に、この型のグループ操作のSPMLコード・ブロックを示します。

<modification>
<dsml:modification name="Group Membership" operation="add">
<dsml:value>AdminOra, System Admins, USA</dsml:value>
</dsml:modification>
</modification>

19.3.3 必須でないパラメータ

Oracle WebLogic Serverでは、次のパラメータ値を指定する必要はありません。

- SPML Webサービスの複合データ型

- SPML WebサービスのSOAPメッセージ本文の接頭辞

- グループ・メンバーシップ情報を保持している子データセットのID属性

19.3.4 値が事前定義済のパラメータ

Oracle WebLogic Serverでは、次のパラメータに事前定義済の値を指定できます。

- WebサービスURL: http://IP_address:port_number/spmlws/OIMProvisioning

- SPML Webサービスのバインディング・スタイル(DOCUMENTまたはRPC): RPC

- SPML Webサービス操作名: processRequest

19.4 Webサービス・プロビジョニング・トランスポート・プロバイダ

Webサービス・プロビジョニング・トランスポート・プロバイダは、Webサービス・クライアントとして機能し、プロビジョニング・リクエスト・データをOracle Identity Managerからターゲット・システムWebサービスに転送します。

次のタイプのターゲット・システムWebサービスがサポートされています。

- RPCリテラル

- RPCエンコード

- DOCUMENTリテラル

Webサービス・プロビジョニング・トランスポート・プロバイダのパラメータを次に示します。

WebサービスURL

このパラメータを使用して、ターゲット・システムへのプロビジョニング・リクエストの送信に使用するWebサービスのURLを指定します。これはランタイム・パラメータです。WSDLファイルでは、WebサービスURLはwsdlsoap:address要素のlocation属性の値になります。

作成する汎用テクノロジ・コネクタにWebサービス・プロビジョニング・トランスポート・プロバイダを含める場合は、ターゲット・システムとOracle Identity Managerの間にSecure Sockets Layer(SSL)通信を構成する場合があります。次の項では、この手順の詳細を説明します。

19.4.1 Oracle Identity Managerとターゲット・システムWebサービスの間のSSL通信の構成

この項では、Oracle Identity Managerがインストールされているアプリケーション・サーバーをSSL通信用に構成する手順について説明します。

この手順は、次の条件をすべて満たす場合にのみ実行できます。

- 作成する汎用テクノロジ・コネクタにWebサービス・プロビジョニング・トランスポート・プロバイダを含める場合。

- ターゲットWebサービスがSSL対応アプリケーション・サーバー上で実行されている場合。

Oracle Identity Managerとターゲット・システムWebサービスの間のSSL通信を構成するには、次の手順を実行します。

注意:

この手順は、汎用テクノロジ・コネクタを作成する前に実行できます。

1. 次のようにしてターゲット・アプリケーション・サーバーの証明書をエクスポートします。

- JBoss Application ServerまたはOracle WebLogic Server上にデプロイされているターゲット・システムWebサービスの場合は、次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool -export -alias default -file exported-certificate-file -keystore app-server-specific-keystore  -storetype jks –storepass keystore-password –provider sun.security.provider.Sun

このコマンドでは、次のように指定します。

- JAVA_HOMEを、SUN JDKディレクトリのフルパスに置換します。

- exported-certificate-fileを、エクスポートした証明書を格納するファイルの名前に置換します。

- app-server-specific-keystoreを、アプリケーション・サーバーのキーストアのパスに置換します。

- keystore-passwordを、キーストアのパスワードに置換します。

- IBM WebSphere Application ServerまたはAIX上のOracle WebLogic Server上にデプロイされているターゲット・システムWebサービスの場合は、次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool -export -alias default -file exported-certificate-file -keystore app-server-specific-keystore -storetype jks –storepass keystore-password -provider com.ibm.crypto.provider.IBMJCE

このコマンドでは、次のように指定します。

- JAVA_HOMEを、IBM JDKディレクトリのフルパスに置換します。

- exported-certificate-fileを、エクスポートした証明書を格納するファイルの名前に置換します。

- app-server-specific-keystoreを、アプリケーション・サーバーのキーストアのパスに置換します。

- keystore-passwordを、キーストアのパスワードに置換します。

コマンドを実行すると、エクスポートされた証明書ファイルはexported-certificate-fileの値で指定したファイルに格納されます。

2. 次のようにして、前の手順でエクスポートした証明書ファイルをOracle Identity Managerのトラストストアにインポートします。

1. 前の手順でエクスポートした証明書ファイルを、Oracle Identity Managerサーバーの一時ディレクトリにコピーします。

2. 次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool -import -trustcacerts -alias servercert -noprompt -keystore OIM_HOME\config\.xlkeystore -file certificate_file

このコマンドでは、次のように指定します。

- JAVA_HOMEを、JDKディレクトリのフルパスに置換します。IBM WebSphere Application ServerにデプロイされているOracle Identity Management Serverの場合は、IBM JDKディレクトリのパスにする必要があります。JBoss Application ServerまたはOracle WebLogic ServerにデプロイされているOracle Identity Managerの場合は、SUN JDKディレクトリのパスにする必要があります。

- OIM_HOMEを、Oracle Identity Managerホーム・ディレクトリのパスに置換します。

- certificate_fileを、証明書ファイルをコピーした一時ディレクトリのパスに置換します。

注意:

アプリケーション・サーバーで一方向SSL通信が有効化されている場合は、残りの手順を実行する必要はありません。

3. 次のようにして、Oracle Identity Managerの証明書をターゲット・システム・アプリケーション・サーバーのトラストストアにインポートします。

注意:

次の手順は、アプリケーション・サーバーで双方向SSL通信が有効化されている場合にのみ実行します。

1. Oracle Identity Managerの証明書ファイルをエクスポートします。
Oracle WebLogic ServerにデプロイされているOracle Identity Managerの場合は、次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool -export -alias xell -file OIM_HOME\config\xell.cert -keystore OIM_HOME\config\.xlkeystore -storetype jks –provider sun.security.provider.Sun

このコマンドでは、次のように指定します。

- JAVA_HOMEを、SUN JDKディレクトリのフルパスに置換します。

- OIM_HOMEを、Oracle Identity Managerホーム・ディレクトリのパスに置換します。

2. 次のようにして、手順3aでエクスポートした証明書ファイルをアプリケーション・サーバーのトラストストアにインポートします。
エクスポートしたOracle Identity Managerの証明書ファイルを、ターゲット・アプリケーション・サーバー上の一時ディレクトリにコピーします。

次に、ターゲット・アプリケーション・サーバーで次のコマンドを実行します。

- ターゲット・アプリケーション・サーバーがJBoss Application ServerまたはOracle WebLogic Serverである場合は、次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool –import –alias alias -trustcacerts  -file OIM-certificate-file -keystore app-server-specific-truststore  -storetype jks –storepass truststore-password –provider sun.security.provider.Sun

このコマンドでは、次のように指定します。

* JAVA_HOMEを、SUN JDKディレクトリのフルパスに置換します。

* aliasを、ターゲット・アプリケーション・サーバーのトラストストアにある証明書の別名に置換します。

* OIM-certificate-fileを、エクスポートしたOracle Identity Manager証明書ファイルの名前に置換します。

* app-server-specific-truststoreを、ターゲット・アプリケーション・サーバーのトラストストアのパスに置換します。

* truststore-passwordを、ターゲット・アプリケーション・サーバーのトラストストアのパスワードに置換します。

- ターゲット・アプリケーション・サーバーがIBM WebSphere Application Serverである場合は、次のコマンドを実行します。

JAVA_HOME/jre/bin/keytool -import -alias alias -trustcacerts -file OIM-certificate-file -keystore app-server-specific-truststore -storetype pkcs12 –storepass truststore-password -provider com.ibm.crypto.provider.IBMJCE

このコマンドでは、次のように指定します。

* JAVA_HOMEを、SUN JDKディレクトリのフルパスに置換します。

* aliasを、ターゲット・トラストストアにある証明書の別名に置換します。

* OIM-certificate-fileを、エクスポートした
Oracle Identity Manager証明書ファイルの名前に置換します。

* app-server-specific-truststoreを、ターゲット・アプリケーション・サーバーのトラストストアのパスに置換します。

* truststore-passwordを、ターゲット・アプリケーション・サーバーのトラストストアのパスワードに置換します。

関連項目:

ターゲット・アプリケーション・サーバーについては、SSL構成のドキュメントを参照してください。

19.5 変換プロバイダ

注意:

この項に示す情報は、第21.2.4.3項「「ステップ3: コネクタ構成の変更」ページ」に記載されている手順を実行するときに使用してください。

変換プロバイダは、次の表に示すソース・データセットと宛先データセットの間で移動中のユーザー・データを変換するために使用されます。

ソース・データセット

宛先データセット

変換の目的

ソース

リコンシリエーション・ステージング

リコンシリエーション・イベントの作成に使用する前にデータを変換します。

Oracle Identity Manager

プロビジョニング・ステージング

ターゲット・システムに送信されるプロビジョニング・リクエストの作成に使用する前にデータを変換します。

Oracle Identity Managerの現在のリリースには、次の事前定義済変換プロバイダが含まれています。

- 連結変換プロバイダ

- 翻訳変換プロバイダ

19.5.1 連結変換プロバイダ

連結変換プロバイダは、データセットの2つのフィールドの値を連結して、別のデータセットの単一フィールドへの入力を作成するために使用します。

次の例では、このプロバイダの出力形式について説明します。

入力値がソース・データセットの次のフィールドであるとします。

- 名: John

- 姓: Doe

連結変換プロバイダをこの2つのフィールドに適用すると、出力値は次のようになります。

John Doe

注意:

前述の例に示すように、連結変換プロバイダでは2つの入力フィールドの値の間に空白が追加されます。

次の手順では、汎用テクノロジ・コネクタの作成中に連結変換プロバイダを追加する方法について説明します。

注意:

この手順では、第21.2.4.3.1項「データセットのフィールドの追加または編集」の手順5に記載されている手順を詳しく説明しています。ここでは、「ステップ1: フィールド情報」ページの「アクションのマッピング」リストから「連結」オプションを選択し、その項の手順2と3をすでに実行したことを前提にしています。

ポップアップ・ウィンドウの「ステップ2: マッピング」ページで、次の手順を実行します。

1. 「入力1」リージョンの「データセット」リストから、連結する最初のフィールドを含むデータセットを選択します。「フィールド名」リストから最初のフィールドを選択します。または、「リテラル」オプションを使用してリテラル(固定)値を最初の連結入力として指定することも可能です。
前述の例の場合は、「入力1」リージョンの「データセット」リストから、「名」フィールドを含むデータセットを選択します。次に、「フィールド名」リストから「名」を選択します。

2. 「入力2」リージョンの「データセット」リストから、連結する2番目のフィールドを含むデータセットを選択します。次に、「フィールド名」リストから2番目のフィールドを選択します。または、「リテラル」オプションを使用してリテラル(固定)値を2番目の連結入力として指定することも可能です。
前述の例の場合は、「入力2」リージョンの「データセット」リストから、「姓」フィールドを含むデータセットを選択します。次に、「フィールド名」リストから「姓」を選択します。

19.5.2 翻訳変換プロバイダ

変換操作では、特定の(リテラル)値を入力として受け入れ、それを別の値に変換します。

次に変換操作の例を示します。

「ソース」データセットに「国」フィールドが含まれており、このフィールドに格納されているデータ値が次のいずれかの値を取ることができるとします。

- オーストリア

- フランス

- ドイツ

- インド

- 日本

これらの値をリコンシリエーション・ステージング・データセットに伝播する場合、それぞれの値を次のように変換するとします。

- AT

- FR

- DE

- IN

- JP

この変換を自動化するには、翻訳変換プロバイダを使用できます。

翻訳変換プロバイダを使用するには、次の手順を実行します。

1. Design Consoleを使用して、入力およびデコード値を格納する参照定義を作成します。

関連項目:

第15.2.1項「参照定義の作成」

注意:

参照定義を「参照定義」フォームで作成する場合は、フィールド・タイプ・オプションではなく参照タイプ・オプションを選択する必要があります。

前述の「国」フィールドの例では、コード・キーおよびデコードは次の表に示す値になります。

コード・キー

デコード

オーストリア

AT

フランス

FR

ドイツ

DE

インド

IN

日本

JP

2. 変換対象の入力フィールドと出力フィールドの間の変換マッピングを定義します。前述のとおり、変換は次のデータセットのペア間で設定できます。

- 「ソース」と「リコンシリエーション・ステージング」

- 「Oracle Identity Manager」とプロビジョニング・ステージング

注意:

この手順では、第21.2.4.3.1項「データセットのフィールドの追加または編集」の手順5に記載されている手順を詳しく説明しています。ここでは、「ステップ1: フィールド情報」ページの「アクションのマッピング」リストから「連結」オプションを選択し、その項の手順2と3をすでに実行したことを前提にしています。

1. 「ステップ3: マッピング」ページで、「入力」リージョンの「データセット」リストから、変換操作を行う入力値を提供するフィールドのあるデータセットを選択します。次に、「フィールド名」リストからフィールド自体を選択します。
前述の「国」フィールドの例では、「国」フィールドがあるデータセットを選択してから、「国」フィールドを選択します。

2. 「参照コード名」リージョンで、「リテラル」を選択し、前の手順で作成した参照定義の名前を入力します。

注意:

「参照コード名」リージョンではデータセット名およびフィールドを指定しないでください。データセット名およびフィールドの選択を無効にする検証は行われませんが、実際のリコンシリエーションまたはプロビジョニングの操作時に変換操作に失敗します。

これについては、「マッピング」にも記載されています。

前述の「国」フィールドの例では、「リテラル」を選択し、手順1で作成した参照定義を選択します。

19.5.2.1 アカウント・ステータスのリコンシリエーションの構成

ユーザー・アカウント・ステータス情報は、ターゲット・システム・アカウントの所有者によるアカウントへのアクセスおよびアカウントの使用が許可されるかどうかのトラッキングに使用されます。必要に応じて、翻訳変換プロバイダを使用してアカウント・ステータス情報をリコンサイルできます。

注意:

Design Consoleでは、アカウント・ステータスのリコンシリエーションを構成する別の方法が提供されます。この方法では、汎用テクノロジ・コネクタは使用しません。第12.3.2.2.1項「ユーザー・アカウント・ステータスのリコンシリエーション」に、この方法の説明があります。

翻訳変換プロバイダを使用する必要があるのは、ターゲット・システムで使用されるアカウント・ステータスの値が、Oracle Identity Managerで使用される値と同じでない場合のみです。ターゲット・リソースに対して、Oracle Identity Managerでは次の値が使用されます。

- 有効状態: Enabled

- 無効状態: Disabled

信頼できるソースに対しては、Oracle Identity Managerでは次の値が使用されます。

- 有効状態: Active

- 無効状態: Disabled

次に、アカウント・ステータスのリコンシリエーションを構成する手順を簡単に説明します。

注意:

これらの手順の詳しい説明はこの項で後述します。

1. ターゲット・システムで使用されるステータス値とOracle Identity Managerで使用される値をマップする参照定義を作成します。

2. 汎用テクノロジ・コネクタを作成する際に、翻訳変換プロバイダを使用して、「ソース」データセットとリコンシリエーション・ステージング・データセットのアカウント・ステータス値を含むフィールド間に変換マッピングを作成します。
次に、実行する必要があるアクションの例を示します。

アカウント・ステータス値を保持するために次のフィールドが使用されているとします。

- 「ソース」データセットの「ユーザー・ステータス」フィールドには、True(Enabled状態のユーザー)とFalse(Disabled状態のユーザー)の値が含まれます。

- リコンシリエーション・ステージング・データセットの「ユーザー・ステータス」フィールドは、次のいずれかの組合せの値を保持する必要があります。

- ターゲット・リソースのリコンシリエーションでは、このフィールドはEnabledまたはDisabledを含む必要があります。

- 信頼できるソースのリコンシリエーションでは、このフィールドはActiveまたはDisabledを含む必要があります。

「ソース」データセットの「ユーザー・ステータス」フィールドのTrue/False値をEnabled/Disabled値またはActive/Disabled値に変換する変換マッピングを作成する必要があります。リコンシリエーション時には、これらの変換された値がリコンシリエーション・ステージング・データセットの「ユーザー・ステータス」フィールドに送信されます。

3. リコンシリエーション・ステージング・データセットでアカウント・ステータス値を保持するフィールドと、次のいずれかのフィールドの間のマッピングを作成します。

- 「OIM - アカウント」データセットの「OIMオブジェクト・ステータス」フィールド(ターゲット・リソースのリコンシリエーションの場合)

- 「OIM - ユーザー」データセットの「ステータス」フィールド(信頼できるソースのリコンシリエーションの場合)

リコンシリエーション時には、このマッピングが使用されて、リコンシリエーション・ステージング・データセットのステータス値が「OIM - アカウント」または「OIM - ユーザー」データセットに伝播されます。

アカウント・ステータスのリコンシリエーションを構成する詳しい手順を次に示します。

1. ターゲット・システムで使用されるステータス値とOracle Identity Managerで使用される値をマップする参照定義を作成します。

関連項目:

第15.2項「「参照定義」フォーム」

参照定義のコード・キーの値は、ターゲット・システムでアカウント・ステータスを表すために使用されている値と同じである必要があります。信頼できるリソースとターゲット・リソースの両方のリコンシリエーションのコード・キーおよびデコードの値を次の表に示します。

コード・キー

デコード(信頼できるソースのリコンシリエーションの場合)

デコード(ターゲット・リソースのリコンシリエーションの場合)

Enabled状態のユーザー・アカウントのターゲット・システム・ステータス値

Active

Enabled

Disabled状態のユーザー・アカウントのターゲット・システム・ステータス値

Disabled

Disabled

コード・キー値の例には、True/False、Yes/Noおよび1/0があります。デコードの値は、表に示すとおり(大/小文字も含めて)正確に設定する必要があります。

注意:

参照定義を「参照定義」フォームで作成する場合は、フィールド・タイプ・オプションではなく参照タイプ・オプションを選択する必要があります。

2. 汎用テクノロジ・コネクタを作成する手順は、第21章「汎用テクノロジ・コネクタの作成および管理」で説明されています。汎用テクノロジ・コネクタを作成するときは、次の手順を「ステップ3: コネクタ構成の変更」ページで実行します。

注意:

次の手順は、第21.2.4.3.1項「データセットのフィールドの追加または編集」に示された手順を簡略にまとめたものです。ここで説明している用語やGUI要素の詳細は、この項を参照してください。

1. ターゲット・システムのステータス・フィールドが「ステップ3: コネクタ構成の変更」ページに表示されている場合は、リコンシリエーション・ステージング・データセットのフィールドに対する「編集」アイコンをクリックします。
フィールドが表示されていない場合は、リコンシリエーション・ステージング・データセットの「追加」アイコンをクリックします。

2. 「ステップ1: フィールド情報」ページで次のGUI要素の値を指定します。

- フィールド名: フィールドを追加する場合は、そのフィールドの名前を指定します。非ASCII文字は使用できないため、指定するフィールド名にはASCII文字のみを使用します。

- アクションのマッピング: このリストで「変換ありでマッピングの作成」を選択します。

- 一致のみ: このチェック・ボックスは選択しないでください。

- エンドツーエンド・マッピングの作成: フィールドを追加する場合は、このチェック・ボックスを選択します。

- 複数値フィールド: このチェック・ボックスは選択しないでください。

- データ型: フィールドのデータ型を選択します。

- 長さ: フィールドの文字の長さを指定します。

- 必須: フィールドに値が常に入力されるようにするには、このチェック・ボックスを選択します。

- 暗号化: このチェック・ボックスは選択しないでください。

- パスワード・フィールド: このチェック・ボックスは選択しないでください。

3. 「続行」をクリックします。

4. 「ステップ3: マッピング情報の指定」ページで次の手順を実行します。
「入力」リージョンで次のようにします。

- 「データセット」リストで「ソース」を選択します。

- 「フィールド名」リストで、ステータス値を含むフィールドを選択します。

「参照コード名」リージョンで、「リテラル」を選択し、手順1で作成した参照定義の名前を入力します。

5. 必要な場合は、フィールドの検証チェックを選択して「追加」をクリックします。つまり、使用する検証プロバイダを選択します。

6. 「続行」をクリックし、「閉じる」をクリックします。

3. リコンシリエーション・ステージング・データセットのステータス・フィールドと、「OIM - アカウント」データセットの「OIMオブジェクト・ステータス」フィールドまたは「OIM - ユーザー」データセットの「ステータス」フィールドのいずれかの間で、次のようにマッピングを作成します。

注意:

次の手順は、第21.2.4.3.1項「データセットのフィールドの追加または編集」に示された手順を簡略にまとめたものです。

1. ターゲット・リソースのリコンシリエーションの場合は、「OIM - アカウント」データセットの「OIMオブジェクト・ステータス」フィールドの編集アイコンをクリックします。
ターゲット・リソースのリコンシリエーションの場合は、「OIM - ユーザー」データセットの「ステータス」フィールドの編集アイコンをクリックします。

注意:

リコンシリエーション・ステージング・データセットのステータス・フィールドと、「OIMオブジェクト・ステータス」フィールドまたは「ステータス」フィールドの間にマッピングがすでに存在する場合は、必要な場合にのみこの手順を使用します。

2. 「ステップ1: フィールド情報」ページで次のGUI要素の値を指定します。

- アクションのマッピング: このリストで「変換なしでマッピングの作成」を選択します。

- 一致のみ: このチェック・ボックスは選択しないでください。

3. 「続行」をクリックします。

4. 「ステップ3: マッピング」ページの「入力」リージョンで、リコンシリエーション・ステージング・データセットのステータス・フィールドを選択します。

5. 「続行」をクリックし、さらに「続行」をクリックしてから、「閉じる」をクリックします。

6. 「ステップ3: コネクタ構成の変更」ページに表示されるその他のフィールドを追加または編集するには、第21.2.4.3.1項「データセットのフィールドの追加または編集」に示されている手順を実行します。

19.6 検証プロバイダ

表19-1に、Oracle Identity Managerの現在のリリースに含まれている検証プロバイダを示します。

注意:

日付書式の検証プロバイダを除き、この表のすべてのプロバイダはApache Jakarta Commons APIのGenericValidatorクラスのメソッドの実装です。

表19-1 検証プロバイダ

検証プロバイダ

説明

IsBlankOrNull

フィールド値がNULLであり空白ではない場合にtrueを返します。

IsInRange

フィールド値が最小値と最大値のペアで指定された範囲内である場合にtrueを返します。

IsByte

フィールド値を基本型byteに変換できるかどうかをチェックします。

IsDouble

フィールド値を基本型doubleに変換できるかどうかをチェックします。

IsFloat

フィールド値を基本型floatに変換できるかどうかをチェックします。

IsInteger

フィールド値を基本型integerに変換できるかどうかをチェックします。

IsLong

フィールド値を基本型longに変換できるかどうかをチェックします。

IsShort

フィールド値を基本型shortに変換できるかどうかをチェックします。

MatchRegexp

フィールド値が指定の正規表現と一致するかどうかをチェックします。

注意: 正規表現は、一連の文字列を特定の構文ルールに従って記述または一致させるために使用する文字列です。

MaxLength

フィールド値の長さが指定値以下かどうかをチェックします。

MinLength

フィールド値の長さが指定値以上かどうかをチェックします。

日付書式の検証

ターゲット・システム・レコード内の日付値を、Oracle Identity Managerへのリコンサイル前に検証します。

「ソース日付書式」パラメータの値が検証の基礎として使用されます。この検証プロバイダは、「ステップ2: パラメータ値の指定」ページで「ソース日付書式」パラメータの値を指定した場合、このプロバイダを「ステップ3: コネクタ構成の変更」ページで選択するかどうかに関係なく適用されます。

注意: この表の他のプロバイダとは異なり、「日付書式の検証」はApache Jakarta Commons APIのGenericValidatorクラスのメソッドの実装ではありません。

20 汎用テクノロジ・コネクタ用カスタム・プロバイダの作成

事前定義済プロバイダで対応できないプロバイダ要件に対して、カスタム・プロバイダを作成する必要があります。この章では、カスタム・プロバイダの作成手順について説明します。

内容は次のとおりです。

- プロバイダの役割

- カスタム・プロバイダの作成

- プロバイダの再利用

- カスタム・プロバイダのデプロイ

20.1 プロバイダの役割

次の各項では、汎用テクノロジ・コネクタの作成中および使用中におけるプロバイダの役割を説明します。

- 汎用テクノロジ・コネクタ作成中のプロバイダの役割

- リコンシリエーション中のプロバイダの役割

- プロビジョニング中のプロバイダの役割

20.1.1 汎用テクノロジ・コネクタ作成中のプロバイダの役割

汎用テクノロジ・コネクタは管理およびユーザー・コンソールで作成します。コネクタ作成手順のタスクの1つとして、データセットおよびデータセット間のデータ・フローが定義されます。このタスクは、メタデータの検出プロセスにより容易になります。

汎用テクノロジ・コネクタのコンテキストでは、メタデータという用語はユーザー・アカウント情報を構成する一連のアイデンティティ・フィールドを意味します。メタデータの検出という用語は、プロバイダによるターゲット・システムのメタデータ読込みおよび解析を指します。

メタデータの検出機能は、すべてのタイプのプロバイダでサポートされます。つまり、カスタム・プロバイダの作成時に、メタデータ読込み機能をプロバイダに組み込むことができます。

注意:

Javadocでは、メタデータの検出という用語のかわりにメタデータ定義という用語が使用されています。

図20-1に、メタデータの検出プロセスを示します。

図20-1 メタデータの検出プロセス

次の一連の手順で、メタデータの検出プロセスについて説明します。この一連の手順は、汎用テクノロジ・コネクタの作成時に「リコンシリエーション」オプションと「プロビジョニング」オプションの両方を選択するという想定に基づいています。いずれのオプションも選択しない場合は、対応する手順が実行されません。

関連項目:

次の手順で示されているSPIメソッドおよび値オブジェクトの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

Javadocでは、メタデータの検出という用語とメタデータ定義という用語が同義的に使用されています。

1. リコンシリエーション・トランスポート・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

2. リコンシリエーション・フォーマット・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

3. リコンシリエーション・トランスポート・プロバイダのgetMetadataメソッドが呼び出され、ターゲット・システムからメタデータがフェッチされます。このメソッドの出力はTargetSchema値オブジェクトであり、ここにターゲット・システムからフェッチしたメタデータが格納されています。

4. リコンシリエーション・フォーマット・プロバイダのparseMetadataメソッドが呼び出され、ターゲット・システムからフェッチしたメタデータが解析されます。このメソッドの出力はOIMSchema値オブジェクトであり、ここにターゲット・システムからフェッチしたメタデータが格納されています。

注意:

OIMSchema値オブジェクトは、第18.2.1項「リコンシリエーション・モジュールのプロバイダおよびデータセット」で説明しているソース・データセットに対応します。

5. プロビジョニング・トランスポート・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

6. プロビジョニング・フォーマット・プロバイダのinitializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

7. リコンシリエーション・トランスポート・プロバイダおよびリコンシリエーション・フォーマット・プロバイダでメタデータを検出できない場合、プロビジョニング・トランスポート・プロバイダおよびプロビジョニング・フォーマット・プロバイダについて手順1から4が繰り返されます。

注意:

プロバイダは初期化した後、次のいずれかのイベントが発生するまでOracle Identity Managerのキャッシュに格納されています。

- キャッシュのパージ。

- Oracle Identity Managerの再起動。

- 汎用テクノロジ・コネクタの作成後の変更。

検証プロバイダおよびトランスフォーメーション・プロバイダは、必要な場合にのみインスタンス化されます。キャッシュには格納されません。

共有ドライブ・リコンシリエーション・トランスポート・プロバイダとCSVリコンシリエーション・フォーマット・プロバイダでは、ターゲット・システムからメタデータを検出できます。ただし、Webサービス・プロビジョニング・トランスポート・プロバイダおよびSPMLプロビジョニング・フォーマット・プロバイダでは、この機能はサポートされていません。

20.1.2 リコンシリエーション中のプロバイダの役割

図20-2に、リコンシリエーション中のプロバイダの役割を示します。

図20-2 リコンシリエーション中のプロバイダの役割

次の各手順で、リコンシリエーション中のプロバイダの役割について説明します。

1. リコンシリエーション・トランスポート・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

2. リコンシリエーション・フォーマット・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

3. 管理およびユーザー・コンソールで汎用テクノロジ・コネクタを作成している場合、リコンシリエーション実行のバッチ・サイズを指定できます。このパラメータを使用して、リコンシリエーション実行中にリコンシリエーション・エンジンがターゲット・システムからフェッチするレコードの総数をバッチに分割します。このパラメータのデフォルト値はAllです。
バッチ・サイズを指定しない場合、リコンシリエーションのこの段階でリコンシリエーション・トランスポート・プロバイダのgetFirstPageメソッドが呼び出され、リコンシリエーション用に準備されているターゲット・システム・レコードの全体がフェッチされます。

バッチ・サイズを指定すると、リコンシリエーション・トランスポート・プロバイダのgetFirstPageメソッドが呼び出され、リコンシリエーション用にターゲット・システム・レコードの最初のバッチがフェッチされます。リコンシリエーション用のターゲット・システム・レコードのバッチが複数ある場合は、同一プロバイダのgetNextPageメソッドが(必要に応じて複数回)呼び出されます。

4. リコンシリエーション・フォーマット・プロバイダのparseRecordsメソッドが呼び出され、TargetRecord値オブジェクト配列の各レコードが処理されます。このメソッドの出力はOIMRecord値オブジェクトの配列です。

5. 汎用テクノロジ・コネクタの作成時に、「ソース」データセットから「リコンシリエーション・ステージング」データセットへのデータの移動中にデータを検証するため検証プロバイダを選択すると、次のように実行されます。

1. 検証プロバイダのインスタンスが作成されます。

2. OIMRecord値オブジェクト配列の各レコードに指定された属性に対して、それぞれの検証プロバイダのvalidateメソッドが実行されます。

汎用テクノロジ・コネクタの作成時に検証プロバイダを選択しない場合、手順5は実施されず、OIMRecord値オブジェクト配列の各要素は手順6に進みます。

6. 汎用テクノロジ・コネクタの作成時に、「ソース」データセットから「リコンシリエーション・ステージング」データセットへのデータの移動中のデータを変更するため変換プロバイダを選択してある場合、次のように実行されます。

1. 変換プロバイダのインスタンスが作成されます。

2. 変換プロバイダのtransformDataメソッドにより、次のいずれかの出力として生成されたOIMRecord値オブジェクト配列が処理されます。

- 各検証プロバイダのvalidateメソッド(検証プロバイダを選択した場合)

- リコンシリエーション・フォーマット・プロバイダのparseRecordsメソッド(検証プロバイダを選択しなかった場合)

汎用テクノロジ・コネクタの作成時に変換プロバイダを選択しない場合、手順6は実施されず、前の手順(手順4または手順5)で得られたOIMRecord値オブジェクト配列の各要素は手順7に進みます。

7. この段階では、OIMRecord値オブジェクト配列は、第18.2.1項「リコンシリエーション・モジュールのプロバイダおよびデータセット」で説明する「リコンシリエーション・ステージング」データセットに対応します。OIMRecord値オブジェクト配列の各要素がリコンシリエーション・エンジンに渡されます。

8. リコンシリエーション手順の終了時には、リコンシリエーション・トランスポート・プロバイダのendメソッドが呼び出されます。このメソッドから、汎用テクノロジ・コネクタ・フレームワークでITリソースのTimestampパラメータに格納される文字列値が戻されます。このフレームワークでは、リコンシリエーションの実行が完了した段階がTimestampパラメータによりトラッキングされます。

20.1.3 プロビジョニング中のプロバイダの役割

図20-3は、プロビジョニング中のプロバイダの役割を示しています。

図20-3 プロビジョニング中のプロバイダの役割

次の各手順で、プロビジョニング中のプロバイダの役割について説明します。

1. プロビジョニング・トランスポート・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

2. プロビジョニング・フォーマット・プロバイダのインスタンスをキャッシュで使用できない場合、initializeメソッドが呼び出され、このプロバイダのインスタンスが作成されます。

3. 汎用テクノロジ・コネクタの作成時に作成されるコネクタ・オブジェクトの1つに、汎用テクノロジ・コネクタ・アダプタがあります。このアダプタにより、プロビジョニング・データ・レコードが名前/値ペアのハッシュマップに変換されます。このハッシュマップにはプロセス・インスタンスのデータが含まれています。各ハッシュマップは、OIMRecord値オブジェクトの要素に変換されます。この段階では、OIMRecord値オブジェクト配列は、第18.2.3項「Oracle Identity Managerデータセット」で説明する「Oracle Identity Manager」データセットに対応します。

4. 汎用テクノロジ・コネクタの作成時に、「Oracle Identity Manager」データセットから「プロビジョニング・ステージング」データセットへのデータの移動中のデータを変更するため変換プロバイダを選択すると、次のように実行されます。

1. 変換プロバイダのインスタンスが作成されます。

2. 変換プロバイダのtransformDataメソッドにより、入力したOIMRecord値オブジェクトの指定の属性が処理され、これらのレコードが出力のOIMRecord値オブジェクトに変換されます。この段階では、OIMRecord値オブジェクトは、第18.2.2項「プロビジョニング・モジュールのプロバイダおよびデータセット」で説明する「プロビジョニング・ステージング」データセットに対応します。

5. プロビジョニング・フォーマット・プロバイダのformatDataメソッドが呼び出され、OIMRecord値オブジェクトが処理されます。このプロセスの出力は、TargetOperation値オブジェクトです。

6. プロビジョニング・トランスポート・プロバイダのsendDataメソッドが呼び出され、TargetOperation値オブジェクトがターゲット・システムに送信されます。

7. プロビジョニング操作が作成リクエストの場合、結果は次のイベントのいずれかになります。

- ターゲット・システムで作成操作が正常に完了した時点で、新しく作成されたユーザー・アカウントに割り当てられる「ID」フィールド値が、sendDataメソッドから戻されます。この値はその後、汎用テクノロジ・コネクタ・フレームワークに渡され、このフレームワークによってデータベースにポストされます。

- 「ID」フィールド値が返されない場合は、作成操作が失敗したとみなされます。管理およびユーザー・コンソールにエラー・メッセージが表示されます。

- 名前/値ペアの作成後のいずれかの段階で操作が失敗すると、管理およびユーザー・コンソールにエラー・メッセージが表示されます。

プロビジョニング操作が更新または削除リクエストの場合、「ID」フィールドは名前/値ペアの1つです。このタイプのプロビジョニング・リクエストが送信された場合、結果は次のイベントのいずれかになります。

- 名前/値ペアの作成後のいずれかの段階で操作が失敗すると、管理およびユーザー・コンソールにエラー・メッセージが表示されます。

- 「ID」フィールドの値は、更新操作または削除操作が正常に完了した時点で、プロビジョニング・トランスポート・プロバイダの実装に応じて返される場合と返されない場合があります。
どちらの場合も、汎用テクノロジ・コネクタ・フレームワークでは「ID」フィールド値は必要ありません。

20.2 カスタム・プロバイダの作成

カスタム・プロバイダの作成は次の各手順で構成されます。

1. プロバイダ要件の確認

2. プロバイダ・パラメータの識別

3. 値オブジェクトのJavaコード実装の開発

4. プロバイダSPIメソッドのJavaコード実装の開発

5. ロギングおよび例外処理のJavaコードの開発

6. プロバイダXMLファイルの作成

7. プロバイダのリソース・バンドル・エントリの作成

8. プロバイダのデプロイ

20.2.1 プロバイダ要件の確認

プロバイダ要件を判断するためのガイドラインは、次のとおりです。

- リコンシリエーション・プロバイダ要件の確認

- プロビジョニング・プロバイダ要件の確認

20.2.1.1 リコンシリエーション・プロバイダ要件の確認

リコンシリエーション・プロバイダ要件の確認には、次のガイドラインが適用されます。

- ターゲット・システムをOracle Identity Managerのユーザー・アカウント情報のソースとしてのみ使用する場合、リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダのみが必要です。プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダは必要ありません。
汎用テクノロジ・コネクタにリコンシリエーション・モジュールを含める場合、リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダの両方を(いずれかのプロバイダが不要な場合にも)含める必要があります。

リコンシリエーション・フォーマット・プロバイダの機能は、ターゲット・システムのデータをOracle Identity Managerでサポートされている形式に変換するものです。ターゲット・システムで、Oracle Identity Managerのサポートする形式でデータが生成される場合にも、汎用テクノロジ・コネクタの作成時にはリコンシリエーション・フォーマット・プロバイダを含める必要があります。

- 事前定義済プロバイダで対応できないプロバイダ要件に対してのみ、カスタム・プロバイダの作成が必要になります。
汎用テクノロジ・コネクタに含める必要のあるプロバイダのタイプは、ターゲット・システムでサポートされているデータ・フォーマットおよびデータ転送メカニズムによって異なります。データ・フォーマットとデータ転送メカニズムの組合せが、事前定義済プロバイダの組合せで対応できるものであれば、カスタム・プロバイダを作成する必要はありません。

たとえば、ターゲット・システムでカンマ区切り形式のリコンシリエーション・データファイルを生成できる場合は、共有ドライブ・リコンシリエーション・トランスポート・プロバイダとCSVリコンシリエーション・フォーマット・プロバイダを使用できます。カスタム・リコンシリエーション・プロバイダを作成する必要はありません。

関連項目:

第20.3項「プロバイダの再利用」

20.2.1.2 プロビジョニング・プロバイダ要件の確認

プロビジョニング・モジュール用プロビジョニング・プロバイダの要件の確認には、次のガイドラインが適用されます。

- ターゲット・システムをOracle Identity Managerで開始されるプロビジョニング操作のターゲットとしてのみ使用する場合、プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダのみが必要です。リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダは必要ありません。
汎用テクノロジ・コネクタにプロビジョニング・モジュールを含める場合、プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダの両方を(いずれかのプロバイダが不要な場合にも)含める必要があります。このガイドラインについては次の例で説明します。

プロビジョニング・フォーマット・プロバイダの機能は、Oracle Identity Managerのデータをターゲット・システムでサポートされている形式に変換するものです。ターゲット・システムでOracle Identity Managerの出力データ・フォーマットがサポートされている場合にも、汎用テクノロジ・コネクタの作成時にはプロビジョニング・フォーマット・プロバイダを含める必要があります。

- 事前定義済プロバイダで対応できないプロバイダ要件に対してのみ、カスタム・プロバイダの作成が必要になります。
汎用テクノロジ・コネクタに含める必要のあるプロバイダのタイプは、ターゲット・システムでサポートされているデータ・フォーマットおよびデータ転送メカニズムによって異なります。データ・フォーマットとデータ転送メカニズムの組合せが、事前定義済プロバイダの組合せで対応できるものであれば、カスタム・プロバイダを作成する必要はありません。

たとえば、ターゲット・システムがWebサービスであり、SOAPメッセージにパッケージ化されたSPMLベースのプロビジョニング・リクエストの受入れや解析が可能な場合は、SPMLプロビジョニング・フォーマット・プロバイダとWebサービス・プロビジョニング・トランスポート・プロバイダを使用できます。カスタム・プロビジョニング・プロバイダを作成する必要はありません。

関連項目:

プロバイダの再利用

20.2.2 プロバイダ・パラメータの識別

プロバイダ・パラメータとは、プロバイダが目的の機能を実行するために必要な値です。たとえば、プロビジョニング・リクエスト・ファイルをターゲット・システム・サーバーにコピーするプロビジョニング・トランスポート・プロバイダには、ターゲット・システムへの接続に接続パラメータが必要になります。

汎用テクノロジ・コネクタの作成時に、その汎用テクノロジ・コネクタ用に選択するプロバイダのパラメータ値を指定します。

カスタム・プロバイダを作成する場合、そのプロバイダが機能するために必要なパラメータをすべて識別する必要があります。また、このようなパラメータをランタイム・パラメータと設計パラメータに分類する必要もあります。

ランタイム・パラメータは、プロバイダの設計に制約されない値を示します。たとえば、リコンサイルするデータファイルが格納されているディレクトリの場所がランタイム・パラメータ値となります。設計パラメータは、プロバイダ設計の一部として定義される1つまたは複数の値を表します。たとえば、リコンシリエーション・フォーマット・プロバイダで解析可能なキャラクタ・セット・エンコーディングのフォーマットなどは、そのプロバイダの設計パラメータに分類されます。

20.2.3 値オブジェクトのJavaコード実装の開発

表20-1に示す値オブジェクトのJavaコード実装を開発します。前述したように、このような値オブジェクトはプロバイダ操作の様々な段階で使用されます。

注意:

汎用テクノロジ・コネクタに含めない値オブジェクトのJavaコード実装については、開発する必要はありません。

表20-1 プロバイダ操作中に使用される値オブジェクト

使用領域

値オブジェクト

Javadocパッケージ

メタデータの検出

TargetSchema

com.thortech.xl.gc.vo.designtime

OIMSchema

com.thortech.xl.gc.vo.designtime

プロビジョニング

TargetOperation

com.thortech.xl.gc.vo.runtime

リコンシリエーション

TargetRecord

com.thortech.xl.gc.vo.runtime

OIMRecord

com.thortech.xl.gc.vo.runtime

20.2.4 プロバイダSPIメソッドのJavaコード実装の開発

プロバイダ操作中に使用されるSPIメソッドのJavaコード実装を開発します。前述したように、SPIメソッドはプロバイダ操作の様々な段階で呼び出されます。各プロバイダのSPIメソッドの情報へのリンクは、JavadocのPackage com.thortech.xl.gc.spiのページを参照してください。

注意:

汎用テクノロジ・コネクタに含めないプロバイダのSPIメソッドのJavaコード実装については、開発する必要はありません。

20.2.5 ロギングおよび例外処理のJavaコードの開発

値オブジェクトおよびSPIメソッドのJavaコード実装には、ロギング機能を組み込むことをお薦めします。これにより、プロバイダ使用時に発生する可能性のあるエラーのトラブルシューティングを簡略化できます。

汎用テクノロジ・コネクタ・フレームワーク用のロギング・モジュールは、Oracle Identity Managerのロギング拡張機能です。表20-2に、サポートされている各プロバイダ・タイプ固有のモジュールを示します。

表20-2 サポートされる各プロバイダ・タイプに固有のロギング・モジュール

ロギング・モジュール

汎用テクノロジ・コネクタ・フレームワークの機能モジュール

XELLERATE.GC.PROVIDER.PROVISIONINGFORMAT

プロビジョニング・フォーマット・プロバイダ

XELLERATE.GC.PROVIDER.PROVISIONINGTRANSPORT

プロビジョニング・トランスポート・プロバイダ

XELLERATE.GC.PROVIDER.RECONCILIATIONTRANSPORT

リコンシリエーション・トランスポート・プロバイダ

XELLERATE.GC.PROVIDER.RECONCILIATIONFORMAT

リコンシリエーション・フォーマット・プロバイダ

XELLERATE.GC.PROVIDER.TRANSFORMATION

変換プロバイダ

XELLERATE.GC.PROVIDER.VALIDATION

検証プロバイダ

カスタム・プロバイダの組込み例外処理の詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

20.2.6 プロバイダXMLファイルの作成

プロバイダXMLファイルには、汎用テクノロジ・コネクタ・フレームワークにプロバイダを登録するために必要なデータが含まれます。プロバイダXMLファイルは必ず作成してください。表20-3に、カスタム・プロバイダのプロバイダXMLファイルに含める要素を示します。

注意:

1つのプロバイダXMLファイルを使用して複数のプロバイダを定義できます。また、作成する各プロバイダについて、それぞれプロバイダXMLファイルを作成することもできます。

プロバイダXMLファイルは、MDSにあるスキーマ定義に従っている必要があります。スキーマおよびプロバイダ定義XMLファイルは、次の場所にあります。

PROVIDER_DEF_XSD_LOCATION = "/db/GTC/Schema";

PROVIDER_DEF_XML_LOCATION = "/db/GTC/ProviderDefinitions";

表20-3 プロバイダXMLファイルの要素

要素

説明

Provider

プロバイダXMLファイルのルート要素

Reconciliation

リコンシリエーション・プロバイダの記述に使用する構成要素の親要素

Provisioning

プロビジョニング・プロバイダの記述に使用する構成要素の親要素

Transformation

変換プロバイダの記述に使用する構成要素の親要素

Validation

検証プロバイダの記述に使用する構成要素の親要素

ReconTransportProvider

リコンシリエーション・トランスポート・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

name: プロバイダの名前

class: プロバイダ実装のJavaクラスの名前

ReconFormatProvider

リコンシリエーション・フォーマット・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

name: プロバイダの名前

class: プロバイダ実装のJavaクラスの名前

ProvFormatProvider

プロビジョニング・フォーマット・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

- name: プロバイダの名前

- class: プロバイダ実装のJavaクラスの名前

ProvTransportProvider

プロビジョニング・トランスポート・プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

- name: プロバイダの名前

- class: プロバイダ実装のJavaクラスの名前

TransformationProvider

変換プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

- name: プロバイダの名前

- class: プロバイダ実装のJavaクラスの名前

ValidationProvider

検証プロバイダの記述に使用する構成要素の親要素

この要素には次の属性があります。

- name: プロバイダの名前

- class: プロバイダ実装のJavaクラスの名前

Configuration

あらゆるタイプのプロバイダの構成要素の親要素

Parameter

プロバイダのパラメータに関する情報を提供する要素

Parameter要素には次の属性があります。

- type: パラメータのタイプ(RuntimeまたはDesigntime)。

- datatype: パラメータのデータ型(StringまたはBoolean)。ブール以外のデータ型のパラメータはすべて文字列で表す必要があります。

- required: パラメータが必須であるかどうかの指定。

- encrypted: パラメータの表示を暗号化するかどうかの指定。

- name: パラメータの名前。

- datalength: パラメータ値の文字数。

DefaultAttribute

Configuration要素の子要素

この要素は、ProvFormatProvider要素にのみ含める必要があります。属性は次のとおりです。

- datatype: パラメータのデータ型(StringまたはBoolean)。ブール以外のデータ型のパラメータはすべて文字列で表す必要があります。

- name: パラメータの名前。

- encrypted: パラメータの表示を暗号化するかどうかの指定。

- size: デフォルトの属性のサイズ。

プロビジョニング・リクエストに含めるデータ属性の一部は、プロビジョニング操作を正常に完了するために不可欠なものです。プロビジョニング・フォーマット・プロバイダでは最終的なプロビジョニング入力データ・フォーマットが生成されるため、このプロバイダの定義にはこのような必須データ属性を含める必要があります。したがって、このような属性がターゲット・システムで必要な場合は、プロビジョニング・フォーマット・プロバイダXMLファイルでDefaultAttribute要素を使用して定義する必要があります。

Response

Configuration要素の子要素

この要素はProvFormatProvider、ProvTransportProvider、TransformationProviderおよびValidationProvider要素にのみ含める必要があります。この要素は、プロビジョニング・エンジンによって呼び出されたプロバイダから返されたレスポンスを表します。このレスポンスは、Oracle Identity Manager管理およびユーザー・コンソールに表示されます。この要素には次の属性があります。

- code: Oracle Identity Managerで生成されるプロセス・タスクのレスポンス・コードに対応

- description: Oracle Identity Managerで生成されるプロセス・タスクのレスポンス・コードの説明に対応

注意:

プロビジョニング・フォーマット・プロバイダやプロビジョニング・トランスポート・プロバイダでは、ProvFormatProvider要素またはProvTransportProvider要素のname属性の文字数と、Response要素の文字数の合計を70文字以下にする必要があります。文字数の合計が70文字を超えると、レスポンス・コードをデータベースに格納できなくなり、エラーが発生します。

関連項目:

- データのMDSへのアップロードの詳細は、「手順2: リクエスト・データセットのMDSへのアップロード」を参照してください。

- ファイルのインポートとエクスポートおよびOracle Identity Managerメタデータの変更に使用するMDSユーティリティの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

20.2.7 プロバイダのリソース・バンドル・エントリの作成

リソース・バンドルとは、ロケール固有のテキスト文字列を含むファイルのことです。このようなテキスト文字列は、実行時にOracle Identity Managerで読み込まれ、管理およびユーザー・コンソールにGUI要素のラベルやメッセージとして表示されます。リソース・バンドルのファイル拡張子は.propertiesです。

サポートされる各言語のリソース・バンドルは、Oracle Identity Managerのインストール中にOracle Identity Managerサーバーにコピーされます。これには事前定義済プロバイダのリソース・バンドルも含まれます。

カスタム・プロバイダの場合、使用する各ロケールに応じたリソース・バンドル・エントリを作成する必要があります。リソース・バンドルの作成手順の概要を次に示します。

1. テキスト・エディタで新規ファイルを開きます。

2. このファイルに、次のテキスト文字列のエントリを作成します。

注意:

- リソース・バンドルでは、各行の一部として等号記号(=)の後にローカライズしたテキストを記述します。

- この項で説明するProvider_Type、Parameter_NameおよびRESPONSE_CODEのそれぞれの値は、第20.2.6項「プロバイダXMLファイルの作成」で説明する手順の実行時にプロバイダXMLファイルに指定する値と同じである必要があります。

- プロバイダ名
プロバイダ名は次の形式で記述します。

gc.provider.Provider_Type.Provider_Name=Label_string_in_the_required_language

プロビジョニング・フォーマット・プロバイダのプロバイダ名エントリは、英語では次のようになります。

gc.provider.ProvFormatProvider.SPML=SPML

- プロバイダ・パラメータのラベルおよび説明
プロバイダのパラメータのラベルおよびその説明は、次の形式で記述します。

gc.Provider_Type.Provider_Name.Parameter_Name.label=Parameter_label_in_the_required_language
gc.Provider_Type.Provider_Name.Parameter_Name.description=Parameter_description_in_the_required_language

プロビジョニング・フォーマット・プロバイダのプロバイダ・パラメータのラベルおよびその説明エントリは、英語では次のようになります。

gc.ProvFormatProvider.SPML.targetID.label=Target ID
gc.ProvFormatProvider.SPML.targetID.description=Target ID of the provisioning target

- レスポンス・コードおよび説明
レスポンス・コードおよび説明は、次の形式で記述します。

GC.GCPROV.PROVIDER_TYPE.PROVIDER_NAME.RESPONSE_CODE=Response_code_in_the_required_language
GC.GCPROV.PROVIDER_TYPE.PROVIDER_NAME.RESPONSE_CODE.description=Description_in_the_required_language

プロビジョニング・フォーマット・プロバイダのレスポンス・コードおよび説明のエントリは、英語では次のようになります。

GC.GCPROV.ProvFormatProvider.SPML.SPML_VELOCITY_PROPERTIES_NOT_READ=SPML Velocity Properties Not Read
GC.GCPROV.ProvFormatProvider.SPML.SPML_VELOCITY_PROPERTIES_NOT_READ.description=Necessary SPML template properties could not be read.

- メタデータの検出のエラー・メッセージ
メタデータの検出のエラー・メッセージは、次の形式で記述します。

gc.error.Provider_Type.Provider_Name.ERROR_CODE=Error_Description

ここで、ERROR_CODEは例外クラスのコンストラクタに引数として渡されるerrorCode文字列の値と同じである必要があります。たとえば、ReconciliationTransportExceptionクラスのコンストラクタの1つを次に示します。

ReconciliationTransportException(java.lang.String errorCode, java.lang.String isMessage)

リソース・バンドルでは、errorCode文字列に考えられるすべての値のための行を追加する必要があります。

リコンシリエーション・トランスポート・プロバイダのメタデータの検出エラー・メッセージは、英語では次のようになります。

gc.error.ReconTransportProvider.SharedDrive.NO_READ_FILE=There are no readable files to detect metadata.

3. リソース・バンドルを保存して閉じます。

20.2.8 プロバイダのデプロイ

プロバイダをデプロイするには、次の手順を実行します。

1. JARファイルを次のようにデプロイします。

1. Javaコード・ファイルをすべてコンパイルし、JARファイルにパッケージ化します。

2. JARファイルを次のディレクトリにコピーします。

OIM_HOME/JavaTasks

また、JARファイルをOracle Identity Managerデータベースにアップロードします。詳細は、「カスタム・プロバイダのデプロイ」を参照してください。

注意:

クラスタ化されている環境では、作成するそれぞれのファイルをクラスタの各ノードの対応ディレクトリにコピーする必要があります。

2. プロバイダXMLファイルを次のようにデプロイします。

1. プロバイダXMLファイルを次の場所のMDSにアップロードします。
PROVIDER_DEF_XML_LOCATION = "/db/GTC/ProviderDefinitions":

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

3. 次のようにプロバイダXMLファイルが正しく登録されているかどうかを確認します。
i.管理およびユーザー・コンソールにログインします。

ii.「汎用テクノロジ・コネクタ」を開き、「作成」をクリックします。プロバイダXMLファイルでエラーが発生した場合は、エラー・メッセージが表示されます。

エラー・メッセージが表示される場合、XMLファイル内で問題を修正し、Oracle Identity Managerを再起動して手順iと手順iiを繰り返します。

この手順は「作成」をクリックしてもエラー・メッセージが表示されなくなるまで繰り返します。

3. プロバイダのリソース・バンドルを次のようにデプロイします。

1. OIM_HOME/bin/ディレクトリにあるUploadResourceBundles.shユーティリティを使用して、リソース・バンドルをMDSにアップロードします。ユーティリティの実行の詳細は、「リソース・バンドルのアップロード・ユーティリティ」を参照してください。

2. 新しいリソース・バンドル・エントリを有効にするには、PurgeCacheスクリプトを実行するか、アプリケーション・サーバーを再起動します。PurgeCacheユーティリティの実行の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのキャッシュのパージに関する説明を参照してください。

20.3 プロバイダの再利用

フォーマット・プロバイダとトランスポート・プロバイダはペアで機能します。リコンシリエーション中、リコンシリエーション・トランスポート・プロバイダの出力がリコンシリエーション・フォーマット・プロバイダに渡されます。プロビジョニングの実行中には、プロビジョニング・フォーマット・プロバイダの出力がプロビジョニング・トランスポート・プロバイダに渡されます。つまり、トランスポート・プロバイダとフォーマット・プロバイダの実装は、この間で渡される値オブジェクトの実装を介してリンクしています。この依存性は、フォーマット・プロバイダおよびトランスポート・プロバイダの再利用に関するガイドラインの基礎となります。

一方、検証プロバイダまたは変換プロバイダには、このような他のプロバイダへの依存性はありません。このため、検証プロバイダおよび変換プロバイダの再利用に関するガイドラインはありません。事前定義済およびカスタムの変換プロバイダと検証プロバイダのアクションはターゲット・システムのデータ・フォーマットやデータ転送メカニズムに固有のものではないため、これらのプロバイダの両方を再利用できます。

フォーマット・プロバイダおよびトランスポート・プロバイダの再利用に関するガイドラインは、次の各項に分けて説明します。

- リコンシリエーション・プロバイダの再利用

- プロビジョニング・プロバイダの再利用

20.3.1 リコンシリエーション・プロバイダの再利用

第20.1.2項「リコンシリエーション中のプロバイダの役割」で説明するように、リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダの間のデータ交換には、TargetRecord値オブジェクトが使用されます。リコンシリエーション・トランスポート・プロバイダにより、リコンシリエーション中にフェッチされたターゲット・システム・レコードに対してTargetRecord値オブジェクトの配列が作成されます。その後、リコンシリエーション・フォーマット・プロバイダにより、値オブジェクト配列のデータが処理され、リコンシリエーション・エンジンに渡されます。

ユーザーの組織の操作環境に、TS1およびTS2という2つのターゲット・システムがあるとします。TS1では、リコンシリエーション中のデータ抽出にWebベースのインタフェースを利用できます。TS2では、そのアイデンティティ・ストアのデータを他のアプリケーションで読み取れるようにするAPIが用意されています。どちらのターゲット・システムでも同じデータ・フォーマットがサポートされています。両方のターゲット・システムのユーザー・データをリコンサイルする場合、各ターゲット・システムに対して汎用テクノロジ・コネクタを1つずつ作成する必要があります。それぞれの汎用テクノロジ・コネクタには、リコンシリエーション・トランスポート・プロバイダを作成する必要があります。ただし、リコンシリエーション・フォーマット・プロバイダは、それぞれの汎用テクノロジ・コネクタに対して作成するのではなく、1つのみ作成してそれを再利用できます。同様に、TS1およびTS2で(同じデータ・フォーマットをサポートしていない場合でも)同じデータ転送メカニズムがサポートされていれば、リコンシリエーション・トランスポート・プロバイダを再利用して別のリコンシリエーション・フォーマット・プロバイダを作成することが可能です。

リコンシリエーション・トランスポート・プロバイダを再利用する場合は、TargetRecord値オブジェクトの実装に、リコンシリエーション・フォーマット・プロバイダで実行される関数に固有のコードが含まれないようにしてください。リコンシリエーション・フォーマット・プロバイダを再利用する場合は、TargetRecord値オブジェクトの実装に、リコンシリエーション・トランスポート・プロバイダで実行される関数に固有のコードが含まれないようにしてください。

事前定義リコンシリエーション・プロバイダの再利用

共有ドライブ・リコンシリエーション・トランスポート・プロバイダおよびCSVリコンシリエーション・フォーマット・プロバイダの実装は事前定義済プロバイダであり、データ・フォーマットと単一のデータ転送メカニズムの固定の組合せ向けに作成されています。共有ドライブ・リコンシリエーション・トランスポート・プロバイダでは、フラット・ファイルからデータを読み取り、CSVリコンシリエーション・フォーマット・プロバイダにTargetRecord値オブジェクトの配列を渡します。

共有ドライブ・リコンシリエーション・トランスポート・プロバイダの実装は、ページ化リコンシリエーションと複数値(子)データ・リコンシリエーションという2つの要素に基づきます。この2つの要素では、TargetRecord値オブジェクトの配列を作成する前に、プロバイダでのターゲット・システムのデータ解析を可能にする必要があります。つまり、共有ドライブ・リコンシリエーション・トランスポート・プロバイダではターゲット・システム・データの特定の型を解析でき、CSVリコンシリエーション・フォーマット・プロバイダには共有ドライブ・リコンシリエーション・トランスポート・プロバイダから提供される出力のみを使用できるため、相互依存の関係になっています。そのため、CSVリコンシリエーション・フォーマット・プロバイダのパラメータは、共有ドライブ・リコンシリエーション・トランスポート・プロバイダのパラメータとバンドルされています。

このような理由のため、共有ドライブ・リコンシリエーション・トランスポート・プロバイダとカスタム・リコンシリエーション・フォーマット・プロバイダは併用できず、またCSVフォーマット・プロバイダとカスタム・リコンシリエーション・トランスポート・プロバイダは併用できません。

20.3.2 プロビジョニング・プロバイダの再利用

第20.1.3項「プロビジョニング中のプロバイダの役割」で説明するように、プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダの間のデータ交換には、TargetOperation値オブジェクトが使用されます。プロビジョニング・フォーマット・プロバイダで、ターゲット・システムへの送信用にプロビジョニング・データからTargetOperation値オブジェクトが作成されます。次にプロビジョニング・トランスポート・プロバイダで、この値オブジェクトがターゲット・システムに渡されます。

ユーザーの組織の操作環境に、TS1およびTS2という2つのターゲット・システムがあるとします。TS1では、プロビジョニング・リクエスト・データの受信にWebベースのインタフェースを利用できます。TS2では、そのアイデンティティ・ストアにプロビジョニング・データを書き込めるようにするAPIが用意されています。どちらのターゲット・システムでも同じデータ・フォーマットがサポートされています。両方のターゲット・システムでプロビジョニング操作を実行する場合、各ターゲット・システムに対して汎用テクノロジ・コネクタを1つずつ作成する必要があります。それぞれの汎用テクノロジ・コネクタには、プロビジョニング・トランスポート・プロバイダを作成する必要があります。ただし、プロビジョニング・フォーマット・プロバイダは、各汎用テクノロジ・コネクタに対して作成するのではなく、1つのみ作成してそれを再利用できます。

TS1およびTS2でサポートされているデータ転送メカニズムが同じであり、データ・フォーマットがそれぞれ異なる場合、プロビジョニング・トランスポート・プロバイダを再利用して別のプロビジョニング・フォーマット・プロバイダを作成できます。

プロビジョニング・トランスポート・プロバイダを再利用する場合は、TargetOperation値オブジェクトの実装に、プロビジョニング・フォーマット・プロバイダで実行される関数に固有のコードが含まれないようにしてください。プロビジョニング・フォーマット・プロバイダを再利用する場合は、TargetOperation値オブジェクトの実装に、プロビジョニング・トランスポート・プロバイダで実行される関数に固有のコードが含まれないようにしてください。

事前定義プロビジョニング・プロバイダの再利用

ターゲット・システムがWebサービスである場合は、作成したカスタム・プロビジョニング・フォーマット・プロバイダとWebサービス・プロビジョニング・トランスポート・プロバイダを使用できます。次に、この例を示します。

このマニュアルで前述したように、SPMLプロビジョニング・フォーマット・プロバイダではSPML仕様に従って記述されているプロビジョニング操作のサブセットのみがサポートされます。あらゆるSPMLプロビジョニング操作をサポートする、カスタム・プロビジョニング・フォーマット・プロバイダを開発できます。ターゲット・システムがWebサービスの場合、Webサービス・プロビジョニング・トランスポート・プロバイダを使用して、カスタム・プロビジョニング・フォーマット・プロバイダからターゲット・システムにSPMLリクエストを送信できます。

同様に、SPMLプロビジョニング・フォーマット・プロバイダとカスタム・プロビジョニング・トランスポート・プロバイダを併用して、SPMLリクエストをSPMLベースのターゲット・システムに送信することもできます。

SPMLプロビジョニング・フォーマット・プロバイダで作成され、Webサービス・プロビジョニング・トランスポート・プロバイダの入力として使用されるTargetOperation値オブジェクトの実装について、次に示します。

com.thortech.xl.gc.impl.prov.WSTransportTargetOperation

このクラスの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

SPMLプロビジョニング・フォーマット・プロバイダを再利用する場合、このクラスのインスタンスを入力として受け入れ、関連するsetメソッドを呼び出すカスタム・トランスポート・プロバイダを作成する必要があります。同様に、Webサービス・プロビジョニング・トランスポート・プロバイダを再利用する場合、このクラスのインスタンスを作成し、関連するgetメソッドを呼び出すカスタム・プロビジョニング・フォーマット・プロバイダを作成する必要があります。

20.4 カスタム・プロバイダのデプロイ

カスタム・プロバイダをデプロイするには、次の手順を実行します。

1. プロバイダ定義XMLファイルをMDSの場所/db/GTC/ProviderDefinitionsにアップロードします。Oracle Identity Managerでは、MDSリポジトリとの間でデータをエクスポート/インポートするためのユーティリティが提供されます。
MDSユーティリティの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

2. プロバイダ・リソース・バンドルおよびJARファイルをOracle Identity Managerデータベースにアップロードする必要があります。リソース・バンドルおよびJARファイルをOracle Identity Managerデータベースにアップロードするユーティリティは、OIM_HOME/bin/ディレクトリにあります。
リソース・バンドルおよびJARのアップロード・ユーティリティの詳細は、第35章「JARおよびリソース・バンドルのアップロード・ユーティリティ」を参照してください。

21 汎用テクノロジ・コネクタの作成および管理

この章では、汎用テクノロジ・コネクタを作成および管理する方法について説明します。これらの項目が含まれます。

- 概要

- 汎用テクノロジ・コネクタの作成

- 汎用テクノロジ・コネクタの管理

- カスタム・コネクタでの汎用接続プール・フレームワークの使用

- ベスト・プラクティス

21.1 概要

プロバイダは、汎用テクノロジ・コネクタを作成するための開始点となります。Oracle Identity Managerには、汎用テクノロジ・コネクタのビルディング・ブロックとして使用できるプロバイダの標準セットが用意されています。これらのプロバイダの詳細は、第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」を参照してください。

適切なプロバイダがない場合は、要件に合わせてプロバイダを作成できます。詳細は、第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」を参照してください。

最後に、汎用テクノロジ・コネクタが統合要件を満たさない場合は、アダプタで利用可能なプログラム的なオプションを使用できます。詳細は、第V部「リクエストおよび承認プロセス」を参照してください。

21.2 汎用テクノロジ・コネクタの作成

この項では、汎用テクノロジ・コネクタを作成する方法について説明します。

汎用テクノロジ・コネクタの作成手順は、次のステップで構成されています。

- プロバイダ要件の確認

- 組み込むプロバイダの選択

- 前提条件への対応

- 管理およびユーザー・コンソールを使用したコネクタの作成

- リコンシリエーションの構成

- プロビジョニングの構成

- ロギングの有効化

21.2.1 プロバイダ要件の確認

第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」で説明したように、作成する汎用テクノロジ・コネクタのビルディング・ブロックとして次のプロバイダを使用できます。

- リコンシリエーション・トランスポート・プロバイダ

- リコンシリエーション・フォーマット・プロバイダ

- プロビジョニング・トランスポート・プロバイダ

- プロビジョニング・フォーマット・プロバイダ

- 変換プロバイダ

- 検証プロバイダ

これらのプロバイダの定義については、第18.2項「汎用テクノロジ・コネクタの機能アーキテクチャ」を参照してください。次に、ターゲット・システムがサポートしているデータ形式とデータ・トランスポート・メカニズムの知識に基づいて、作成する汎用テクノロジ・コネクタに組み込む必要のあるプロバイダを識別します。ターゲット・システムが複数のデータ形式とデータ・トランスポート・メカニズムをサポートしている場合は、最初の章で説明したトランスポート・プロバイダとフォーマット・プロバイダの1つの組合せを選択する必要があります。たとえば、1つの汎用テクノロジ・コネクタに複数のリコンシリエーション・フォーマット・プロバイダを組み込むことはできません。

関連項目:

第21.2.1項「プロバイダ要件の確認」

21.2.2 組み込むプロバイダの選択

プロバイダ要件に適合する事前定義済のプロバイダを識別します。事前定義済プロバイダの詳細は、第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」を参照してください。

事前定義済プロバイダでプロバイダ要件のすべてに対応できる場合は、カスタム・プロバイダを作成する必要はありません。事前定義済プロバイダで対応できないプロバイダ要件に対してのみ、カスタム・プロバイダの作成が必要になります。カスタム・プロバイダの作成方法は、第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」を参照してください。

21.2.3 前提条件への対応

次の前提条件に対応する必要があります。

- 本番サーバーで汎用テクノロジ・コネクタを作成する場合は、次のキャッシュ・カテゴリのキャッシュを有効化します。

- GenericConnector

- GenericConnectorProviders

詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのアプリケーション・キャッシュのチューニングおよび管理に関する説明を参照してください。

- ターゲット・システム・サーバーとOracle Identity Managerサーバーの接続性のテスト
ターゲット・システム・サーバーとOracle Identity Managerサーバーの間で接続を確立できるようにする必要があります。たとえば、UNIX環境では、ターゲット・システム・サーバーの/etc/hostsファイルにOracle Identity Managerサーバーの完全修飾ホスト名を入力する必要があります。

- 汎用テクノロジ・コネクタの作成に使用するユーザー・アカウントの作成
Oracle Identity ManagerのSYSTEM ADMINISTRATORSグループに属するすべてのユーザーが汎用テクノロジ・コネクタを作成できます。また、必要なメニュー項目と権限を割り当てられているグループのメンバーが汎用テクノロジ・コネクタを作成できます。

必要なメニュー項目は次のとおりです。

- 汎用テクノロジ・コネクタの作成メニュー項目

- 汎用テクノロジ・コネクタの管理メニュー項目

必要な権限は次のとおりです。

- フォーム・デザイナ(挿入の許可、書込み権限、削除権限)

- 構造ユーティリティ.追加の列(挿入の許可、書込み権限、削除権限)

- メタ表の階層(挿入の許可、書込み権限、削除権限)

これらの権限がグループに適切に割り当てられていない場合は、汎用テクノロジ・コネクタを作成する際に、管理およびユーザー・コンソールの最後のページで「作成」ボタンをクリックするとエラーが発生します。

21.2.4 管理およびユーザー・コンソールを使用したコネクタの作成

汎用テクノロジ・コネクタを作成するために管理およびユーザー・コンソールの最初のページに移動するには、管理およびユーザー・コンソールにログインして「拡張」をクリックし、「構成」の下で「汎用コネクタの作成」をクリックします。

これ以降の後続の項でページごとに説明します。

- 「ステップ1: 基本情報の指定」ページ

- 「ステップ2: パラメータ値の指定」ページ

- 「ステップ3: コネクタ構成の変更」ページ

- 「ステップ4: コネクタ・フォーム名の検証」ページ

- 「ステップ5: コネクタ情報の検証」ページ

21.2.4.1 「ステップ1: 基本情報の指定」ページ

作成する汎用テクノロジ・コネクタの基本情報を指定するには、このページを使用して次の手順を実行します。

1. 「名前」フィールドで汎用テクノロジ・コネクタの名前を指定します。
汎用テクノロジ・コネクタの名前選択に関するガイドラインを次に示します。

- このOracle Identity Managerインストールで使用されている他のコネクタ(事前定義済コネクタまたは汎用テクノロジ・コネクタ)と同じ名前を指定することはできません。

- このOracle Identity Managerインストールで使用されている他のコネクタ・オブジェクト(リソース・オブジェクト、ITリソース、プロセス・フォームなど)と同じ名前を指定することはできません。

注意:

既存のコネクタと同じ名前を指定するとエラー・メッセージが表示されます。ただし、既存のコネクタ・オブジェクトと同じ名前を指定してもエラー・メッセージは表示されません。そのため、指定する名前が既存のコネクタ・オブジェクトの名前と同じでないことを確認する必要があります。

汎用テクノロジ・コネクタの作成プロセスの一環として自動作成されるコネクタ・オブジェクトの詳細は、第18.4項「汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト」を参照してください。

- Oracle Identity Managerではコネクタ名が非ASCII文字に対応していないため、コネクタ名に非ASCII文字は使用できません。ただし、アンダースコア文字(_)は名前に使用できます。

関連項目:

汎用テクノロジ・コネクタの名前に関する制限事項については、第22.2.1項「汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前」を参照してください。

2. リコンシリエーションに汎用テクノロジ・コネクタを使用する場合は、「リコンシリエーション」を選択して次の手順を実行します。

- このコネクタで使用するリコンシリエーション・トランスポート・プロバイダは、「トランスポート・プロバイダ」リストで選択します。このリストには、事前定義済のリコンシリエーション・トランスポート・プロバイダと作成するリコンシリエーション・トランスポート・プロバイダが表示されます。

- このコネクタで使用するリコンシリエーション・フォーマット・プロバイダは、「フォーマット・プロバイダ」リストで選択します。このリストには、事前定義済のリコンシリエーション・フォーマット・プロバイダと作成するリコンシリエーション・フォーマット・プロバイダが表示されます。

注意:

共有ドライブ・リコンシリエーション・トランスポート・プロバイダを選択する場合は、CSVリコンシリエーション・フォーマット・プロバイダも選択する必要があります(これは、このプロバイダのすべてのパラメータが、共有ドライブ・リコンシリエーション・トランスポート・プロバイダのパラメータにバンドルされているためです)。

- コネクタを使用して信頼できるソース・リコンシリエーションをターゲット・システムに対して実行する場合は、「信頼できるソース・リコンシリエーション」を選択します。

注意:

「信頼できるソース・リコンシリエーション」チェック・ボックスを選択すると、このページの「プロビジョニング」リージョンは無効になります。これは、信頼できるソースとして指定したターゲット・システムではプロビジョニングを実行できないためです。信頼できるソースによるデータのリコンサイルのみが可能です。

3. プロビジョニングに汎用テクノロジ・コネクタを使用する場合は、「プロビジョニング」を選択して次の手順を実行します。

注意:

「リコンシリエーション」のみ、「プロビジョニング」のみ、または「リコンシリエーション」と「プロビジョニング」の両方を選択できます。

- このコネクタで使用するプロビジョニング・トランスポート・プロバイダは、「トランスポート・プロバイダ」リストで選択します。このリストには、事前定義済のプロビジョニング・トランスポート・プロバイダと作成するプロビジョニング・トランスポート・プロバイダが表示されます。
Webサービス・プロビジョニング・トランスポート・プロバイダを選択し、ターゲットのWebサービスでSecure Sockets Layer(SSL)が有効化されている場合は、第19.4.1項「Oracle Identity Managerとターゲット・システムWebサービスの間のSSL通信の構成」に記載されている手順を実行する必要があります。

- このコネクタで使用するプロビジョニング・フォーマット・プロバイダは、「フォーマット・プロバイダ」リストで選択します。このリストには、事前定義済のプロビジョニング・フォーマット・プロバイダと作成するプロビジョニング・フォーマット・プロバイダが表示されます。
SPMLプロビジョニング・フォーマット・プロバイダを選択する場合は、Webサービス・プロビジョニング・トランスポート・プロバイダも選択する必要があります(これは、このプロバイダのパラメータが、Webサービス・プロビジョニング・トランスポート・プロバイダのパラメータに関連しているためです)。

4. 「続行」をクリックします。

表21-1に、「ステップ1: 基本情報の指定」ページのGUI要素のサンプル・エントリを示します。

表21-1 「ステップ1: 基本情報の指定」ページのサンプル・エントリ

「ステップ1: 基本情報の指定」ページのラベル

サンプル値またはアクション

参照情報

「名前」フィールド

MyGTC2

該当なし

「リコンシリエーション」チェック・ボックス

チェック・ボックス選択

該当なし

「トランスポート・プロバイダ」リスト

共有ドライブ

共有ドライブ・リコンシリエーション・トランスポート・プロバイダ

「フォーマット・プロバイダ」リスト

CSV

CSVリコンシリエーション・フォーマット・プロバイダ

「プロビジョニング」チェック・ボックス

チェック・ボックス選択

該当なし

「トランスポート・プロバイダ」リスト

Webサービス

Webサービス・プロビジョニング・トランスポート・プロバイダ

「フォーマット・プロバイダ」リスト

SPML

SPMLプロビジョニング・フォーマット・プロバイダ

図21-1に示す「ステップ1: 基本情報の指定」ページには、表21-1のエントリが入力されています。

図21-1 「ステップ1: 基本情報の指定」ページ

21.2.4.2 「ステップ2: パラメータ値の指定」ページ

このページを使用して、「ステップ1: 基本情報の指定」ページで選択したプロバイダのパラメータ値を指定します。

このページでは、プロバイダのパラメータは次の2つのカテゴリに分けられます。

- ランタイム・パラメータ

関連項目:

「ステップ1: 基本情報の指定」ページで選択する事前定義済プロバイダのランタイム・パラメータの詳細は、第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」を参照してください。

ランタイム・パラメータは、前のページで選択したプロバイダの入力変数です。ランタイム・パラメータは、プロバイダの設計に制約されない値を示します。たとえば、リコンサイルするデータファイルが格納されているディレクトリの場所がランタイム・パラメータ値となります。

- 設計パラメータ
この項に示すパラメータは、プロバイダの設計パラメータ、またはすべての汎用テクノロジ・コネクタに共通するリコンシリエーション固有パラメータです。設計パラメータは、プロバイダ設計の一部として定義される1つまたは複数の値を表します。

関連項目:

「ステップ1: 基本情報の指定」ページで選択する事前定義済プロバイダの設計パラメータの詳細は、第19章「汎用テクノロジ・コネクタの事前定義済プロバイダ」を参照してください。

例:

フォーマット・プロバイダで解析可能なデータファイルの形式がこのプロバイダの設計パラメータとなります。プロバイダの設計時に、そのプロバイダが解析可能な一連の形式を定義します。「ステップ2: パラメータ値の指定」ページで、フォーマット・プロバイダのインスタンスが解析する必要のある特定の形式を(サポートしている形式のセットの中から)指定します。

次に、リコンシリエーション固有の設計パラメータを示します。

注意:

前のページで「リコンシリエーション」オプションを選択していない場合、リコンシリエーション固有の設計パラメータはこのページに表示されません。

- バッチ・サイズ
このパラメータを使用して、リコンシリエーション実行のバッチ・サイズを指定します。このパラメータを使用することで、各リコンシリエーションの実行中に、リコンシリエーション・エンジンによりターゲット・システムからフェッチされるレコードの合計数をバッチに分けられます。

このパラメータのデフォルト値はAllです。

- リコンシリエーション停止のしきい値
リコンシリエーション中、検証プロバイダは、リコンシリエーション・フォーマット・プロバイダからのデータを入力として受け入れます。一部のリコンシリエーション・データ・レコードは、検証チェックを通らない場合があります。「リコンシリエーション停止のしきい値」パラメータを使用すると、処理済のリコンシリエーション・レコード総数に対する検証チェックを通らなかったレコードの割合が指定値を超えた場合に、リコンシリエーションを自動的に停止できます。

次に、このパラメータの使用例を示します。

「リコンシリエーション停止のしきい値」パラメータの値として20を指定したとします。この場合は、処理済のレコード総数に対する失敗したレコードの割合が20%以上になるとリコンシリエーションが停止されます。2番目と8番目のレコードが検証チェックに失敗したとします。この段階で失敗したレコードの数は2、処理されたレコードの総数は8です。失敗したレコードの割合は25%になり、指定したしきい値の20を上回ります。そのため、リコンシリエーションは8番目のレコードの処理後に停止します。

注意:

- 「ステップ3: コネクタ構成の変更」ページで検証プロバイダを選択した場合にのみ、リコンシリエーション中に「リコンシリエーション停止のしきい値」パラメータが使用されます。

- 失敗したレコードの実際の割合が指定した割合を超えたためにリコンシリエーションが停止しても、Oracle Identity Managerにすでにリコンサイルされているレコードは削除されません。

このパラメータのデフォルト値はNoneです。このデフォルト値では、リコンシリエーションの実行中、チェックに失敗したレコード数に関係なくターゲット・システムのレコードをすべて処理するように指定します。

- 停止しきい値最小レコード
「リコンシリエーション停止のしきい値」パラメータを使用した場合、リコンシリエーション実行の開始直後に無効レコードが発生するという問題が発生することがあります。たとえば、「リコンシリエーション停止のしきい値」パラメータの値として40を指定したとします。リコンシリエーションが開始され、最初のレコードが検証チェックに失敗します。この段階で、処理されたレコードの総数に対する失敗したレコードの割合は100%に達します。そのため、リコンシリエーションは最初のレコードの処理後ただちに停止されます。

このような状況を避けるために、「停止しきい値最小レコード」パラメータを「リコンシリエーション停止のしきい値」パラメータと併用できます。「リコンシリエーション停止のしきい値」を有効化する前に、「停止しきい値最小レコード」パラメータで検証プロバイダが処理する必要のあるレコード数を指定します。

次に、このパラメータの使用例を示します。

次の値を指定したとします。

リコンシリエーション停止のしきい値: 20

停止しきい値最小レコード: 80

このように値を指定すると、81番目以降のレコードに対して「リコンシリエーション停止のしきい値」の検証が有効化されます。つまり、80番目のレコードが処理された後にレコードが検証チェックに失敗すると、処理された総レコード数に対する失敗したレコードの割合がリコンシリエーション・エンジンによって計算されます。

このパラメータのデフォルト値はNoneです。

注意:

- 「ステップ3: コネクタ構成の変更」ページで検証プロバイダを選択した場合のみ、リコンシリエーション中に「停止しきい値最小レコード」パラメータが使用されます。

- 「リコンシリエーション停止のしきい値」パラメータの値を指定する場合は、「停止しきい値最小レコード」パラメータの値も指定する必要があります。

- リコンシリエーション・タイプ
このパラメータを使用して、リコンシリエーション・エンジンで増分リコンシリエーションと完全リコンシリエーションのどちらを実行するかを指定します。

注意:

完全リコンシリエーションと増分リコンシリエーションの結果は同じです。すなわち、最後のリコンシリエーション実行後に作成または更新されたターゲット・システムのレコードは、Oracle Identity Managerによってリコンサイルされます。

増分リコンシリエーションでは、前回のリコンシリエーションの実行後に新しく追加または変更されたターゲット・システム・レコードのみが、Oracle Identity Managerにリコンサイルされます。リコンシリエーション・イベントは、これらの各レコードに対して作成されます。

完全リコンシリエーションでは、すべてのターゲット・システム・レコードがOracle Identity Managerにリコンサイルされます。すでにリコンサイル済のレコードは、最適化リコンシリエーション機能によって識別され、無視されます。リコンシリエーション・イベントは、残りのレコードに対して作成されます。

次のいずれかの条件に該当する場合は、増分リコンシリエーションを選択してください。

- ターゲット・システムで生成されるファイルまたは個々のデータ・レコードにタイムスタンプが付けられるか、またはなんらかの方法によって一意のマークが付けられ、タイムスタンプまたはマークが付けられたレコードをリコンシリエーション・トランスポート・プロバイダが認識できる場合
例:

ターゲット・システムでは、ユーザー・データ・レコードの作成または変更時にタイムスタンプを付けることができます。このタイムスタンプ情報の読取りが可能なカスタム・リコンシリエーション・トランスポート・プロバイダを作成すると、新規追加または変更されたデータ・レコードのみがリコンシリエーション中にOracle Identity Managerに転送されます。

- ターゲット・システムが、最後のリコンシリエーション実行後に新規追加または変更されたデータ・レコードのみを提供する場合

いずれの条件にも該当しない場合は、完全リコンシリエーションを選択する必要があります。

- 複数値属性データの削除の調整
このパラメータを使用して、ターゲット・システムの複数値属性データ(子データ)の削除をOracle Identity Managerでリコンサイルするかどうかを指定します。

次に、この設計パラメータの使用例を示します。

ターゲット・システムにユーザーJohn Doeのアカウントがあります。このユーザーは、ターゲット・システムの2つのユーザー・グループ、CREATE USERSとREVIEW PERMISSIONSのメンバーです。このユーザー・アカウント(およびグループ・メンバーシップ情報)は、Oracle Identity Managerにも存在します。

ターゲット・システムでこのユーザーをREVIEW PERMISSIONSグループから削除したとします。次のリコンシリエーション実行中にOracle Identity Managerが行うアクションは、「複数値属性データの削除の調整」チェック・ボックスを選択したかどうかによって異なります。

- このチェック・ボックスを選択した場合、ターゲット・システムのREVIEW PERMISSIONSグループのメンバーであるこのユーザーの情報はOracle Identity Managerデータベースから削除されます。ターゲット・システムのこのユーザー・アカウントに加えられた他の変更もすべてリコンサイルされます。

- このチェック・ボックスを選択しない場合、ターゲット・システムのREVIEW PERMISSIONSグループのメンバーであるこのユーザーの情報はOracle Identity Managerデータベースから削除されません。ただし、ターゲット・システムのこのユーザー・アカウントに加えられた他の変更はすべてリコンサイルされます。

- ソース日付書式
このパラメータを使用して、日付値がターゲット・システムに格納される書式を指定します。

指定する書式は、リコンシリエーション時にフェッチされる日付値を検証し、その日付値をOracle Identity Managerの内部で使用される書式に変換するために使用されます。

日付書式の検証プロバイダは、事前定義されている検証プロバイダの1つです。日付書式の検証プロバイダは、リコンシリエーション実行時に、ターゲット・システムからフェッチした日付値をソース日付書式を使用して検証します。ソース日付書式と一致する日付値のみが、Oracle Identity Managerで使用される日付書式に変換され、リコンサイルされます。このような書式の検証と変換は、ターゲット・システムのすべての日付フィールド(生年月日や入社日など)に適用されます。

関連項目:

検証プロバイダの詳細は、「検証プロバイダ」を参照してください。

指定可能な日付書式の詳細は、Sun Java Webサイトの次のページを参照してください。

http://java.sun.com/docs/books/tutorial/i18n/format/simpleDateFormat.html

注意:

第21.2.4.3.1項「データセットのフィールドの追加または編集」で説明している手順の実行時に、ソース日付書式を日付検証で使用するには、次のようにする必要があります。

- 「ソース」データセットの日付フィールドを「リコンシリエーション・ステージング」データセットの日付フィールドにマップする。

- 「リコンシリエーション・ステージング」データセットの各日付フィールドを編集し、データ型を「日付」データ型に設定する。

「ソース日付書式」パラメータのデフォルト値は、XL.DefaultDateFormatシステム・プロパティの値として指定された日付書式です。「ソース日付書式」パラメータに値を指定しないと、リコンシリエーション時の日付検証でデフォルト日付書式が使用されます。

関連項目:

Oracle Identity Managerのシステム・プロパティの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのOracle Identity Managerのシステム・プロパティに関する説明を参照してください。

次に「ソース日付書式」パラメータの使用例を示します。

ターゲット・システムに、次のように日付値が設定されているとします。

- Date 1: 05/04/2007 06:25:44 PM

- Date 2: 05/06/2007 07:31:44 PM

- Date 3: Thu, Apr 9, '98

- Date 4: 07/03/2008 02:15:55 PM

使用例1:

コネクタを作成するときに、「ソース日付書式」パラメータに次の値を入力しました。

MM/dd/yyyy hh:mm:ss a

リコンシリエーション実行時に、Date 3の値を含むレコードは、指定したソース日付書式と一致しないためリコンサイルされません。

使用例2:

コネクタを作成するときに、「ソース日付書式」パラメータの値を入力していません。このため、リコンシリエーション実行時に、4つのレコードすべてがXL.DefaultDateFormatシステム・プロパティの値として指定された日付書式に対して検証されます。

次に、プロビジョニング固有の設計パラメータを示します。

注意:

前のページで「プロビジョニング」オプションを選択していない場合、このプロビジョニング固有の設計パラメータは表示されません。

- ターゲット日付書式
このパラメータを使用して、プロビジョニング操作時に日付値をターゲット・システムに送信する書式を指定します。

プロビジョニング操作時には、日付値が「ターゲット日付書式」パラメータの値として指定した書式に変換されます。このような書式の変換は、プロビジョニング操作で使用されるすべての日付フィールド(生年月日や入社日など)に適用されます。

指定可能な日付書式の詳細は、Sun Java Webサイトの次のページを参照してください。

http://java.sun.com/docs/books/tutorial/i18n/format/simpleDateFormat.html

日付書式を指定しない場合は、次の日付書式がこのパラメータのデフォルト値として使用されます。

yyyy/MM/dd hh:mm:ss z

次に「ターゲット日付書式」パラメータの使用例を示します。

プロビジョニング操作では、入力したすべての日付値がyyyy/MM/dd hh:mm:ss z書式になります。

使用例1:

コネクタを作成するときに、「ターゲット日付書式」パラメータに次の値を入力しました。

yyyy.MM.dd G 'at' hh:mm:ss z

プロビジョニング操作では、Oracle Identity Managerの日付値(たとえば2007/05/04 06:25:44 IST)はターゲット日付書式(たとえば2007.05.04 AD at 06:25:44 IST)に変換され、ターゲット・システムに送られます。

使用例2:

コネクタを作成するときに、「ターゲット日付書式」パラメータの値を入力していません。プロビジョニング操作では、日付値はターゲット・システムにデフォルトのyyyy/MM/dd hh:mm:ss z書式で送られます。

ランタイム・パラメータと設計パラメータの値の指定が完了したら、「続行」をクリックします。

注意:

このページで指定した値が正しくない場合は、「続行」をクリックするとページの上部にエラー・メッセージが表示されます。その場合は、パラメータ値を修正してから「続行」を再度クリックします。

表21-2に、「ステップ2: パラメータ値の指定」ページのサンプル・エントリを示します。このページに表示されるGUI要素は、「ステップ1: 基本情報の指定」ページのエントリに基づきます。

表21-2 「ステップ2: パラメータ値の指定」ページのサンプル・エントリ

「ステップ2: パラメータ値の指定」ページのラベル

サンプル値またはアクション

参照情報

共有ドライブ・リコンシリエーション・トランスポート・プロバイダのランタイム・パラメータ

第19.1項「共有ドライブ・リコンシリエーション・トランスポート・プロバイダ」

「ステージング・ディレクトリ(親アイデンティティ・データ)」フィールド

D:\gctestdata\commaDelimited\parent

該当なし

「ステージング・ディレクトリ(複数値アイデンティティ・データ)」フィールド

D:\gctestdata\commaDelimited\child

該当なし

「アーカイブ・ディレクトリ」フィールド

D:\gctestdata\commaDelimited\archive

該当なし

「ファイルの接頭辞」フィールド

file

該当なし

「指定されたデリミタ」フィールド

,

該当なし

「タブ区切り」チェック・ボックス

チェック・ボックス選択解除

該当なし

「固定列幅」フィールド

該当なし

「一意の属性(親データ)」フィールド

UserIDTD

該当なし

Webサービス・プロビジョニング・トランスポート・プロバイダのランタイム・パラメータ

第19.4項「Webサービス・プロビジョニング・トランスポート・プロバイダ」

「WebサービスURL」フィールド

http://acme123:8080/spmlws/services/HttpSoap11

該当なし

SPMLプロビジョニング・フォーマット・プロバイダのランタイム・パラメータ

第19.3項「SPMLプロビジョニング・フォーマット・プロバイダ」

「ターゲットID」フィールド

target

該当なし

「ユーザー名(認証)」フィールド

xelsysadm

該当なし

「ユーザー・パスワード(認証)」フィールド

該当なし

共有ドライブ・リコンシリエーション・トランスポート・プロバイダの設計パラメータ

第19.1項「共有ドライブ・リコンシリエーション・トランスポート・プロバイダ」

「ファイル・エンコーディング」フィールド

Cp1251

該当なし

Webサービス・プロビジョニング・トランスポート・プロバイダの設計パラメータ

第19.4項「Webサービス・プロビジョニング・トランスポート・プロバイダ」

「WebサービスのSOAPアクション」フィールド

http://xmlns.oracle.com/OIM/provisioning/processRequest

該当なし

SPMLプロビジョニング・フォーマット・プロバイダの設計パラメータ

第19.3項「SPMLプロビジョニング・フォーマット・プロバイダ」

「SPML WebサービスのWSSEが構成されていますか。」チェック・ボックス

チェック・ボックス選択解除

該当なし

「カスタム認証資格証明ネームスペース」フィールド

http://xmlns.oracle.com/OIM/provisioning

該当なし

「カスタム認証ヘッダー要素」フィールド

OIMUser

該当なし

「ユーザー名を格納するカスタム要素」フィールド

OIMUserId

該当なし

「パスワードを格納するカスタム要素」フィールド

OIMUserPassword

該当なし

「SPML Webサービスのバインディング・スタイル(DOCUMENTまたはRPC)」フィールド

RPC

該当なし

「SPML Webサービスの複合データ型」フィールド

該当なし

「SPML Webサービス操作名」フィールド

processRequest

該当なし

「SPML Webサービスのターゲット・ネームスペース」フィールド

http://xmlns.oracle.com/OIM/provisioning

該当なし

「SPML WebサービスのSOAPメッセージ本文の接頭辞」フィールド

該当なし

「グループ・メンバーシップ情報を保持している子データセットのID属性」フィールド

該当なし

汎用設計パラメータ

該当なし

「ターゲット日付書式」フィールド

yyyy-MM-dd hh:mm:ss.fffffffff

該当なし

「バッチ・サイズ」フィールド

すべて

該当なし

「リコンシリエーション停止のしきい値」フィールド

なし

該当なし

「停止しきい値最小レコード」フィールド

なし

該当なし

「ソース日付書式」フィールド

yyyy/MM/dd hh:mm:ss z

該当なし

「複数値属性データの削除の調整」チェック・ボックス

チェック・ボックス選択

該当なし

「リコンシリエーション・タイプ」リスト

増分

該当なし

図21-2に示す「ステップ2: パラメータ値の指定」ページの最初のセクションには、表21-2のエントリが入力されています。

図21-2 「ステップ2: パラメータ値の指定」ページの最初のセクション

図21-3に示す「ステップ2: パラメータ値の指定」ページの2番目のセクションには、表21-2のエントリが入力されています。

図21-3 「ステップ2: パラメータ値の指定」ページの2番目のセクション

図21-4に示す「ステップ2: パラメータ値の指定」ページの3番目のセクションには、表21-2のエントリが入力されています。

図21-4 「ステップ2: パラメータ値の指定」ページの3番目のセクション

21.2.4.3 「ステップ3: コネクタ構成の変更」ページ

このページを使用して、データセットやデータセットのフィールド間のマッピングを定義します。つまり、次の処理を行うユーザー・データ・フィールドをこのページで指定します。

- リコンシリエーション時のターゲット・システムからOracle Identity Managerへの伝播

- プロビジョニング時のOracle Identity Managerからターゲット・システムへの伝播

汎用テクノロジ・コネクタのコンテキストでは、メタデータという用語は、ターゲット・システム上のユーザー・アカウント情報を構成する一連のアイデンティティ・フィールドを意味します。

「名」、「姓」、「入社日」および「部門ID」は、メタデータを構成するユーザー・データ・フィールドの例です。これらのフィールドに割り当てられる値が、ターゲット・システムのユーザー・データを構成します。たとえば、ターゲット・システム上のユーザーJohn Doeのアイデンティティ情報は次のようなフィールドで構成されます。

- 名: John

- 姓: Doe

- 入社日: 04-December-2007

- 部門ID: Sales

- . . .

「ステップ2: パラメータ値の指定」ページで「続行」ボタンをクリックした後に「ステップ3: コネクタ構成の変更」ページに表示されるメタデータは、次の要因によって決まります。

- 「ステップ1: 基本情報の指定」ページおよび「ステップ2: パラメータ値の指定」ページの入力内容

- ターゲット・システムのサンプル・データの可用性

注意:

汎用テクノロジ・コネクタのコンテキストでは、メタデータの検出という用語は、サンプルのユーザー・データがターゲット・システムから読み取られ、対応するメタデータ(アイデンティティ・フィールド名)が「ステップ3: コネクタ構成の変更」ページに表示されるプロセスを意味します。

Oracle Identity Managerでは、メタデータの検出の試行中に次の手順が実行されます。

1. リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダでは、ターゲット・システムからメタデータのフェッチおよび解析が試行されます。
同時に、共有ドライブ・リコンシリエーション・トランスポート・プロバイダとCSVリコンシリエーション・フォーマット・プロバイダでは、ターゲット・システムからメタデータを検出できます。カスタム・プロバイダで同じ機能を実行する場合は、次の要件を満たす必要があります。

- リコンシリエーション・トランスポート・プロバイダのJavaコードに、ReconTransportProviderインタフェースのgetMetadata()メソッドが実装されていること

- リコンシリエーション・フォーマット・プロバイダのJavaコードに、ReconFormatProviderインタフェースのparseMetadata()メソッドが実装されていること

関連項目:

第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」

これらのプロバイダがターゲット・システムからメタデータをフェッチして解析すると、Oracle Identity Managerはこれらのプロバイダが戻した情報を使用してメタデータを表示し、この場合、次の手順は実行されません。

2. リコンシリエーション・トランスポート・プロバイダとリコンシリエーション・フォーマット・プロバイダで、ターゲット・システムからメタデータをフェッチおよび解析できない場合は、プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダでこの機能の実行が試行されます。
Webサービス・プロビジョニング・トランスポート・プロバイダとSPMLプロビジョニング・フォーマット・プロバイダでは、ターゲット・システムからメタデータを検出できません。カスタム・プロバイダでメタデータを検出できるようにするには、次の要件を満たす必要があります。

- プロビジョニング・トランスポート・プロバイダのJavaコードに、ProvisioningTransportProviderインタフェースのdefineMetadata()メソッドが実装されていること

- プロビジョニング・フォーマット・プロバイダのJavaコードに、ProvisioningFormatProviderインタフェースのparseMetadata()メソッドが実装されていること

プロビジョニング・トランスポート・プロバイダとプロビジョニング・フォーマット・プロバイダがターゲット・システムからメタデータをフェッチおよび解析すると、Oracle Identity Managerはこれらのプロバイダが戻した情報を使用してメタデータを表示します。これらのプロバイダが失敗した場合、選択したプロビジョニング固有のプロバイダのいずれかに定義されたデフォルト・フィールドのみが表示されます。たとえば、「OIM - アカウント」データセットのIDフィールドや「プロビジョニング・ステージング」データセットのobjectClassフィールドおよびcontainerIDフィールドがデフォルトで表示されます。これらのデータセットおよびフィールドについては後述します。

図21-5の「ステップ3: コネクタ構成の変更」ページは、「「ステップ1: 基本情報の指定」ページ」と「「ステップ2: パラメータ値の指定」ページ」の最後に記載したサンプル・エントリを示しています。

図21-5 「ステップ3: コネクタ構成の変更」ページ

- データセット

- マッピング

データセット

「ステップ3: コネクタ構成の変更」ページに表示されているデータセットは、次のカテゴリに分けられます。

- ソース
「ソース」データセットは、「プロビジョニング」オプションの選択に関係なく、最初のページで「リコンシリエーション」オプションを選択した場合にのみ表示されます。

- リコンシリエーション・ステージング
「リコンシリエーション・ステージング」データセットは、「プロビジョニング」オプションの選択に関係なく、「ステップ1: 基本情報の指定」ページで「リコンシリエーション」オプションを選択した場合にのみ表示されます。

- Oracle Identity Manager
「Oracle Identity Manager」データセットは、「ステップ1: 基本情報の指定」ページで選択したオプションに関係なく常に表示されます。ただし、「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「OIM - アカウント」データセットとその子データセットは表示されません。

「OIM - ユーザー」データセットに表示されるフィールドは、Oracle Identity Managerユーザーに対して事前定義されています。「OIM - ユーザー」データセットの上部にある矢印アイコンをクリックすると、このデータセットのリストの全体表示と最小表示を切り替えることができます。データセットを最小化した状態では、次のフィールドが表示されます。

- ユーザーID

- 電子メール

- パスワード

- 名

- 姓

注意:

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合は、「OIM - ユーザー」データセットのすべてのフィールドが表示され、この場合、矢印アイコンを使用して表示を最小化することはできません。

これらのフィールドによって、値の定義が必要なOracle Identity Managerユーザー・フィールドの最小セットが構成されます。「OIM - ユーザー」データセットの残りのフィールドの一部または全部をOracle Identity Managerインストールにおける必須のOracle Identity Managerユーザー・フィールドとして指定できます。これを行うには、Oracle Identity Managerユーザーの作成時にこれらのフィールドに必ず値が入力されるようにします。

注意:

一定の領域を超えるデータセットおよびフィールドの名前は切り捨てられ、切り捨てた箇所の後にはドットが表示されます。たとえば、「OIM - ユーザー」データセットの「デプロビジョニング日」フィールドは次のように表示されます。

Deprovisioning Da..

フィールドの完全名を表示するには、このフィールドまたはこのフィールドがマップされているフィールドの編集アイコンをクリックします。ポップアップ・ウィンドウでは、確認するフィールド名がそのフィールドが属するデータセットに応じて最初のページまたは2番目のページに表示されます。

Design Consoleを使用すると、事前定義済のOracle Identity Managerユーザー・フィールドのリストにユーザー定義フィールド(UDF)を追加できます。これらのUDFは、「ステップ3: コネクタ構成の変更」ページの「OIM - ユーザー」データセットに表示されます。

「ステップ1: 基本情報の指定」ページで選択したオプションによっては、次のフィールドが「ステップ3: コネクタ構成の変更」ページにデフォルトで表示されます。

- IDフィールド
IDフィールドは、「ステップ1: 基本情報の指定」ページで「リコンシリエーション」オプションまたは「プロビジョニング」オプションを選択したかどうかに関係なく、「OIM - アカウント」セットにデフォルトで表示されます。アカウントの作成時、このフィールドには、Oracle Identity Managerとターゲット・システムでそのアカウントを一意に識別する値が格納されます。特定のユーザーについては、変更、削除、有効化、無効化などの他の操作、および子データ操作を指示する際にこの一意のフィールドが使用されます。

すべてのターゲット・システムは、ユーザー・アカウントの作成と更新をトラッキングするために一意のフィールドを備えています。カスタム・プロビジョニング・トランスポート・プロバイダの作成時には、「ユーザーの作成」操作の終了時にプロバイダがこの一意のフィールドの値をターゲット・システムから取得していることを確認する必要があります。その後、この値は、「OIM - アカウント」データセットのIDフィールドへの移入に使用されます。

リコンシリエーション中、IDフィールドの値は「リコンシリエーション・ステージング」データセットの対応する一意のフィールドから取得する必要があります。この操作を設定するには、この2つのフィールド間のマッピングを作成します。マッピングの作成手順については、この項で後述します。

注意:

汎用テクノロジ・コネクタの作成時に「プロビジョニング」と「リコンシリエーション」の両方のオプションを選択しても、IDフィールドとターゲット・システムの一意のフィールドの間にマッピングを作成しない場合は、リコンシリエーションによってリンクされているレコードをプロビジョニング操作(変更、削除、有効化、無効化、子データ操作など)に使用できません。これは、リンクされているレコードがIDフィールドに移入されていないためです。

- objectClassフィールド
objectClassフィールドは、「ステップ1: 基本情報の指定」ページでSPMLプロビジョニング・フォーマット・プロバイダを選択した場合にのみ、「OIM - アカウント」データセットと「プロビジョニング・ステージング」データセットにデフォルトで表示されます。

- containerIDフィールド
containerIDフィールドは、「ステップ1: 基本情報の指定」ページでSPMLプロビジョニング・フォーマット・プロバイダを選択した場合にのみ、「OIM - アカウント」データセットと「プロビジョニング・ステージング」データセットにデフォルトで表示されます。

- プロビジョニング・ステージング
「プロビジョニング・ステージング」データセットは、「リコンシリエーション」オプションの選択に関係なく、最初のページで「プロビジョニング」オプションを選択した場合にのみ表示されます。

「ステップ3: コネクタ構成の変更」ページに表示されるデータセットは、「ステップ1: 基本情報の指定」ページと「ステップ2: パラメータ値の指定」ページの入力内容によって異なります。データセット内に表示されるフィールドは、メタデータの検出の有無によって決まります。

注意:

次のいずれかの条件に該当する場合、メタデータの検出は行われません。

- ターゲット・システムのサンプル・データ(メタデータを含む)を使用できない場合

- 選択したトランスポート・プロバイダやフォーマット・プロバイダが、ターゲット・システムのサンプル・データからメタデータを検出できない場合

次に、この例を示します。

「ステップ1: 基本情報の指定」ページで「リコンシリエーション」オプションのみを選択したとします。また、メタデータの検出は行われなかったとします。この条件で、「ステップ3: コネクタ構成の変更」ページに表示されるデータセットおよびフィールドは、次のように要約できます。

次のデータセットが表示されます。

- ソース

- リコンシリエーション・ステージング

- Oracle Identity Manager

これらのデータセットを構成するフィールドは表示されません。

さらに、「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「OIM - アカウント」データセットとその子データセットは表示されません。

表21-3の使用例1は、この一連の入力条件の結果を示しています。この表の他の使用例は、表の最初の行と列に記載されている入力条件の組合せによって表示されるデータセットとフィールドを示しています。

表21-3 様々な入力条件によるデータセットおよびフィールドの表示

「リコンシリエーション」オプションのみ選択

「リコンシリエーション」と「プロビジョニング」の両方のオプションの選択

「プロビジョニング」オプションのみ選択

メタデータの検出なし

使用例1

次のデータセットが表示されます。

- ソース

- リコンシリエーション・ステージング

- Oracle Identity Manager

これらのデータセットを構成するフィールドは表示されません。

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「OIM - アカウント」データセットとその子データセットは表示されません。

使用例2

次のデータセットが表示されます。

- ソース

- リコンシリエーション・ステージング

- Oracle Identity Manager

- プロビジョニング・ステージング

これらのデータセットを構成するフィールドは表示されません。

使用例3

次のデータセットが表示されます。

- Oracle Identity Manager

- プロビジョニング・ステージング

これらのデータセットを構成するフィールドは表示されません。

メタデータの検出あり

使用例4

次のデータセットが表示されます。

- ソース

- リコンシリエーション・ステージング

- Oracle Identity Manager

これらのデータセットを構成するフィールドが表示されます。

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「OIM - アカウント」データセットとその子データセットは表示されません。

使用例5

次のデータセットが表示されます。

- ソース

- リコンシリエーション・ステージング

- Oracle Identity Manager

- プロビジョニング・ステージング

これらのデータセットを構成するフィールドが表示されます。

使用例6

次のデータセットが表示されます。

- Oracle Identity Manager

- プロビジョニング・ステージング

これらのデータセットを構成するフィールドが表示されます。

関連項目:

このページの非ASCII文字の表示に関する制限事項については、第22.1.2項「他言語サポート」を参照してください。

マッピング

「ステップ3: コネクタ構成の変更」ページに表示されている流れ線は、異なるデータセットの2つのフィールド間のマッピング(リンク)をそれぞれ示しています。マッピングは、次のいずれかを目的としています。

- プロビジョニングまたはリコンシリエーションを目的とする、2つのデータセットのフィールド間のデータ・フロー・パスの確立
このタイプのマッピングに基づいて、データの検証または変換が行われます。

- 2つのデータセットのフィールド値の比較(一致)の基盤の構築
次に、一致のみのマッピングの例を示します。

- 「リコンシリエーション・ステージング」データセットと「OIM - ユーザー」データセットのフィールド間に作成されたマッピングは、リコンシリエーション・ルールの基礎を成します。

- 「リコンシリエーション・ステージング」データセットの一意のフィールドと「OIM - アカウント」データセットのIDフィールドの間のマッピングを作成すると、リコンシリエーション一致のキー・フィールドの識別が容易になります。IDフィールドに加えて、「OIM - アカウント」データセットの他のフィールドを「リコンシリエーション・ステージング」データセットの対応するフィールドに(一致のみで)マップして、リコンシリエーション一致のコンポジット・キー・フィールドを作成できます。

「ステップ3: コネクタ構成の変更」ページでは、次のアクションを実行できます。

- データセットのフィールドの追加または編集

- データセットのフィールドの削除

- フィールド間のマッピングの削除

- 子データセットの削除

21.2.4.3.1 データセットのフィールドの追加または編集

メタデータ検出で検出されたアイデンティティ・フィールドは、「ステップ3: コネクタ構成の変更」ページに表示されます。これらのフィールドやフィールド間のマッピングを変更できます。必要に応じて、このページで新しいフィールドの追加や、フィールド間のマッピングの作成を行うこともできます。

「ステップ3: コネクタ構成の変更」ページでフィールドの追加や編集の際に実行できるアクションの概要を次に示します。

注意:

これらのアクションは、この後の手順で詳しく説明しています。この手順では、一部のアクションを実行する前に満たす必要がある条件についても説明しています。

- デフォルトの属性(データ型や長さなど)が、表示されるフィールドにメタデータ検出によって割り当てられます。これらのフィールドを編集して必要な属性を設定する必要があります。

注意:

Oracle Identity Managerが、リコンシリエーション時にフェッチされた日付値を認識できるのは、「リコンシリエーション・ステージング」データセットのフィールドに「日付」データ型を設定した場合のみです。また、「ステップ2: パラメータ値の指定」ページで「ソース日付書式」パラメータの値を指定した場合は、「ソース」データセットの日付フィールドを「リコンシリエーション・ステージング」データセットの対応する日付フィールドにマップする必要があります。

「ソース日付書式」パラメータについては、第21.2.4.2項「「ステップ2: パラメータ値の指定」ページ」で説明しています。

- 変換プロバイダを使用してフィールド間の変換マッピングを作成できます。このアクションを実行するときは、事前定義済の連結変換プロバイダまたは翻訳変換プロバイダ、あるいは自ら作成したカスタム変換プロバイダを使用できます。

- 「リコンシリエーション・ステージング」データセットと「Oracle Identity Manager」データセットのフィールド間に一致のみのマッピングを作成できます。「リコンシリエーション・ステージング」データセットと「OIM - ユーザー」データセットの間に作成する一致のみのマッピングが、リコンシリエーション・ルールになります。「リコンシリエーション・ステージング」データセットと「OIM - アカウント」データセットの間に作成する一致のみのマッピングでは、リコンシリエーション一致のキー・フィールドが指定されます。

- 既存のデータセットに子データセットを追加できます。

- プロセス・フォームとデータベースの両方でフィールドの値を暗号化することができます。

- フィールドを参照フィールドに指定して、フィールドの入力ソースを選択できます。入力ソースには、参照定義かOracle Identity Managerデータベース表の列の組合せを指定できます。

- ユーザー・アカウント・ステータスのリコンシリエーションを構成できます。
ユーザー・アカウント・ステータスのリコンシリエーションを構成する場合は、「アカウント・ステータスのリコンシリエーションの構成」を参照してください。

データセットのフィールドを追加または編集するには、次の手順を実行します。

注意:

次の手順で説明するGUI要素とページの表示は、フィールドを追加または編集するデータセットによって異なります。たとえば、「ソース」データセットのフィールドを追加または編集する場合、「必須」チェック・ボックスと「暗号化」チェック・ボックスは表示されません。

1. フィールドの追加または編集のいずれかに応じて、データセットの「追加」アイコン、またはフィールドの編集アイコンをクリックします。

2. 「ステップ1: フィールド情報」ページで次のGUI要素の値を指定します。

関連項目:

フィールド名に適用される検証の詳細は、第21.2.4.3項「「ステップ3: コネクタ構成の変更」ページ」を参照してください。

- フィールド名: フィールドを追加する場合は、そのフィールドの名前を指定します。非ASCII文字は使用できないため、指定するフィールド名にはASCII文字のみを使用します。

- アクションのマッピング: マッピングの宛先フィールドとしてこのフィールドで作成するマッピングのタイプを選択します。次のいずれかのマッピング・アクションを選択できます。

- ソース(入力)フィールドと追加または編集するフィールドの間で1対1マッピングのみを作成し、変換プロバイダを使用しない場合は、「変換なしでマッピングの作成」を選択します。

- フィールドを編集し、そのフィールドを宛先フィールドとするマッピングを削除する場合は、「マッピングの削除」オプションを選択します。マッピングの削除手順の詳細は、「フィールド間のマッピングの削除」を参照してください。

- 「アクションのマッピング」リストの変換マッピングのオプションは、事前定義された変換プロバイダと作成したカスタム変換プロバイダに基づいて表示されます。次のメニュー・オプションは、事前定義済の変換プロバイダに対応しています。
* 連結ありでマッピングの作成

* 変換ありでマッピングの作成

関連項目:

これらの事前定義済の変換プロバイダの詳細は、第19.5項「変換プロバイダ」を参照してください。

変換マッピングの選択時には、次のガイドラインが適用されます。

- 変換マッピングは、次のデータセットのフィールド間でのみ作成可能です。
-「ソース」と「リコンシリエーション・ステージング」

- 「Oracle Identity Manager」と「プロビジョニング・ステージング」

したがって、たとえば「リコンシリエーション・ステージング」データセットと「Oracle Identity Manager」データセットのフィールド間では変換マッピングを作成できません。

次のソース・フィールドと宛先フィールドで1対2マッピングを作成することはできません。

ソース・フィールド: 「リコンシリエーション・ステージング」データセットの一意のフィールド

宛先フィールド: 「OIM - ユーザー」データセットのUser IDフィールドおよび「OIM - アカウント」データセットのIDフィールド

このマッピングはサポートされていません。かわりに、「リコンシリエーション・ステージング」データセットの一意のフィールドとUser IDフィールド(「OIM - ユーザー」データセット)またはIDフィールド(「OIM - アカウント」データセット)の間の1対1のマッピングを作成する必要があります。

- 「プロビジョニング・ステージング」データセットのすべてのフィールドは、「OIM - ユーザー」データセットおよび「OIM - アカウント」データセットの対応するフィールドにマップしてください。

- ソース・フィールドまたは宛先フィールドとして「OIM - ユーザー」データセットのフィールドを指定したマッピングを作成すると、「OIM - ユーザー」データセットのフィールド・リストの表示はそのマッピングの作成時の位置(展開または最小化)で固定されます。「OIM - ユーザー」データセットの固定表示を解除して矢印アイコンを使用可能にするには、ソース・フィールドまたは宛先フィールドとして「OIM - ユーザー」データセットのフィールドを指定したマッピングをすべて削除する必要があります。

- 変換フィールドの入力フィールドの1つとしてリテラル・フィールドを使用できます。「リテラル」オプションを選択した場合は、そのフィールドに値を入力する必要があります。このオプションの選択後は、リテラル・フィールドを空白にしないでください。

変換マッピングの作成に関する制限事項は、第21.2.4.3項「「ステップ3: コネクタ構成の変更」ページ」を参照してください。

- 一致のみ: 一致のみのマッピングの宛先フィールドとしてフィールドを使用する場合は、このチェック・ボックスを選択します。すでに説明したように、次のタイプの一致のみのマッピングを作成できます。

注意:

親と子の両方のデータセットで一致のみのマッピングを作成する必要があります。

- リコンシリエーション・ルールを作成するには、「リコンシリエーション・ステージング」データセットのフィールドと「OIM - ユーザー」データセットのフィールド間で一致のみのマッピングを作成します。各マッピングがリコンシリエーション・ルールの要素を表します。子データセットがある場合は、一致のみのマッピングの入力フィールドとなる「リコンシリエーション・ステージング」データセットのフィールドの名前がリコンシリエーション・ステージングの子データセットで使用されていないことを確認してください。

- リコンシリエーション一致のキー・フィールドを指定するには、「リコンシリエーション・ステージング」データセットの一意のフィールドと「OIM - アカウント」データセットの「ID」フィールドの間に一致のみのマッピングを作成します。IDフィールドに加えて、「OIM - アカウント」データセットの他のフィールドを「リコンシリエーション・ステージング」データセットの対応するフィールドに(一致のみで)マップして、リコンシリエーション一致のコンポジット・キー・フィールドを作成できます。

注意:

一致のみのマッピングで使用された「リコンシリエーション・ステージング」フィールドの名前がリコンシリエーション・ステージングの子データセットのフィールド名として再利用されると、リコンシリエーション実行時に一致が行われません。

この既知の問題については、コネクタ構成の変更ページの項で説明しています。

- エンドツーエンド・マッピングの作成: フィールドを追加している場合に、フィールドの追加先のデータセットの右側に表示されるすべてのデータセットにも同じフィールドを追加するには、このチェック・ボックスを選択します。

- 複数値フィールド: 子データセットを追加する場合は、このチェック・ボックスを選択します。このチェック・ボックスを選択すると、「フィールド名」フィールドで指定する名前が子データセットの名前として使用されます。

注意:

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」チェック・ボックスを選択した場合、このチェック・ボックス(選択または選択解除の状態)は無視されます。これは、信頼できるソース・リコンシリエーションでは、複数値(子)データのリコンシリエーションがサポートされていないためです。

- データ型: フィールドのデータ型を選択します。
メタデータの検出後は、「リコンシリエーション・ステージング」および「OIM - アカウント」データセットのすべてのフィールドにStringデータ型がデフォルトで適用されます。状況によっては、「データ型」リストを使用して各フィールドの実際のデータ型を指定する必要があります。

- 長さ: フィールドの文字の長さを指定します。

- 必須: フィールドに値が常に入力されるようにするには、このチェック・ボックスを選択します。

- 暗号化: フィールドの値を暗号化形式でOracle Identity Managerデータベースに格納する必要がある場合は、このチェック・ボックスを選択します。

- パスワード・フィールド: フィールドの値をプロセス・フォームで暗号化する必要がある場合は、このチェック・ボックスを選択します。このチェック・ボックスを選択したフィールドの値は、アスタリスク(*)としてプロセス・フォームに表示されます。

注意:

「暗号化」および「パスワード・フィールド」チェック・ボックスを選択する場合は、順守する必要のあるガイドラインについて第21.5.3.3項「パスワード型フィールド」を参照してください。

- 参照フィールド: フィールドを参照フィールドにする場合は、このチェック・ボックスを選択します。

3. 「続行」をクリックします。

4. 「ステップ1: フィールド情報」ページで「参照フィールド」チェック・ボックスを選択すると、「ステップ2: 参照プロパティ」ページが表示されます。このページでは、表21-4に記載されている参照プロパティの任意の組合せの値を選択および指定できます。

表21-4 参照プロパティ

参照プロパティ

値

列名

「プロパティ値」フィールドに、参照ウィンドウでの表示が必要な値を格納するデータベース列の名前を入力します。必要に応じて、複数のデータベース列名をカンマで区切って入力できます。

注意: 「参照列名」プロパティを選択する場合は、この「列名」プロパティも選択する必要があります(「参照列名」プロパティについてはこの表で後述します)。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

次のSQLクエリを使用すると、「列名」および「参照列名」プロパティの使用方法を示すことができます。

SELECT USR_FIRST_NAME, USR_LOGIN, USR_LAST_NAME FROM USR

この2つのプロパティの値を次のように設定したとします。

- 列名: USR_FIRST_NAME, USR_LAST_NAME

- 参照列名: USR_LOGIN

このユーザーがUSR_FIRST_NAME, USR_LAST_NAMEの特定の組合せを参照ウィンドウから選択すると、対応するUSR_LOGINの値がデータベースに格納されます。

列見出し

「プロパティ値」フィールドに、参照ウィンドウでの表示が必要な列ヘッダーの名前を入力します。参照ウィンドウに複数の列を表示する場合は、カンマで区切った複数の列見出しを入力します(例: 組織名,組織ステータス)。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

列幅

「プロパティ値」フィールドに、参照ウィンドウでの表示が必要な列の文字幅を入力します。この値は、データ値を抽出して参照フィールドに移入するための基礎となるフィールドまたは列の最大長と同じにする必要があります。

参照ウィンドウに複数の列を表示する場合は、カンマで区切った複数の列幅を入力します。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

参照問合せ

「参照問合せ」プロパティの値を指定するには、次の手順を実行します。

1. 「プロパティ値」フィールドに、(WHERE句を指定せずに)SQL問合せを入力します。この問合せは、ユーザーが参照フィールドをダブルクリックすると実行され、参照ウィンドウに表示されるデータ列に値が移入されます。

2. 「送信」をクリックします。

3. 「ステップ2: 検証の追加」ページで次のリストから値を選択し、ステップ1で指定したSELECT文のWHERE句を作成します。
- フィルタ列

- ソース

- フィールド名

選択した値によって、WHERE句が次のように作成されます。

WHERE Filter_Column=Source.Field_Name

4. 「保存」をクリックします。

問合せから戻されるデータを正しく表示するには、lookupfield.headerプロパティをxlWebAdmin_locale.propertiesファイルに追加する必要があります。

たとえば、次のSQL問合せについて考えます。

SELECT usr_status FROM usr

この問合せから戻されるデータを表示するには、xlWebAdmin_locale.propertiesファイルに次のエントリを追加する必要があります。

lookupfield.header.users.status=User Status

指定した問合せのxlWebAdmin_locale.propertiesファイルにlookupfield.headerプロパティが含まれていない場合は、対応する「参照」アイコンをクリックすると、管理およびユーザー・コンソールに参照ウィンドウが表示されます。

lookupfield.headerプロパティの構文は次のとおりです。

lookupfield.header.column_code=display value

このエントリのcolumn_codeの部分には小文字を使用し、空白はアンダースコア文字(_)に置き換える必要があります。

デフォルトでは、参照フィールドの列ヘッダーとして次のエントリをxlWebAdmin_locale.propertiesファイルで使用できます。

lookupfield.header.lookup_definition.lookup_code_information
.code_key=Value
lookupfield.header.lookup_definition.lookup_code_information
.decode=Description
lookupfield.header.users.manager_login=User ID
lookupfield.header.organizations.organization_name=Name
lookupfield.header.it_resources.key=Key
lookupfield.header.it_resources.name=Instance Name
lookupfield.header.users.user_id=User ID
lookupfield.header.users.last_name=Last Name
lookupfield.header.users.first_name=First Name
lookupfield.header.groups.group_name=Group Name
lookupfield.header.objects.name=Resource Name
lookupfield.header.access_policies.name=Access Policy Name

参照コード

「プロパティ値」フィールドに、参照定義コード名を入力します。このコードは、参照値や参照値の選択時に参照フィールドに表示されるテキストなど、参照フィールドに関する全情報を生成します。参照定義コードの分類タイプは参照タイプである必要があります(つまり、「参照定義」フォームで参照タイプオプションを選択する必要があります)。

参照コードを入力するには、「参照定義」フォームを開いて必須コードの問合せを実行し、そのコードを「プロパティ値」フィールドにコピーします。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

注意:

「参照コード」プロパティを使用すると、「列見出し」、「列名」、「列幅」、「参照列名」、「名前」、「参照問合せ」の各プロパティの組合せを置き換えることができます。さらに、「参照コード」プロパティで指定されている情報は、これらの5つの参照プロパティで設定されている値よりも優先されます。

参照フィールド・リコンシリエーションを実行する場合は、参照コードへの移入を行うスケジュール済タスクを作成します。

参照列名

「プロパティ値」フィールドに、参照ウィンドウでユーザーが選択した「列名」値に対応する値を格納するデータベース列の名前を入力します。必要に応じて、複数のデータベース列名をカンマで区切って入力できます。

注意: 「列名」プロパティを選択する場合は、この「参照列名」プロパティも選択する必要があります。これらの2つのプロパティの使用方法については、この表の「参照列名」行を参照してください。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

オートコンプリート

「プロパティ値」フィールドにTrueを入力すると、ユーザーは選択する値の最初の数文字を入力して参照フィールドをダブルクリックすることにより、参照ウィンドウに表示される値をフィルタ処理できます。このアクションにより、ユーザーが入力した文字で始まる参照値のみが参照ウィンドウに表示されます。たとえば、「State」参照フィールドでは、ユーザーはNewと入力できます。ユーザーが「State」参照フィールドをダブルクリックすると、Newで始まる州(New Hampshire、New Jersey、New Mexico、New Yorkなど)のみが参照ウィンドウに表示されます。

参照フィールド値表示のユーザーによるフィルタ処理を許可しない場合は、「プロパティ値」にFalseを入力します。

「オートコンプリート」プロパティのデフォルト値はFalseです。

「プロパティ値」フィールドに値を入力したら、「送信」をクリックします。

「ステップ2: 参照プロパティ」ページの表に表示されているプロパティの値を編集するには、そのプロパティの編集オプションを選択して「編集」をクリックします。この表に表示されているプロパティを削除するには、そのプロパティの削除オプションを選択して「削除」をクリックします。

参照フィールドのプロパティの指定が完了したら、「続行」をクリックします。

5. 「ステップ1: フィールド情報」ページの「アクションのマッピング」リストで変換オプションを選択すると、「ステップ3: マッピング」ページが表示されます。このページを使用して、追加するフィールドの入力データに対して実行する変換機能を定義します。実行する手順は、前のページで選択した変換プロバイダのオプション(連結、翻訳またはカスタム変換プロバイダ)によって異なります。
事前定義済の変換プロバイダ(変換、連結または翻訳)を選択する場合、事前定義済の変換プロバイダのパラメータ値の指定方法の詳細は、「変換プロバイダ」を参照してください。この項でも、ユーザー・アカウント・ステータスのリコンシリエーションの構成について詳しく説明しています。

ユーザー・アカウント・ステータス情報のリコンシリエーションを構成する場合は、翻訳変換プロバイダを使用する必要があります。この手順は、第19.5.2項「翻訳変換プロバイダ」で説明しています。

変換プロバイダの値の指定が完了したら、「続行」をクリックします。

6. 必要な場合は、フィールドの検証チェックを選択して「追加」をクリックします。 つまり、使用する検証プロバイダを選択します。
このリストの検証オプションは、事前定義された検証プロバイダと作成したカスタム検証プロバイダに基づいて表示されます。

7. 「続行」をクリックし、「閉じる」をクリックします。

8. 「ステップ3: コネクタ構成の変更」ページで他のアクションを実行しない場合は、このページの上部にある「閉じる」ボタンをクリックします。この「閉じる」ボタンをクリックするには、その前の手順を実行しておく必要があります。

21.2.4.3.2 データセットのフィールドの削除

データセットからフィールドを削除するには、次の手順を実行します。

1. そのフィールドの「削除」アイコンをクリックします。

2. 「ステップ3: コネクタ構成の変更」ページで他のアクションを実行しない場合は、このページの上部にある「閉じる」ボタンをクリックします。

21.2.4.3.3 フィールド間のマッピングの削除

マッピングを削除するには、次の手順を実行します。

1. 削除するマッピングの宛先フィールドで編集アイコンをクリックします。

注意:

この宛先フィールドが別のマッピングのソース・フィールドである場合、そのマッピングは削除されません。

2. 「ステップ1: フィールド情報」ページの「変換」リストから「マッピングの削除」を選択します。

3. 「続行」をクリックします。

4. 最後のページで「閉じる」をクリックします。

5. 「ステップ3: コネクタ構成の変更」ページで他のアクションを実行しない場合は、このページの上部にある「閉じる」ボタンをクリックします。

21.2.4.3.4 子データセットの削除

子データセットを削除するには、次の手順を実行します。

1. そのデータセットの「削除」アイコンをクリックします。

2. 「ステップ3: コネクタ構成の変更」ページで他のアクションを実行しない場合は、このページの上部にある「閉じる」ボタンをクリックします。

図21-6は、「OIM - アカウント」データセットおよび「プロビジョニング・ステージング」データセットにMyFieldフィールドを追加した後の「ステップ3: コネクタ構成の指定」ページを示しています。

図21-6 フィールド追加後の「ステップ3: コネクタ構成の変更」ページ

21.2.4.4 「ステップ4: コネクタ・フォーム名の検証」ページ

このページを使用して、「OIM - アカウント」データセットとその子データセットに対応するプロセス・フォームのフォーム名を指定します。

注意:

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択した場合、「OIM - アカウント」データセットとその子データセットは作成されません。そのため、「信頼できるソース・リコンシリエーション」オプションを選択すると、このページは表示されません。

汎用テクノロジ・コネクタの作成に必要な情報をすべて送信すると、汎用テクノロジ・コネクタ・フレームワークによって特定のオブジェクトが自動的に作成されます。自動作成されるオブジェクトの例として、「OIM - アカウント」データセットに対応する親と子のプロセス・フォームがあります。特定のOracle Identity Managerインストールの各プロセス・フォームは、一意の名前を必要とします。

関連項目:

第18.4項「汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト」

「ステップ4: コネクタ・フォーム名の検証」ページでは、汎用テクノロジ・コネクタ・フレームワークにより、対応するデータセットの名前に基づくプロセス・フォームのデフォルト名が表示されます。これらのフォーム名を検証し、必要な場合は、このOracle Identity Managerインストールで一意になるようにフォーム名を変更します。フォーム名の変更には、ASCII文字のみを使用する必要があります。一意でないフォーム名や非ASCII文字を含む名前を指定すると、エラー・メッセージが表示されます。

注意:

このページに戻ることはできません。そのため、指定したフォーム名が要件をすべて満たしていることを確認してから「続行」をクリックしてください。

フォーム名の指定が完了したら、「続行」をクリックします。

「続行」をクリックするかわりに、「戻る」をクリックして「ステップ2: パラメータ値の指定」ページに戻ることもできます。ただし、このページで変更を加えて「続行」ボタンをクリックしても、メタデータの検出は行われません。これは、このページの最初のパススルーで実行したデータセット構造とマッピングのカスタマイズが上書きされないようにするためです。「ステップ3: コネクタ構成の変更」ページでは、フィールドおよびマッピングを手動で追加または編集できます。

図21-7は、「ステップ4: コネクタ・フォーム名の検証」ページを示しており、ここには第21.2.4.1項「ステップ1: 基本情報の指定」ページと第21.2.4.2項「ステップ2: パラメータ値の指定」ページの最後にリストされるエントリ、および第21.2.4.3項「ステップ3: コネクタ構成の変更」の最後の変更内容が記載されています。

図21-7 「ステップ4: コネクタ・フォーム名の検証」ページ

21.2.4.5 「ステップ5: コネクタ情報の検証」ページ

このページを使用して、この時点までに指定した汎用テクノロジ・コネクタの作成に関する情報を確認します。これ以降は、既述ページで許可されている変更についてページごとに説明します。

- 「ステップ1: 基本情報の指定」ページ
「表示」リンクまたは「戻る」ボタンを使用すると、「ステップ1: 基本情報の指定」ページで指定した情報を再度表示して確認できます。この情報を変更すると新しい汎用テクノロジ・コネクタを作成することになるため、このページに表示される情報は変更できません。

- 「ステップ2: パラメータ値の指定」ページ
「変更」リンクまたは「戻る」ボタンを使用すると、このページを再度表示できます。このページではパラメータ値を変更できます。ただし、変更した値を送信しても、メタデータの検出は行われません。これは、このページの最初のパススルーで実行したデータセット構造とマッピングのカスタマイズが上書きされないようにするためです。「ステップ3: コネクタ構成の変更」ページでは、フィールドおよびマッピングを手動で追加または編集できます。

- 「ステップ3: コネクタ構成の変更」ページ
「変更」リンクを使用すると、このページを再度表示してフィールドやマッピングを追加または編集できます。

- 「ステップ4: コネクタ・フォーム名の検証」ページ
このページに戻ることはできません。

「ステップ5: コネクタ情報の検証」ページに表示されている情報をすべて検証したら、「作成」をクリックします。

この段階で、汎用テクノロジ・コネクタ・フレームワークにより、指定した情報に基づいてすべての標準コネクタ・オブジェクトが作成されます。これらのオブジェクトのリストには、自動的に作成され、Oracle Identity ManagerにインポートされるコネクタXMLファイルが含まれます。フォーム名を除き、コネクタ・オブジェクトの名前はGTCname_GTCの形式になります。

たとえば、作成する汎用テクノロジ・コネクタの名前としてDB_connを指定すると、すべてのコネクタ・オブジェクト(フォーム以外)の名前はDB_CONN_GTCとなります。

関連項目:

第18.4項「汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト」

プロセスの最後に、コネクタが正常に作成されたことを通知するメッセージがこのページに表示されます。

注意:

作成プロセスに失敗しても、作成されるオブジェクトは自動的に削除されません。この点については、第22.1.1項「作成の問題」にも記載されています。

作成プロセスに関連するエラー・メッセージのリストについては、第22.2.3項「コネクタ作成中のエラー」を参照してください。

図21-8は、「ステップ5: コネクタ情報の検証」ページの最初のセクションを示しており、ここには、第21.2.4.1項「ステップ1: 基本情報の指定」ページと第21.2.4.2項「ステップ2: パラメータ値の指定」ページの最後にリストされるエントリ、および第21.2.4.3項「ステップ3: コネクタ構成の変更」ページの最後の変更内容が記載されています。

図21-8 「ステップ5: コネクタ情報の検証」ページの最初のセクション

図21-9は、「ステップ5: コネクタ情報の検証」ページの2番目のセクションを示しており、ここには、第21.2.4.1項「ステップ1: 基本情報の指定」ページと第21.2.4.2項「ステップ2: パラメータ値の指定」ページの最後にリストされるエントリ、および第21.2.4.3項「ステップ3: コネクタ構成の変更」ページの最後の変更内容が記載されています。

図21-9 「ステップ5: コネクタ情報の検証」ページの2番目のセクション

21.2.5 リコンシリエーションの構成

注意:

「ステップ1: 基本情報の指定」ページで「プロビジョニング」オプションのみを選択した場合は、リコンシリエーションの構成が不要のため、このセクションをスキップできます。

リコンシリエーションのスケジュール済タスクは、汎用テクノロジ・コネクタの作成時に自動的に作成されます。このスケジュール済タスクを構成して実行するには、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのスケジュール済タスクの作成と管理の手順に従います。

注意:

スケジュール済タスクの名前は次の形式になります。

GTC_Name_GTC

たとえば、汎用テクノロジ・コネクタの名前がWebConnである場合、スケジュール済タスクの名前はWebConn_GTCとなります。

21.2.6 プロビジョニングの構成

注意:

「ステップ1: 基本情報の指定」ページで「リコンシリエーション」オプションのみを選択した場合は、プロビジョニングの構成が不要のため、この項をスキップできます。

プロセス定義は、汎用テクノロジ・コネクタの作成時に自動的に作成されるオブジェクトの1つです。プロセス定義の名前は次の形式になります。

GTC_name_GTC

たとえば、汎用テクノロジ・コネクタの名前がWebConnである場合、プロセス定義の名前はWebConn_GTCとなります。

このプロセス定義を構成するプロセス・タスクには、次の2種類があります。

- システム定義プロセス・タスク
システム定義プロセス・タスクは、新規に作成されるすべてのプロセス定義にデフォルトで含まれます。

- プロビジョニング固有のプロセス・タスク
プロビジョニング固有のプロセス・タスクは、「リコンシリエーション」オプションの選択に関係なく、「ステップ1: 基本情報の指定」ページで「プロビジョニング」オプションを選択した場合にのみ、汎用テクノロジ・コネクタのプロセス定義に含まれます。

次に、プロビジョニング固有のプロセス・タスクを示します。

- ユーザーの作成

- ユーザーの削除

- ユーザーの有効化

- ユーザーの無効化

- 更新されたField_Name(このタスクはIDフィールドを除く、「OIM - アカウント」データセットの各フィールドに対して作成されます。)

- 「OIM - ユーザー」データセットと「プロビジョニング・ステージング」データセットのフィールド間で作成されたマッピングでは、次のプロセス・タスクが作成されます。

- User_data_set_field_nameの変更

- Provisioning_Staging_field_nameの編集

たとえば、「OIM - ユーザー」データセットの「姓」フィールドと「プロビジョニング・ステージング」データセットの「LName」フィールドの間のマッピングを作成したとします。プロビジョニング固有のその他のプロセス・タスクとともに、次のプロセス・タスクが自動的に作成されます。

- 姓の変更

- LNameの編集

さらに、次のプロビジョニング固有のプロセス・タスクが「OIM - アカウント」データセットの子データセットごとに作成されます。

- 子表のChild_Form_Name行の挿入

- 子表のChild_Form_Name行の更新

- 子表のChild_Form_Name行の削除

すべてのプロビジョニング固有のプロセス・タスクには、次のデフォルト割当てがあります。

- ターゲット・タイプ: Group User With Highest Priority

- グループ: SYSTEM ADMINISTRATORS

- ユーザー: XELSYSADM

これらのデフォルトの割当ては、必要に応じて、「プロセス・タスクの変更」の手順に従って変更できます。

21.2.7 ロギングの有効化

注意:

このステップはオプションです。この項で説明した手順は、汎用テクノロジ・コネクタのロギングを有効化する場合にのみ実行してください。

Oracle Identity Managerのロギングの有効化の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのシステム・ロギングの有効化に関する説明を参照してください。

21.3 汎用テクノロジ・コネクタの管理

汎用テクノロジ・コネクタのフレームワークには、汎用テクノロジ・コネクタを変更できる機能が用意されています。また、デプロイメント・マネージャを使用して、汎用テクノロジ・コネクタのエクスポートまたはインポートが可能です。

この項は次のトピックで構成されています。

- 汎用テクノロジ・コネクタの変更

- 汎用テクノロジ・コネクタのエクスポート

- 汎用テクノロジ・コネクタのインポート

21.3.1 汎用テクノロジ・コネクタの変更

注意:

汎用テクノロジ・コネクタの作成プロセスの最後に自動的に作成されるコネクタ・オブジェクトは、Design Consoleを使用して変更できます。Design Consoleでこの汎用テクノロジ・コネクタのコネクタ・オブジェクトがカスタマイズされている場合に、「汎用テクノロジ・コネクタの管理」機能を使用して汎用テクノロジ・コネクタを変更すると、Design Consoleを使用して行われたすべてのカスタマイズが上書きされます。そのため、次のガイドラインのいずれかを適用することをお薦めします。

- Design Consoleを使用して、汎用テクノロジ・コネクタ・オブジェクトを変更しないでください。
ITリソースについてはこのガイドラインは適用されません。ITリソースのパラメータは、Design Consoleを使用して変更できます。ただし、変更を有効にするには、ITリソース・パラメータの変更前または後にキャッシュをパージする必要があります。PurgeCacheユーティリティの実行方法の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのキャッシュのパージに関する説明を参照してください。

- Design Consoleを使用して汎用テクノロジ・コネクタ・オブジェクトを変更する場合、汎用テクノロジ・コネクタの変更に「汎用テクノロジ・コネクタの管理」機能を使用しないでください。

フレームワークによって自動的に作成されるコネクタ・オブジェクトの詳細は、第18.4項「汎用テクノロジ・コネクタ・フレームワークで作成されるコネクタ・オブジェクト」を参照してください。

また、同時に変更できるコネクタは1つのみです。同じコンピュータ上で、2つの異なるコネクタに「変更」ページを同時に使用しようとすると、「変更」機能が正しく動作しません。

これらの点については、付録22「汎用テクノロジ・コネクタのトラブルシューティング」を参照してください。

汎用テクノロジ・コネクタを変更するには、次の手順を実行します。

1. 管理およびユーザー・コンソールにログインします。

2. 「拡張」をクリックします。

3. 「構成」の下で、「汎用コネクタの管理」をクリックします。

4. 変更するコネクタを検索します。検索を容易にするため、このページで提供される検索条件を組み合せることができます。また、このOracle Identity Managerのインストールで作成されたすべての汎用テクノロジ・コネクタを表示するには、検索条件を指定せずに「コネクタの検索」をクリックします。

5. 表示される結果から、変更する汎用テクノロジ・コネクタをクリックします。

6. 「パラメータの編集」をクリックします。コネクタ作成プロセスの「ステップ2: パラメータ値の指定」ページが表示されます。これ以降は、「ステップ2」の項に記載されている手順に従ってください。

注意:

この手順は、既存の汎用テクノロジ・コネクタを変更する際に自動のメタデータの検出が行われない点のみ、汎用テクノロジ・コネクタ作成の手順とは異なります。

注意:

「OIM - アカウント」データセットまたはその子データセットのフィールド属性を変更する場合、これらのデータセットについて、Oracle Identity Managerデータベース・エントリで対応する変更は加えられません。また、エラー・メッセージも表示されません。

そのため、Oracle Identity Managerのこのリリースに対しては、「OIM - アカウント」データセットのフィールドや子データセットを変更しないことをお薦めします。

この点については、第22.2.2項「「ステップ3: コネクタ構成の変更」ページ」にも記載されています。

21.3.2 汎用テクノロジ・コネクタのエクスポート

汎用テクノロジ・コネクタのXMLファイルはエクスポートできます。このXMLファイルには、コネクタを構成するすべてのオブジェクトの定義が含まれています。新しくOracle Identity Managerをインストールする際に同じ汎用テクノロジ・コネクタを使用する場合、まずXMLファイルをエクスポートし、これを新しいOracle Identity Managerインストールにインポートします。

コネクタのXMLファイルをエクスポートするには、次の手順を実行します。

1. Oracle Identity Manager拡張管理で、「システム管理」の下の「デプロイメント・マネージャ・ファイルのエクスポート」をクリックします。

2. デプロイメント・マネージャ・ウィザードの最初のページで、リストから「汎用コネクタ」を選択し、「検索」をクリックします。

3. 検索結果から、XMLファイルをエクスポートする汎用テクノロジ・コネクタを選択します。

4. 「子の選択」をクリックします。

5. 選択した汎用テクノロジ・コネクタに対して、エクスポートする子エンティティを選択し、「依存性の選択」をクリックします。

6. エクスポートする依存性を選択し、「確認」をクリックします。

7. ページに表示された要素がエクスポートの要件を満たしていることを確認したら、「エクスポート用に追加」をクリックします。

8. 「ウィザードを終了し、すべての選択を表示します」をクリックし、続いて「OK」をクリックします。

21.3.3 汎用テクノロジ・コネクタのインポート

汎用テクノロジ・コネクタを別のOracle Identity Managerのインストールにコピーするには、次の手順を実行します。

1. コネクタがカスタム・プロバイダを使用する場合、プロバイダ作成中に作成されたファイルをコピー先となるOracle Identity Managerインストール上の適切なディレクトリにコピーする必要があります。

関連項目:

これらのプロバイダ・ファイルおよびそのコピー先となるディレクトリの詳細は、第20章「汎用テクノロジ・コネクタ用カスタム・プロバイダの作成」を参照してください。

2. コピー元となるOracle Identity Managerインストール上で、コネクタXMLファイルをエクスポートします。

3. コピー先となるOracle Identity Managerインストール上で、コネクタXMLファイルをインポートします。

注意:

ステージング・サーバー上の汎用テクノロジ・コネクタおよびそれを構成するオブジェクト用に選択する名前は、本番サーバー上の既存のコネクタやオブジェクトの名前と競合しないようにする必要があります。

次のシナリオで、このガイドラインの順守が必要な理由を説明します。

ステージング・サーバー上で汎用テクノロジ・コネクタを作成し、このコネクタを本番サーバーにインポートするとします。ステージング・サーバー上で汎用テクノロジ・コネクタを作成する際、汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前がそのサーバー上で一意であることを確認します。同時に、これらの名前が本番サーバーのコネクタおよびコネクタ・オブジェクトの名前と同じではないことも確認する必要があります。

同じ名前がある場合は、コネクタXMLファイルをステージング・サーバーから本番サーバーへインポートする際、古いオブジェクトが新しいオブジェクトによって上書きされます。上書き処理中はメッセージが表示されないため、該当するコネクタが最終的に失敗します。

これについては、第22.2.1項「汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前」でも説明しています。

オブジェクトが上書きされたとき、正常に機能する状態に戻せるようにするには、コネクタXMLファイルをインポートする前に、インポート先のOracle Identity Managerデータベースのバックアップを取得する必要があります。

コネクタのXMLファイルをインポートするには、次のようにします。

1. Oracle Identity Manager拡張管理で、「システム管理」の下のデプロイメント管理ファイルのインポートをクリックします。ファイルを検索するダイアログ・ボックスが表示されます。

2. コネクタXMLファイルのコピー先ディレクトリから、このファイルを検索して開きます。

3. 「ファイルの追加」をクリックします。

4. 「次へ」→「次へ」→「スキップ」とクリックします。

5. 「選択内容の表示」をクリックします。
コネクタXMLファイルの内容が「インポート」ページに表示されます。複数のノードのある十字のアイコンが表示される場合があります。これらのノードは、冗長なOracle Identity Managerエンティティを示しています。コネクタXMLファイルをインポートする前に、ノードごとに右クリックし、「削除」を選択してこれらのエンティティを削除する必要があります。

6. 「インポート」をクリックします。コネクタのファイルがOracle Identity Managerにインポートされます。

コネクタXMLファイルをインポートした後、汎用テクノロジ・コネクタのランタイム・パラメータを更新する必要があります。

注意:

これらの値は、コネクタXMLファイルをエクスポートしても、そこにはコピーされません。

ランタイム・パラメータの値を更新するには、第21.5.7項「汎用テクノロジ・コネクタの変更」で説明する手順を実行してください。

21.4 カスタム・コネクタでの汎用接続プール・フレームワークの使用

カスタム・コネクタで、接続プーリングのニーズに対して汎用接続プール・フレームワーク(GCPとも呼ばれる)の使用を選択できます。

内部的に、汎用接続プール・フレームワークではOracleユニバーサル接続プール(UCP)をデフォルトの接続プーリング・メカニズムとして使用します。汎用接続プールをカスタム・コネクタで使用する基本的な手順は次のとおりです。

1. ResourceConnectionインタフェースの具体的な実装を指定します。
実装には、デフォルト・コンストラクタ(パラメータなし)も必要です。

2. ITResource定義で追加のフィールドを定義します。

3. 汎用接続プールを呼び出し、プールから接続を取得およびリリースします。

このセクションの内容は次のとおりです。

- ResourceConnectionインタフェースの具体的な実装の指定

- 追加のITResourceパラメータの定義

- プールからの接続の取得およびリリース

- サード・パーティ・プールの使用

- 例: ResourceConnectionの実装

21.4.1 ResourceConnectionインタフェースの具体的な実装の指定

接続プールでは、ResourceConnectionの具体的な実装を使用して、接続の作成とクローズ、およびターゲットへの接続の検証が行われます。そのため、この具体的な実装クラスがJavaTasksフォルダの下でjarファイルとして使用できることを確認する必要があります。

表21-5に、ResourceConnectionの主要メソッドの説明を示します。

表21-5 ResourceConnectionのメソッド

メソッド

説明

Create Connection

このメソッドは、(接続の初期数を作成するために)プールの初期化中、および必要に応じてプールのライフサイクル・イベントに対して呼び出されます。itResourceInfoMapという名前のハッシュマップを、このメソッドに対するITResource値を持つパラメータとして使用できます。

このメソッドは、ターゲットへの実際の物理接続であるResourceConnectionを返します。

Close Connection

このメソッドは、プールのライフサイクル・イベントの過程で接続をクローズする必要がある場合にプールによって呼び出されます。

Heartbeat

このメソッドは、ターゲットへの接続のTCPハートビート(またはTCPキープアライブ)を維持するために使用されます。このメソッドにより、接続がターゲット側からタイムアウトしないように、TCP接続が維持されます。

Validate

このメソッドは、接続がまだ有効であるかどうかを示すtrueまたはfalseを返します。

このメソッドは、「流用時の接続の検証」がtrueに設定されている場合、汎用接続プールによって呼び出されます。しばらくの間プール内にあった接続に対して呼び出されます。

このメソッドがfalseを返す場合、プールはその接続を破棄し、新規接続を作成してリクエスタに返します。

21.4.2 追加のITResourceパラメータの定義

表21-6に、適切な値を指定する必要があるその他のITResourceパラメータを示します。

表21-6 ITResourceパラメータ

フィールド

説明

サンプル値および注意

中止した接続のタイムアウト

中止した接続の接続タイムアウト(秒)。タイムアウトの経過後、接続は再要求されます。

900

接続待機タイムアウト

接続の確立を待機する時間(秒)。

60

非アクティブ接続タイムアウト

プール内のアイドル状態の非アクティブ接続の接続タイムアウト(秒)。注意: これらは流用された接続ではありません。

300

初期プール・サイズ

プール内の接続の初期数。

3

最大プール・サイズ

プールで作成できる接続の最大数。

30

最小プール・サイズ

プールで保持する必要がある接続の最小数。

2

貸出し時の接続の検証

接続を検証する必要があるかどうかを示します。詳細は、表21-5を参照してください。

trueまたはfalse

タイムアウト・チェック間隔

タイムアウト・プロパティをチェックする頻度(秒)。

30

プール・プリファレンス

優先されるプーリング・メカニズムを示します。デフォルトのプール実装はUCPです。

デフォルト(UCPの場合)。ネイティブ(ネイティブ実装の場合)

接続プーリングをサポート

プーリングがサポートされるかどうかを示します。プーリングがサポートされない場合、返される接続はプールされた接続ではありません。デフォルト(推奨)はtrueです。

trueまたはfalse

ターゲットで1つの接続のみをサポート

ターゲット・システムで一度に1つの接続のみがサポートされるかどうかを示します。trueに設定すると、他のプロパティに関係なく、次のプール・パラメータが使用されます。

- 最小プール・サイズ = 0

- 初期プール・サイズ = 0

- 最大プール・サイズ = 1

デフォルト(推奨)はfalseです。

ターゲットで1つの接続のみが処理される場合はtrue、それ以外の場合はfalse。

ResourceConnectionクラス定義

ResourceConnectionクラスの具体的な実装

com.oracle.oim.ad.ADResourceConnectionImpl

ネイティブ接続プール・クラス定義

GenericPoolを実装するネイティブ・プール・メカニズムのラッパー。「プール・プリファレンス」がネイティブに設定されている場合にのみ値を設定します。

com.oracle.oim.ad.ADNativePool

プール除外フィールド

接続の作成に不要なフィールドのカンマ区切りのリスト。指定したいずれかのフィールドが更新された場合には、GCPプールはリフレッシュされません。

注意: このリストのフィールドは、createConnectionメソッドへのHashMapパラメータの一部として使用できません。

Recon TimeStamp,ADSync Enabled

次の点に注意してください。

- Design ConsoleからITResourceパラメータを更新しても、プールはリフレッシュされません。管理およびユーザー・コンソール、またはAPIを介して値を更新してください。

- プールが使用されているときは値を更新しないでください。

21.4.3 プールからの接続の取得およびリリース

汎用接続プールのコンシューマは、ConnectionServiceを呼び出して、ターゲットへのプールされた接続を取得し、プールに接続を戻すことができます。

このサンプル・コードは、ITResource名に基づいてプールから接続を取得し、戻します。

import com.oracle.oim.gcp.exceptions.ConnectionServiceException;
import com.oracle.oim.gcp.pool.ConnectionService;
import com.oracle.oim.gcp.resourceconnection.ResourceConnection;

public class ConnectionPoolClient {

public void testConnection(String itResName)
{
try{
//Request for connection from the connection pool
ConnectionService service = new ConnectionService();
ResourceConnection myConnection =
service.getConnection(itResName);

//"myConnection" is the connection
//use the connection...

//Release connection back to the connection pool
//Connections should always be returned this way.

service.releaseConnection(myConnection);
}
catch(ConnectionServiceException e)
{
//handle
}
}

ITResourceキーを使用して、ターゲットへの接続をリクエストすることもできます。次に例を示します。

ConnectionService service = new ConnectionService();
ResourceConnection myConnection = service.getConnection(itResourceKey);

21.4.4 サード・パーティ・プールの使用

この項で前述したように、カスタム・コネクタにいずれかのサード・パーティ・プールを使用できます。ただし、前述の手順に加えて、サード・パーティ・プールのラッパーとしてGenericPoolインタフェースの具体的な実装を指定する必要があります。

注意:

カスタム・コネクタでUCPプールを使用しない場合、カスタム・コネクタではネイティブ・オプションでGCPの使用を選択できますが、この選択に大きな利点はありません。ネイティブ・プール・プリファレンスでは、プールの維持と実装はカスタム・コネクタによって行われます。

表21-7に、GenericPoolインタフェースの呼び出されるメソッドを示します。

表21-7 GenericPoolインタフェースのメソッド

メソッド

目的

initializePool(PoolConfiguration poolConfig)

プールを初期化します。PoolConfigurationデータ・オブジェクトには、すべてのプール関連のパラメータが含まれます。

borrowConnectionFromPool()

接続をリクエストします。

returnConnectionToPool(ResourceConnection resConn)

接続をプールへ返します。

refreshPool(PoolConfiguration newPoolConfig)

更新された値でプールをリフレッシュします。

destroyPool()

プールを削除します(ITResourceが削除された場合など)。

21.4.5 例: ResourceConnectionの実装

次の例は、ResourceConnectionインタフェースの実装を示しています。主要メソッドは強調表示されています。

例21-1 ResourceConnection実装の例

/**
* Sample implementation for Socket Connections:
*/
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;

import com.oracle.oim.gcp.exceptions.ResourceConnectionCloseException;
import com.oracle.oim.gcp.exceptions.ResourceConnectionCreateException;
import com.oracle.oim.gcp.exceptions.ResourceConnectionValidationxception;
import com.oracle.oim.gcp.resourceconnection.ResourceConnection;

public class SocketResourceConnectionImpl extends Socket implements ResourceConnection {
public SocketResourceConnectionImpl() {
super();

}
/**
* Sample: Concrete implementation for closing a socket connection
*/
public void closeConnection() throws ResourceConnectionCloseException{
if(!this.isClosed()){
try {
this.close();
} catch (IOException e) {
throw new
ResourceConnectionCloseException("[Client
ResourceConnection implementation]
Failed to close socket connection! ");
}
}
}
/**
* Sample : Concrete implementation for creating a socket connection.
* The return value is the actual physical socket connection
*
*/
public ResourceConnection createConnection(HashMap itResInfoMap)
throws ResourceConnectionCreateException {
ResourceConnection r = null;
SocketResourceConnectionImpl i = new
SocketResourceConnectionImpl();

try {
//HashMap has all ITResource related information that is needed
//for connecting to target.
String serverAddress= ((String) itResInfoMap.get
("Server Address")).trim();
//utility method getIntValue returns an int for a String

int port =                        getIntValue(((String)itResInfoMap.get("Port")).trim());

System.out.println("Connecting to Socket with IP Address "
+ serverAddress+" at port "+ port);
InetSocketAddress inet = new                         InetSocketAddress(serverAddress,port);
i.connect(inet);
if(!i.isConnected()){
throw new ResourceConnectionCreateException
(" Failed to create socket: connection failure");
}
r = (ResourceConnection)i;
} catch (UnknownHostException e) {
throw new ResourceConnectionCreateException("
[Client ResourceConnection implementation]
Failed to create socket connection!", e);
} catch (IOException e) {
throw new ResourceConnectionCreateException("
[Client ResourceConnection implementation]
Failed to create socket connection! ",e);
}

return r;
}
/**
* Sample : Concrete implementation for heartbeat of a socket connection
*/
public void heartbeat() throws ResourceConnectionValidationxception {
try {
this.setKeepAlive(true);

} catch (SocketException e) {
throw new
ResourceConnectionValidationxception
("[Client ResourceConnection implementation]
Failed to set heartbeat ");
}

}
/**
* Sample: Concrete implementation for validating connection
*/
public boolean isValid() {
if(this.isBound()){

return true;

}else{
return false;
}
}
}

21.5 ベスト・プラクティス

この項は次のトピックで構成されています。

- 「基本情報の指定」ページの使用

- 「パラメータ値の指定」ページの使用

- 「コネクタ構成の変更」ページの使用

- 共有ドライブ・リコンシリエーション・トランスポート・プロバイダの使用

- カスタム・プロバイダの使用

- コネクタ・オブジェクトの使用

- 汎用テクノロジ・コネクタの変更

21.5.1 「基本情報の指定」ページの使用

汎用テクノロジ・コネクタの名前を指定する場合は次のガイドラインを適用します。

- サマリー:
名前にはASCII文字のみを使用するようにします。アンダースコア(_)文字は使用できますが、それ以外の非ASCII文字は名前に使用しないでください。

説明:

コネクタ作成プロセスの終了時に自動的に作成されるコネクタ・オブジェクトの大部分では、オブジェクト自体の名前の一部に汎用テクノロジ・コネクタの名前が使用されます。たとえば、汎用テクノロジ・コネクタの名前がWebConnである場合、スケジュール済タスクの名前はWebConn_GTCとなります。

Oracle Identity Managerデータベースでは、非ASCII文字の名前が指定されたオブジェクトを格納するプロビジョニングは実行されません。そのため、汎用テクノロジ・コネクタの名前を指定するときに非ASCII文字を入力すると、エラー・メッセージが表示されます。

- Oracle Identity Managerインストールで使用されているコネクタまたはコネクタ・オブジェクトの名前と同じ名前を指定しないでください。

- ステージング・サーバー上で汎用テクノロジ・コネクタを作成して本番サーバーに移動する場合は、汎用テクノロジ・コネクタの名前が本番サーバー上の既存のコネクタまたはコネクタ・オブジェクトの名前と競合しないようにしてください。

- ステージング・サーバー上に作成した汎用テクノロジ・コネクタを本番サーバーにインポートする前には、宛先のOracle Identity Managerデータベースのバックアップを作成して、コネクタ・オブジェクトが上書きされた場合に作業状態に戻れるようにしてください。

- 共有ドライブ・トランスポート・プロバイダを選択する場合は、CSVフォーマット・プロバイダを選択する必要があります。

- SPMLプロビジョニング・フォーマット・プロバイダを選択する場合は、Webサービス・プロビジョニング・トランスポート・プロバイダを選択する必要があります。

- 共有ドライブ・リコンシリエーション・トランスポート・プロバイダを選択する場合は、リコンシリエーション用にターゲット・システムから提供される親データおよび子データのファイルにおいて、少なくとも最初の2行に所定のフォーマットのデータがあることを確認してください。データの所定のフォーマットの詳細は、第19.1項「共有ドライブ・リコンシリエーション・トランスポート・プロバイダ」で説明しています。

- 共有ドライブ・リコンシリエーション・トランスポート・プロバイダを選択する場合は、リコンシリエーションの開始前に、ステージング・ディレクトリおよびアーカイブ・ディレクトリに必要な権限が設定されていることを確認してください。必要な権限の詳細は、「ステージング・ディレクトリとアーカイブ・ディレクトリに設定する権限」で説明しています。

- 一度に複数の汎用テクノロジ・コネクタを作成しようとしないでください。同じOracle Identity Managerインストールの管理およびユーザー・コンソールで、別のセッションから作成する場合も同様です。

21.5.2 「パラメータ値の指定」ページの使用

ここでは、「ステップ2: パラメータ値の指定」ページで指定する入力に関する既知の問題について説明します。

- サマリー:
共有ドライブ・リコンシリエーション・トランスポート・プロバイダを使用する場合、次の点に注意します。

- ステージング・ディレクトリとアーカイブ・ディレクトリに同じパスを指定しないでください。両方のディレクトリに同じパスを指定すると、アーカイブ・ディレクトリの既存のファイルが削除されます。

- ステージング・ディレクトリ内のファイルの名前が、アーカイブ・ディレクトリ内のファイルの名前と異なるようにしてください。ファイル名が同一になると、アーカイブ・ディレクトリ内の既存のファイルがリコンシリエーション実行の終了時に上書きされます。

説明:

共有ドライブ・リコンシリエーション・トランスポート・プロバイダを使用する場合、各リコンシリエーション実行の後にデータファイルがステージング・ディレクトリからアーカイブ・ディレクトリに移動します。アーカイブ・ディレクトリに移動したファイルにタイムスタンプまたはマークは付きません。そのため、共有ドライブ・トランスポート・プロバイダの使用時には、次のガイドラインに注意してください。

- 指定するアーカイブ・ディレクトリのパスおよび名前は、ステージング・ディレクトリのパスおよび名前と同じものにしないでください。同じパスおよび名前を指定すると、アーカイブ・ディレクトリ内の既存のファイルがリコンシリエーション実行の終了時に削除されます。

- 現行のリコンシリエーション実行時に、最後のリコンシリエーション実行で使用されたファイルと同じ名前のデータファイルがステージング・ディレクトリに配置されていると、アーカイブ・ディレクトリ内の既存のファイルが、ステージング・ディレクトリからの新しいファイルで上書きされます。次に、この例を示します。
最後のリコンシリエーションの実行終了時に、ステージング・ディレクトリからアーカイブ・ディレクトリに次の各ファイルが自動的に移動したとします。

usrdataParentData.csv
usrdataRoleData.csv
usrdataGroupMembershipData.txt

現行のリコンシリエーションの実行用に、ステージング・ディレクトリに次の各ファイルを配置します。

usrdataParentData.csv
usrdataRoleData_04Feb07.csv
usrdataGroupMembershipData_04Feb07.txt

これらのファイルは、現行のリコンシリエーションの実行終了時にアーカイブ・ディレクトリに移動します。その際、古いusrdataParentData.csvファイルが新しいファイルで上書きされます。

そのため、アーカイブ・ディレクトリ内のファイルがリコンシリエーション実行の終了時に上書きされないようにするには、ステージング・ディレクトリ内のファイルの名前がアーカイブ・ディレクトリ内のファイルの名前と同一にならないようにする必要があります。

- サマリー:
「ステップ2: パラメータ値の指定」ページに戻っても、2回目にはメタデータの検出は行われません。そのため、必要に応じて「ステップ3: コネクタ構成の変更」ページに表示されるフィールドおよびフィールド・マッピングを手動で変更する必要があります。

説明:

「ステップ2: パラメータ値の指定」ページで指定した値を変更するとします。このページには、「ステップ4: コネクタ・フォーム名の検証」ページまたは「ステップ5: コネクタ情報の検証」ページから戻れます。ただし、プロバイダ・パラメータ値を変更した後に「続行」ボタンをクリックしても、2回目にはメタデータの検出は行われません。これは、「ステップ3: コネクタ構成の変更」ページで手動で行われた可能性のある変更の保護を目的とした機能です。

この機能が適用されるため、既存の汎用テクノロジ・コネクタを変更しても、メタデータの検出は行われません。

21.5.3 「コネクタ構成の変更」ページの使用

ここでは、次の領域に関するベスト・プラクティスについて説明します。

- フィールドの名前

- パスワード・フィールド

- パスワード型フィールド

- マッピング

- Oracle Identity Managerデータセット

21.5.3.1 フィールドの名前

フィールドの追加時または編集時にフィールド名を指定する場合、次の検証が適用されることに注意してください。

- 同じデータセット(親または子)に属する2つのフィールドには同じ名前を指定できません。

- 同じ親データセットの2つの子データセットには同じ名前を指定できません。

- 親データセットのフィールドの名前には、その子データセットのいずれかと同じ名前は指定できません。

- その2つの子データセットが同じ親データセットに属しているかどうかに関係なく、2つの異なる子データセットに同じ名前のフィールドをそれぞれ指定することは可能です。たとえば、UsrIDという名前のフィールドをGroupMembershipデータセットとRoleデータセットのそれぞれに指定できます。

- 2つの異なる親データセットに同じ名前のフィールドをそれぞれ指定することは可能です。同様に、これらのデータセットに同じ名前の子データセットをそれぞれ指定することも可能です。

- 子データセットの名前には、そのフィールドのいずれかと同じ名前を指定できます。

21.5.3.2 パスワード・フィールド

パスワードの安全性を確保するため、パスワード情報は汎用テクノロジ・コネクタでリコンサイルしないでください。つまり、「ソース」データセットおよび「リコンシリエーション・ステージング」データセットには「パスワード」フィールドが含まれないようにします。また、「リコンシリエーション・ステージング」データセットのフィールドを「OIM - ユーザー」データセットの「パスワード」フィールドにマップしないでください。

21.5.3.3 パスワード型フィールド

パスワード型フィールドは、「暗号化」属性および「パスワード・フィールド」属性を(「暗号化」チェック・ボックスおよび「パスワード・フィールド」チェック・ボックスを選択して)設定するフィールドです。「OIM - アカウント」データセットに追加するフィールドにこれらの2つの属性を設定すると、パスワード型フィールドを作成できます。

パスワード型フィールドの内容を保護するため、これらのフィールドの追加時または編集時には次のガイドラインに注意してください。

- 「パスワード・フィールド」チェック・ボックスおよび「暗号化」チェック・ボックスを使用すると、Oracle Identity Managerでのパスワード情報の表示および格納を保護できます。ただし、パスワード型フィールドを「プロビジョニング・ステージング」データセットのフィールドにマップする場合は、これらのフィールドに伝播されるデータを保護するため、必要なすべての予防措置をとってください。たとえば、このデータがプロビジョニング操作の終了時にターゲット・システムのプレーン・テキスト・ファイルに格納されないようにする必要があります。
「OIM - アカウント」データセットと「プロビジョニング・ステージング」データセットのパスワード・フィールド間には、1対1のマッピングのみ作成することをお薦めします。つまり、このパスワード・フィールドを、「プロビジョニング・ステージング」フィールドとの変換マッピングの入力フィールドとして使用しないようにしてください。「OIM - ユーザー」データセットの「パスワード」フィールドについても同様の予防措置をとる必要があります。

- 前述したとおり、「パスワード」フィールドは「OIM - ユーザー」データセットの事前定義済フィールドの1つです。このフィールドには「パスワード・フィールド」属性および「暗号化」属性が設定されます。Design Consoleを使用すると、作成するUDFに「パスワード・フィールド」属性および「暗号化」属性を設定できます。このように設定すると、新規作成されるUDFに既存の「パスワード」フィールドと同じプロパティが指定されます。ただし、汎用テクノロジ・コネクタ・フレームワークではこのフィールドは他のテキスト・フィールド(文字列データ型)と同様に扱われ、その内容は管理およびユーザー・コンソールまたはデータベースでは暗号化されません。
第22.1項「汎用テクノロジ・コネクタに関する一般的な問題」も参照してください。

21.5.3.4 マッピング

「Oracle Identity Manager」データセットのフィールドを使用する場合は次のベスト・プラクティスに従います。

- サマリー:
翻訳変換プロバイダを選択してマッピングを作成する場合、「参照コード名」リージョンに参照定義の名前を指定してください。データセット名およびフィールドを「参照コード名」リージョンに指定すると、実際のリコンシリエーションまたはプロビジョニングの操作時に変換に失敗します。

説明:

マッピングの作成時に翻訳変換プロバイダを選択すると、「ステップ2: マッピング」ページに、データセットからフィールドを選択してリテラルを指定するオプションが表示されます。翻訳変換プロバイダを使用しているため、「リテラル」オプションを選択して、変換用のコード・キーおよびデコードの値を含む参照定義の名前を入力する必要があります。「参照コード名」リージョンにデータセット名およびフィールドを選択しないでください。データセット名およびフィールドの選択を無効にする検証は行われませんが、実際のリコンシリエーションまたはプロビジョニングの操作時に変換操作に失敗します。

- 「OIM - アカウント」データセットのIDフィールドと、「リコンシリエーション・ステージング」データセットのレコードを一意に識別するフィールドとのマッピングを作成します。

- IDフィールドに加えて、「OIM - アカウント」データセットの他のフィールドを「リコンシリエーション・ステージング」データセットの対応するフィールドに(一致のみで)マップして、リコンシリエーション一致のコンポジット・キー・フィールドを作成できます。

- 「プロビジョニング・ステージング」データセットのすべてのフィールドと、「Oracle Identity Manager」データセットの対応するフィールドとのマッピングを作成します。

- リコンシリエーション・ルールを作成するには、リコンシリエーション・ステージング・データセットのフィールドと「OIM - ユーザー」データセットのフィールド間で一致のみのマッピングを作成します。子データセットがある場合は、一致のみのマッピングの入力フィールドとなる「リコンシリエーション・ステージング」データセットのフィールドの名前が「リコンシリエーション・ステージング」の子データセットで使用されていないことを確認してください。このガイドラインに従っていないと、リコンシリエーションは失敗します。
これについては、「「ステップ3: コネクタ構成の変更」ページ」にも記載されています。

- 変換マッピングの入力フィールドの1つとしてリテラル・フィールドを使用できます。「リテラル」オプションを選択した場合は、そのフィールドに値を入力する必要があります。このオプションの選択後は、リテラル・フィールドを空白にしないでください。

21.5.3.5 「Oracle Identity Manager」データセット

「Oracle Identity Manager」データセットのフィールドを使用する場合は次のベスト・プラクティスに従います。

- 信頼できるソースのリコンシリエーションでは、「OIM - ユーザー」データセットの次の各フィールドに常に値が保持されている必要があります。

- ユーザーID

- 名

- 姓

- 組織名

- Xellerateのタイプ

- ロール

また、この他に選択できる「OIM - ユーザー」のフィールドにも、ユーザー・アカウントがリコンシリエーションを通じて作成された場合に入力が必要なものがあります。これらの各フィールドに対し、「リコンシリエーション・ステージング」データセットの対応するフィールドとのマッピングを作成する必要があります。リコンシリエーションの実行中は、これらのフィールドのソースとなるターゲット・システムのフィールドに、常に値が保持されているようにしてください。

プロビジョニングに選択できる「OIM - ユーザー」データセットまたは「OIM - アカウント」データセットのフィールドには、ターゲット・システムへの値の伝播が必要なものがあります。これらのフィールドは、特定した後に、「プロビジョニング・ステージング」データセットの対応するフィールドとのマッピングを作成してください。プロビジョニング操作中に、これらの各フィールドに値を入力する必要があります。

- 必要に応じて、事前定義済の「OIM - ユーザー」データセット・フィールドのリストにユーザー定義フィールド(UDF)を追加します。詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのユーザー属性の構成に関する説明を参照してください。

- 既存の汎用テクノロジ・コネクタで、「OIM - アカウント」データセットのフィールドの属性を変更または削除しないでください。

21.5.4 共有ドライブ・リコンシリエーション・トランスポート・プロバイダの使用

サマリー

親レコードと子データ・レコードが作成され、ターゲット・システムおよびOracle Identity Managerの両方でリンクされる場合は、各リコンシリエーション実行の開始時に、親データと子データ両方のファイルがステージング・ディレクトリに格納されていることを確認してください。

説明

ターゲット・システムに、子データ・レコードに関連付けられた親データ・レコードがあるとします。これらのレコードをOracle Identity Managerにリコンサイルするには、これらのレコードを含む親データファイルおよび子データファイルをステージング・ディレクトリに配置します。リコンシリエーション実行中に、子データ・レコードがその対応する親データ・レコードにリンクされます。後続のリコンシリエーション実行を開始する前に、ステージング・ディレクトリから子データファイルを削除すると、このような形の子データ・レコードの削除に対してリコンシリエーション・イベントは作成されません。特定の親データ・レコードの子データ・レコードを削除する場合は、子データファイルから子データ・レコードを削除する必要があります。子データファイルに子データ・レコード(3行目以降)がない場合にも、各リコンシリエーション実行時には、子データファイルがステージング・ディレクトリに配置されていることを確認してください。

21.5.5 カスタム・プロバイダの使用

カスタム・プロバイダを使用する場合は次のガイドラインを適用します。

カスタム・プロビジョニング・トランスポート・プロバイダのコードを開発する場合、「ユーザーの作成」操作の終了時にプロバイダが一意のフィールドの値を戻すことを確認してください。この機能は、プロビジョニング・トランスポート・プロバイダのsendDataメソッドによって実装されます。詳細は、「プロビジョニング中のプロバイダの役割」を参照してください。

21.5.6 コネクタ・オブジェクトの使用

汎用テクノロジ・コネクタの作成時に自動的に作成されたコネクタ・オブジェクトを使用する場合は、次のガイドラインを適用します。

- サマリー:
リコンシリエーションのみの汎用テクノロジ・コネクタ用に自動的に作成されたリソース・オブジェクトは、プロビジョニングに使用しようとしないでください。

説明:

汎用テクノロジ・コネクタの作成時に「リコンシリエーション」オプションのみを選択したとします。作成プロセスの終了時に、この汎用テクノロジ・コネクタ用に自動的に作成されるオブジェクトの1つとして、リソース・オブジェクトが作成されます。ただし、リコンシリエーションのみの汎用テクノロジ・コネクタには汎用アダプタが作成されないため、このリソース・オブジェクトはいずれのユーザーにもプロビジョニングできません。

- サマリー:
汎用テクノロジ・コネクタのリソース・オブジェクトを、Oracle Identity Managerで定義されている組織にプロビジョニングしようとしないでください。

説明:

リソース・オブジェクトは、汎用テクノロジ・コネクタの作成中に自動的に作成されるコネクタ・オブジェクトの1つです。このリソース・オブジェクトは、Oracle Identity Managerユーザーにのみプロビジョニングできます。Oracle Identity Managerで定義されている組織にはプロビジョニングしようとしないでください。

これについては、「コネクタ・オブジェクト」にも記載されています。

- Design Consoleを使用すると、汎用テクノロジ・コネクタの作成中に自動的に作成されるコネクタ・オブジェクトをカスタマイズできます。コネクタ・オブジェクトをカスタマイズした後に「汎用テクノロジ・コネクタの管理」操作を実行すると、そのコネクタ・オブジェクトに対して行ったすべてのカスタマイズが上書きされます。そのため、次のガイドラインのいずれかを適用することをお薦めします。

- Design Consoleを使用して、汎用テクノロジ・コネクタ・オブジェクトを変更しないでください。
ITリソースについてはこのガイドラインは適用されません。ITリソースのパラメータは、Design Consoleを使用して変更できます。ただし、GenericConnectorカテゴリおよびGenericConnectorProvidersカテゴリのキャッシュを有効にしている場合は、ITリソースのパラメータを変更する前後のいずれかにキャッシュをパージする必要があります。詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのキャッシュのパージに関する説明を参照してください。

- Design Consoleを使用して汎用テクノロジ・コネクタ・オブジェクトを変更する場合、汎用テクノロジ・コネクタの変更に「汎用テクノロジ・コネクタの管理」機能を使用しないでください。

これについては、第21.5.6項「コネクタ・オブジェクトの使用」にも記載されています。

- 事前移入アダプタは、汎用テクノロジ・コネクタの作成時に自動的に作成されるコネクタ・オブジェクトのセットの一部ではありません。ただし、汎用テクノロジ・コネクタの作成中に、プロビジョニングの入力をリテラル・フィールドおよびユーザー・データ・フィールドにマップすることはできます。この機能を使用してもユーザー定義フォームへの事前移入はできませんが、プロビジョニング・データ・パケットに事前移入することは可能です。

21.5.7 汎用テクノロジ・コネクタの変更

汎用テクノロジ・コネクタを変更する場合は次のベスト・プラクティスに従います。

一度に複数の汎用テクノロジ・コネクタを変更しようとしないでください。同じOracle Identity Managerインストールの管理およびユーザー・コンソールで、別のセッションから作成する場合も同様です。

22 汎用テクノロジ・コネクタのトラブルシューティング

この章では、開発時に発生する可能性がある問題をトラブルシューティングする方法について説明します。これらの項目が含まれます。

- 汎用テクノロジ・コネクタに関する一般的な問題

- 汎用テクノロジ・コネクタの構成に関する問題

22.1 汎用テクノロジ・コネクタに関する一般的な問題

この項では、汎用テクノロジ・コネクタに関する一般的な問題について説明します。内容は次のとおりです。

- 作成の問題

- 多言語サポート

- その他の一般的な問題

22.1.1 作成の問題

この項では、次のような汎用テクノロジ・コネクタ・フレームワークにより自動的に作成されるコネクタ・オブジェクトに関連する既知の問題について説明します。

- サマリー:

- 汎用テクノロジ・コネクタに指定した名前が既存のコネクタ・オブジェクトと同一の名前でも、警告が表示されません。

- コネクタXMLファイルのインポート時に既存のコネクタ・オブジェクトが新規コネクタ・オブジェクトで上書きされても、警告が表示されません。

説明:

この点については、「汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前」でも説明しています。

- サマリー:
汎用テクノロジ・コネクタの作成中にエラーが発生した後、「ステップ5: コネクタ情報の検証」ページの「戻る」をクリックして「ステップ4: コネクタ・フォーム名の検証」ページに戻ると、ページ上にフォーム名が表示されません。

これは意図的なものであり、ソフトウェアの問題や制限に起因するものではありません。

説明:

このマニュアルで前述したとおり、汎用テクノロジ・コネクタの作成プロセスが失敗した場合でも、一部のコネクタ・オブジェクトは自動的に作成されます。このようなコネクタ・オブジェクトには、「ステップ4: コネクタ・フォーム名の検証」ページで名前を指定したプロセス・フォームも含まれます。コネクタの作成プロセスが失敗した場合は、「ステップ4: コネクタ・フォーム名の検証」ページに表示される空白のフィールドに新規フォーム名を入力するよう求められます。これにより、新規フォーム名を送信する際、プロセス・フォーム名が一意かどうかのチェックが必ず行われます。

前のページに戻って汎用テクノロジ・コネクタ作成に必要なデータを入力するかわりに、再度「ステップ1: 基本情報の指定」ページから開始して、汎用テクノロジ・コネクタを作成しなおすこともできます。

- サマリー:
汎用テクノロジ・コネクタのリソース・オブジェクトは、Oracle Identity Managerで定義されている組織にプロビジョニングできません。

説明:

リソース・オブジェクトは、汎用テクノロジ・コネクタの作成中に自動的に作成されるコネクタ・オブジェクトの1つです。このリソース・オブジェクトは、Oracle Identity Managerユーザーにのみプロビジョニングできます。Oracle Identity Managerで定義されている組織にはプロビジョニングしようとしないでください。

- サマリー:
「汎用テクノロジ・コネクタの管理」操作を実行すると、汎用テクノロジ・コネクタのオブジェクトに対するカスタマイズが上書きされます。

説明:

Design Consoleを使用すると、汎用テクノロジ・コネクタの作成中に自動的に作成されるコネクタ・オブジェクトをカスタマイズできます。ただし、コネクタ・オブジェクトをカスタマイズした後に「汎用テクノロジ・コネクタの管理」操作を実行すると、そのコネクタ・オブジェクトに対して行ったカスタマイズが上書きされます。そのため、次のガイドラインのいずれかを適用することをお薦めします。

- Design Consoleを使用して、汎用テクノロジ・コネクタ・オブジェクトを変更しないでください。
ITリソースについてはこのガイドラインは適用されません。ITリソースのパラメータは、Design Consoleを使用して変更できます。ただし、GenericConnectorカテゴリおよびGenericConnectorProvidersカテゴリのキャッシュを有効にしている場合は、ITリソースのパラメータを変更する前後のいずれかにキャッシュをパージする必要があります。PurgeCacheユーティリティの実行方法の詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのキャッシュのパージに関する説明を参照してください。

- Design Consoleを使用して汎用テクノロジ・コネクタ・オブジェクトを変更する場合、汎用テクノロジ・コネクタの変更に「汎用テクノロジ・コネクタの管理」機能を使用しないでください。

- 自動的に作成されたコネクタ・オブジェクトは、汎用テクノロジ・コネクタの作成プロセスが失敗した場合でも削除されません。

22.1.2 多言語サポート

この項では、次のような多言語サポート機能に関連する既知の問題について説明します。

- サマリー:
ステージング・ディレクトリにあるデータファイルの1行目または2行目に非ASCII文字があっても、警告は表示されません。

説明:

ターゲット・システム・ユーザー・データのメタデータでは、非ASCIIデータはサポートされていません。CSVリコンシリエーション・フォーマット・プロバイダを使用する場合は、このような制限があるため、ステージング・ディレクトリに格納する親データファイルや子データファイルのメタデータ行(2行目)には非ASCII文字を使用できません。

この制約は、次の理由により設定されています。

汎用テクノロジ・コネクタ・フレームワークでは、Oracle Identity Managerでユーザー定義プロセス・フォームが作成され、入力したメタデータに基づいてフォームとフィールドに名前が指定されます。また、これらのフォームおよびそのフィールドに対して、それぞれデータベース表および列が作成されます。ただし、データベース・オブジェクト名には非ASCII文字を使用できないため、ターゲット・システムのメタデータでも非ASCII文字はサポートされません。

汎用テクノロジ・コネクタ・フレームワークでは、データファイルの1行目および2行目にある非ASCII文字を解析し、正しく表示する場合もあります。ただし、コネクタ・オブジェクトが正しく作成されるようにするには、データファイルの1行目および2行目に非ASCII文字を使用しないようにする必要があります。

注意:

データファイルの3行目以降は、フィールド・データ値に非ASCII文字を使用できます。これらのデータ値はリコンサイルされ、Oracle Identity Managerデータベースに格納されます。

- サマリー:
Oracle Identity Managerでサポートされている任意の言語について、ブラウザの言語設定がOracle Identity Managerサーバーのオペレーティング・システムの言語設定と一致しない場合、「ステップ3: コネクタ構成の変更」ページにデータが正しく表示されません。

説明:

「ステップ3: コネクタ構成の変更」ページには、汎用テクノロジ・コネクタ・フレームワークによって動的に作成されるイメージが表示されます。このページでのローカライズされたテキスト・アイテムの表示には、次のような制限があります。

フィールド・ラベルの表示に使用する言語は、次の言語設定と一致している必要があります。

- Oracle Identity Managerの言語

- オペレーティング・システムの言語

- ブラウザの言語

ブラウザの言語設定がOracle Identity Managerサーバーのオペレーティング・システムの言語設定と同じであれば、すべてのテキスト・アイテム(フィールド名およびGUI要素ラベル)は目的の言語で表示されます。

注意:

- ローカライズされたGUI要素ラベルは、このようなGUI要素についてローカライズされたラベルを含むリソース・バンドルを作成し、使用している場合のみ表示されます。

- 繁体字中国語または簡体字中国語を使用する場合、すべてのテキスト・アイテムを目的の言語で表示するには、ブラウザのロケール(言語および国/地域)がオペレーティング・システムのロケールと同じである必要があります。

ブラウザの言語がオペレーティング・システムの言語と異なる場合は、次の静的ラベルが(ブラウザの言語に関係なく)英語で表示されます。

- 「OIM - ユーザー」データセットおよび「OIM - アカウント」データセットのラベル: 「ユーザー」および「アカウント」

- 「OIM - ユーザー」データセットに含まれるフィールドのラベル:

- 「ユーザーID」

- 「電子メール」

- 「名」

- 「姓」

「ステップ3: コネクタ構成の変更」ページのその他のアイテムのラベルについては、非ASCII言語は正しく表示されません。

- サマリー:
「ステップ3: コネクタ構成の変更」ページのテキスト・アイテムの一部は、常に英語で表示されます。

説明:

このリリースでは、「ステップ3: コネクタ構成の変更」ページに表示される静的テキスト・アイテムの一部がローカライズされていません。たとえば、MyGTCという名前の汎用テクノロジ・コネクタを作成するとします。このコネクタのリソース・オブジェクトをあるユーザーにプロビジョニングした場合、ページに次のテキストが表示されます。

Provisioning form for MyGTC

Child Form of MyGTC representing child-dataset: child_data_set_name

このリリースのOracle Identity Managerでは、このテキストの静的部分は常に英語で表示されます。

必要であれば、次の手順に従って静的テキストをローカライズできます。

1. テキストをローカライズする言語について、対応するcustomResources.propertiesファイルをMDSからインポートして開きます。Oracle Identity Managerでサポートされている各言語に対応するファイルは、すべてMDSに格納されています。MDSからcustomResources.propertiesファイルをインポートする方法は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。
次に、この手順の操作の一例を示します。

汎用テクノロジ・コネクタの作成時に、次のような値を指定したとします。

- コネクタ名: MyGTC

- 親フォーム名: ADUser

- 子データセット名: ADUserRole

- 子フォーム名: ADURole1

静的テキストをスペイン語で表示する場合は、customResources_es.propertiesファイルを開きます。このファイルはMDSに格納されています。

2. 目的の言語に対応するcustomResources.propertiesファイルに、次の行を追加します。

注意:

必要な言語に対応するcustomResources.propertiesファイルは、次のURLのOracle Technology Network(OTN)WebサイトにあるOracle Identity Managerページから入手できます。

http://www.oracle.com/technetwork/index.html

global.UD_PARENT_FORM_NAME.description=Localized_text_for_"Provisioning form for" GTC_name

global.UD_CHILD_FORM_NAME.description=Localized_text_for_"Child Form of" GTC_name Localized_text_for_"representing the child data set": child_data_set_name

この2つの行で、次のように置換します。

- PARENT_FORM_NAMEの親フォーム名への置換
Oracle Identity Managerでは、親フォーム名はすべて大文字に変換されます。そのため、名前は大文字で入力する必要があります。

- Localized_text_for_"Provisioning form for"の「Provisioning form for」部分のローカライズ・テキストへの置換

- GTC_nameの汎用テクノロジ・コネクタ名への置換

- CHILD_FORM_NAMEの子フォーム名への置換
Oracle Identity Managerでは、子フォーム名はすべて大文字に変換されます。そのため、名前は大文字で入力する必要があります。

- Localized_text_for_"Child Form of"の「Child Form of」部分のローカライズ・テキストへの置換

- child_data_set_nameの子データセット名への置換

例:

スペイン語の場合、customResources_es.propertiesファイルに、次の行を追加します。

global.UD_ADUSER.description=Spanish_text_for_"Provisioning form for" MyGTC

global.UD_ADUROLE1.description=Spanish_text_for_"Child Form of" MyGTC Spanish_text_for_"representing the child data set": ADUserRole

22.1.3 その他の一般的な問題

この項では、前述のどのカテゴリにも該当しない次のような既知の問題について説明します。

- サマリー:
汎用テクノロジ・コネクタの作成プロセス中に安全でないファイル名の例外がスローされる場合があります。

説明:

Oracle WebLogic ServerおよびOracle Application Serverでは、汎用テクノロジ・コネクタの作成プロセス中に安全でないファイル名の例外がスローされる場合があります。この例外は無視してかまいません。汎用テクノロジ・コネクタの作成プロセスは、これらの例外が発生しても影響を受けません。この問題は、IBM WebSphere Application ServerおよびJBoss Application Serverでは発生しません。

- 汎用テクノロジ・コネクタでは、親データの削除のリコンシリエーションはサポートされていません。
親データの削除をリコンサイルする場合、汎用テクノロジ・コネクタは使用できません。たとえば、ユーザーJohn Doeのアカウントがターゲット・システムから削除された場合、汎用テクノロジ・コネクタを使用してこのユーザーの削除をOracle Identity Managerでリコンサイルすることはできません。

- サマリー:
Design Consoleを使用して「パスワード・フィールド」属性および「暗号化」属性がフィールドに設定された場合、UDFの内容は暗号化されません。

説明:

前述したとおり、「パスワード」フィールドは「OIM - ユーザー」データセットの事前定義済フィールドの1つです。このフィールドには「パスワード・フィールド」属性および「暗号化」属性が設定されます。Design Consoleを使用すると、作成するUDFに「パスワード・フィールド」属性および「暗号化」属性を設定できます。このように設定すると、新規作成されるUDFに既存の「パスワード」フィールドと同じプロパティが指定されます。ただし、汎用テクノロジ・コネクタ・フレームワークではこのフィールドは他のテキスト・フィールド(文字列データ型)と同様に扱われ、その内容は管理およびユーザー・コンソールまたはデータベースでは暗号化されません。

- このリリースのOracle Identity Managerでは、Design Consoleでリコンシリエーション・ルールの作成に使用できる機能の一部が、汎用テクノロジ・コネクタ・フレームワークでは使用できません。次のパターンのリコンシリエーション・ルールのみを作成できます。
A equals B

"and"

C equals D

"and"

E equals F

- 汎用テクノロジ・コネクタを作成する際、ターゲット・システムとの通信にRemote Managerを使用するようには指定できません。そのため、汎用テクノロジ・コネクタではRemote Managerを使用できません。

- プロビジョニング中にターゲット・システムへ送信する必要がある日付の値の書式を指定する場合は、「ターゲット日付書式」パラメータを使用します。日付を数値形式で入力すると、このパラメータの日付の検証は行われません。指定可能な日付書式の詳細は、次のWebページを参照してください。
http://java.sun.com/docs/books/tutorial/i18n/format/simpleDateFormat.html#datepattern

- 現在実行されていないスケジュール済タスクのステータスはINACTIVEです。これらのタスクは、次の指定の日時に実行されます。ある特定の条件下では、スケジュール済タスクにNONEステータスが自動的に割り当てられます。ただし、このステータスへの変更はタスクの機能には反映されず、機能は継続して指定の日時に実行されます。

- リリース9.0.3の汎用テクノロジ・コネクタをリリース9.1.0.1のOracle Identity Managerインストールにインポートすると、アプリケーション・サーバーのログ・ファイルに致命的でない例外が記録されます。
この例外は、コネクタがリコンシリエーションをサポートしているかどうかに関係なく、プロビジョニングをサポートしている場合にのみ記録されます。この例外メッセージは無視してかまいません。管理およびユーザー・コンソールには、エラー・メッセージは表示されません。

- 「OIM - アカウント」データセットのフィールドのデータ型を変更すると、汎用テクノロジ・コネクタの管理操作の際に、「ステップ5: コネクタ情報の検証」ページで「作成」をクリックしたときにエラーがスローされます。

22.2 汎用テクノロジ・コネクタの構成に関する問題

この項は次のトピックで構成されています。

- 汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前

- 「ステップ3: コネクタ構成の変更」ページ

- コネクタ作成中のエラー

- リコンシリエーション中のエラー

- プロビジョニング中のエラー

22.2.1 汎用テクノロジ・コネクタおよびコネクタ・オブジェクトの名前

ここでは、次のような汎用テクノロジ・コネクタおよびコネクタ・オブジェクトに対して指定する名前に関連する既知の問題について説明します。

サマリー:

- 汎用テクノロジ・コネクタに指定した名前が既存のコネクタ・オブジェクトと同一の名前でも、警告が表示されません。

- コネクタXMLファイルのインポート時に既存のコネクタ・オブジェクトが新規コネクタ・オブジェクトで上書きされても、警告が表示されません。

説明:

汎用テクノロジ・コネクタの作成中や変更中は、汎用テクノロジ・コネクタ・フレームワークによって様々なオブジェクトが自動的に作成または変更されます。その際、汎用テクノロジ・コネクタとプロセス・フォームに対して名前を指定するよう求められます。その他のオブジェクトの名前は、フレームワークによって自動的に生成されます。自動生成される名前は、汎用テクノロジ・コネクタに指定した名前に基づきます。

汎用テクノロジ・コネクタに対して名前を指定する場合、名前がそのOracle Identity Managerインストールのすべてのオブジェクト・カテゴリ(リソース・オブジェクトやITリソースなど)において一意である必要があります。同様に、プロセス・フォーム名も一意である必要があります。このガイドラインは、汎用テクノロジ・コネクタXMLファイルを別のOracle Identity Managerインストールにインポートする際にも順守する必要があります。XMLファイルに定義されているオブジェクト名は、インポート先となるOracle Identity Managerインストールでの同じカテゴリに属するオブジェクト名と重複しないようにします。たとえば、XMLファイルに定義されているスケジュール済タスクの名前は、インポート先となるOracle Identity Managerインストール上の他のスケジュール済タスクの名前と同一にはできません。

このガイドラインは、インポート先となるOracle Identity Managerインストールにおいて、オブジェクトが事前定義済コネクタ、あるいは汎用テクノロジ・コネクタに使用されるかどうかに関係なく、すべてのコネクタ・オブジェクトに適用されます。

このガイドラインを順守しない場合、XMLファイルのインポート中、インポートされるオブジェクトと同じ名前の既存オブジェクトは上書されます。上書き処理中はメッセージが表示されないため、該当するコネクタが最終的に失敗します。

この点については、コネクタ・オブジェクトに関する項でも説明しています。

22.2.2 「ステップ3: コネクタ構成の変更」ページ

ここでは、「ステップ3: コネクタ構成の変更」ページでの入力に関する既知の問題について説明します。

- サマリー:
既存の汎用テクノロジ・コネクタを変更する際、「OIM - アカウント」データセットのフィールドまたは子データセットを変更しても、これらのデータセットに基づくフォームのOracle Identity Managerデータベース・エントリに対応する変更が加えられません。また、エラー・メッセージも表示されません。

説明:

「ステップ3: コネクタ構成の変更」ページには、フィールドおよびフィールド・マッピングの追加、変更および削除の機能があります。これらの機能を使用すると、「OIM - アカウント」データセットまたはその子データセット内のフィールドの長さおよびデータ型を変更できます。ただし、このような変更は、このデータセットに対するOracle Identity Managerデータベース・エントリに対する変更として反映されません。また、エラー・メッセージも表示されません。

この問題は、Oracle Identity Managerの将来のリリースで解消される予定です。それまでは「OIM - アカウント」データセットのフィールドや子データセットを変更しないようにしてください。

- サマリー:
汎用テクノロジ・コネクタを作成して、それをプロビジョニングまたはリコンシリエーションに使用し、その後で「OIM - アカウント」データセットのフィールドまたは子データセットを削除するとします。次にプロビジョニングまたはリコンシリエーションを実行するときに同じ汎用テクノロジ・コネクタを使用すると、エラーが発生します。

説明:

汎用テクノロジ・コネクタを作成し、それをプロビジョニングまたはリコンシリエーションに使用するとします。さらに、この汎用テクノロジ・コネクタの「OIM - アカウント」データセットのフィールドまたは子データセットを一部削除するとします。次回、同じ汎用テクノロジ・コネクタを使用してプロビジョニングまたはリコンシリエーションを実行すると、例外がスローされます。

一度でも汎用テクノロジ・コネクタを使用してプロビジョニングまたはリコンシリエーションを実行すると、「OIM - アカウント」データセットのフィールドまたは子データセットを削除する操作は無効になります。これは、削除しようとしているフィールドまたは子データセットにリンクしているデータが、すでにOracle Identity Managerデータベースに格納されているためです。

このため、すでに汎用テクノロジ・コネクタを使用してプロビジョニングまたはリコンシリエーションを実行している場合は、「OIM - アカウント」データセットのフィールドまたは子データセットは削除しないでください。

現在は例外がスローされますが、将来のリリースでは、適切なエラー・メッセージが表示されるようになる予定です。

- サマリー:
一致のみのマッピングで使用されたリコンシリエーション・ステージング・フィールドの名前がリコンシリエーション・ステージング子データセットのフィールドの名前として再利用されると、リコンシリエーションに失敗します。

説明:

リコンシリエーション・ステージング・データセットと「OIM - ユーザー」データセットのフィールド間で一致のみのマッピングを作成すると、リコンシリエーション・ルールが作成されます。子データセットがある場合は、一致のみのマッピングの入力フィールドとなるリコンシリエーション・ステージング・データセットのフィールドの名前がリコンシリエーション・ステージング子データセットで使用されていないことを確認してください。一致のみのマッピングで使用されたリコンシリエーション・ステージング・フィールドの名前がリコンシリエーション・ステージング子データセットのフィールドの名前として再利用されると、リコンシリエーションに失敗します。

次に、このシナリオの具体例を示します。

AD_Userデータセットはリコンシリエーション・ステージング親データセットです。このデータセットには、次のようなフィールドがあります。

- ユーザーID

- 名前

- 職種

- 場所

Admin_Groupsデータセットは、AD_Userデータセットの子データセットです。AD_Userデータセットの「ユーザーID」フィールドを使用して、「OIM - ユーザー」データセットとの一致のみのマッピングを作成する場合、Admin_Groupsデータセット内のフィールドに「ユーザーID」という名前は使用できません。この子データセットに「ユーザーID」という名前のフィールドがある場合、リコンシリエーションに失敗します。

- サマリー:
「パスワード」フィールドがリコンシリエーション・エンジンでリコンサイルされていなくても、このフィールドは「OIM - ユーザー」データセットに表示されます。

説明:

「ステップ1: 基本情報の指定」ページで「信頼できるソース・リコンシリエーション」オプションを選択すると、「パスワード」フィールドはリコンシリエーション・エンジンでリコンサイルされていなくても、「ステップ3: コネクタ構成の変更」ページの「OIM - ユーザー」データセットに表示されます。このフィールドとリコンシリエーション・ステージング・データセット内の対応するターゲット・システム・フィールドとの間にマッピングを作成すると、自動的に生成されるリコンシリエーション・フィールド・マッピングにより、このフィールドの「パスワード」フィールドへのマッピングが試行されます。このため、リコンシリエーション・イベントが失敗します。

- 次のデータセット間のトランスフォーメーション・マッピング作成には制限があります。

- 「ソース」とリコンシリエーション・ステージング

- 「Oracle Identity Manager」とプロビジョニング・ステージング

制限は次のとおりです。

- 「ソース」データセットまたは「Oracle Identity Manager」データセットの子データセットと、リコンシリエーション・ステージング・データセットまたはプロビジョニング・ステージング・データセットの異なる(つまり対応しない)子データセットの間には、トランスフォーメーション・マッピングを作成できません。これは、1つの親データセットに含まれる複数の子データセットから、別の親データセットに含まれる1つの子データセットへの多対1マッピングは作成できないことも意味します。
次の例でこの制限について説明します。

「ソース」親データセットに、次のような子データセットがあるとします。

MyGTC:グループ・データセット

- フィールド1: グループ名

- フィールド2: グループ・タイプ

MyGTC:ロール・データセット

- フィールド1: ロール名

- フィールド2: ロール・タイプ

リコンシリエーション・ステージング親データセットに、次のような子データセットがあるとします。

MyGTC:グループ・データセット

- フィールド1: グループ名

- フィールド2: グループ・タイプ

MyGTC:ロール・データセット

- フィールド1: ロール定義

この制限により、たとえば「ソース」データセットの「グループ名」フィールドとリコンシリエーション・ステージング・データセットのロール定義フィールドの間には、トランスフォーメーション・マッピングを作成できません。

ただし、たとえば「ソース」データセットの「ロール名」フィールドおよびロール・タイプ・フィールドと、リコンシリエーション・ステージング・データセットのロール定義フィールドの間に多対1マッピングを作成することはできます。

- 「ソース」親データセットまたは「Oracle Identity Manager」親データセットと、リコンシリエーション・ステージング子データセットまたはプロビジョニング・ステージング子データセットの間には、トランスフォーメーション・マッピングを作成できません。
次の例でこの制限について説明します。

次のような「Oracle Identity Manager」データセットおよびそのフィールドがあるとします。

「OIM - アカウント」データセット

- フィールド1: 名前

- フィールド2: 住所

- フィールド3: ユーザーID

- .. .

次のようなプロビジョニング・ステージング子データセットおよびそのフィールドがあるとします。

「グループ」データセット

- フィールド1: グループ名

- フィールド2: グループ・タイプ

この制限により、たとえば「OIM - アカウント」データセットの「名前」フィールドと「グループ」データセットの「グループ名」フィールドの間には、トランスフォーメーション・マッピングを作成できません。

- リコンシリエーション・ルールを作成するには、リコンシリエーション・ステージング・データセットのフィールドと「OIM - ユーザー」データセットのフィールド間で一致のみのマッピングを作成します。子データセットがある場合は、一致のみのマッピングの入力フィールドとなるリコンシリエーション・ステージング・データセットのフィールドの名前がリコンシリエーション・ステージング子データセットで使用されていないことを確認してください。
このガイドラインに従っていないと、リコンシリエーションは失敗します。

- 子フォームでフィールドに「日付」データ型を設定するとします。子レコード削除のプロビジョニング操作時にこのフィールドに日付値があると、操作が失敗します。

22.2.3 コネクタ作成中のエラー

次のエラー・メッセージは、汎用テクノロジ・コネクタ作成プロセスの最後に表示される可能性があります。各メッセージでは、エラーの原因となる事象やエラー・メッセージが表示されるタイミングについて説明します。

- 汎用テクノロジ・コネクタconnector_nameのインポートXMLファイルの生成中にエラーが発生しました

- 汎用テクノロジ・コネクタconnector_nameのランタイム・プロバイダ・パラメータに指定された値でITリソース・パラメータを更新中にエラーが発生しました。

- 汎用テクノロジ・コネクタconnector_nameのXMLファイルの生成中、またはOracle Identity Managerデータベースでの同ファイルの保存中にエラーが発生しました。

- 汎用テクノロジ・コネクタconnector_nameのXMLファイルのインポート中にエラーが発生しました。インポート操作に必要なロックを取得できませんでした。

- 汎用テクノロジ・コネクタconnector_nameの情報を保存中にエラーが発生しました。詳細はアプリケーション・ログを確認してください。

- 汎用テクノロジ・コネクタconnector_nameのリソース・オブジェクトの作成中にエラーが発生しました。このリソース・オブジェクトに割り当てられた名前と同じ名前を持つ既存のリソース・オブジェクトが存在します。

22.2.4 リコンシリエーション中のエラー

表22-1に、リコンシリエーション・プロセスに関連して一般的に発生する問題の解決方法を示します。

注意:

これらのエラーがロギングされるのは、共有ドライブ・リコンシリエーション・トランスポート・プロバイダおよびCSVリコンシリエーション・フォーマット・プロバイダを使用している場合のみです。

これらのいずれかのエラーが発生した場合、エラー・メッセージはアプリケーション・サーバーのログ・ファイルに書き込まれます。

表22-1 リコンシリエーション中に発生する一般的なエラー

問題の説明(エラー・メッセージ)

解決策

使用可能なランタイム・プロバイダ・パラメータがありません

「汎用テクノロジ・コネクタの管理」機能を使用して、ランタイム・パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

使用可能な設計時プロバイダ・パラメータがありません

「汎用テクノロジ・コネクタの管理」機能を使用して、設計パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

ステージング・ディレクトリの場所が定義されていません

「汎用テクノロジ・コネクタの管理」機能を使用して、「ステージング・ディレクトリ(親アイデンティティ・データ)」パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

ファイル・エンコーディングが定義されていません

「汎用テクノロジ・コネクタの管理」機能を使用して、ファイル・エンコーディング(親データ)パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

アーカイブ・ディレクトリの場所が定義されていません

「汎用テクノロジ・コネクタの管理」機能を使用して、「アーカイブ・ディレクトリ」パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

固定幅区切りが定義されていないため、ファイルを処理できません

「汎用テクノロジ・コネクタの管理」機能を使用して、次のいずれかのパラメータに値が指定されているかどうかを確認します。

- 指定されたデリミタ

- タブ区切り

- 固定列幅

その後、リコンシリエーションを再試行します。

ステージング・ディレクトリに親ファイルがありません

読取り用のファイルがありません

「ステージング・ディレクトリ(親アイデンティティ・データ)」パラメータの値として指定されたディレクトリにデータファイルがあることを確認します。その後、リコンシリエーションを再試行します。

ステージング・ディレクトリに子データがありません

読取り用のファイルがありません

「ステージング・ディレクトリ(複数値アイデンティティ・データ)」パラメータの値として指定されたディレクトリにデータファイルがあることを確認します。その後、リコンシリエーションを再試行します。

ステージング・ディレクトリにアクセスできません。ディレクトリ・パスが存在しないか、必要なアクセス権限がありません

パラメータ値として指定されたディレクトリに必要な権限があることを確認します。必要な権限の詳細は、第19.1章「共有ドライブ・リコンシリエーション・トランスポート・プロバイダ」を参照してください。その後、リコンシリエーションを再試行します。

使用されているファイル・エンコーディングがサポートされていないため、データ・ファイルを読み取れませんでした

「汎用テクノロジ・コネクタの管理」機能を使用して、「ファイル・エンコーディング」パラメータに指定された値を確認します。その後、リコンシリエーションを再試行します。

メタデータを解析できません

親データファイルおよび子データファイルにあるメタデータ(2行目の内容)を確認します。ファイルで使用されている区切りに問題がある可能性があります。問題を解決してから、リコンシリエーションを再試行します。

ヘッダーを解析できません

データファイルのヘッダー(1行目の内容)を確認します。ヘッダーの形式に問題がある可能性があります。ヘッダーの形式の詳細は、第19.1項「共有ドライブ・リコンシリエーション・トランスポート・プロバイダ」を参照してください。

問題を解決してから、リコンシリエーションを再試行します。

現行のレコードに問題があるため解析できません

アプリケーション・サーバーのログ・ファイルに書き込まれているエントリを確認します。解析できないエラーが含まれている可能性があります。問題を解決してから、リコンシリエーションを再試行します。

22.2.5 プロビジョニング中のエラー

表22-2に、プロビジョニング・プロセスに関連して一般的に発生する問題の解決方法を示します。

注意:

これらのエラーのほとんどがロギングされるのは、Webサービス・プロビジョニング・トランスポート・プロバイダおよびSPMLプロビジョニング・フォーマット・プロバイダを使用している場合のみです。

これらのいずれかのエラーが発生すると、エラー・メッセージがUIに表示され、アプリケーション・ログ・ファイルに書き込まれます。

表22-2 プロビジョニング中に発生する一般的なエラー

問題の説明

解決策

レスポンス・コード:

SPMLのVelocityプロパティを読み取れません

レスポンスの説明:

SPMLのテンプレート・プロパティを読み取れませんでした。

Oracle Identity Managerインストールに問題があります。Oracleサポート・サービスに連絡して、この問題に関する情報と、表示されるレスポンス・コードおよび説明を送ってください。また、ロギングをDEBUGレベルに設定してOracle Identity Managerを実行した後、生成された関連するログも送ってください。

レスポンス・コード:

SPMLのテンプレートを読み取れません

レスポンスの説明:

SPMLのテンプレート・ファイルが見つかりませんでした。

Oracle Identity Managerインストールに問題があります。Oracleサポート・サービスに連絡して、この問題に関する情報と、表示されるレスポンス・コードおよび説明を送ってください。また、ロギングをDEBUGレベルに設定してOracle Identity Managerを実行した後、生成された関連するログも送ってください。

レスポンス・コード:

SPMLの不明な操作

レスポンスの説明:

このプロビジョニング操作は、許可されている操作(作成、削除、有効化、無効化、変更の操作、または子表に関する操作)ではありません。

Oracle Identity Managerインストールに問題があります。Oracleサポート・サービスに連絡して、この問題に関する情報と、表示されるレスポンス・コードおよび説明を送ってください。また、ロギングをDEBUGレベルに設定してOracle Identity Managerを実行した後、生成された関連するログも送ってください。

レスポンス・コード:

SPMLのプロビジョニングの入力がNULLです

レスポンスの説明:

SPMLのプロビジョニングの入力データがNULLです。

プロバイダ・パラメータを正しく指定したかどうかを確認します。

プロビジョニングがダイレクト・プロビジョニングまたはリクエスト・プロビジョニングのどちらによって開始されたかを確認します。ダイレクト・プロビジョニングのオプションを使用して手順を再試行します。

レスポンス・コード:

SPMLのテンプレート・コンテキスト処理エラー

レスポンスの説明:

SPMLリクエスト生成用のテンプレート・コンテキストの処理中にエラーが発生しました。

Oracle Identity Managerインストールに問題があります。Oracleサポート・サービスに連絡して、この問題に関する情報と、表示されるレスポンス・コードおよび説明を送ってください。また、ロギングをDEBUGレベルに設定してOracle Identity Managerを実行した後、生成された関連するログも送ってください。

レスポンス・コード:

SPMLのプロビジョニングの操作名がありません

レスポンスの説明:

プロビジョニングの操作名がありません。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。構成(プロバイダ)のセットは変えずに属性を減らして別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

レスポンス・コード:

SPMLのプロビジョニングの子の名前がありません

レスポンスの説明:

子の名前がありません。

このエラーが発生した場合、特定のタイプの複数値属性(たとえば、ロールまたはメンバーシップ)に対してプロビジョニングを試行していた可能性があります。

コネクタが正しく作成されていない可能性があります。構成(プロバイダ)のセットは変えずに、複数値属性を1つのみ(最初に失敗した属性)にして、別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

レスポンス・コード:

SPMLのプロビジョニングの子のメタデータがNULLです

レスポンスの説明:

子のメタデータ・リストがNULLです。

このエラーが発生した場合、特定のタイプの複数値属性(たとえば、ロールまたはメンバーシップ)に対してプロビジョニングを試行していた可能性があります。

コネクタが正しく作成されていない可能性があります。構成(プロバイダ)のセットは変えずに、複数値属性を1つのみ(最初に失敗した属性)にして、別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

レスポンス・コード:

SPMLのプロビジョニングの子のメタデータの問題

レスポンスの説明:

子のメタデータ・リストのソート中にエラーが発生しました。

このエラーが発生した場合、特定のタイプの複数値属性(たとえば、ロールまたはメンバーシップ)に対してプロビジョニングを試行していた可能性があります。

コネクタが正しく作成されていない可能性があります。プロビジョニング・フィールドに対して設定された順序に問題があります。関連する複数値フィールドの属性を減らして別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。プロビジョニングが正常に終了するたびに「汎用テクノロジ・コネクタの管理」手順を実行して、フィールドを1つずつ追加してみてください。この問題が再び再び出現した時点で、順序が正しくないフィールドが明らかになります。

レスポンス・コード:

SPMLのプロビジョニングのIDがありません

レスポンスの説明:

一意のIDがありません。

作成済ユーザーに対して操作を実行しようとしています。ただし、「ユーザーの作成」操作そのものが正常に実行されていない可能性があり、レスポンスとして予期される一意のID(psoID)が受信されていません。このため、プロビジョニング済インスタンス・データがOracle Identity Managerで更新されませんでした。この操作が失敗した原因を確認します。

レスポンス・コード:

SPMLのプロビジョニング・ターゲットIDがありません

レスポンスの説明:

一意のターゲットIDがありません。

入力されたプロバイダ・パラメータを確認します。ターゲットIDがない可能性があります。

レスポンス・コード:

OIM APIエラー

レスポンスの説明:

Oracle Identity Manager APIレイヤーでエラーが発生しました。

Oracle Identity Managerが他の操作で正しく動作しているかどうかを確認します。Oracle Identity Managerフロント・エンドとデータベースの間の接続を確認します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

OIMプロセス・フォームが見つかりません

レスポンスの説明:

Oracle Identity Managerにプロセス・フォームが見つかりませんでした。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。同じ構成のセットを使用して別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

OIMプロセス・フォーム・インスタンスが見つかりません

レスポンスの説明:

指定されたフォームのプロセス・フォーム・インスタンスが更新中に見つかりませんでした。

Oracle Identity Managerデータベースのプロビジョニング済インスタンスの情報が破損している可能性があります。ダイレクト・プロビジョニングを試行します。

問題が解消されない場合は、汎用テクノロジ・コネクタに問題がある可能性があります。同じ構成のセットを使用して別の汎用テクノロジ・コネクタを作成します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

OIMアトミック・プロセス・インスタンスが見つかりません

レスポンスの説明:

検出されたプロセス・インスタンスはアトミック・プロセスではありません。

Oracle Identity Managerデータベースのプロビジョニング済インスタンスの情報が破損している可能性があります。ダイレクト・プロビジョニングを試行します。

問題が解消されない場合は、汎用テクノロジ・コネクタに問題がある可能性があります。同じ構成のセットを使用して別の汎用テクノロジ・コネクタを作成します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

列が見つかりません

レスポンスの説明:

必要な列が結果セットに見つかりませんでした。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。同じ構成のセットを使用して別のコネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

無効なプロバイダ

レスポンスの説明:

指定されたプロバイダ名が無効です。

使用しているプロビジョニング・フォーマット、変換またはプロビジョニング・トランスポートのいずれかのプロバイダが正しく登録されていない可能性があります。プロバイダの登録手順を正しく実行したかどうかを確認します。事前定義済プロバイダの使用時にこのエラーが表示される場合は、Oracle Identity ManagerサーバーのディレクトリでこれらのプロバイダのXMLファイルを確認します。これらのXMLファイルはMDSに格納されています。スキーマおよびプロバイダ定義XMLファイルは、次の場所にあります。

PROVIDER_DEF_XSD_LOCATION = "/db/GTC/Schema";

PROVIDER_DEF_XML_LOCATION = "/db/GTC/ProviderDefinitions";

レスポンス・コード:

ITリソース・インスタンスが見つかりません

レスポンスの説明:

Oracle Identity ManagerにITリソース・インスタンスが見つかりませんでした。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。同じ構成のセットを使用して別の汎用テクノロジ・コネクタを作成してみてください。ダイレクト・プロビジョニングを試行します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

バージョンが見つかりません

レスポンスの説明:

必要なプロセス・フォーム・バージョンがOracle Identity Managerに見つかりませんでした。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。同じ構成のセットを使用して別のコネクタを作成してみてください。新しいフィールドを既存のデータセットに追加して既存のコネクタを編集した場合、その操作が失敗している可能性があります。コネクタで再度同じ変更を行ってみてください。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

バージョンが定義されていません

レスポンスの説明:

必要なプロセス・フォームのバージョンがOracle Identity Managerに定義されていませんでした。

汎用テクノロジ・コネクタが正しく作成されていない可能性があります。同じ構成のセットを使用して別のコネクタを作成してみてください。新しいフィールドを既存のデータセットに追加して既存のコネクタを編集した場合、その操作が失敗している可能性があります。コネクタで再度同じ変更を行ってみてください。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

Webサービスが見つかりません

レスポンスの説明:

ターゲット・サーバーにWebサービスが見つかりませんでした。サービス名とIPアドレスを確認してください。

WebサービスのURLに指定したサービス名とIPアドレスを確認します。これらが正しい場合は、Webサービスが稼働しているかどうかを確認します。

レスポンス・コード:

Webサービス接続が拒否されました

レスポンスの説明:

Webサービス接続を確立できませんでした。サーバーが稼働中で、指定されたポートが正しいことを確認してください。

Webサービスが稼働中かどうかを確認します。

レスポンス・コード:

Webサービスにそのようなメソッドはありません

レスポンスの説明:

Webサービスのメソッドを開始できませんでした。操作名とパラメータを確認してください。

操作名とパラメータを確認してください。

レスポンス・コード:

Webサービスのパラメータ値がNULLです

レスポンスの説明:

Webサービスに渡されたパラメータ値がNULLです。

プロビジョニング・プロセスが正しく実行されたかどうかを確認します。プロビジョニング・フォーマット・プロバイダが正しく実行されなかったためにNULL出力を生成した可能性があります。

レスポンス・コード:

WebサービスのHTTPライブラリがありません

レスポンスの説明:

クラスパスにWebサービスのHTTPライブラリが含まれていません。

Oracle Identity Managerインストールに問題があります。Oracleサポート・サービスに連絡して、この問題に関する情報と、表示されるレスポンス・コードおよび説明を送ってください。また、ロギングをDEBUGレベルに設定してOracle Identity Managerを実行した後、生成された関連するログも送ってください。

レスポンス・コード:

Webサービスの結果値がNULLです

レスポンスの説明:

Webサービスの結果値がNULLです。

Webサービスが正しく稼働しているかどうかを確認します。現時点で、Webサービスは、Oracle Identity Managerプロビジョニング・リクエストへのレスポンスとしてNULL出力を生成しています。

レスポンス・コード:

Webサービス呼出しの問題

レスポンスの説明:

Webサービスの呼出し中にエラーが発生しました。

Webサービスの資格証明を確認します。

レスポンス・コード:

WebサービスのターゲットURLがありません

レスポンスの説明:

Webサービスの呼出しに必要なWebサービスのターゲットURLがありません。

プロバイダ・パラメータの値を確認します。WebサービスのURLがない場合があります。汎用テクノロジ・コネクタを変更して、再度この値を指定しなおします。

レスポンス・コード:

Webサービスのターゲット・メソッド名がありません

レスポンスの説明:

Webサービスの呼出しに必要なWebサービスのターゲット・メソッド名がありません。

プロバイダ・パラメータの値を確認します。Webサービスの操作名がない場合があります。汎用テクノロジ・コネクタを変更して、再度この値を指定しなおします。

レスポンス・コード:

WebサービスのレスポンスのXML解析エラー

レスポンスの説明:

WebサービスのレスポンスのXML解析中にエラーが発生しました。

Webサービスが正しく稼働しているかどうかを確認します。Webサービス・プロバイダに対して指定された形式に準拠しないSPMLレスポンスを生成しています。

レスポンス・コード:

WebサービスのレスポンスIDエラー

レスポンスの説明:

Webサービスから一意のIDが生成されていないか、レスポンスXMLファイルの属性名が不適切なため、値が解析されませんでした。

Webサービスが正しく稼働しているかどうかを確認します。「ユーザーの作成」操作で、Webサービスが、指定された形式に準拠しないSPMLレスポンスを生成しています。また、ターゲット・システムで作成されたpsoIDを戻していません。Webサービス・プロバイダのプロバイダ指定ではpsoIDフィールドを戻すように指定されています。

レスポンス・コード:

Webサービスのプロトコル接続エラー

レスポンスの説明:

Oracle-SOAP HTTP接続でエラーが発生しました。

WebサービスのURLに指定したサービス名とIPアドレスを確認します。これらが正しい場合は、Webサービスが稼働しているかどうかを確認します。操作名とパラメータを確認してください。

レスポンス・コード:

Webサービスのプロトコル処理エラー

レスポンスの説明:

Oracle-SOAP APIのコール中にエラーが発生しました。

WebサービスのURLに指定したサービス名とIPアドレスを確認します。これらが正しい場合は、Webサービスが稼働しているかどうかを確認します。操作名とパラメータを確認してください。

レスポンス・コード:

日付を解析できません

レスポンスの説明:

日付の解析中にエラーが発生しました。

「ターゲット日付書式」パラメータに指定した値が正しくありません。指定可能な日付書式の詳細は、次のWebページを参照してください。

http://java.sun.com/docs/books/tutorial/i18n/format/simpleDateFormat.html#datepattern

レスポンス・コード:

データ・アクセス・エラー

レスポンスの説明:

問合せの実行中または結果セットのロード中にデータ・アクセス・エラーが発生しました。

Oracle Identity Managerが他の操作で正しく動作しているかどうかを確認します。Oracle Identity Managerフロント・エンドとデータベースの間の接続を確認します。

注意: このエラーは、使用しているプロバイダには関係ありません。

レスポンス・コード:

SSLハンドシェイクは実行されませんでした

レスポンスの説明:

ターゲットWebサービスとのセキュアな通信中にSSLハンドシェイクは実行されませんでした。

Oracle Identity Managerとターゲット・システムの間のSecure Sockets Layer(SSL)構成が正しく完了しているかどうかどうかを確認します。必要に応じて手順を再度実行します。

レスポンス・コード:

SSL関連プロパティの初期化でエラーが発生しました

レスポンスの説明:

SSL関連プロパティの初期化中にエラーが発生しました。関連する値は、MDSにあるoim-config.xmlファイルの"RMSecurity"要素から読み取られます。

oim-config.xmlファイルのRMSecurity要素に対応する構成エントリを確認します。

レスポンス・コード:

Webサービスのキーストアまたはパスワードが無効です

レスポンスの説明:

MDSにあるoim-config.xmlファイルで無効なキーストアの名前またはパスワードが見つかりました。"RMSecurity"要素に対応する構成エントリを確認してください。

oim-config.xmlファイルのRMSecurity要素に対応する構成エントリを確認します。

レスポンス・コード:

Webサービスのキーストア初期化中にエラーが発生しました

レスポンスの説明:

キーストアの初期化に失敗しました。キーストアの資格証明は、oim-config.xmlファイルの"RMSecurity"要素の下に示されています。

oim-config.xmlファイルのRMSecurity要素に対応する構成エントリを確認します。

レスポンス・コード:

IDが無効です

レスポンスの説明:

入力SPMLリクエストに無効なIDがあります。

「ターゲットID」パラメータに指定した値を確認します。

レスポンス・コード:

オブジェクトはすでに存在します

レスポンスの説明:

このオブジェクトはターゲット・システムにすでに存在します。

作成しようとしているオブジェクトがすでにターゲット・システムに存在していないかどうかを確認します。

レスポンス・コード:

操作はサポートされていません

レスポンスの説明:

リクエストされたプロビジョニング操作はサポートされていません。

リクエストしたプロビジョニング操作がターゲット・システムでサポートされているかどうかを確認します。SPMLプロビジョニング・フォーマット・プロバイダを使用して実行できるSPMLプロビジョニング操作のタイプの詳細は、「SPMLプロビジョニング・フォーマット・プロバイダ」を参照してください。

レスポンス・コード:

入力SPMLリクエストのIDタイプが無効です

レスポンスの説明:

入力SPMLリクエストに無効なIDタイプがあります。

送ったリクエストのタイプに対応するサンプルSPMLリクエストを確認し、ターゲット・システムでそのリクエストに含まれていたすべてのID値がサポートされているかどうかを確認します。

レスポンス・コード:

入力SPMLリクエストにあるIDがターゲット・システムに存在しません

レスポンスの説明:

入力SPMLリクエストにあるIDがターゲット・システムに存在しません。

リクエストで送ったpsoID値がターゲット・システムに存在することを確認します。

レスポンス・コード:

リクエストされた実行モードはサポートされていません

レスポンスの説明:

リクエストされた実行モードはサポートされていません。

同期モードでのリクエストの実行が、ターゲット・システムでサポートされていることを確認します。

レスポンス・コード:

無効なコンテナ

レスポンスの説明:

指定されたコンテナにオブジェクトを追加できません。詳細はログ・ファイルを参照してください。SPMLレスポンスにある要素"errorMessage"の値を確認します。

リクエストで指定したコンテナIDに対応するコンテナが、ターゲット・システムに存在するかどうかを確認します。

レスポンス・コード:

非標準のSPMLのエラーが発生しました

レスポンスの説明:

ターゲット固有のエラーが発生しました。詳細はログ・ファイルを参照してください。SPMLレスポンスにある要素"errorMessage"の値を確認します。

SPMLレスポンスのerrorMessage要素の値を確認します。この要素には、エラーの発生時に生成された、ターゲット・システムのエラー・メッセージが含まれます。

レスポンス・コード:

SPMLレスポンスは非同期モードです

レスポンスの説明:

SPMLレスポンスは非同期モードですが、このリリースではサポートされていません。

リクエスト実行の同期モードに対応するレスポンスが、ターゲット・システムから送信されていることを確認します。

レスポンス・コード:

WebサービスURLの構成要素の解析中にエラーが発生しました

レスポンスの説明:

WebサービスURLの構成要素の解析中にエラーが発生しました。指定したURLにプロトコル、ホスト名、ポートおよびエンドポイントが含まれているかどうかを確認してください。コネクタ作成中にプロバイダ・パラメータ値を指定するとき、関連WSDLファイルからURLをコピーすることをお薦めします。

指定したURLにプロトコル、ホスト名、ポートおよびエンドポイントが含まれているかどうかを確認します。コネクタ作成中にプロバイダ・パラメータ値を指定するとき、関連WSDLファイルからURLをコピーすることをお薦めします。

レスポンス・コード:

SPMLレスポンスは、V2スキーマ検証に失敗しました

レスポンスの説明:

受信したSPMLレスポンスは、SPML V2標準仕様に準拠していません。

ターゲット・システムによって戻されたSPMLレスポンスが、SPML V2標準仕様に準拠していることを確認します。

第V部

リクエストおよび承認プロセス

この部は、リクエストおよびSOAコンポジットの構成方法について説明する各章で構成されています。

次の章で構成されます。

- 第23章「リクエストの構成」

- 第24章「Oracle SOA Suiteにおける承認プロセス開発の理解」

- 第25章「SOAコンポジットの開発」

- 第26章「SOAコンポジットでのOracle Identity Manager APIの使用」

23 リクエストの構成

この章では、組織における固有の要件に合わせてカスタム・リクエスト・ワークフローを構成する方法について説明します。カスタム・リクエスト・ワークフローを構成するには、次の手順を実行します。

- 手順1: リソースのリクエスト・データセットの作成

- 手順2: MDSへのリクエスト・データセットのアップロード

- 手順3: 承認に必要なSOAコンポジットの作成

- 手順4: Oracle Identity ManagerへのSOAコンポジットの登録

- 手順5: リクエスト承認の定義

- 手順6: リクエスト・テンプレートの作成

次の項では、プラグイン・ポイントを使用してリクエスト管理操作を拡張する方法について説明します。

- リクエスト管理操作の拡張

23.1 手順1: リソースのリクエスト・データセットの作成

リクエスト・データセットは、リクエスト・ライフサイクルの様々なフェーズでどのデータを収集する必要があるかを指定する、XML定義ファイルです。リクエスト・データセットでは、リクエスタや承認者が送信する必要がある属性、属性が必須かどうか、およびUIでどのようにユーザーに対して属性をレンダリングするかを定義できます。データセットの一部として定義されたすべての属性は、属性の動作を定義する一連のプロパティに関連付けられます。また、リクエスト・データセットを使用すると、リクエストのコンテキストにのみ存在する追加属性を定義することもできます。

すべてのリクエストはリクエスト・テンプレートを使用して要求されます。各リクエスト・テンプレートはリクエスト・タイプに関連付けられています。各リクエスト・タイプはリクエスト・モデルに関連付けられています。リクエスト・モデルとリクエスト・タイプの間には、1対1の対応関係があります。リクエスト・モデルは、リクエスト・エンジンに特定のリクエスト・タイプに対して特定の方法で動作するように指示する仕様または構成です。リクエスト・モデルは、大まかに、ユーザー、リソースおよびロールの3つのタイプのエンティティに関連付けられます。すべてのリクエスト・モデルがOracle Identity Managerに付属しており、構成することはできません。

特定のリクエスト・タイプのリクエストが要求されると、リクエスト・モデルによって適切なリクエスト・データセットが関連付けられます。たとえば、汎用のリソースのプロビジョニング・リクエスト・モデルでは、リソース・オブジェクトのプロビジョニングのリクエストを処理します。リソースを定義するたびに、リクエストを介してそのリソースをプロビジョニングする必要がある場合は、リクエスト・ライフサイクルの間に収集する必要がある属性を使用して新しいデータセットを作成できます。非汎用エンティティであるユーザーに関連付けられたリクエスト・データセットには、事前定義済またはデフォルトのリクエスト・データセットがあります。

汎用エンティティに関連付けられたリクエスト・モデルには、デフォルトのリクエスト・データセットがありません。たとえば、リソースのプロビジョニング・リクエスト・モデルは、汎用エンティティであるリソースに関連付けられます。ユーザーなどの非汎用エンティティに関連付けられたリクエスト・モデルの場合、ユーザー・エンティティにデフォルト属性の固定セットがあるため、デフォルトのリクエスト・データセットを使用できます。

表23-1に、リクエスト・モデルおよび関連付けられるOracle Identity Managerに付属のデフォルトのリクエスト・データセット・ファイル名を示します。

表23-1 Oracle Identity Managerに付属のデフォルトのリクエスト・データセット

リクエスト・モデル

デフォルトのデータセット・ファイル名

エンティティ

ユーザーの作成

CreateUserDataSet.xml

ユーザー

ユーザーの削除

DeleteUserDataset.xml

ユーザー

ユーザーの有効化

EnableUserDataset.xml

ユーザー

ユーザーの無効化

DisableUserDataset.xml

ユーザー

ユーザー・プロファイルの変更

ModifyUserDataset.xml

ユーザー

ユーザーの自己登録

SelfCreateUserDataset.xml

ユーザー

セルフ・プロファイルの変更

ModifyUserDataset.xml

ユーザー

ロールの作成

CreateRoleDataSet.xml

ロール

ロールの変更

ModifyRoleDataSet.xml

ロール

ロールの削除

DeleteRoleDataSet.xml

ロール

ロールの割当て

AssignRolesDataset.xml

ロール

ロールの自己割当て

AssignRolesDataset.xml

ロール

ロールの自己削除

RemoveRolesDataset.xml

ロール

ロールからの削除

RemoveRolesDataset.xml

ロール

リソースのプロビジョニング

リクエスト・データセットなし

リソース

リソースの自己リクエスト

リクエスト・データセットなし

リソース

プロビジョニング済リソースの有効化

リクエスト・データセットなし

リソース

プロビジョニング済リソースの変更

リクエスト・データセットなし

リソース

プロビジョニング済リソースの自己変更

リクエスト・データセットなし

リソース

プロビジョニング済リソースの無効化

リクエスト・データセットなし

リソース

リソースのプロビジョニング解除

リクエスト・データセットなし

リソース

リソースの自己プロビジョニング解除

リクエスト・データセットなし

リソース

注意:

- リクエスト・モデルごとにリクエスト・データセットを用意する必要はありません。たとえば、リソースのプロビジョニング解除リクエスト・モデルでは、リクエストの送信または承認の一部として収集する特定のデータはないため、リクエスト・データセットは必要ありません。ただし、リソースのプロビジョニング・リクエスト・モデルでは、リクエストの送信または承認の一部としてリソース固有のデータの収集が必要になる場合、収集するデータおよびその収集方法を指定するデータセットをそのモデルに対して定義する必要があります。

- デフォルトのデータセットは、新しい属性を追加するなどしてカスタマイズまたは構成できます。MDSにおけるデフォルトのリクエスト・データセットの場所の詳細は、ユーザーが変更可能なメタデータ・ファイルに関する説明を参照してください。

ここでは、次の各項でリクエスト・データセットについて説明します。

- 要素およびプロパティ

- サンプル・リクエスト・データセット

- 子データ

- 共通リクエスト・データセット

- リクエスト・データセットのローカライズされた値の構成

23.1.1 要素およびプロパティ

リクエスト・データセットは、次の要素およびそれに関連付けられた属性を使用して定義します。

- request-data-set要素

- DataSetValidator要素

- AttributeReference要素

- Attribute要素

23.1.1.1 request-data-set要素

request-data-set要素は、リクエスト・データセットのルート要素であり、次の必須属性があります。

- name: データセットの名前(CreateUserDataSetなど)

- entity: データセットが関連付けられる、基礎となるエンティティ(ユーザーなど)

- operation: データセットに関連付けられる操作(CREATEなど)

次の例は、request-data-set要素を示しています。

<request-data-set xmlns="http://www.oracle.com/schema/oim/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/request" name="CreateUserDataSet" entity="User" operation="CREATE">

このルート要素には、子要素がありません。

リソース・エンティティのリクエスト・データセットを作成するには、各リクエスト・タイプのリクエスト・データセット名の書式および操作を示す表23-2を参照してください。

表23-2 リソース・エンティティのリクエスト・データセット

リクエスト・タイプ

リクエスト・データセット名の書式

操作

リソースのプロビジョニング

ProvisionResource${ENTITY-NAME}

PROVISION

リソースの自己リクエスト

ProvisionResource${ENTITY-NAME}

PROVISION

プロビジョニング済リソースの変更

ModifyResource${ENTITY-NAME}

MODIFYRESOURCE

プロビジョニング済リソースの自己変更

ModifyResource${ENTITY-NAME}

MODIFYRESOURCE

E-Business ROリソースのProvision Resourceデータセットのサンプル・データセット・タグを次に示します。

<request-data-set xmlns="http://www.oracle.com/schema/oim/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/request" name="ProvisionResourceE-Business RO" entity="E-Business RO" operation="PROVISION">

説明:

- nameについては、表23-2に示されているProvisionResource${ENTITY-NAME}の書式がリソース名E-Business ROに置き換えられています。${ENTITY_NAME}をリソース名に置き換えます。

- 表23-2のように操作を指定します。

- プロパティの値は次のとおりです。

- name: ProvisionResourceE-Business RO

- entity: E-Business RO

- operation: PROVISION

23.1.1.2 DataSetValidator要素

DataSetValidator要素は、リクエスト・データセットのオプション要素です。request-data-set要素の子要素の1つであり、データセット属性値を検証するためのユーザー定義のプラグイン詳細を記述します。リクエスト・データを送信中に検証するために、リクエスト・エンジンによって、実装されているプラグインが実行されます。検証が正常に終了すると、リクエストが作成されます。それ以外の場合、リクエストは作成されません。プラグイン・ロジックを実装する必要があります。DataSetValidatorは、各データセットに1つのみ定義できます。属性は次のとおりです。

- name: この属性では、DataSetValidatorプラグインの論理名を指定します。

- classname: この属性では、実装されているプラグイン・クラスの完全修飾名を指定します。

次の例は、DataSetValidator要素を示しています。

<DataSetValidator name="CreateUserDataValidator" classname="oracle.iam.requestactions.plugins.datavalidator.CreateUserDataValidator"/>

表23-1「Oracle Identity Managerに付属のデフォルトのリクエスト・データセット」に示されているデフォルトの各リクエスト・データセットでは、デフォルトのDataSetValidator要素が定義され、対応する実装がデフォルトで提供されています。これらのデフォルトのリクエスト・データセット内にあるDataSetValidatorのクラス名をカスタマイズされたクラスに変更して、カスタマイズされた検証を適用できます。

関連項目:

送信後のリクエスト・データのカスタム検証の詳細は、「リクエスト・データの検証」を参照してください。

23.1.1.3 AttributeReference要素

この子要素は、リクエスト・データセットと基礎となるエンティティ属性またはプロセス・フォーム・フィールドの間のデータ・フローにおいて、リクエスト終了時にエンティティ属性を定義するために使用されます。AttributeReferenceに対応するすべてのデータは、構成に基づき、リクエスト・ライフ・サイクルの様々なステージにおいてリクエスト・データとして収集されます。

1つのデータセットには、属性ごとに1つずつ指定して、複数のAttributeReference要素を含めることができます。

必須プロパティ

AttributeReferenceは、次の必須プロパティを使用して構成します。

- name: 要素を識別する一意の名前。リクエストでは、この名前を使用してAttributeReferenceを参照します。値はString型です。

- attr-ref: データセット値とプロセス・フォーム・フィールドまたは基礎となるエンティティ属性の間のマッピング・プロパティです。たとえば、Create Userデータセット内の定義<AttributeReference name="Organization" attr-ref="act_key">によって、新しく作成し、ユーザー・エンティティのact_keyデータ・フィールドに移入するユーザーに対応するデータを、リクエストがOrganizationとして収集することが指定されます。
同様に、AttributeReference name="Domain" attr-ref="domain"定義をProvision Emailリソース・データセットに関連付けて使用すると、リクエストは、プロビジョニングするリソースに対応するデータをDomainとして収集し、そのデータがプロセス・フォームのdomainフィールドに移入されます。したがって、リソースのプロビジョニング・モデルでは、attr-ref属性値をプロセス・フォームのフィールド・ラベル(SDC_LABEL)と同じにする必要があります。その他のモデルでは、attr-ref属性値を機能によって定義されている基礎となるエンティティのエンティティ属性にする必要があります。値はString型です。

リクエスト・データセット属性を基礎となるエンティティ属性にマップするには、データ・フローが必要です。たとえば、リソースのプロビジョニングなどの一部のリクエスト・モデルでは、リクエスト・データセットとプロセス・フォーム・データ・フィールドの間のデータ・フロー・マッピングを定義する必要があります。データ・フロー・マッピングは、データセットで次のように指定することによって設定できます。

<AttributeReference name="ATTRIBUTE_NAME" attr-ref="DATA_FIELD_NAME_IN_PROCESS_FORM" available-in-bulk="false" />

ユーザーベースおよびロールベースのリクエスト・データセットの場合、attr-ref値はユーザーおよびロール・エンティティ定義で指定されている属性名となります。リソースベースのリクエスト・モデルでは、attr-ref値をプロセス・フォーム属性のラベル名にする必要があります。ただし、子フォームについては、attr-ref値を子表名にする必要があります。

- type: このプロパティでは、値のデータ型を指定します。たとえば、First Name属性のtype="String"によって、「ユーザーの作成」リクエストUIの「名」フィールドでString型の入力を受け入れることが指定されます。サポートされているデータ型は次のとおりです。

- Byte

- Double

- Integer

- String

- Short

- Long

- 日付

- ブール

- ByteArray

- Clob

注意:

サポートされているすべてのデータ型の中で、Clobデータのみがリクエスト管理UIに表示されません。

Clob型の属性を承認者専用にしないでください。

- widget: このプロパティは、データ収集時にデータ属性をUIに表示する方法を指定するために使用します。このプロパティの値はString型です。次のウィジェットがサポートされています。

- text: ユーザーがテキストを1行で入力できるテキスト・ボックスを指定します。たとえば、First Name属性のwidget="text"によって、「ユーザーの作成」リクエストUIの「名」フィールドがテキスト・ボックスになることが指定されます。

- date: 日時型のフィールドを指定します。たとえば、Start Date属性のwidget="date"によって、「ユーザーの作成」UIの「開始日」フィールドで日付を入力として受け入れることが指定されます。

- entity: エンティティ・タイプのフィールドを指定します。widget="ENTITY"を指定した場合、entity-type="ORGANIZATION"などのentity-typeプロパティの値を指定する必要があります。このことは、「ユーザーの作成」リクエストUIの「組織」フィールドでOracle Identity Managerに存在する組織を検索および選択できる組織参照が可能であることを意味します。widget=ENTITYを指定した場合、entity-typeの値をUSER、ORGANIZATIONまたはROLEにする必要があります。

注意:

ユーザー・エンティティ定義における組織の属性名であるattr-ref要素の値を指定する必要があります。たとえば、User.xmlのattr-ref="act_key"には、ユーザー・エンティティのエンティティ定義が含まれます。

- textarea: 複数行のテキストを入力するための大きいテキスト・フィールドを指定します。

- dropdown: 値リスト(LOV)を指定します。widget="dropdown"を指定した場合は、lookupValues encoded-value="End User" decoded-value="Identity Only"やlookupValues encoded-value="End-User Administrator" decoded-value="End-User Administrator"などのlookupValues encoded-value要素およびdecoded-value要素のリストの値を指定する必要があります。このことは、「ユーザーの作成」リクエストUIの「ユーザー・タイプ」フィールドがLOVとして表示され、そのフィールドからユーザー・タイプ「アイデンティティのみ」または「エンドユーザー管理者」を選択できることを意味します。ただし、この章で後述するlookup-codeプロパティが定義されている場合は、lookupValuesを指定する必要はありません。
値リストの内容は次のいずれかにできます。

- データセット自体で指定されているlookupValuesの静的リスト。例:

lookupValues encoded-value="End User" decoded-value="Identity Only" and lookupValues encoded-value="End-User Administrator" decoded-value="End-User Administrator"

- この章で後述する定義済のlookup-codeプロパティに基づく参照値のリスト。

- radio: ラジオ・ボタンを指定します。

- checkbox: チェック・ボックス・フィールドを指定します。このウィジェットは、Boolean型の属性参照にのみ関連付けることができます。

- lookup: 多数の値から値を選択できる参照フィールドを指定します。これを使用する場合、lookup-codeプロパティを指定する必要があります。

- lookup-query: lookupQuery要素に関連付けられる検索および選択ウィジェットを指定します。

- itresource-lookup: ITリソースに関連付けられ、利用可能なITリソース・インスタンスを表示する検索および選択ウィジェットを指定します。このウィジェットの詳細は、「E-Businessリソース・データセットのプロビジョニング」を参照してください。

- length: この属性では、データ値の長さを指定します。たとえば、First Name属性のlength="80"によって、「ユーザーの作成」リクエストUIの「名」フィールドで最大80文字の入力を受け入れることが指定されます。値は正の整数です。

- available-in-bulk: 値はBoolean型です。このプロパティは、バルク・リクエストの作成中に属性参照を表示するかどうかを示します。バルク・リクエストの詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのバルク・リクエストおよび子リクエストに関する説明を参照してください。
リクエスト・データセット内の、シングル・ユーザーのコンテキストに関連する、名、ユーザーID、パスワードなどのフィールドは、バルク・リクエスト・シナリオでそれらのフィールドをavailable-in-bulk="false"としてマークすることによって、常に非表示にできます。これは、バルク・リクエストは複数のユーザーに適用でき、シングル・ユーザー・フィールドをリクエストUIに表示しても意味がないためです。プロビジョニング・リクエストでは、プロセス・フォームに直接入力する事前移入アダプタによってこれらのシングル・ユーザー・フィールドにデータを移入できます。available-in-bulk="false"として指定した属性は、必須にできません。事前移入アダプタを使用してリクエスト・データセットを作成した場合、名、ユーザーID、パスワードなど、これらのシングル・ユーザー・フィールドには、必須制約を割り当てることはできません。シングル・ユーザーがセルフ・サービスを使用してリソースを要求する場合に便利なように、必須制約をシングル・ユーザー・フィールドに割り当てる場合は、リクエスト・データセットで、ユーザー固有のデータを移入するためのPrePopulationAdapter要素を使用します。リクエスト・データセットでPrePopulationAdapter要素を使用する方法の詳細は、「PrePopulationAdapter要素」を参照してください。

オプション・プロパティ

AttributeReferenceを構成するには次のオプション属性を使用できます。

- required: リクエストの送信時にデータ値を指定する必要があることを示すフラグ・プロパティ。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。
基礎となるエンティティで対応するattr-refフィールドが必須である属性参照は、required="true"として指定する必要があります。たとえば、Organizationはユーザー・エンティティの必須属性です。したがって、SelfCreateUserDataset.xmlまたはCreateUserDataSet.xml内の対応する属性参照は、このフィールドが基礎となるエンティティでも必須であることを反映して、required="true"として指定します。

- Masked: データ値をマスクするかどうかを指定するために使用するフラグ・プロパティ。値がmaskedに設定されている場合、リクエスト・エンジンは常に値をアスタリスクとして表示します。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。

- approver-only: 承認者がデータ値を指定して編集する必要があることを指定するために使用されるフラグ・プロパティ。このフラグを設定すると、リクエスタは対応するデータ値を指定できません。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。
属性がrequired="true"およびapprover-only="true"として指定されている場合、承認者はリクエストを承認する前にこの属性の値を指定する必要があります。

承認プロセスでは子表のデータの追加がサポートされていないため、承認プロセス中に子表(複数値)フィールドに指定できる値は1つのみです。

- entity-type: このプロパティは、サポートされているデータ値の導出元エンティティを関連付けるために使用し、導出されたデータ値はリクエストUIから選択できます。例:

<AttributeReference name="Organization" attr-ref="act_key" available-in-bulk="false" type="Long" length="20" widget="ENTITY" required="true" entity-type="ORGANIZATION"/>

この定義を使用すると、UIに参照ウィジェットが表示され、ユーザーはOracle Identity Managerでそのウィジェットを使用して組織を検索および選択できます。

entity-typeプロパティを定義する場合は、ウィジェットをENTITYとして定義する必要があり、UIにはユーザーがエンティティの検索および選択に使用できる参照ウィジェットが表示されます。

- lookup-code: このプロパティは、定義済のlookup-codeに基づいて使用可能なLKU/LKV値をサポートされているデータとして関連付けるために使用します。次に例を示します。

<AttributeReference name="Responsibility Name" attr-ref="Name" type="String" length="30" widget="lookup" required="false" available-in-bulk="true" lookup-code="Oracle.Responsibility.Name"/>

この定義では、lookup-code Oracle.Responsibility.Nameのすべてのエンコードまたはデコードされた値をレンダリングします。

lookup-codeプロパティを定義する場合は、ウィジェットをlookupとして定義でき、UIにはユーザーが参照値の検索および選択に使用できる参照ウィジェットが表示されます。

lookup-codeを定義する場合、ウィジェットをdropdownにすることもできます。例:

<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="20" widget="dropdown" lookup-code="Lookup.Users.Role" required="true"/>

この場合、ユーザー・タイプがドロップダウンとして表示され、ユーザーはいずれかの値を選択できます。

参照コードが制限された数の値に関連付けられている場合にdropdownを使用できます。ただし、参照コードが多数の値に関連付けられている場合は、値の検索および選択が可能な参照ウィジェットを使用します。

- itresource-type: このプロパティは、定義済のitresource-typeの使用可能なITリソース・インスタンスを関連付けるために使用します。次に例を示します。

<AttributeReference name="Server" attr-ref="Server Name" type="String" widget="itresource-lookup" required="true" itresource-type="EBIZServer" available-in-bulk="true" length="20"/>

この定義では、EBIZServer itresource-typeのすべてのITリソース・インスタンスをレンダリングします。

itresource-typeプロパティを定義する場合は、ウィジェットをitresource-lookupとして定義する必要があり、UIにはユーザーがITリソース・インスタンスの検索および選択に使用できる参照ウィジェットが表示されます。

- primary: データセット属性に複数の値を指定できるようにするかどうかを指定するために使用するフラグ・プロパティ。このフラグは、子表のコンテキストでのみデータセット属性に対して設定できます。primaryプロパティの詳細は、「子データ」を参照してください。

- mls: データセット属性をマルチ言語サポート(MLS)型にするかどうかを指定するために使用するフラグ・プロパティ。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。

- entitlement: データセット属性をentitlement型にするかどうかを指定するために使用するフラグ・プロパティ。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。

- hidden: データ値を承認者に対して非表示にするかどうかを指定するために使用するフラグ・プロパティ。このデータ値は、承認者に対してのみ非表示になりますが、リクエストの送信時または他の方法でリクエスタからデータを収集することはできます。値はBoolean型です。このプロパティが指定されていない場合、使用されるデフォルト値はfalseです。

23.1.1.3.1 PrePopulationAdapter要素

この子要素は、関連付けられるOracle Identity Managerプラグイン・クラスを定義するために使用し、このプラグイン・クラスは対応する属性のデータ値の生成に役立ちます。AttributeReference定義で各属性に最大1つのPrePopulationAdapter要素を関連付けることができます。属性値は、事前移入アダプタ・プラグインによって返された値を使用して、UIからのリクエストの作成中に事前移入されます。次の属性があります。

- name: この属性は、アダプタの論理名を指定するために使用します。

- classname: この属性は、プラグイン・クラスの完全修飾クラス名を指定するために使用します。

注意:

リクエスト・データセット属性がPrePopulationAdapterを使用して構成されている場合でも、その値をリクエスト・テンプレートで制限できます。その結果、事前移入は行われず、テンプレートで制限された値がリクエスト作成UIに表示されます。

次の例は、AttributeReferenceのPrePopulateAdapterを関連付ける方法を示しています。

<AttributeReference name="Organization" attr-ref="act_key" available-in-bulk="false" type="Long" length="20" widget="ENTITY" required="true" entity-type="ORGANIZATION"/>
<PrePopulationAdapter name="prepopulateOrg" classname="my.sample.package.SamplePrePopulateOrg" />
</AttributeReference>

Oracle Identity Managerにmy.sample.package.SamplePrePopulateOrgクラスをプラグインとして登録する必要があります。

例23-1は、Active Directory(AD)をプロビジョニングするためのサンプル・データセットを示しており、事前移入が使用されています。

例23-1 ADリソースのプロビジョニング

<?xml version="1.0" encoding="UTF-8"?>
<request-data-set xmlns="http://www.oracle.com/schema/oim/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/request" name="ProvisionResourceAD" entity="AD" operation="PROVISION">
<AttributeReference name="Domain" attr-ref="domain" available-in-bulk="true" type="String" length="20" widget="text">
<PrePopulationAdapter classname="oracle.iam.request.DomainPrepopulateAdapter"/>
</AttributeReference>
<AttributeReference name="Login" attr-ref="login" available-in-bulk="true" type="String" length="20" widget="text"/>
<AttributeReference name="Organization" attr-ref="organization" available-in-bulk="true" type="String" length="20" widget="text" required="true">
<PrePopulationAdapter name="org" classname="oracle.iam.request.OrgPrepopulateAdapter"/>
</AttributeReference>
<AttributeReference name="EmployeeType" attr-ref="EmployeeType" available-in-bulk="true" approver-only="true" type="String" length="20" widget="text"
required="true">
</AttributeReference>
<AttributeReference name="Role" attr-ref="role"available-in-bulk="true" type="String" length="20" widget="text"><AttributeReference name="RoleName" attr-ref="role"available-in-bulk="true" type="String" length="20" widget="text" entitlement="true">
</AttributeReference>
<AttributeReference name="Description" attr-ref="description" available-in-bulk="true" type="String" length="20" widget="text">
</AttributeReference>
</AttributeReference>
</request-data-set>

ここで、Roleは子属性RoleNameおよびDescriptionを持つ子フォームです。

ADリソースをプロビジョニングするためのデータセットは、Organization属性に事前移入アダプタが関連付けられていることを示しています。Organization属性値は、事前移入アダプタ・プラグインによって返された値を使用して、リクエストの作成中に事前移入されます。

プラグインのprepopulateメソッドから返される値は、リクエスト・データセットで構成されている型に対応する型である必要があります。たとえば、例23-1のOrganization属性の場合は、Organization属性の型がデータセットでStringとして構成されているため、OrgPrepopulateAdapterのprepopulateメソッドではjava.lang.String型の値を返します。

23.1.1.3.2 lookupValues要素

AttributeReferenceの子要素であるlookupValues要素は、AttributeReference定義に関連付けられるエンティティ定義の一連の許容データ値を定義するために使用します。この要素の属性は次のとおりです。

- decoded-value: UIからのリクエストの作成中にリクエスタに表示されるデータ値。

- encoded-value: リクエスト・データに格納される実際のデータ値であり、データ・フローに使用されます。リクエスト作成UIから選択されたデコード済の値に基づいて、対応するエンコーディング値がリクエスト・データに格納されます。

次のサンプル・コード・スニペットは、User Typeエンティティ属性にlookupValuesを使用するAttributeReferenceを示しています。

<AttributeReference name="User Type" attr-ref="Xellerate Type" available-in-bulk="false" type="String" length="30" widget="dropdown" required="true">
<lookupValues encoded-value="End-User Admin" decoded-value="End-User Administrator"/>
<lookupValues encoded-value="Identity" decoded-value="Identity"/>
<lookupValues encoded-value="End-User" decoded-value="End-User"/>
</AttributeReference>

User Type属性には、3つの値End-User Admin、Identity Only、End-Userのいずれかを指定できます。ただし、データ収集時には、リクエスタに対して対応するデコード済の値(それぞれEnd-User Administrator、IdentityおよびEnd-User)がドロップダウン・リストに表示されます。エンコード済の値は、データ・フローの一部としてマップされたエンティティ属性フィールドに移入されます。

23.1.1.3.3 lookupQuery要素

AttributeReferenceのこの子要素は、SQLに基づいて一連のデータ値を動的に導出するために使用します。リクエストUIでは、定義済のlookupQueryに基づいてすべての値が参照ウィジェットに表示されます。

<AttributeReference name="adminlogin" attr-ref="adminlogin" type="String" length="20" widget="lookup-query" available-in-bulk="true">
<lookupQuery lookup-query="SELECT USR_KEY as UKEY, USR_LOGIN as ULOGIN FROM TEMP_USR where USR_TYPE='$Form Data.admintype'" display-field="ULOGIN" save-field="UKEY"/>
</AttributeReference>

この例では、SQL問合せに基づき、ユーザー・キーおよびユーザー・ログインが表temp_usrから問い合されます。この要素のプロパティは次のとおりです。

- lookup-query: このプロパティの値は、Oracle Identity Managerデータベースでサポートされている汎用のSQL問合せとなります。この問合せは、同じデータセットの別の属性参照に依存できます。この例では、'$Form Data.admintype'への参照があります。このことは、属性参照adminloginが属性参照admintypeに依存していることを意味します。リクエスタが属性admintypeに指定する値は、参照で属性adminloginの値をフェッチするために使用されます。

- display-field: このプロパティ値は、ユーザーが参照ウィジェットから値を選択した後、そのUI属性においてエンドユーザーに表示する必要がある、選択した列のいずれかの別名です。

- save-field: このプロパティ値は、ユーザーが参照ウィジェットから値を選択した後、システムに内部的に保存する必要がある、選択した列のいずれかの別名です。

UI属性のdisplay-fieldとsave-fieldは同じにできます。

注意:

参照問合せでは、save-fieldおよびdisplay-fieldとして使用する列の別名が必要となります。

23.1.1.4 Attribute要素

リクエスト作成の一環として、基礎となるエンティティを参照しないデータの収集が必要になる場合があります。このことを行うために、Attribute要素を使用できます。リクエスト・データセット内に定義されるAttributeには、基礎となるエンティティへのマッピングは必要ありません。これらの属性はマッピングを必要としないため、次の方法で定義できます。

<Attribute name="ATTRIBUTE_NAME" length="10" type="integer" widget="text" available-in-bulk="false"/>

属性はリクエストの詳細に表示されます。これらは承認者が参照して承認の意思決定に使用できます。

Attribute要素はAttributeReference要素に似ていますが、相違点があります。Attribute要素のデータ値は、リクエストのコンテキストでのみ使用でき、データ・フローに関与できません。AttributeReferenceで使用できる他のすべてのプロパティは、attr-ref属性以外の属性でも使用できます。

23.1.2 サンプル・リクエスト・データセット

リクエストによって収集する必要があるデータは、リクエスト・データセットのXMLファイルで定義します。例23-2は、Create UserデータセットのサンプルXMLコードです。

例23-2 Create Userデータセット

<?xml version="1.0" encoding="UTF-8"?>
<request-data-set xmlns="http://www.oracle.com/schema/oim/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/request" name="CreateUserDataSet" entity="User" operation="CREATE">
<DataSetValidator name="CreateUserDataValidator" classname="oracle.iam.requestactions.plugins.datavalidator.CreateUserDataValidator"/>
<AttributeReference name="First Name" attr-ref="First Name" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="Middle Name" attr-ref="Middle Name" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="Last Name" attr-ref="Last Name" available-in-bulk="false" type="String" length="80"
widget="text" required="true" mls="false"/>
<AttributeReference name="User Login" attr-ref="User Login" available-in-bulk="false" type="String" length="256"
widget="text" required="false"/>
<AttributeReference name="Password" attr-ref="usr_password" available-in-bulk="false" type="String" length="128"
widget="text" required="false" masked="true"/>
<AttributeReference name="Password Generated" attr-ref="Password Generated" available-in-bulk="false" type="Clob" length="1"
widget="text" required="false"/>
<AttributeReference name="Organization" attr-ref="act_key" available-in-bulk="false" type="Long" length="256"
widget="ENTITY" required="true" entity-type="ORGANIZATION"/>
<AttributeReference name="User Type" attr-ref="Xellerate Type" available-in-bulk="false" type="Boolean" length="30"
widget="checkbox" required="false"/>
<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="255"
widget="dropdown" lookup-code="Lookup.Users.Role" required="true"/>
<AttributeReference name="User Manager" attr-ref="usr_manager_key" available-in-bulk="false" type="Long" length="382"
widget="ENTITY" required="false" entity-type="USER"/>
<AttributeReference name="Country" attr-ref="Country" available-in-bulk="false" type="String" length="100"
widget="text" required="false"/>
<AttributeReference name="Common Name" attr-ref="Common Name" available-in-bulk="false" type="String" length="240"
widget="text" required="false" mls="false"/>
<AttributeReference name="Display Name" attr-ref="Display Name" available-in-bulk="false" type="String" length="382"
widget="text" required="false" mls="true"/>
<AttributeReference name="Department Number" attr-ref="Department Number" available-in-bulk="false" type="String" length="80"
widget="text" required="false"/>
<AttributeReference name="Description" attr-ref="Description" available-in-bulk="false" type="String" length="2000"
widget="text" required="false"/>
<AttributeReference name="Employee Number" attr-ref="Employee Number" available-in-bulk="false" type="String" length="80"
widget="text" required="false"/>
<AttributeReference name="Fax" attr-ref="Fax" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Generation Qualifier" attr-ref="Generation Qualifier" available-in-bulk="false" type="String" length="20"
widget="text" required="false" mls="false"/>
<AttributeReference name="Home Phone" attr-ref="Home Phone" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Hire Date" attr-ref="Hire Date" available-in-bulk="false" type="Date" length="50"
widget="date" required="false"/>
<AttributeReference name="Home Postal Address" attr-ref="Home Postal Address" available-in-bulk="false" type="String" length="256"
widget="text" required="false"/>
<AttributeReference name="Locality Name" attr-ref="Locality Name" available-in-bulk="false" type="String" length="80"
widget="text" required="false"/>
<AttributeReference name="Email" attr-ref="Email" available-in-bulk="false" type="String" length="256"
widget="text" required="false"/>
<AttributeReference name="Mobile" attr-ref="Mobile" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Pager" attr-ref="Pager" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Postal Address" attr-ref="Postal Address" available-in-bulk="false" type="String" length="256"
widget="text" required="false" mls="false"/>
<AttributeReference name="PO Box" attr-ref="PO Box" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Postal Code" attr-ref="Postal Code" available-in-bulk="false" type="String" length="30"
widget="text" required="false"/>
<AttributeReference name="usr_locale" attr-ref="usr_locale" available-in-bulk="false" type="String" length="80"
widget="text" required="false"/>
<AttributeReference name="State" attr-ref="State" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="Street" attr-ref="Street" available-in-bulk="false" type="String" length="80"
widget="text" required="false"/>
<AttributeReference name="Telephone Number" attr-ref="Telephone Number" available-in-bulk="false" type="String" length="20"
widget="text" required="false"/>
<AttributeReference name="Title" attr-ref="Title" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="Initials" attr-ref="Initials" available-in-bulk="false" type="String" length="10"
widget="text" required="false"/>
<AttributeReference name="Start Date" attr-ref="Start Date" available-in-bulk="false" type="Date" length="50"
widget="date" required="false"/>
<AttributeReference name="End Date" attr-ref="End Date" available-in-bulk="false" type="Date" length="50"
widget="date" required="false"/>
<AttributeReference name="LDAP Organization Unit" attr-ref="LDAP Organization Unit" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="LDAP Organization" attr-ref="LDAP Organization" available-in-bulk="false" type="String" length="80"
widget="text" required="false" mls="false"/>
<AttributeReference name="usr_timezone" attr-ref="usr_timezone" available-in-bulk="false" type="String" length="100"
widget="text" required="false" mls="false"/>

<AttributeReference name="Number Format" attr-ref="Number Format" available-in-bulk="false" type="String" length="30"
widget="dropdown" lookup-code="Lookup.Users.NumberFormat"  required="false" mls="false"/>
<AttributeReference name="Currency" attr-ref="Currency" available-in-bulk="false" type="String" length="20"
widget="dropdown"  lookup-code="Lookup.Users.Currency"  required="false" mls="false"/>
<AttributeReference name="Date Format" attr-ref="Date Format" available-in-bulk="false" type="String" length="20"
widget="dropdown"  lookup-code="Lookup.Users.DateFormat"  required="false" mls="false"/>
<AttributeReference name="Time Format" attr-ref="Time Format" available-in-bulk="false" type="String" length="20"
widget="dropdown" lookup-code="Lookup.Users.TimeFormat"  required="false" mls="false"/>
<AttributeReference name="Embedded Help" attr-ref="Embedded Help" available-in-bulk="false" type="String" length="10"
widget="dropdown" lookup-code="Lookup.Users.EmbeddedHelp" required="false" mls="false"/>
<AttributeReference name="Font Size" attr-ref="Font Size" available-in-bulk="false" type="String" length="10"
widget="dropdown" lookup-code="Lookup.Users.FontSize" required="false" mls="false"/>
<AttributeReference name="Color Contrast" attr-ref="Color Contrast" available-in-bulk="false" type="String" length="10"
widget="dropdown" lookup-code="Lookup.Users.ColorContrast" required="false" mls="false"/>
<AttributeReference name="Accessibility Mode" attr-ref="Accessibility Mode" available-in-bulk="false" type="String" length="20"
widget="dropdown" lookup-code="Lookup.Users.AccessibilityMode" required="false" mls="false"/>
<AttributeReference name="FA Language" attr-ref="FA Language" available-in-bulk="false" type="String" length="100"
widget="text" required="false"/>
<AttributeReference name="FA Territory" attr-ref="FA Territory" available-in-bulk="false" type="String" length="100"
widget="text" required="false"/>
<AttributeReference name="User Name Preferred Language" attr-ref="User Name Preferred Language" available-in-bulk="true" type="String" length="20" widget="lookup-query" required="false">
<lookupQuery lookup-query="select mls_locale_code as USR_NAME_PREFERRED_LANG from mls_locale where ( locale_flag=0 OR locale_flag=1 ) order by mls_locale_code asc" display-field="USR_NAME_PREFERRED_LANG" save-field="USR_NAME_PREFERRED_LANG"/>
</AttributeReference>

<Attribute name="Roles    " available-in-bulk="false" type="Clob" length="2048" widget="text" required="false"/>
<Attribute name="Policy Name" available-in-bulk="false" type="Clob" length="1024" widget="text" required="false"/>
<Attribute name="RequestorID" available-in-bulk="false" type="Clob" length="1024" widget="text" required="false"/>
<Attribute name="FAOpData" available-in-bulk="false" type="Clob" length="4096" widget="text" required="false" />
</request-data-set>

23.1.3 子データ

他の属性で構成される複数の値または属性を格納するための属性が必要になる場合があります。そのために1つ以上の子属性を構成できます。たとえば、エンティティ・タイプUserのEmail ID属性は複数の値を格納する必要があります。このため、リクエスト・データセットで次のように構成できます。

<Attribute name="Email">
<Attribute name="ID" length="20" type="string" widget="text" />
</Attribute>

1つの属性が複数の属性で構成されるようにすることが必要になる場合もあります。たとえば、Oracle Apps User Responsibilities属性は、3つの属性(Responsibility Start Date、Responsibility End DateおよびResponsibility Name)で構成する必要があります。この属性は、リクエスト・データセットで次のように構成できます。

<AttributeReference name="Oracle Apps User Responsibilities" attr-ref="UD_RESPONS" type="String" length="20" widget="text" available-in-bulk="true">
<AttributeReference name="Responsibility Start Date" attr-ref="Responsibility Start Date" type="Date" widget="date" required="false" available-in-bulk="true" length="100" />
<AttributeReference name="Responsibility End Date" attr-ref="Responsibility End Date" type="Date" widget="date" required="false" available-in-bulk="true" length="100" />
<AttributeReference name="Responsibility Name" attr-ref="Responsibility Name" type="String" length="30" widget="lookup" required="false" available-in-bulk="true" lookup-code="Oracle.Responsibility.Name" primary="true"/>.

</AttributeReference>

ここで、Responsibility Start Date、Responsibility End DateおよびResponsibility Nameの関連付けは保持され、3つの属性でOracle Apps User Responsibilities子属性の値が構成されます。

注意:

- Oracle Identity Managerでは、1つのレベルの子属性のみがサポートされます。したがって、この例では、Responsibility Start Date、Responsibility End DateまたはResponsibility Name属性を他の属性で構成することはできません。同様に、属性参照に子属性を設定することはできません。

- 子表の属性では、AttributeReferenceのnameおよびattr-refを同じにする必要があります。たとえば、この項のOracle Apps User Responsibilities属性の例では、AttributeReferenceのnameおよびattr-refの両方の値がResponsibility Start Dateです。

リクエストの作成中、子データは表に表示され、ポップアップ・ウィンドウから子データを追加できます。このシナリオでは、リクエスタは開始日と終了日が同じである複数の職責を追加する必要があります。Responsibility Nameをprimaryとして指定すると、リクエスタは開始日と終了日が同じである複数の職責を選択できるようになります。

primaryプロパティを使用すると、リクエスタは、子行を追加するときに表示されるウィンドウでResponsibility Name属性に対して複数の値を選択できるようになります。Responsibility Start Date属性およびResponsibility End Date属性については、単一値のみを指定できます。これにより、開始日と終了日の値が同じである選択された職責名ごとに1行ずつ、複数の行が子表に追加されます。

例23-3は、E-Businessリソースをプロビジョニングするためのリクエスト・データセットのサンプルXMLコードを示しています。

例23-3 E-Businessリソース・データセットのプロビジョニング

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request-data-set
xmlns = "http://www.oracle.com/schema/oim/request"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
operation = "PROVISION"
entity = "eBusiness Suite User"
name = "ProvisionResourceeBusiness Suite User"
xsi:schemaLocation = "http://www.oracle.com/schema/oim/request">
<AttributeReference
itresource-type = "eBusiness Suite UM"
available-in-bulk = "true"
required = "true"
length = "20"
widget = "itresource-lookup"
type = "Long"
attr-ref = "EBS Server"
name = "EBS Server"/>
<AttributeReference
available-in-bulk = "true"
length = "240"
widget = "text"
type = "String"
attr-ref = "Description"
name = "Description"/>
<AttributeReference
available-in-bulk = "false"
length = "240"
widget = "text"
type = "String"
attr-ref = "Email"
name = "Email"/>
<AttributeReference
available-in-bulk = "true"
length = "80"
widget = "text"
type = "String"
attr-ref = "Fax"
name = "Fax"/>
<AttributeReference
available-in-bulk = "false"
length = "256"
widget = "text"
type = "String"
attr-ref = "SSO User ID"
name = "SSO User ID"/>
<AttributeReference
available-in-bulk = "false"
length = "30"
widget = "text"
type = "String"
attr-ref = "Person ID"
name = "Person ID"/>
<AttributeReference
available-in-bulk = "true"
length = "10"
widget = "text"
type = "String"
attr-ref = "UD_EBS_RESP"
name = "eBusiness Suite Responsibilities">

<AttributeReference
name = "Application Name"
attr-ref = "Application Name"
type = "String"
length = "256"
widget = "lookup-query"
available-in-bulk = "true"
required = "true">
<lookupQuery
lookup-query = "select lkv_encoded as Value,lkv_decoded as Description from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Application' and instr(lkv_encoded,concat('$Form data.EBS Server', '~'))>0"
display-field = "Description"
save-field = "Value"/>
</AttributeReference>
<AttributeReference
name = "Responsibility Name"
attr-ref = "Responsibility Name"
type = "String"
length = "256"
widget = "lookup-query"
available-in-bulk = "true"
required = "true"
primary = "true">
<lookupQuery
lookup-query = "select lkv_encoded as Value,lkv_decoded as Description from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Responsibility' and instr(lkv_encoded,concat('$Form data.Application Name','~'))>0"
display-field = "Description"
save-field = "Value"/>
</AttributeReference>
<AttributeReference
available-in-bulk = "true"
length = "20"
widget = "date"
type = "Date"
attr-ref = "Effective Start Date"
name = "Effective Start Date"/>
</AttributeReference>
<AttributeReference
available-in-bulk = "true"
length = "10"
widget = "text"
type = "String"
attr-ref = "UD_EBS_RLS"
name = "eBusiness Suite User Role Grants">
<AttributeReference
name = "Application Name"
attr-ref = "Application Name"
type = "String"
length = "256"
widget = "lookup-query"
available-in-bulk = "true"
required = "true">
<lookupQuery
lookup-query = "select lkv_encoded as Value,lkv_decoded as Description from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Application' and instr(lkv_encoded,concat('$Form data.EBS Server', '~'))>0"
display-field = "Description"
save-field = "Value"/>
</AttributeReference>
<AttributeReference
name = "Role Name"
attr-ref = "Role Name"
type = "String"
length = "256"
widget = "lookup-query"
available-in-bulk = "true"
required = "true"
primary = "true">
<lookupQuery
lookup-query = "select lkv_encoded as Value,lkv_decoded as Description from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.UMX.Roles' and instr(lkv_encoded,concat('$Form data.Application Name','~'))>0"
display-field = "Description"
save-field = "Value"/>
</AttributeReference>
<AttributeReference
available-in-bulk = "true"
length = "20"
widget = "date"
type = "Date"
attr-ref = "Start Date"
name = "Start Date"/>
</AttributeReference>
</request-data-set>

E-Businessリソース・データセットをプロビジョニングするためのサンプルXMLコードの説明は次のとおりです。

- Oracle Apps User Responsibilities属性がResponsibility Start Date、Responsibility End DateおよびResponsibility Name子属性の親として定義されています。ユーザーはOracle Apps User Responsibilitiesに1つ以上の値を指定できます。リクエスト作成UIでは、これは「職責開始日」、「職責終了日」および「職責名」列を含む「Oracle Appsユーザーの職責」という見出しの表として表示されます。
親属性については、attr-refの値をプロセス・フォームの子表の名前にする必要があります。この例では、UD_RESPONSです。

Responsibility Start Date、Responsibility End DateおよびResponsibility Name属性は子表UD_RESPONSの列になります。

子属性については、attr-refの値をプロセス・フォームの子表のフィールド・ラベル値にする必要があります。

Oracle Identity Managerでは、子プロセス・フォームを定義し、それをリソースの親プロセス・フォームに関連付けることができます。親フォームの属性は、リクエスト・データセットの属性参照としてモデル化されます。子フォームの属性は、子データの属性参照としてモデル化されます。

E-Businessリソースのリソースのプロビジョニング・リクエスト・モデルに基づくリクエストの例について考えます。次の表は、親プロセス・フォームの定義の詳細および子プロセス・フォームの詳細を示しています。

子フォーム

属性名

UD_RESPONS

Responsibility Start Date

Responsibility End Date

Responsibility Name

関連項目:

E-Businessリソース・データセットのプロビジョニングは、例23-3「E-Businessリソース・データセットのプロビジョニング」を参照してください。

- AttributeReference name="Server"では、widgetの値がitresource-lookupとして指定されています。これは、「サーバー」フィールドで、ユーザーが使用可能なITリソース・パラメータを使用した参照を使用できることを示しています。widget="itresource-lookup"の場合、itresource-type要素の値を指定する必要があります。たとえば、itreource-type="EBIZServer"は、「サーバー」参照フィールドで、EBIZServer ITリソース・タイプのすべてのITリソース・パラメータを選択できることを示します。ユーザーは、この参照を使用してITリソース・インスタンスを検索および選択できます。

注意:

ITリソース・タイプは、コネクタに関連付けられたすべてのITリソース定義のテンプレートです。ITリソース・タイプは、その特定のITリソース・タイプのすべてのITリソース・インスタンス(サーバー、コンピュータなど)に共通するパラメータを指定します。ITリソースおよびITリソース・タイプの詳細は、Oracle Fusion Middleware Oracle Identity Manager管理者ガイドのコネクタ・ライフサイクルの管理に関する説明を参照してください。

関連項目:

リクエスト・テンプレートの作成ウィザードにおける属性の表示方法の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのリクエスト・テンプレートの作成に関する説明を参照してください。

23.1.4 共通リクエスト・データセット

Oracle Identity Managerには、すべてのリソースに共通のデフォルト・データセットがあります。共通リクエスト・データセットでは、すべてのリソースに共通の属性を定義します。

ResourceCommonDatasetは、すべてのリソースに共通のデフォルトの共通データセットです。すべてのリソースに共通のService Account属性を定義します。

その結果、選択したリソースにデータセットがない場合でも、共通データセットの属性がリクエストの作成中のリクエスト・データの収集時に表示されます。リクエスト・データの収集時には、共通データセットおよびリソース固有のデータセットの両方の属性が表示されます。つまり、リクエスト収集データは、共通データセットおよびエンティティに関連付けられているデータセットを結合したものです。

注意:

共通リクエスト・データセットは、Oracle Identity Managerに付属しており、カスタマイズできません。

23.1.5 リクエスト・データセットのローカライズされた値の構成

すべてのデフォルトのリクエスト・データセットには、データセット属性の翻訳があります。ただし、作成したカスタム・リクエスト・データセットについては、そのデータセット属性のローカライゼーションをカスタム・リソース・バンドルに追加する必要があります。

ここでは、次の各項でリクエスト・データセットおよびデータセット属性のローカライズされた値の構成について説明します。

- リクエスト・データセット属性のローカライゼーション

- データセット属性のLookupQueryにおける列名のローカライゼーション

23.1.5.1 リクエスト・データセット属性のローカライゼーション

この項では、データセット属性のローカライゼーション・サポートを有効にするための規則について説明します。たとえば、CreateUserDataSet.xmlでは、role属性が次のように定義されています。

<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="20" widget="dropdown" lookup-code="Lookup.Users.Role" required="true"/>

この属性の翻訳は次のように構成されています。

request.dataset.User.Role=USER_TYPE

ここで、request.dataset.User.Roleは翻訳キー、USER_TYPEは実際の翻訳または翻訳値です。翻訳キーをフレーム化すると実際の翻訳が決定されます。リクエスト・データセット属性に関連する翻訳キーは、request.datasetで始まる必要があります。この後に、属性のエンティティ・タイプ、エンティティ・サブタイプ(存在する場合)、親属性名(存在する場合)、属性名、事前定義された値などのオブジェクト名が続きます。翻訳キーのタイプは、次のように分類されます。

- 非汎用リクエスト・モデルのリクエスト・データセット属性

- 汎用リクエスト・モデルのリクエスト・データセット属性

- 子属性

- 属性の事前定義された値

非汎用リクエスト・モデルのリクエスト・データセット属性

非汎用リクエスト・モデルのリクエスト・データセットの翻訳キーには、エンティティ・サブタイプがデータセットに存在しないため、エンティティ・サブタイプを含めないでください。たとえば、CreateUserDataSet.xml内のRole属性は、次のように定義されています。

<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="20" widget="dropdown" lookup-code="Lookup.Users.Role" required="true"/>

翻訳キーは次のとおりです。

request.dataset.User.Role

説明:

- request.datasetは、データセット属性の先頭に必要な固定文字列です。

- Userはエンティティ・タイプに対応します。これは、CreateUserRequestModel.xmlファイル内のrequest-model要素のentity-typeプロパティと同じである必要があります。リクエスト・モデルに応じてResourceまたはRoleにできます。

- Roleは、翻訳が追加される実際の属性に対応します。データセット内のRole属性参照のnameプロパティに対応します。

汎用リクエスト・モデルのリクエスト・データセット属性

汎用リクエスト・モデルのリクエスト・データセットの翻訳キーには、エンティティ・サブタイプを含める必要があります。たとえば、ProvisionResourceeBusiness Suite User.xml内のEBS Server属性については、次のように定義する必要があります。

<AttributeReference name="EBS Server" attr-ref="EBS Server" type="Long" widget="itresource-lookup" required="true" available-in-bulk="true" itresource-type="eBusiness Suite UM" length="40"/>

翻訳キーは次のとおりです。

request.dataset.Resource.eBusiness\ Suite\ User.EBS\ Server=EBS Server

説明:

- request.datasetは、データセット属性の先頭に必要な固定文字列です。

- Resourceは、ProvisionResourceRequest.xmlファイル内のエンティティ・タイプに対応します。

- eBusiness\ Suite\ Userはエンティティ・サブタイプであり、ProvisionResourceeBusiness Suite User.xml内のrequest-data-set要素のentityプロパティと同じです。これはオプションであり、この例ではリソースのプロビジョニング・リクエスト・モデルが汎用タイプであるために含まれています。

- EBS\ Serverは、翻訳が追加される実際の属性に対応します。データセット内のEBS Server属性参照のnameプロパティに対応します。

子属性

子属性については、翻訳キーにさらに親属性名が含まれ、これは属性を一意に識別するために必要です。たとえば、ProvisionResourceeBusiness Suite User.xml内のApplication Name属性は次のとおりです。

<AttributeReference available-in-bulk="true" length="10" widget="text" type="String" attr-ref="UD_EBS_RESP" name="EBS_RSO">
<AttributeReference name="Application Name" attr-ref="APPLICATION_NAME" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded,lkv_decoded from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Application' and instr(lkv_encoded,concat('$Form data.EBS Server', '~'))>0" display-field="lkv_decoded" save-field="lkv_encoded"/>
</AttributeReference>
</AttributeReference>

APPLICATION_NAMEはEBS_RSO属性の子属性です。APPLICATION_NAMEの翻訳キーの構成は次のとおりです。

- request.dataset.Resource.eBusiness\ Suite\ User.EBS_RSO.Application\ Name = APPLICATION_NAME

- request.datasetは、データセット属性の先頭に必要な固定文字列です。

- Resourceは、ProvisionResourceRequest.xmlファイル内のエンティティ・タイプに対応します。

- eBusiness\ Suite\ Userは、ProvisionResourceeBusiness Suite User.xml内のrequest-data-set要素のentityプロパティです。これはエンティティ・サブタイプとも呼ばれます。これはオプションであり、この例ではリソースのプロビジョニング・リクエスト・モデルが汎用タイプであるために含まれています。

- EBS_RSOはEffective Start Date属性の親属性であり、これにより一意に識別されます。EBS_RSO属性参照のnameプロパティに対応します。

- Application\ Nameは、翻訳が追加される実際の属性に対応します。APPLICATION_NAME属性参照のnameプロパティに対応します。

属性の事前定義された値

参照値やlookup-code値などの一連の事前定義された値を持つ属性を設定できます。これらの値はユーザー・インタフェースに表示されるため、これらの値についても翻訳を追加できます。このタイプの値の翻訳キーは、子属性の翻訳キーに似ています。たとえば、CreateUserDataSet.xmlリクエスト・データセット内のRole属性には、Employee、Full-Time Employee、Part-Time Employeeなどの事前定義された値があります。これらの値は、ユーザー作成のリクエストのUIにドロップダウンとして表示されます。コードLookup.Users.Roleを使用して参照定義を構成することによって事前定義されています。次の例に示すように、Role AttributeReferenceでlookup-code="Lookup.Users.Role"として指定されています。

<AttributeReference name="Role" attr-ref="Role" available-in-bulk="false" type="String" length="20" widget="dropdown" lookup-code="Lookup.Users.Role" required="true"/>

Role属性のEmployee値の翻訳は次のとおりです。

request.dataset.User.Role.LOV.Employee=Employee

説明:

- request.datasetは、すべてのデータセット属性に接頭辞として付加する必要がある固定部分です。

- Userはエンティティ・タイプに対応します。

- Roleは、Employeeが事前定義された値である実際の属性に対応します。データセット内のRole AttributeReferenceのnameプロパティに対応します。

- LOVは、LOVに続く文字列がRoleの事前定義された値であることを示すために追加されています。

- Employeeは、翻訳が追加される事前定義された値です。これは、参照定義のDecode列の値にする必要があります。

注意:

参照定義には、Code Key列およびDecode列があります。たとえば、Code Key = EMP、Decode=Employeeのように指定します。

デフォルトのリクエスト・データセット内の属性はすでに存在します。ただし、新しい属性をデータセットに追加する場合は、この項で説明した方法と同じ方法でこれらの属性の翻訳を分類に応じて追加することもできます。

23.1.5.2 データセット属性のLookupQueryにおける列名のローカライゼーション

リクエスト・データセットには、lookup-queryタイプの属性が存在する場合があります。例:

<AttributeReference name="Application Name" attr-ref="APPLICATION_NAME" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded as Application Key,lkv_decoded as Application Name from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Application'" display-field="APPLICATION_NAME" save-field="APPLICATION_KEY"/>
</AttributeReference>

問合せで指定された列は、リクエストの作成中のデータ収集ステップでUIに表示されます。列の別名をリソース・バンドルのキーとして追加することで、列名lkv_encodedおよびlkv_decodedをローカライズできます。たとえば、この問合せでは、Application KeyおよびApplication Nameがそれぞれlkv_encoded列およびlkv_decoded列の別名です。次のように、カスタム・リソース・バンドルに翻訳を追加してローカライズできます。

Application\ Key=APPLICATION_KEY

Application\ Name=APPLICATION_NAME

23.2 手順2: MDSへのリクエスト・データセットのアップロード

リクエスト・データセットのXMLファイルの作成後、そのファイルをMDSにアップロードする必要があり、そのためにはOracle Identity ManagerのMDSインポートおよびエクスポート・ユーティリティ・ツールを使用します。アップロードが完了すると、リクエストの作成中にリクエスト・エンジンによってデータセットがロードされ、属性参照および属性がデータ収集ステップに表示されます。同様に、同じツールを使用して、MDSリポジトリからデータセット・ファイルを削除またはエクスポートできます。

関連項目:

ファイルのインポートやエクスポートおよびOracle Identity Managerメタデータの変更に使用されるMDSユーティリティの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

リクエスト・データセットをMDSにアップロードするには、次の手順を実行します。

注意:

- リソース要件の変更に応じてデータセットを更新する必要があります。

- 既存のデータセットを更新するには、そのデータセットを使用する保留中のリクエストがないことを確認します。

1. weblogic.propertiesファイルのmetadata_from_locプロパティで、XMLファイルのインポート元の最上位ディレクトリを指定します。リクエスト・データセットを格納するためのサブディレクトリを作成し、データセットをこのディレクトリにコピーします。/custom/RESOURCE_NAMEなどのサブディレクトリ構造を作成することをお薦めします。たとえば、metadata_from_locプロパティを/scratch/datasets/uploadに設定し、EBSリソースのデータセットを作成した場合、データセットは/scratch/datasets/upload/custom/EBS/ディレクトリに配置されます。

注意:

このディレクトリに必要なデータセットのみが格納され、他のファイルがないことを確認します。

2. OIM_HOME/binディレクトリに移動し、weblogicImportMetadata.shまたはweblogicImportMetadata.batスクリプトを実行します。weblogicImportMetadata.shまたはweblogicImportMetadata.batスクリプトの実行の詳細は、MDSユーティリティの環境の設定に関する説明を参照してください。

23.3 手順3: 承認に必要なSOAコンポジットの作成

Oracle Identity Managerには、いくつかの事前定義されたService-Oriented Architecture(SOA)コンポジットが用意されています。ただし、独自のコンポジットを定義し、それをリクエスト承認で使用できます。コンポジットの作成の詳細は、新しいSOAコンポジットの作成に関する説明を参照してください。

23.4 手順4: Oracle Identity ManagerへのSOAコンポジットの登録

Oracle Identity ManagerにSOAコンポジットを登録するには、Oracle Identity ManagerへのSOAコンポジットの登録に関する説明を参照してください。

23.5 手順5: リクエスト承認の定義

リクエストは、実行される前に複数の承認を経由します。リクエストの送信後、様々なレベルで承認を得る必要があります。承認は、一連の承認ポリシーによって制御および構成されます。

承認者はリクエスト・データを表示できます。リクエスタによって提供されたデータを変更することはできません。リクエスト・データセットでapprover-only="true"として設定された属性のデータのみを指定できます。

この項の内容は次のとおりです。

- 承認ワークフロー

- 承認レベル

- 承認ポリシーの作成

23.5.1 承認ワークフロー

リクエストの送信後、承認を開始する必要がある場合は、リクエスト・サービスによってバックエンド・ワークフロー・エンジンでワークフロー・プロセスが開始されます。Oracle SOAがリクエスト・サービスによってワークフロー・エンジンとして使用されます。

関連項目:

- 承認ポリシーの詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの承認ポリシーの管理に関する説明を参照してください。

- ワークフロー・サービスの詳細は、第25章「SOAコンポジットの開発」を参照してください。

SOAサーバーはSOAコンポジットおよびヒューマン・ワークフローをホストします。リクエスト・サービスおよびSOAの統合については、図23-1を使用して説明できます。

図23-1 リクエスト・サービスおよびSOAの統合

「図23-1 リクエスト・サービスおよびSOAの統合」の説明

次のプロセスでは、承認ワークフローを選択するためにOracle SOAがリクエスト・サービスとどのように連携するかについて説明します。

1. リクエスト管理UI(Oracle Identity Managerセルフ・サービスまたは拡張管理)を使用して、リクエストを作成します。

2. リクエストを送信すると、Oracle SOAにデプロイされるSOAコンポジットがリクエスト・エンジンによって呼び出されます。

注意:

Oracle SOAはOracle identity Managerとは無関係です。バックエンドのBusiness Process Execution Language(BPEL)サービスによって承認ワークフローが開始されます。Oracle Identity Managerに付属のデフォルトのBPELワークフロー以外に、要件に合わせてBPELに独自のワークフローを定義できます。BPELワークフローのカスタマイズの詳細は、次のURLのOracle Technology Network(OTN)WebサイトにあるJDeveloperドキュメントを参照してください。

http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html

3. Oracle SOAでは、Java Platform Security(JPS)を使用してSOAコンポジット・ロジックでリクエストを割り当てるユーザーを決定します。Oracle Identity Managerと同じユーザーおよびロールのセットが使用されます。これは、Oracle Identity Managerデータ・プロバイダによって有効化されます。

4. Oracle SOAでは、DBプロバイダによって提供された情報に基づいてタスクを割当て先に割り当てます。

5. ログイン・ユーザーおよびロールに割り当てられたタスクのリストがTaskList UIに表示されます。

6. 承認者は、TaskListを使用してリクエストを承認または拒否します。

7. 承認結果がSOA経由でリクエスト・エンジンに返送されます。

8. リクエストが承認された場合、次のアクションはリクエスト・タイプ、受益者または関連リソースに基づいて決定されます。リクエストが拒否された場合は、リクエストの処理が終了します。

タスクが割り当てられると、ユーザーはOracle Identity Managerセルフ・サービスでTaskList UIにログインして、ヒューマン・タスクおよびOracle Identity Managerリクエストの統合されたビューを表示できます。

TaskListでは、Oracle SOAとの通信にタスク問合せサービスAPIが使用されます。これらのAPIはOracle SOAサーバーによって提供されます。Oracle Identity Managerは、構成に基づいてSOAPまたはRMIプロトコルを使用してOracle SOAと通信します。RMIがデフォルトのプロトコルです。Oracle Identity ManagerとOracle SOAの間の構成の詳細は、第25章「SOAコンポジットの開発」を参照してください。

関連項目:

TaskListを使用して様々なリクエスト関連操作を実行する方法の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのタスクの管理に関する説明を参照してください。

23.5.2 承認レベル

各要求は3つのレベル(テンプレート・レベル、リクエスト・レベルおよび操作レベル)の承認を経由する必要がある場合があります。SOAコンポジットをOracle Identity Managerで承認プロセスとして使用するには、これらをOracle Identity Managerに登録する必要があります。登録すると、Oracle Identity Managerはデプロイして実行時に使用できる承認プロセスを把握できます。

承認レベルについては、以降の各項で説明します。

- テンプレート・レベルの承認

- リクエスト・レベルの承認

- 操作レベルの承認

23.5.2.1 テンプレート・レベルの承認

これらは、リクエスト・テンプレートに定義される承認です。各テンプレートでは、承認ポリシー構成で定義されている承認の上位に、追加の承認を定義できます。このレベルでは、リクエスト全体が承認または拒否されます。バルク・リクエストの場合、部分的に承認または拒否されることはありません。各テンプレートについて、テンプレート・レベルで開始する必要があるオプションの承認プロセスを定義できます。テンプレートに承認プロセスが定義されていない場合は、テンプレート・レベルが自動承認されます。

注意:

リクエスト・レベルおよび操作レベルの承認は、承認ポリシーに関連付けられます。テンプレート・レベルの承認には、承認ポリシーは関連付けられません。承認プロセスはテンプレートで定義され、承認ポリシーとの関連付けなしに直接実行されます。承認ポリシーの詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの承認ポリシーの管理に関する説明を参照してください。

たとえば、すべての契約社員のユーザーを作成するときに、社員のマネージャおよびIT管理者による承認に加えて、人事担当による承認が必要となる場合などに、テンプレート・レベルの承認を使用します。人事担当によるこの追加の承認は、テンプレートの作成中に承認プロセスとして構成できます。テンプレートを使用してリクエストを作成および送信できます。

注意:

このレベルの承認は、子リクエストには必要ありません。

23.5.2.2 リクエスト・レベルの承認

これらはリクエスト全体に対する承認です。承認ポリシー構成に基づきます。

たとえば、ユーザーに対してラップトップをプロビジョニングするためのリクエストが生成されたときに、リクエスタのマネージャによる承認が必要となる場合などに、リクエスト・レベルの承認を使用します。

リクエストに対するリクエスト・レベルの承認に、どの承認プロセスを使用する必要があるかは、リクエスト・レベルで定義される承認ポリシーによって決定されます。指定されたタイプのリクエストに対してリクエスト・レベルの承認ポリシーが定義されていない場合は、デフォルトのリクエスト承認プロセスが使用されます。デフォルトでは、すべてのリクエスト・レベルの承認が管理者に割り当てられます。このため、デフォルトの構成は安全です。複数の承認ポリシーが存在する場合は、承認ポリシー優先度の順に承認ポリシー・ルールが評価され、適切な承認ポリシーが特定されます。承認ポリシー・ルールでは、リクエスト・エンジンに対し、特定の承認についてどの承認プロセスを選択するかを示します。リクエスト・エンジンは、承認ポリシー・ルールの評価に基づいて選択された承認ポリシーに定義されている、承認プロセスを選択します。

たとえば、ユーザーを作成するためのリクエストが送信されると、承認ポリシーの選択方法を使用して、優先度順に、ユーザーの作成リクエスト・モデルについて存在する承認ポリシーの数が確認されます。承認ポリシー優先度が最も高い承認ポリシー・ルールが評価されます。承認ポリシー・ルールの例として、マネージャの名および姓がそれぞれJohnおよびDoeである必要があるというルールがあります。優先度が最も高い承認ポリシー・ルールが一致しない場合は、承認ポリシー優先度が次に高い承認ポリシー・ルールが評価されます。最初の承認ポリシー・ルールが承認ポリシーで指定されている基準に一致する場合は、その承認ポリシーの対応する承認プロセスがリクエスト・レベルでそのリクエストに対して選択されます。すべての承認ポリシー・ルールが一致しない場合は、リクエスト・レベルのデフォルトの承認プロセスが選択されます。

注意:

- 承認ポリシー・ルールの作成の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの承認ポリシーの作成に関する説明を参照してください。

- バルク・リクエストがリクエスト・レベルで正常に承認された後、バルク・リクエストが子リクエストに分割されるため、子リクエストにはリクエスト・レベルの承認は必要ありません。バルク・リクエストおよび子リクエストの詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの第4.3項のバルク・リクエストおよび子リクエストに関する説明を参照してください。

- 「ユーザーの自己登録」リクエスト・テンプレートには、approver-only属性としてorganizationがあります。したがって、属性は必須で承認者が指定する必要があるため、このテンプレートに関連付けられている承認ポリシーにはリクエスト・レベルで自動承認を設定しないでください。

23.5.2.3 操作レベルの承認

これらは、このリクエスト・タイプによって実行される操作に対する承認です。このレベルでは、承認選択方法の名前およびパラメータを方法に渡す必要があります。方法によってこの操作に使用する承認ワークフローが提示されます。リクエスト・タイプおよびスコープでも、承認プロセスの決定に必要な方法固有のパラメータを定義できます。スコープは、表23-3に示すリクエスト・タイプに関連付けられているキーです。

表23-3 リクエスト・タイプおよび関連付けられているキー

リクエスト・タイプ

スコープ

ユーザー・エンティティに関連するすべてのリクエスト・タイプ:

- ユーザーの作成

- ユーザーの自己登録

- セルフ・プロファイルの変更

- ユーザー・プロファイルの変更

- ユーザーの削除

- ユーザーの有効化

- ユーザーの無効化

organization

リソースに関連するすべてのリクエスト・モデル:

- リソースのプロビジョニング

- プロビジョニング済リソースの変更

- リソースの自己リクエスト

- プロビジョニング済リソースの有効化

- プロビジョニング済リソースの無効化

- プロビジョニング済リソースの変更

- プロビジョニング済リソースの自己変更

- リソースのプロビジョニング解除

- リソースの自己プロビジョニング解除

リソース

ロール・エンティティに関連するすべてのリクエスト・タイプ:

- ロールの割当て

- ロールからの削除

ロール

注意:

ロールの作成、ロールの変更およびロールの削除タイプでは、操作レベルの承認が自動承認されます。

たとえば、リソースのプロビジョニング・タイプのリクエストでは、スコープに基づき、承認ポリシーを作成するときに、承認ポリシーを操作レベルで関連付けるリソースを選択する必要があります。同様に、承認ポリシーを作成するとき、ユーザーの作成リクエスト・タイプでは組織を、ロールの割当てリクエスト・タイプではロールを操作レベルで選択する必要があります。

作成した承認ポリシー、承認ポリシー優先度、承認ポリシー・ルールおよびスコープによって、操作レベルでリクエストに対して選択する承認プロセスが決定されます。

たとえば、ユーザーに対してラップトップをプロビジョニングするためのリクエスト・レベルの承認が取得された後、ユーザーに対してラップトップを発行するIT管理者による承認が必要となる場合などに、操作レベルの承認を使用します。

バルク・リクエストの場合、個々の子リクエストに対して操作レベルの承認が必要です。個々の子リクエストは個別に承認または拒否できます。たとえば、ユーザーへのリソースのプロビジョニング・リクエストの場合、複数の受益者、複数のリソースまたは両方が存在する可能性があります。したがって、操作レベルでは、各ユーザーに対する各リソースのプロビジョニングによって子リクエストが生成され、その子リクエストを個別に承認または拒否できます。

23.5.3 承認ポリシーの作成

承認に適切なSOAコンポジットを選択するには、必要な承認ポリシーを作成します。承認に関連する概念は、「手順5: リクエスト承認の定義」を参照してください。承認ポリシーの作成手順は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの承認ポリシーの管理に関する説明を参照してください。

23.6 手順6: リクエスト・テンプレートの作成

リクエスト・テンプレートを使用すると、目的に合わせてリクエストをカスタマイズできます。つまり、UIで様々な機能を制御して、リクエストの属性を制御できます。リクエスト・テンプレートの作成および管理の詳細は、『Oracle Fusion Middleware Oracle Identity Manager開発者ガイド』のリクエスト・テンプレートの管理に関する説明を参照してください。

23.7 リクエスト管理操作の拡張

リクエスト管理操作の特定の側面をカスタマイズして、柔軟性を向上させたり、追加機能のカスタマイズされたロジックを実装できます。これを行うには、リクエスト管理プラグインを使用できます。カスタマイズの実装に使用できるプラグイン・ポイントがあります。

関連項目:

- リクエストに関連する概念およびタスクの詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのリクエストの管理に関する説明を参照してください。

- Oracle Identity Managerでリクエストを作成および管理する方法の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのリクエストの作成および検索に関する説明を参照してください。

ここでは、プラグイン・ポイントについて次の各項で説明します。

- リクエスト・ステータス変更に基づくカスタム・コードの実行

- リクエスト・データの検証

- リクエスト作成時の属性値の事前移入

23.7.1 リクエスト・ステータス変更に基づくカスタム・コードの実行

Oracle Identity Managerでは、リクエストのライフサイクルの各ステージでステータスが変更されます。リクエスト・エンジンによって、リクエスト・ステータスの変更時にカスタム・コードを実行できるプラグイン・ポイントが公開されます。このプラグイン・ポイントを拡張するカスタム・コードを含むプラグインを実装し、コードを実行するために登録できます。プラグイン・ポイントは、public void followUpActions(String reqId)メソッドを含むoracle.iam.request.plugins.StatusChangeEventインタフェースです。このメソッドはリクエストIDパラメータで構成され、これとリクエスト管理APIを使用してリクエスト詳細を取得できます。

関連項目:

プラグインおよびプラグイン・ポイントの詳細は、第7章「プラグインの開発」を参照してください。

ステータス変更時に実行するコードは、oracle.iam.request.plugins.StatusChangeEventインタフェースを実装するプラグイン・クラスのfollowUpActions()メソッドで実装する必要があります。plugin.xmlファイルでこのプラグインをどのリクエスト・ステータス変更時に実行するかを指定する必要があります。

たとえば、Oracle Identity Managerでリクエストが「リクエストに失敗しました」ステータスに移行した場合、管理者に通知を送信するカスタム・コードを実行できます。これを行うには、次の手順を実行します。

1. oracle.iam.request.plugins.StatusChangeEventインタフェースを実装するRequestFailedChangeEventという名前の新しいプラグイン・クラスを作成します。このクラスには、followUpActions(String reqId)メソッドで管理者に通知を送信するロジックが必要です。

2. プラグイン・フレームワークで指定されている次の標準形式でplugin.xmlを定義します。

<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.request.plugins.StatusChangeEvent">
<plugin pluginclass="com.mycompany.RequestFailedChangeEvent" version="1.0" name="RequestFailedChangeEvent">
<metadata name="status">
<value>Request Failed</value>
</metadata>
</plugin>
</oimplugins>

このXML定義では、プラグインを実行する必要があるステージをメタデータ部分で指定しています。メタデータ値をRequest Failedとして指定し、これはリクエストが「リクエストに失敗しました」ステータスに移行したときにcom.mycompany.RequestFailedChangeEventプラグインが実行されることを意味します。

3. プラグインをOracle Identity Managerに登録します。Oracle Identity Managerにプラグインを登録する方法の詳細は、プラグインの登録に関する説明を参照してください。

23.7.2 リクエスト・データの検証

RequestDataValidatorプラグインを使用して、送信後にリクエスト・データのカスタム検証を追加できます。このプラグインのプラグイン・ポイントは、public void validate(RequestData requesterData)メソッドを含むoracle.iam.request.plugins.RequestDataValidatorインタフェースです。DataSetValidator要素の詳細は、「DataSetValidator要素」を参照してください。

23.7.3 リクエスト作成時の属性値の事前移入

事前移入プラグインは、リクエスト・データセットの属性参照または属性に関連付けられます。これを使用すると、リクエストの作成時にカスタム・コードを実行して、属性値を事前移入できます。リクエスタは、必要に応じて事前移入する値を変更できます。

このプラグインのプラグイン・ポイントは、public Serializable prepopulate(RequestData requestData)メソッドを含むoracle.iam.request.plugins.PrePopulationAdapterインタフェースです。このプラグインは、次のリクエスト・タイプにのみ使用します。

リソースのプロビジョニング、リソースの自己リクエスト、ユーザーの作成、ユーザーの自己登録

詳細は、「PrePopulationAdapter要素」を参照してください。

24 Oracle SOA Suiteにおける承認プロセス開発の理解

ワークフローベースのプロビジョニングはOracle Identity Managerの主要機能であり、この機能を使用すると、組織でユーザー・アクセスを管理するビジネス・プロセスを自動化できます。Oracle Identity Managerでは、Oracle Service-Oriented Architecture(SOA)Suiteによって有効化され管理されているサービスを利用し、ユーザー・アクセスを要求、承認および管理する相互作用環境を提供しています。Oracle SOA Suiteにより、SOAを実装するために必要なバックエンド・サービスと管理機能が提供されます。

Oracle Identity Managerでは、SOA Suiteの次のコンポーネントを使用します。

- BPEL Process Manager: ビジネス・プロセスの作成と管理において、エンドツーエンドのソリューションを提供します。

- ヒューマン・ワークフロー: 作成、割り当て、締切り、期限切れ、通知などのヒューマン・タスクのライフサイクルを管理します。

- Oracle Business Rules: 複雑なビジネス・ルールを定義して、リクエスト割当て、プロセス選択および承認者の決議をサポートします。

この章には次の項が含まれます:

- Oracle SOA Suiteとの統合

- 事前定義済SOAコンポジット

- Oracle Identity Managerに対する承認プロセスの開発

- Oracle Identity ManagerのSOAコンポジットの監視

- Oracle Identity ManagerからSOAへの接続の有効化

24.1 Oracle SOA Suiteとの統合

Oracle Identity Managerにおいて、SOAコンポジットは承認プロセスとして使用されます。Oracle Identity ManagerとOracle SOA Suiteとの統合については、次の項で説明します。

- 統合の要件

- 統合コンポーネント

24.1.1 統合の要件

Oracle Identity Managerに対してSOAコンポジットを開発する前に、推奨される要件は次のとおりです。

- XMLおよびXPathの知識。

- Oracle Identity Manager APIの知識。

- SOAコンポジットの開発およびデプロイの知識。詳細は、第25章「SOAコンポジットの開発」を参照してください。

- JDeveloperおよびSOAコンポジット・エディタの使用の知識。JDeveloper IDEの使用の詳細は、次のURLでJDeveloperの一連のチュートリアルを参照してください。
http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html

関連項目:

Oracle SOA Suiteの使用の詳細は、Oracle Fusion Middleware Oracle SOA Suiteを使用したアプリケーションの実行と構築のためのチュートリアルを参照

24.1.2 統合コンポーネント

Oracle Identity MangerとOracle SOA Suiteの統合は、次のコンポーネントで構成されています。

- Oracle Identity Managerのインストールに付随するSOA Suiteのインストール。

- 1つ以上のSOAコンポジット。Oracle Identity Managerに付属するデフォルトのコンポジットを拡張することも、独自のコンポジットを開発することもできます。

関連項目:

SOAコンポジットの開発の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

- 次の構成要素を含むSOAコンポジット。

- リクエスト・ペイロード
Oracle Identity Managerにより、リクエストの詳細がSOAコンポジットにXMLを使用して通知されます。これをペイロードと呼びます。SOAコンポジットでは、ペイロードのすべてまたは一部を使用して、承認プロセスで次に実行する手順を決定します。ペイロードの形式は固定されています。

- Oracle Identity Manager APIコール(オプション)
Oracle Identity Managerでは、ペイロードが小さくなるよう維持し、かつセキュリティを確実にするために、最も重要な情報のみをSOAコンポジットに通知します。ビジネス・プロセスに追加データが必要な場合は、Java埋込みステップを使用して、リクエスタ、受益者またはリクエスト内容に関する詳細を取得できます。Oracle Identity Manager APIを呼び出す方法の詳細は、第31章「APIの使用」を参照してください。

- 1つ以上のヒューマン・タスク
ヒューマン・タスクとは、承認という形式での手動操作が必要なビジネス・プロセス全体におけるステップのことです。ヒューマン・タスクはシリアル、パラレルまたはその両方を組み合せた複数のステップで構成でき、この場合、タスクは1人以上のユーザー、ロールまたはその両方の組合せに対して割り当てられます。これらのヒューマン・タスクを定義して、通知、締切りおよびエスカレーション・ルールを追加できます。ヒューマン・タスクの設計方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

注意:

多くの承認シナリオでは、コンポジットに含まれるヒューマン・タスクは1つのみです。一部のインスタンスでは、Oracle Business Rulesを使用することによってルーティング・ルールが満たされない場合、追加のヒューマン・タスクが必要となる場合があります。たとえば、リソース・リクエスト・タイプに対するコンポジットには複数のヒューマン・タスク(リソースごとに1つ)が含まれます。ベスト・プラクティスとして、承認ルールを簡素化し、コンポジットやヒューマン・タスクの再利用を促進する必要があります。

- 1つ以上のルールセット
リクエストの実行時に満たす必要がある特定のビジネス要件があります。SOAコンポジットでは、これらの要件を満たすためにOracle Business Rulesを利用します。Oracle Business Rulesを使用して開発されたルールの集合をルールセットと呼びます。コンポジットには1つ以上のルールセットを含めることができます。ヒューマン・タスクでこれらのルールを利用して、参加者およびタスクのルーティングを決定することもできます。ヒューマン・タスクの設計方法の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

- 動作保証されているJDeveloperのバージョン(JDeveloper 11.1.1.3など)。

- SOAデザインタイム(JDeveloperのSOAコンポジット・エディタ拡張機能とも呼ばれます)。

24.2 事前定義済SOAコンポジット

表24-1に、承認プロセスとして使用可能なOracle Identity Managerにおける事前定義済SOAコンポジットを示します。

表24-1 事前定義済ワークフロー・コンポジット

ワークフロー・コンポジット

説明

DefaultRequestApproval

デフォルトのリクエスト・レベルの承認。デフォルトでは、リクエスト・レベルの承認の場合、システム管理者(xelsysadm)に送信されます。

DefaultOperationalApproval

デフォルトの操作レベルの承認。デフォルトでは、操作レベルの承認の場合、承認タスクはシステム管理者(xelsysadm)に割り当てられます。

BeneficiaryManagerApproval

受益者のマネージャから承認を取得します。これは次のものと関連付けることができます。

- 受益者を含むリクエスト・タイプ。このようなリクエスト・タイプの例としては、「リソースのプロビジョニング」や「ロールの割当て」があげられます。

- ユーザーの作成およびユーザーの自己登録を除くすべてのユーザー・モデル。

リクエスト・レベルでは、リクエストに複数の受益者が存在する可能性があるため、このコンポジットは、承認の操作レベルで関連付けられる必要があります。

DefaultRoleApproval

このSOAコンポジットにより、承認のためにSYSTEM ADMINISTRATORSロールに割り当てられる単一の承認タスクが作成されます。

RequesterManagerApproval

このSOAコンポジットにより、承認のためにリクエスタのマネージャに割り当てられる単一の承認タスクが作成されます。

注意: これは、承認されていないリクエスト・タイプ(「自己登録ユーザー」など)に関連付けることはできません。

ResourceAdministratorApproval

このSOAコンポジットにより、承認のためにSYSTEM ADMINISTRATORSロールに割り当てられる単一の承認タスクが作成されます。これは、リソースに関連するリクエスト・タイプに関連付けられる必要があります。このコンポジットは承認の操作レベルで使用されます。

ResourceAuthorizerApproval

このSOAコンポジットにより、承認のために(優先度が最も高い)リソース認可者に割り当てられる単一の承認タスクが作成されます。これは、リソースに関連するリクエスト・タイプに関連付けられる必要があります。このコンポジットは承認の操作レベルで使用されます。

DefaultSODApproval

このSOAコンポジットにより、システム管理者に割り当てられる承認タスクが作成され、SoDチェックが開始されて、SoDの結果が使用可能になると、SoD管理者ロールに割り当てられる別の承認タスクが作成されます。これは、SoDチェックの必要に応じて、操作レベルでリソースをプロビジョニングまたは変更するリクエスト・タイプに関連付けられる必要があります。

注意:

これらのデフォルトのコンポジットにおけるヒューマン・タスクは、このヒューマン・タスクの割当て先に通知を送信するよう構成されています。

電子メール通知を送信するためのOracle SOAサーバーの構成については、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle User Messaging Serviceの構成に関する説明を参照してください。

表24-1に示すSOAコンポジットに加えて、SOAではAutoApprovalコンポジットを使用できます。ただし、Oracle Identity ManagerからSOAへのラウンド・トリップを回避するために、ユーザーはAutoApprovalコンポジットを使用するのではなく、「自動承認」オプションを選択することをお薦めします。これは、承認ポリシーにおいてユーザーが「自動承認」オプションを選択した場合、承認ポリシーと一致するリクエストがOracle Identity Managerで自動承認されるためです。承認がSOAへ送信されて返されることがなくなります。ただし、承認ポリシーにおいてユーザーが承認プロセスとしてAutoApprovalを選択した場合は、承認ポリシーと一致するリクエストに対してAutoApprovalコンポジットがSOAで開始され、レスポンス「承認」が即時にOracle Identity Managerに返されます。

24.3 Oracle Identity Managerに対する承認プロセスの開発

Oracle Identity Managerに対して承認プロセスを開発するには、次の手順を実行します。

注意:

Oracle Identity Managerに対する承認プロセスの開発の一部として、リクエスト・データセットを作成し、このリクエスト・データセットをMDSにアップロードして、リクエスト・テンプレートを作成または使用し、承認ポリシーを作成する必要があります。詳細は、第23章「リクエストの構成」を参照してください。

1. new_project.xmlユーティリティを使用して、JDeveloperワークスペースを作成します。このユーティリティはOIM_HOME/workflows/new-workflow/ディレクトリにあります。詳細は、「新規SOAコンポジットの作成」を参照してください。

2. JDeveloperワークスペースを開き、必要に応じて、BPELプロセスおよびヒューマン・タスクを変更します。

3. 次の方法のいずれかによりコンポジットをデプロイします。

- SOAデプロイヤを使用してコンポジットを直接デプロイする方法。『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のSOAコンポジット・アプリケーションのデプロイに関する説明を参照してください。

- 環境間でSOAコンポジット・アプリケーションを移動する方法。『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の開発、テストおよび本番環境間のSOAコンポジット・アプリケーションの移動に関する説明、およびOracle Fusion Middleware Oracle SOA Suite管理者ガイドのSOAコンポジット・アプリケーションの管理に関する説明を参照してください。

24.4 Oracle Identity ManagerのSOAコンポジットの監視

Oracle Identity ManagerのSOAコンポジットは、Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用して管理および監視されます。デプロイされているSOAコンポジットの管理および監視の詳細は、Oracle Fusion Middleware Oracle SOA Suite管理者ガイドを参照してください。

24.5 Oracle Identity ManagerからSOAへの接続の有効化

Oracle Identity Managerは、デフォルトでweblogicというユーザー名を使用して、SOA管理者としてSOAに接続します。Oracle WebLogic Serverドメインの作成中に、指定されたユーザー名がこれ以外の名前である場合、Oracle Identity ManagerはSOA管理者としてSOAに接続できません。Oracle Identity ManagerがOracle WebLogic Server管理者ユーザーを使用して、SOAに問題なく接続できるようにするには、次のインストール後の手順を実行します。

1. 次のURLを使用してEnterprise Managerにログインします。
http://ADMINSERVER_HOST:ADMINSERVER_PORT/em

2. 「Identity and Access/oim(11.1.1.3.0)」を右クリックして、「システムMBeanブラウザ」を選択します。

3. アプリケーション定義のMBeanで「oracle.iam」を展開し、「サーバー: OIM_SERVER_NAME」→「アプリケーション: oim」→XML構成→「構成」→「XMLConfig.SOAConfig」を選択してから、「SOAConfig Mbean」を選択します。

4. 「ユーザー名」属性を表示します。デフォルトでは、この属性の値はweblogicです。これを正しいOracle WebLogic Server管理者のユーザー名に変更します。

5. 「適用」をクリックします。

6. Oracle Identity Managerデプロイメント内のOIM_ORACLE_HOME/common/bin/ディレクトリに移動します。

7. 次のコマンドを実行して、WebLogicスクリプト・ツール(WLST)を起動します。

./wlst.sh

8. プロンプトで、「connect()」と入力します。プロンプトが表示されたら、Oracle WebLogic Serverのユーザー名、パスワードおよび管理サーバー接続文字列を入力します。

9. デフォルトのSOA管理者ユーザー名およびパスワードの資格証明をCSFから削除するには、次のコマンドを実行します。

deleteCred(map="oim", key="SOAAdminPassword");

10. SOA管理者としてSOAに接続するためにOracle Identity Managerで使用する新しい資格証明を作成するには、次のコマンドを実行します。

createCred(map="oim", key="SOAAdminPassword", user="xelsysadm",password="ADMINISTRATOR_PASSWORD");

ADMINISTRATOR_PASSWORDのかわりに実際のパスワードを指定します。

11. 次のコマンドを実行して、正しい値がシード値として割り当てられていることを確認します。

listCred(map="oim", key="SOAAdminPassword");

12. 次のコマンドを実行して、WLSTシェルを終了します。

exit()

13. 管理者のログイン資格証明を使用して、Oracle Identity Manager管理およびユーザー・コンソールにログインします。

14. Oracle WebLogic Server管理者のユーザー名と同じログインIDを持つ新規ユーザーを作成します。

15. 管理者ロールを検索します。ロールの詳細を開いて、「メンバー」タブをクリックします。

16. このロールの既存メンバーをすべて削除します。

17. 新規作成したユーザーをこのロールのメンバーとして追加します。

18. このロールに含まれるメンバーが1人のみであることを確認します。このメンバーは、手順14で作成したユーザーである必要があります。

19. Oracle Identity Managerの管理対象サーバーを再起動します。

25 SOAコンポジットの開発

プロビジョニング・システムの主な目的は、ユーザーによって送信されたリクエストを管理し、ユーザーに対してリソースをプロビジョニングすることです。リクエストの実行には、関連する承認プロセスの実行も含まれます。承認プロセスは、SOAサーバーで実行されるサービス指向アーキテクチャ(SOA)コンポジットとしてデプロイされます。リクエスト・サービスによって、このような承認プロセスが実行され、管理されます。図23-1「リクエスト・サービスとSOAの統合」に、リクエスト・サービスとSOAの統合を示します。

Oracle Identity ManagerとSOAサーバーの間の相互作用について、次の手順で説明します。

1. ユーザーは、Oracle Identity Managerセルフ・サービスを使用してリクエストを作成します。Oracle Identity Managerでサポートされているすべてのリクエスト・タイプのうち、任意のタイプのリクエストを作成できます。

2. リクエスト・サービスによって承認ポリシーが評価され、インスタンス化されるSOAコンポジットが選択されます。

注意:

このコンポジットは、リクエストの送信時に開始されるようにOracle Identity Managerに登録されている必要があります。Oracle Identity Managerでの登録ワークフローの詳細は、「SOAコンポジットのOracle Identity Managerへの登録」を参照してください。

3. リクエスト・サービスがSOAサーバーに接続して、選択されたSOAコンポジットをインスタンス化します。SOAサーバーで選択されているコンポジット・インスタンスをインスタンス化します。

4. SOAコンポジットの実行が開始され、ヒューマン承認タスクが承認用に割り当てられます。

5. 承認者がOracle Identity Managerセルフ・サービス・コンソールの「タスク・リスト」にログインして、リクエストを承認します。

6. 承認後にコンポジット・インスタンスの実行が完了し、リクエスト・サービスに通知されます。

7. リクエスト・サービスによってリクエストが次のステージに移動します。

この章の内容は、次のとおりです。

- 新しいSOAコンポジットの作成

- 既存のSOAコンポジットの変更

25.1 新しいSOAコンポジットの作成

承認プロセスとして使用できる新規SOAコンポジットを作成するには、次の手順を実行します。

1. 新しいSOAコンポジットの作成

2. SOAコンポジットのOracle SOAサーバーへのデプロイ

3. SSLモードでのOracle Identity Managerとの通信のための前提条件

4. SOAコンポジットのOracle Identity Managerへの登録

25.1.1 新しいSOAコンポジットの作成

SOAコンポジットを承認プロセスとして使用するには、SOAコンポジットが特定の基準に準拠している必要があります。このような基準によって、リクエスト・サービスはコンポジットを適切にインスタンス化し、管理できます。基準は、次のとおりです。

- 次の属性はBPELプロセスに必須です。

- タイプが文字列のRequestID

- タイプが文字列のRequestModel

- タイプが文字列のRequestTarget

- タイプが文字列のURL

- XML要素のRequesterDetails

- XML要素のBeneficiaryDetails

- XML要素のObjectDetails

- XML要素のOtherDetails

RequestID、RequestModel、RequestTargetおよびURL属性には、常に、すべてのタイプのリクエストの有効な値が設定されます。

RequesterDetailsはXML要素です。この要素には、認証を必要とするすべてのリクエストの有効な値が入力されます。タイプが自己登録ユーザーのリクエストは、リクエスタが匿名ユーザーのため、リクエスタの詳細が空です。

BeneficiaryDetailsはXML要素です。この要素には、「リソースのプロビジョニング」、「ロールの割当て」など、受益者があるすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1人の受益者に関連している場合にのみ入力されます。リクエストが複数の受益者に関連している場合、BeneficiaryDetailsは空になります。BeneficiaryDetails要素には、常に、受益者がある単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1人の受益者にのみ関連付けられているためです。

ObjectDetailsはXML要素です。この要素には、リソース・エンティティに関連付けられているすべてのリクエストの有効な値が入力されます。この要素には、リクエストが1つのリソースに関連している場合にのみ入力されます。リクエストが複数のリソースに関連している場合、ObjectDetailsは空になります。ObjectDetails要素には、常に、リソースに関連付けられている単純リクエストおよび子リクエストの有効な値が設定されます。このため、承認の操作レベルで承認プロセスとして使用されるSOAコンポジットでこのXML要素を使用することをお薦めします。これは、承認の操作レベルでは、リクエストが1つのリソースにのみ関連付けられているためです。

- BPELプロセスに必須のすべての属性は、RequestDetails.xsdおよびApprovalProcess.xsdから参照されます。これらのファイルは、変更または削除できないテンプレートSOAコンポジットにあります。

Oracle Identity Managerでは、カスタムSOAコンポジットを作成するヘルパー・ユーティリティが提供されます。このユーティリティでは、必要な基準のすべてに準拠したテンプレートSOAプロジェクトが作成されます。このユーティリティは、OIM_HOME/workflows/new-workflowディレクトリに配置されています。

注意:

- JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。

- このユーティリティには、Apache Antバージョン1.7以上が必要です。

ヘルパー・ユーティリティを実行してカスタムSOAコンポジットを作成するには、次の手順を実行します。

1. 次のコマンドを実行します。

cd OIM_HOME/workflows/new-workflow
ant -f new_project.xml

2. 次のプロンプトが表示されたら、JDeveloperアプリケーション名を入力します。
Please enter application name

3. 次のプロンプトが表示されたら、JDeveloperプロジェクト名を入力します。
Please enter project name

4. 次のプロンプトが表示されたら、コンポジットのADFバインディング・サービスの名前を入力します。
Please enter the service name for the composite. This needs to be unique across applications

OIM_HOME/workflows/new-workflow/process-template/ディレクトリに新規アプリケーションが作成されます。新規アプリケーションは、JDeveloperで開いて変更できます。

テンプレートSOAコンポジットのヒューマン・タスクは、ヒューマン・タスクの割当て先に通知を送信するよう構成されています。作成されたカスタム・コンポジットでは、要件に応じて通知メッセージを変更できます。承認者に送信されるすべての通知は、SOAコンポジットで構成する必要があります。通知を送信するようにOracle SOAサーバーを構成する方法は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle User Messaging Serviceの構成に関する説明を参照してください。

テンプレートSOAコンポジットのヒューマン・タスクは、SYSTEM ADMINISTRATORSロールに割り当てられるよう構成されています。

25.1.2 SOAコンポジットのOracle SOAサーバーへのデプロイ

BPELへのワークフロー・コンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

注意:

コンポジットがSOAで再デプロイされる場合、コンポジットによって開始されたOracle Identity Managerの保留中のすべての承認が失効となり、ユーザーのTaskListから削除されます。既存のSOAコンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracle JDeveloperでの既存のSOAアーカイブのデプロイに関する説明を参照してください。

25.1.3 SSLモードでのOracle Identity Managerとの通信のための前提条件

Oracle Identity Managerとの通信でSSLモードを使用している場合は、次を実行する必要があります。

注意:

非SSL接続の場合は、この項をスキップしてください。

- TRUSTSTORE_LOCATION環境変数を設定します(TRUSTSTORE_LOCATIONは信頼できるキー・ストア・ファイルの場所です)。

- t3プロトコルではなくt3sプロトコルを使用します。たとえば、Oracle Identity ManagerのURLは次のようになります。
t3s://HOST_NAME:PORT

25.1.4 SOAコンポジットのOracle Identity Managerへの登録

SOAコンポジットはOracle Identity Managerに登録してから、承認プロセスとして使用する必要があります。SOAコンポジットをOracle Identity Managerに登録するには、次の手順を実行します。

1. 次の内容を含めたCOMPOSITE_NAME.propsプロパティ・ファイルをOIM_HOME/workflows/registration/ディレクトリに作成します。

name=COMPOSITE_NAME
category=Approval
providerType=BPEL
serviceName=REQUEST_APPROVAL_SERVICE
domainName=DOMAIN
version=REVISION_ID
payLoadID=PAYLOAD
operationID=OPERATION_ID
listOfTasks=HUMAN_TASK_NAMES

内容は次のとおりです。

- COMPOSITE_NAMEをcomposite.xmlファイルに指定されているSOAコンポジットの名前で置き換えます。

- REQUEST_APPROVAL_SERVICEをコンポジットで公開されているサービスの名前で置き換えます。このサービスは、承認用のコンポジットのインスタンス化時に起動します。

- OPERATION_IDをserviceNameプロパティに指定されているサービスで起動される操作の名前で置き換えます。

- PAYLOADをoperationIDプロパティの値として指定されている操作のパート名で置き換えます。

- REVISION_IDをcomposite.xmlファイルに指定されているSOAコンポジット・リビジョンで置き換えます。

- DOMAINをコンポジットがデプロイされるSOAパーティションの名前で置き換えます。デフォルトでは、SOAには、defaultという名前のパーティションが1つあります。

- HUMAN_TASK_NAMESをSOAコンポジットに関連付けられている承認タスクの名前で置き換えます。名前はコロン(:)で区切ります。

注意:

プロパティ・ファイルに余分なスペースを追加しないでください。

2. OIM_HOME/workflows/registration/ディレクトリから次のコマンドを実行します。

注意:

- JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。

- このユーティリティには、Apache Antバージョン1.7以上が必要です。

- SSLを介した接続の場合は、「SSLモードでのOracle Identity Managerとの通信のための前提条件」で説明されている前提条件を満たす必要があります。

ant -f registerworkflows-mp.xml register

3. 要求されたら、Oracle Identity Manager管理者のユーザー名を入力します。

4. 要求されたら、Oracle Identity Manager管理者のパスワードを入力します。

注意:

Oracle Identity Managerの管理者資格証明を使用してSOAサーバーにログインするときに、Oracle Identity Managerでチャレンジ質問および回答とパスワードがリセットされていない場合は、ログイン試行が失敗します。Oracle Identity Managerに最初にログインするときに、チャレンジ質問および回答とパスワードをリセットする必要があります。

5. 要求されたら、Oracle Identity Managerサーバーのt3 URLを入力します。

6. 要求されたら、手順1で作成したプロパティ・ファイル名の完全パスを入力します。

25.2 既存のSOAコンポジットの変更

承認プロセスとして使用できる既存のSOAコンポジットを変更するには、次の手順を実行します。

1. JDeveloperでのSOAプロジェクトの変更

2. Oracle Identity ManagerでのSOAコンポジットの無効化

3. SOAコンポジットのOracle SOAサーバーへのデプロイ

4. Oracle Identity ManagerでのSOAコンポジットの有効化

注意:

SOAコンポジットの変更では、ヒューマン・タスクを追加または削除してから、次の手順を実行します。

1. JDeveloperでSOAコンポジットを変更します。コンポジットの変更中に、SOAコンポジットのバージョンIDが変更されていることを確認します。Oracle Identity Managerにすでに登録されている既存のSOAコンポジットのバージョンIDは使用できません。

2. Oracle Identity Managerで既存のSOAコンポジットを無効にします。

3. Oracle SOAサーバーで新しいバージョンIDのSOAコンポジットをデプロイします。

4. 新しいバージョンのSOAコンポジットをOracle Identity Managerに登録します。

25.2.1 JDeveloperでのSOAプロジェクトの変更

JDeveloperを使用して、SOAコンポジットを変更できます。デフォルトのSOAコンポジットを変更する場合は、表25-1に示すパスの各JDeveloperプロジェクトにアクセスできます。

表25-1 デフォルトのSOAコンポジットの場所

SOAコンポジット

パス

BeneficiaryManagerApproval

OIM_HOME/workflows/composites/BeneficiaryManagerApproval.zip

DefaultOperationalApproval

OIM_HOME/workflows/composites/DefaultOperationalApproval.zip

DefaultRequestApproval

OIM_HOME/workflows/composites/DefaultRequestApproval.zip

DefaultRoleApproval

OIM_HOME/workflows/composites/DefaultRoleApproval.zip

ResourceAuthorizerApproval

OIM_HOME/workflows/composites/ResourceAuthorizerApproval.zip

ResourceAdministratorApproval

OIM_HOME/workflows/composites/ResourceAdministratorApproval.zip

RequesterManagerApproval

OIM_HOME/workflows/composites/RequesterManagerApproval.zip

DefaultSODApproval

OIM_HOME/workflows/composites/DefaultSODApproval.zip

JDeveloperを使用してOracle SOA Suiteのアプリケーションを構築する方法の詳細は、『Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

25.2.2 Oracle Identity ManagerでのSOAコンポジットの無効化

Oracle Identity ManagerでSOAコンポジットを無効にするには、OIM_HOME/workflows/new-workflow/ディレクトリに配置されているregisterworkflows-mpユーティリティを使用します。

注意:

- JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。

- このユーティリティには、Apache Antバージョン1.7以上が必要です。

- SSLを介した接続の場合は、「SSLモードでのOracle Identity Managerとの通信のための前提条件」で説明されている前提条件を満たす必要があります。

Oracle Identity ManagerでSOAコンポジットを無効にするには、次の手順を実行します。

1. コマンド・プロンプトを使用して、OIM_HOME/workflows/registration/ディレクトリに移動します。

2. 次のコマンドを実行します。

ant -f registerworkflows-mp.xml disable

3. ユーザー名の入力を要求されたら、Oracle Identity Manager管理者のユーザー名を入力します。

4. パスワードを入力するように要求されたら、Oracle Identity Manager管理者のパスワードを入力します。

5. サーバーのt3 URLの入力を要求されたら、t3://localhost:7001など、Oracle Identity Managerサーバーのt3 URLを入力します。

6. ワークフローのドメインを指定します。デフォルトでは、defaultドメインに設定されています。

7. ワークフローの名前を入力するように要求されたら、SOAコンポジット名を入力します。

8. ワークフローのバージョンを入力するように要求されたら、SOAコンポジット・バージョンを入力します。

25.2.3 SOAコンポジットのOracle SOAサーバーへのデプロイ

BPELへのワークフロー・コンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』を参照してください。

25.2.4 Oracle Identity ManagerでのSOAコンポジットの有効化

Oracle Identity ManagerでSOAコンポジットを有効にするには、次の手順を実行します。

注意:

- JAVA_HOME環境変数を設定してから、このユーティリティを実行する必要があります。

- このユーティリティには、Apache Antバージョン1.7以上が必要です。

- SSLを介した接続の場合は、「SSLモードでのOracle Identity Managerとの通信のための前提条件」で説明されている前提条件を満たす必要があります。

1. 次のコマンドを実行します。

ant -f registerworkflows-mp.xml enable

2. 「Oracle Identity ManagerでのSOAコンポジットの無効化」の手順3から8を実行します。

26 SOAコンポジットでのOracle Identity Manager APIの使用

SOAコンポジットで標準のペイロード・データに加えて使用されるデータがビジネス・プロセスに必要な場合は、Java埋込みステップを使用して、リクエスタ、受益者またはリクエスト内容に関する詳細を取得できます。

この章では、SOAコンポジットからのOracle Identity Manager APIの使用方法について次の項で説明します。

- ソフトウェア要件

- JDeveloperを使用したSOAコンポジットの構成

26.1 ソフトウェア要件

Oracle Identity Manager APIをSOAコンポジットからロードするようSOAサーバーを構成する前に、次の手順を実行します。

1. Oracle Identity Managerデプロイメントと互換性のあるバージョンのJDeveloperをインストールします。また、JDeveloperがSOAコンポジットと連携して正しく動作するよう、JDeveloperのパッチをインストールします。

2. OIM_HOMEがOracle Identity Managerのインストール・ディレクトリを指していることを確認します。たとえば、/scratch/shiphome/beahome/Oracle_IDM1/server/はOIM_HOMEを指している必要があります。

このドキュメントでは、OIM_HOMEはOracle Identity Managerがデプロイされているディレクトリを指しています。たとえば、/scratch/shiphome/beahome/Oracle_IDM1/はOIM_HOMEを指している必要があります。

26.2 JDeveloperを使用したSOAコンポジットの構成

この項では、必要なJavaコードをコンポジットに導入してSOAサーバーにデプロイするために、JDeveloperおよびSOAコンポジットで必要となる構成について説明します。

この項には次のトピックが含まれます:

- JDeveloperでのアプリケーション・サーバー接続の設定

- JDeveloperでのSOAコンポジットの設定

- SOAコンポジットの更新

- SOAコンポジットのデプロイ

- 設定のテスト

26.2.1 JDeveloperでのアプリケーション・サーバー接続の設定

Oracle Identity Managerがインストールされているアプリケーション・サーバーの新しい接続がJDeveloperで設定されていることを確認します。次の手順を実行する前に、WebLogic管理サーバーおよびSOAサーバーが実行中であることを確認します。

アプリケーション・サーバーの新規接続を設定するには、次の手順を実行します。

1. 「ファイル」メニューから、「新規」を選択します。「新規ギャラリ」ダイアログ・ボックスが表示されます。

2. 左側のメニューから、「すべての項目」を選択します。右側のペインで、「アプリケーション・サーバー接続」を選択してから、「OK」をクリックします。アプリケーション・サーバー接続の作成ウィザードが表示されます。

3. 「名前とタイプ」ウィンドウで、JDeveloperでアプリケーション・サーバーを識別する名前を入力します。接続タイプとして「Weblogic 10.3」を選択して、「次へ」をクリックします。

4. 「認証」ウィンドウで、WebLogicユーザーのユーザー名およびパスワードを指定します。「次へ」をクリックします。

5. 「構成」ウィンドウで、SOA管理対象サーバーが実行中のホスト名、ポート番号およびWebLogicドメイン名を入力します。ポートはWebLogic管理サーバーのポート(通常は7001)である必要があります。「次へ」をクリックします。

6. 「テスト」ウィンドウで、「接続のテスト」をクリックして入力したすべての情報が正しいことを確認します。テストが成功のステータスでパスします。「次へ」をクリックします。

7. 「終了」をクリックして、ウィザードを終了します。これにより、アプリケーション・サーバーへの接続が作成されます。この接続は、すべての変更を行った後でコンポジットをサーバーにデプロイするために必要です。

26.2.2 JDeveloperでのSOAコンポジットの設定

JDeveloperで編集用にSOAコンポジットを設定するには、次の手順を実行します。

1. DefaultRequestApproval.zipファイルをOIM_HOME/workflows/composites/ディレクトリからJDeveloperの作業ディレクトリにコピーします。同じディレクトリでそれを解凍して、DefaultRequestApprovalディレクトリを作成します。

2. デフォルト・ロールでJDeveloperを起動します。

3. 「ファイル」メニューから、「開く」を選択します。ファイルを開くためのダイアログ・ボックスが表示されます。DefaultRequestApprovalディレクトリのDefaultRequestApproval.jprファイルを選択します。これにより、JDeveloperでコンポジットが開きます。プロジェクト・ファイルの作成時には、「OK」または「はい」をクリックします。

4. コンポジットに書き込むJavaコードを正常にコンパイルするには、oimclient.jarファイルがJDeveloperのコンポジットのコピーに存在している必要があります。oimclient.jarファイルをOIM_HOME/server/client/ディレクトリからJDEVELOPER_WORKING_DIRECTORY/DefaultRequestApproval/SCA-INF/lib/ディレクトリにコピーします。このディレクトリは、編集中のコンポジットのlib/ディレクトリです。

関連項目:

JDeveloperにおけるSOAコンポジットの設定の詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracle JDeveloperにおける単一のSOAコンポジットのデプロイに関する説明を参照してください。

26.2.3 SOAコンポジットの更新

JDeveloperでSOAコンポジットを編集するには、次の手順を実行します。

1. 左側のペインで、「プロジェクト」タブをクリックします。

2. DefaultRequestApprovalプロジェクトの下で、ApprovalProcess.bpelファイルを選択して開きます。これにより、承認ワークフローが表示されます。

3. 右側のペインの「コンポーネント・パレット」で、「Java埋込み」タスクを選択し、ワークフローのreceiveInputタスクの後でApprovalTask_1ヒューマン・タスクの前にドラッグ・アンド・ドロップします。これにより、Java_Embedding_1と呼ばれる新規タスクが作成されます。必要に応じて、名前をInvoke_OIM_APIに変更できます。

4. Invoke_OIM_API Javaタスクをダブルクリックします。これによりエディタが開き、必要なJavaコードを追加できます。例26-1に示すように、Javaコードを追加します。

例26-1 埋込みJavaソース・コード

try {
System.out.println("Prototype for invoking an OIM API from a SOA Composite");
System.out.println("RTM Usecase: Organization Administrator");
String oimUserName = "";
String oimPassword = "";
String oimURL = "";
String roleApprover = "";
String actKey = "";

//get oimuser credentials
oracle.security.jps.JpsContext ctx =
oracle.security.jps.JpsContextFactory.getContextFactory().getContext();

final oracle.security.jps.service.credstore.CredentialStore cs =
(oracle.security.jps.service.credstore.CredentialStore)
ctx.getServiceInstance(oracle.security.jps.service.credstore.CredentialStore.class);

oracle.security.jps.service.credstore.CredentialMap cmap =
cs.getCredentialMap("oracle.oim.sysadminMap ");

oracle.security.jps.service.credstore.Credential cred = cmap.getCredential("sysadmin");

if (cred instanceof oracle.security.jps.service.credstore.PasswordCredential) {
oracle.security.jps.service.credstore.PasswordCredential pcred =
(oracle.security.jps.service.credstore.PasswordCredential)cred;
char[] p = pcred.getPassword();
oimUserName = pcred.getName();
oimPassword = new String(p);
}

//get oimurl
Object obj = getVariableData("oimurl");
oimURL = obj.toString();

// set the initial context factory
String oimInitialContextFactory = "weblogic.jndi.WLInitialContextFactory";

// set up the environment for making the OIM API invocation
java.util.Hashtable env = new java.util.Hashtable();

env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_FACTORY_INITIAL,
oimInitialContextFactory);

env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_PROVIDER_URL, oimURL);
oracle.iam.platform.OIMClient client = new oracle.iam.platform.OIMClient(env);
client.login(oimUserName, oimPassword.toCharArray());
System.out.println("Login Successful");

// get Service
oracle.iam.request.api.RequestService reqSvc =
client.getService(oracle.iam.request.api.RequestService.class);

oracle.iam.identity.rolemgmt.api.RoleManager roleSvc =
client.getService(oracle.iam.identity.rolemgmt.api.RoleManager.class);

oracle.iam.identity.usermgmt.api.UserManager usersvc =
client.getService(oracle.iam.identity.usermgmt.api.UserManager.class);

Object reqIdXMLElem = getVariableData("inputVariable", "payload",
"/ns3:process/ns4:RequestID");
String reqId = ((oracle.xml.parser.v2.XMLElement)reqIdXMLElem).getText();
System.out.println("The request ID is "+reqId);

// invoke the getBasicRequestData() method on the RequestService API
oracle.iam.request.vo.Request req = reqSvc.getBasicRequestData(reqId);
java.util.List<oracle.iam.request.vo.Beneficiary> beneficiaries = req.getBeneficiaries();

if(beneficiaries != null){
for(oracle.iam.request.vo.Beneficiary benf: beneficiaries){

//get org key
java.util.HashSet<String> searchAttrs = new java.util.HashSet<String>();
searchAttrs.add(oracle.iam.identity.usermgmt.api.UserManagerConstants.
AttributeName.USER_LOGIN.getId());

searchAttrs.add(oracle.iam.identity.usermgmt.api.UserManagerConstants.
AttributeName.USER_ORGANIZATION.getId());

oracle.iam.identity.usermgmt.vo.User user1 =
usersvc.getDetails(benf.getBeneficiaryKey(),searchAttrs, false);

actKey = user1.getAttribute("act_key").toString();

//get org admin
if(actKey != "" && actKey != " ") {
Thor.API.Operations.tcOrganizationOperationsIntf orgAPI =
(Thor.API.Operations.tcOrganizationOperationsIntf)client.getService(
Thor.API.Operations.tcOrganizationOperationsIntf.class);

Thor.API.tcResultSet rset =
orgAPI.getAdministrators(Long.parseLong(actKey));

StringBuffer sb = new StringBuffer();

for (int i = 0; i < rset.getRowCount();i++){
rset.goToRow(i);
sb.append(rset.getStringValue("Groups.Group Name")) ;
if(i >= 0 && i < (rset.getRowCount()-1)){
sb.append(",");
}
}
String grpNames = sb.toString();
System.out.println("Groups="+grpNames);
setVariableData("orgAdmin",grpNames);
}

//get role approver
java.util.List<oracle.iam.request.vo.RequestBeneficiaryEntity> rbes =
benf.getTargetEntities();

for(oracle.iam.request.vo.RequestBeneficiaryEntity rbe : rbes){
String key = rbe.getEntityKey();
String type = rbe.getEntityType();

if(type.equalsIgnoreCase("Role")){
java.util.HashSet<String> roleAttrs = new
java.util.HashSet<String>();
roleAttrs.add("Role Approver");
oracle.iam.identity.rolemgmt.vo.Role role =
roleSvc.getDetails(key,roleAttrs);
roleApprover = (String)role.getAttribute("Role Approver");
setVariableData("roleApprover", roleApprover);
break;
}
}
break;
}
}
System.out.println("OrgAdmin=" + getVariableData("orgAdmin").toString());
System.out.println("roleApprover=" + getVariableData("roleApprover").toString());
}

catch (Exception e){
System.out.println("----------------------");
e.printStackTrace();
System.out.println("----------------------");
}

例26-1では、Oracle Identity Manager APIを使用して組織管理者を取得するために、Javaコードで次のことが実行されます。

1. システム管理者の資格証明を取得します。
システム管理者の資格証明は、資格証明ストア(cwallet)に格納されています。最初に資格証明ストア、次に資格証明マップ、その次に資格証明がキーを使用して取得されます。次のコードの抜粋にこれを示します。

//get Credential store
oracle.security.jps.JpsContext ctx =
oracle.security.jps.JpsContextFactory.getContextFactory().getContext();
final oracle.security.jps.service.credstore.CredentialStore cs =
(oracle.security.jps.service.credstore.CredentialStore)ctx.getServiceInstance(
oracle.security.jps.service.credstore.CredentialStore.class);

//get Credential
oracle.security.jps.service.credstore.CredentialMap cmap =
cs.getCredentialMap("oracle.oim.sysadminMap");
oracle.security.jps.service.credstore.Credential cred = cmap.getCredential("sysadmin");

2. システム管理者としてログインします。
環境が設定されたら、Oracle Identity Managerにシステム管理者としてログインします。次のコードの抜粋にこれを示します。

//setup the environment
String oimInitialContextFactory = "weblogic.jndi.WLInitialContextFactory";
java.util.Hashtable env = new java.util.Hashtable();
env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_FACTORY_INITIAL,
oimInitialContextFactory);
env.put(oracle.iam.platform.OIMClient.JAVA_NAMING_PROVIDER_URL, oimURL);

//login to OIM
oracle.iam.platform.OIMClient client = new oracle.iam.platform.OIMClient(env);
client.login(oimUserName, oimPassword.toCharArray());
System.out.println("Login Successful");

3. 組織管理者およびロール承認者を取得します。
これを行うには、次のOracle Identity Manager APIを使用します。

- oracle.iam.request.api.RequestService: リクエスト・オブジェクトを取得するために使用します。

- Thor.API.Operations.tcOrganizationOperationsIntf: 組織管理者を取得するために使用します。

- oracle.iam.identity.usermgmt.api.UserManager: ロール承認者を取得するために使用します。

関連項目:

Oracle Identity Manager APIの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

26.2.4 SOAコンポジットのデプロイ

SOAコンポジットをデプロイする前に、Enterprise Managerの「システムMBeanブラウザ」で、BPELClasspathプロパティを設定します。

コンポジットを更新後、コンポジットをSOAにデプロイする必要があります。これを行うには、次の手順を実行します。

1. 「プロジェクト」セクションでコンポジット名を右クリックし、「デプロイ」を選択します。

2. DefaultRequestApproval ...オプションを選択します。ウィザードが表示され、コンポジットをデプロイするアプリケーション・サーバーを選択するよう要求されます。以前に作成したアプリケーション・サーバー接続を選択します。また、すでにデプロイされているコンポジットを上書きする場合は、同じリビジョンIDで既存のコンポジットを上書きします。オプションを選択します。

コンポジットをデプロイ後、コンポジットを再登録するか、またはOracle Identity Manager側からコンポジットを無効化して有効化します。これは、Oracle Identity Managerによってコンポジットが正しく起動できることを確認するために行います。

関連項目:

SOAコンポジットのデプロイの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のOracle JDeveloperにおける単一のSOAコンポジットのデプロイに関する説明を参照してください。

26.2.5 設定のテスト

SOAコンポジットを更新後、コンポジットへの変更をテストして、Oracle Identity Manager APIがロードされていることを確認できます。JavaコードはSOAコンポジットに(ワークフローのヒューマン・タスクの前に)追加されているため、リクエスト承認がSOAで開始されるとすぐに実行されます。

リクエストを作成してJavaコードをテストするには、次の手順を実行します。

1. Oracle Identity Manager管理およびユーザー・コンソールにログインします。

2. 「拡張」をクリックして拡張管理に移動します。

3. 「管理」の下の「ようこそ」ページで、「リクエスト」をクリックします。または、「管理」タブをクリックしてから「リクエスト」をクリックします。

4. 「アクション」メニューから、「リクエストの作成」を選択します。または、ツールバーの「リクエストの作成」アイコンをクリックします。リクエスト作成ウィザードが表示されます。

注意:

- これは、テスト環境で実行する必要があります。

- 「ユーザーの作成」リクエスト・タイプに関連付けられた承認ポリシーが存在しないことを確認します。

5. 「リクエストのタイプ」リストから、「ユーザーの作成」を選択します。次に、「次へ」をクリックします。

6. 「詳細の入力」ページで、フィールドにサンプル値を入力してユーザーを作成します。次に、「次へ」をクリックします。

7. 「確認」ページで、「終了」をクリックします。

8. SOAサーバー・コンソールで、埋め込まれたJavaコードからの出力を監視します。「終了」をクリックすると、SOAコンポジットが実行されます。SOAサーバー・コンソールに、次のテキストが表示されます。

Prototype for invoking an Oracle Identity Manager API from a SOA Composite
Login Successful
<Request ID and other request data>

コードが正常に実行されると、この出力が表示されます。

第VI部

職務の分離

この部では、職務の分離(SoD)について説明します。

次の章で構成されています。

- 第27章「職務の分離(SoD)の使用」

27 職務の分離(SoD)の使用

職務の分離(SoD)の概念は、ビジネス・プロセスにチェック・アンド・バランスを適用することを目的としています。ビジネス・プロセスの各段階では、複数の個人の関与が必要になる場合があります。組織では、ユーザー・プロビジョニング・ソリューションの一部としてSoDを実装することにより、こうした状況をIT対応のビジネス・プロセスの要件に変換できます。SoDの全体的な利点は、組織のリソースが意図的または偶発的に悪用されることにより生じるリスクを軽減できる点です。この章には次の項が含まれます:

- SoD検証プロセスの理解

- SoD起動ライブラリの概要

- SoD対応コネクタのインストール

- SILおよびSILプロバイダのデプロイ

- SoDエンジンの構成

- SoDの有効化および無効化

- SSL通信の有効化

- SoD非対応コネクタでのワークフローの構成

- 権限としてのフィールドのマーク

- ターゲット・システムおよびSoDエンジンのカスタムの組合せ

- Oracle Identity AnalyticsによるロールSoDチェックの実行

- プロビジョニング・ワークフローでのSoDの使用

- SoD関連イベントのロギングの有効化

- SoDチェックのトラブルシューティング

27.1 SoD検証プロセスの理解

Oracle Identity Managerは、権限リクエストの検証および管理にも使用できるユーザー・プロビジョニング・ソリューションです。Oracle Identity ManagerのSoD実装では、ユーザーによるIT権限(権限)リクエストがSoDエンジンおよび他のユーザーによってチェックされ、承認されます。システムと人による複数レベルのチェックにより、たとえ元のリクエストに変更が加えられても、リクエストがクリアされる前に必ず入念に検査されるようにすることができます。この予防方法は、リクエストされた権限が割り当てられる前に、権限割当てで競合する可能性のあるものを特定し、修正するうえで役立ちます。

Oracle Identity ManagerでのSoD検証プロセスは、ユーザーが特定のターゲット・システムでの権限に対するリクエストを作成すると開始されます。リクエストはリソース承認ワークフローを通り、その初期ワークフローをパスした場合はプロビジョニング・ワークフローを通ります。

- リソース承認ワークフローは、SoDエンジンによりリアルタイムでこのリクエストを検証するように構成できます。SoDエンジンでは、事前定義のルールを使用して、権限割当てがSoD違反につながるかどうかを確認します。この確認が行われた後、その結果がOracle Identity Managerに返されます。

- リソース・プロビジョニング・ワークフローは、リソース承認ワークフローをパスした権限リクエストをターゲット・システムにプロビジョニングします。

ユーザーのリクエストがSoD検証にパスし、承認者がリクエストを承認した場合、リソース・プロビジョニング・ワークフローが開始されます。リクエストがSoD検証に失敗した場合、改善ステップが行われるようにリソース承認ワークフローを構成できます。

注意:

SoDコンプライアンスを保証するために、権限割当てがターゲット・システムにプロビジョニングされる直前に、SoD検証を再実行するようにリソース・プロビジョニング・ワークフローを構成できます。

Oracle Identity Managerは、SoDエンジンとターゲット・システムの両方と通信します。また、ターゲット・システムとSoDエンジンは、権限データの同期化が有効になるように相互に通信します。図27-1に、SoD検証プロセスにおけるデータ・フローを示します。

図27-1 Oracle Identity ManagerでのSoD検証プロセス

「図27-1 Oracle Identity ManagerでのSoD検証プロセス」の説明

27.2 SoD起動ライブラリの概要

SoD起動ライブラリ(SIL)は、Oracle Identity ManagerでのSoD実装の基礎となります。SILはJavaベースのアダプタの集合で、事前に定義されたOracle Identity Managerコネクタとの統合を可能にします。その結果、コネクタは、Oracle Identity Managerをターゲット・システムと結び付けます。次のOracle Identity Managerコネクタが、SoD検証用に事前にアダプタに構成されています。

- Oracle E-Business User Managementリリース9.1.0以上

- SAP CUAリリース9.1.0以上

- SAP User Managementリリース9.1.0以上

SILは、SILとSoDエンジンを統合する専用アダプタの基礎の役割も果たします。これらのアダプタは、SILプロバイダと呼ばれます。SILプロバイダは、SILと特定のSoDエンジンとのインタフェースの機能を果たします。次のSoDエンジン用に事前に定義されたSILプロバイダがあります。

- SAP GRC用SILプロバイダ
このプロバイダは、SAP GRC SILプロバイダとしても知られています。動作保証されたSAP GRCのバージョンは、バージョン5.2 SP4以上および5.3 SP5以上です。

- Oracle Application Access Controls Governor(OAACG)リリース8.2.1以上用SILプロバイダ
このプロバイダは、OAACG SILプロバイダとしても知られています。

注意:

Oracle Identity ManagerでSoDの実装および使用を開始する前に、OAACGの最新のパッチ・セットをインストールしてください。詳細は、Oracleサポートに連絡してください。

- Oracle Identity Analytics(OIA)リリース11.1.1.3以上用SILプロバイダ
このプロバイダは、OIA SILプロバイダとしても知られています。

図27-2に、Oracle Identity ManagerでのSoD実装のアーキテクチャを示します。

図27-2 Oracle Identity ManagerでのSoD実装のアーキテクチャ

「図27-2 Oracle Identity ManagerでのSoD実装のアーキテクチャ」の説明

Oracle Identity Managerコネクタは、必要に応じて、SAP GRC SILプロバイダ、OAACG SILプロバイダまたはOIA SILプロバイダのいずれとも構成できます。たとえば、PeopleSoft User ManagementコネクタとOAACG SILプロバイダを使用すれば、PeopleSoft Enterpriseアプリケーションで権限に対するリクエストのSoD検証を自動化できます。

カスタムSoDエンジン用SILプロバイダを作成し、事前に構成されたOracle Identity Managerコネクタ、またはSoD検証用に構成したOracle Identity Managerコネクタのいずれかとともに使用することもできます

27.3 SoD対応コネクタのインストール

次に示すSoD対応コネクタのインストール手順は、特定のコネクタのドキュメントを参照してください。Oracle Identity Managerコネクタのドキュメント・ページは、次のURLにあります。

http://download.oracle.com/docs/cd/E11223_01/index.htm

- Oracle E-Business User Managementリリース9.1.0以上

- SAP CUAリリース9.1.0以上

- SAP User Managementリリース9.1.0以上

27.4 SILおよびSILプロバイダのデプロイ

SIL登録は、デフォルトで、一部のターゲット・システムおよびSoDエンジンに対して提供されています。これらのターゲット・システムおよびSoDエンジンのデフォルトの組合せの場合は、デプロイメント・ステップは不要です。SIL登録が提供されているターゲット・システムには次のものがあります。

- EBSおよびOAACG

- PSFTおよびOAACG

- SAPおよびSAP-GRC

- OIA
OIA SoDエンジンは、他のターゲット・システムではなくOracle Identity Managerとの間でデータを同期化するため、OIAに対して登録されるトポロジは、Oracle Identity Managerで構成されている任意のコネクタで使用できます。OIAはOracle Identity Managerからすべてのデータをインポートします。したがって、OIAの視点からは、Oracle Identity Managerはターゲット・システムになります。

ターゲット・システムまたはSoDエンジンの他の組合せを使用する場合は、SIL登録プロセスを実行する必要があります。詳細は、第27.10項「ターゲット・システムおよびSoDエンジンのカスタムの組合せ」を参照してください。

27.5 SoDエンジンの構成

ターゲット・システムからSoDエンジンに権限データをインポートする必要があります。必要に応じて、SoDエンジンでSoD検証ルールも構成します。次の各項では、事前に構成されたSoDエンジンに対するこれらの手順を説明します。

- Oracle Application Access Controls Governorの構成

- SAP GRCの構成

- Oracle Identity Analyticsの構成

27.5.1 Oracle Application Access Controls Governorの構成

Oracle Application Access Controls Governor(OAACG)の構成には、次の手順が必要です。

- Oracle Application Access Controls Governorのインストール

- SoD処理用のOracle Application Access Controls Governorアカウントの作成

- Oracle E-Business Suiteのロールおよび職責データのOracle Application Access Controls Governorへの同期化

- Oracle Application Access Controls Governorでのアクセス・ポリシーの定義

Oracle Application Access Controls Governorのインストール

OAACG 8.6.xはOracle Identity Manager 11gリリース1(11.1.1.4)以上でサポートされています。OAACG 8.6.0.203が推奨されているバージョンであり、このバージョンがインストールされている必要があります。さらに、このバージョンをOAACG 8.6.0.219またはOAACG 8.6.0.240にアップグレードする必要があります。

OAACG 8.6.0.203をインストールするには、次の手順を実行します。

1. My Oracle Supportにログインします。

2. 「パッチと更新版」タブをクリックします。

3. 「拡張検索」をクリックします。

4. 「製品ファミリ」で「Oracle Application Access Controls Governor」を選択し、リリースとしてAACG 8.6.0を選択します。適切なプラットフォームを選択し、「検索」をクリックします。

5. 最新のパッチを選択します。Oracle Identity Manager Bundle Patch Readmeで、これが8.6.0.219または8.6.0.240であるかどうかを確認します。

注意:

Oracle Identity Manager SoDは、OAACG 8.6.0.219およびOAACG 8.6.0.240で動作保証されています。

6. パッチまたは更新をダウンロードします。

7. OAACGアップグレード・ガイドを参照して、OAACGのアップグレードを実行します。

OAACG 8.6.0.203は、OAACG 8.6.0.219またはOAACG 8.6.0.240にアップグレードする必要があります。これを行うには、次の手順を実行します。

1. My Oracle Supportにログインします。

2. 「パッチと更新版」タブをクリックします。

3. パッチIDを検索します。

4. パッチIDを選択します。

5. パッチまたは更新をダウンロードします。

6. OAACGアップグレード・ガイドを参照して、OAACGのアップグレードを実行します。

SoD処理用のOracle Application Access Controls Governorアカウントの作成

SoD検証処理用に基本タイプのアカウントを作成します。「SoDエンジンの情報を保持するためのITリソースの作成」で説明されている手順の実行中に、このアカウントのユーザー名およびパスワードを指定します。

アカウント作成の詳細は、Oracle Application Access Controls Governorのドキュメントを参照してください。

Oracle E-Business Suiteのロールおよび職責データのOracle Application Access Controls Governorへの同期化

Oracle E-Business Suiteからロールおよび職責データをOracle Application Access Controls Governorにインポート(同期化)する必要があります。最初の同期化の後、データの定期的同期化のスケジュールを設定する必要があります。

詳細は、Oracle Application Access Controls Governorのドキュメントを参照してください。

Oracle Application Access Controls Governorでのアクセス・ポリシーの定義

ロールおよび職責データのインポート後、Oracle Application Access Controls Governorでアクセス・ポリシーを設定します。これらのアクセス・ポリシーは、ロールおよび職責の様々な組合せに基づいています。

詳細は、Oracle Application Access Controls Governorのドキュメントを参照してください。

27.5.2 SAP GRCの構成

SAP GRCでは、SAP R/3のユーザー、ロールおよびプロファイル・データを使用して、アカウント、ロールおよび職責に対するリクエストを検証します。SAP GRCの構成には、次の手順が必要です。

- SoD処理用のSAP GRCアカウントの作成

- キーストアの生成

- Risk Terminatorの構成

- SAP ERPのユーザー、ロールおよびプロファイル・データのSAP GRCへの同期化

- SAP GRCでのリスク・ポリシーの定義

SoD処理用のSAP GRCアカウントの作成

SoD処理用のSAP GRCアカウントを作成する必要があります。SoD処理中、SAP GRC Webサービスのコールにこのアカウントが使用されます。

このユーザー・アカウントの作成時に、アカウントを次のグループに割り当てる必要があります。

- すべての人

- 認証済ユーザー

このアカウントにはロールを割り当てないでください。

キーストアの生成

キーストアを生成するには、次のようにします。

1. Webブラウザで、SAP GRC Access Controlの「Web Services Navigator」ページを開きます。URLは次のようなものです。

https://SAP_GRC_HOST:PORT_NUMBER/VirsaCCRiskAnalysisService/Config1?wsdl

2. 証明書をエクスポートします。

3. 証明書をSAP GRCのJDKインストール・ディレクトリ内のbinディレクトリにコピーします。

4. 次のコマンドを実行し、ダウンロードした証明書ファイルからキーストアを作成します。

keytool -import -v -trustcacerts -alias sapgrc -file CERTIFICATE_FILENAME -keystore sgil.keystore -keypass changeit -storepass changeit

注意:

このサンプル・コマンドで、キーストア・ファイル名はsgil.keystoreです。

5. キーストアのパスワードを要求されたら、changeitを指定します。これは、デフォルトのキーストア・パスワードです。

6. 証明書を信頼するかどうかの指定を要求されたら、yesを入力します。

7. sgil.keystoreファイルは、binディレクトリに作成されます。ファイルをOIM_HOME/configディレクトリにコピーします。

Risk Terminatorの構成

Risk Terminatorは、GRC Access Controlの機能です。これは、SAP GRCのSoD検証機能のメイン・コンポーネントです。ロールがプロファイル・ジェネレータで作成されたり、ユーザーに割り当てられたりすると、Risk Terminatorにより、このロールの作成または割当てがSoD違反になるかどうかが検証されます。

詳細は、Risk Terminator構成のドキュメントを参照してください。

SAP ERPのユーザー、ロールおよびプロファイル・データのSAP GRCへの同期化

ユーザー、ロールおよびプロファイル・データは、SAP ERPからSAP GRCにインポート(同期化)する必要があります。最初の同期化の後、データの定期的同期化のスケジュールを設定する必要があります。

SAP GRCでのリスク・ポリシーの定義

ロールおよび職責データのインポート後、SAP GRCのRisk Analysis and Remediation機能を使用して、職務の分離タイプのリスク・ポリシーを定義します。

詳細は、SAP GRCのドキュメントを参照してください。

27.5.3 Oracle Identity Analyticsの構成

Oracle Identity Analyticsの構成には、次の手順が必要です。

- SoD処理用のOracle Identity Analyticsアカウントの作成

- Oracle Identity ManagerメタデータのOracle Identity Analyticsとの同期化

- Oracle Identity AnalyticsでのID監査ポリシーの定義

SoD処理用のOracle Identity Analyticsアカウントの作成

Oracle Identity Analyticsでアカウントを作成し、それをSoD検証処理用にSRM管理ロールに割り当てます。「SoDエンジンの情報を保持するためのITリソースの作成」で説明されている手順の実行中に、このアカウントのユーザー名およびパスワードを指定します。

アカウント作成の詳細は、Oracle Identity Analyticsのドキュメントを参照してください。

注意:

ユーザー名がrbacxadminのOracle Identity Analytics管理アカウントを使用することもできます。

Oracle Identity ManagerメタデータのOracle Identity Analyticsとの同期化

Oracle Identity ManagerからOracle Identity Analyticsにリソース・メタデータおよびリソースをインポートします。

詳細は、Oracle Identity Analyticsのドキュメントを参照してください。

Oracle Identity AnalyticsでのID監査ポリシーの定義

Oracle Identity Analyticsを使用して、ID監査ルールおよびポリシーを設定します。ルールはリソースの属性に基づいて作成されます。権限SoDチェック時には、Oracle Identity Managerでのとおりに、エンコードされた値をロールおよび職責に指定します。

詳細は、Oracle Identity Analyticsのドキュメントを参照してください。

27.6 SoDの有効化および無効化

次の各項では、SoDの有効化および無効化について説明します。

- SoDの有効化

- SoDの無効化

27.6.1 SoDの有効化

SoD機能を有効にするには、次の手順を実行します。

1. XL.SoDCheckRequiredシステム・プロパティをtrueに設定します。システム・プロパティの詳細は、『Oracle Fusion Middleware Oracle Identity Manager管理者ガイド』のシステム・プロパティの管理に関する説明を参照してください。

2. コネクタITリソース・インスタンスのtopologyNameパラメータをSILConfig.xml内に存在する値に設定します。デフォルトのSIL登録を使用している場合は、コネクタITリソースのtopologyNameパラメータを次のいずれかに設定します。

- sodoaacg: EBSコネクタと、SoDエンジンとしてOAACGを使用している場合

- oaacgpsft: PSFTコネクタと、SoDエンジンとしてOAACGを使用している場合

- sodgrc: SoDエンジンとしてGRCを使用している場合

- sodoia: SoDエンジンとしてOIAを使用している場合

注意:

すべてのユーザーがITリソース情報にアクセスできるように、コネクタITリソースにはALL USERSロールが付与されている必要があります。ユーザーが要求したSODリクエストにはこれが必要です。

3. SILおよびSILプロバイダのデプロイ
ターゲット・システムおよびSoDエンジンのデフォルトの組合せに対してSILおよびSILプロバイダをデプロイするには、次の手順を実行します。

1. Sodエンジンの新しいITリソースを次の名前(タイプ)で作成します。

- EBS-OAACGの場合: OAACG-ITRes(eBusiness Suite OAACG)

- SAP-GRCの場合: GRC-ITRes(SoDプロバイダ)

- OIAの場合: OIA-ITRes(OIA)という名前のITリソースが事前に定義されています。

- PSFT-OAACGの場合: PSFT-OAACG-ITRes(OAACG)という名前のITリソースが事前に定義されています。

2. 「SoDエンジンの情報を保持するためのITリソースの作成」の説明に従って、作成したITリソースを編集します。

注意:

- OAACG8.5と構成するには、このITリソースにsodServerURLという名前とhttp(s)://HOST_NAME:PORT/URIという値を持つ新しいフィールドを追加します(この場合、URLはgrcc/services/GrccServiceになります)。OAACG8.2.1の場合、URLの値はags/services/AGServiceになります。

- システム・プロパティの値の設定方法は、『Oracle Fusion Middleware Oracle Identity Manager管理者ガイド』のシステム・プロパティの管理に関する説明を参照してください。

4. ダイレクト・プロビジョニングおよびアクセス・ポリシー・ベースのプロビジョニングでのSoDの有効化:
SoDは、HolderおよびSODCheckerタスクがプロビジョニング・ワークフロー内に存在する場合にのみ有効にできます。

リクエスト・プロビジョニングでのSoDの有効化:

手順1および2により承認中のデフォルトのSoDチェックが有効になります。デフォルトのSoDチェックは、承認される前に実行されます。1つの承認レベルの後でSoDチェックが必要になった場合、デフォルトのSoDチェック承認ワークフローであるDefaultSODApprovalが、承認ポリシーの作成によりアタッチされる必要があります。SoDチェックは、任意の承認ワークフローでオンデマンドで実行することもできます。これは、BPELからSoDチェックWebサービスをコールすることによって行うことができます。詳細は、「SoD用の承認ワークフローの変更」を参照してください。

注意:

DefaultSODApprovalワークフローが承認の操作レベルにアタッチされている場合、システム管理者が最初に承認した後で、SoDチェックのみが実行されます。SoDチェックが実行された後、SoD管理者ロールによる承認が必要です。このワークフローに従って、システム管理者に割り当てられている最初の承認タスクが生成され、次にSoDチェックが実行されてから、承認タスクが生成されます。SoD管理者ロールのメンバーであればどのユーザーでも、SoDチェック結果を表示した後、2番目の承認タスクを承認できます。

5. SoDチェックのCSF資格証明の追加:

1. Enterprise Managerコンソールにログインし、左側のタブで「WebLogicドメイン」を開きます。

2. base_domainを開きます。

3. 右側のペインの上部で、「WebLogicドメイン」リストから「セキュリティ」を選択し、「資格証明」を開きます。

4. 「キーの作成」オプションを選択してから、マップ'oim'を選択します。

5. キーをsodcheck.credentialsとして指定し、「タイプ」を「パスワード」として指定します。

6. 「ユーザー名」をoiminternalとして指定し、パスワードを「未使用」として指定します。「OK」をクリックして、キーを保存します。

27.6.2 SoDの無効化

SoDは次のいずれかを実行して無効にできます。

- XL.SoDCheckRequiredシステム・プロパティをfalseに設定します。

- コネクタITリソースのtopologyNameパラメータの値を削除し、その値が空白に設定されるようにします。ITリソースのtopologyNameパラメータがNoneに設定されていると、SoDチェックは実行されません。

ダイレクト・プロビジョニングおよびアクセス・ポリシー・ベースのプロビジョニングでのSoDの有効化

HolderおよびSODCheckerプロセス・タスクを無効にします。

関連項目:

これらのプロセス・タスクの無効化の詳細は、コネクタのガイドを参照してください。

リクエスト・プロビジョニングでのSoDの無効化

承認中のデフォルトのSoDチェックを無効にするには、いずれかの手順を実行してSoDを無効にします。BPELで、承認中のデフォルトのSoDチェックを実行し、SoDチェックのみを無効にする場合は、SoDの承認ポリシーを削除するか、承認ワークフローからSoDチェックWebサービスのコールを削除します。

27.7 SSL通信の有効化

次の各項では、SoDの様々な用途のためのSecure Sockets Layer(SSL)通信の有効化について説明します。

- Oracle Application Access Controls GovernorとOracle Identity Manager間のSSLの有効化

- SAP GRCとOracle Identity Manager間のSSLの有効化

- SSL経由でのSoDチェックWebサービスのコール

27.7.1 Oracle Application Access Controls GovernorとOracle Identity Manager間のSSLの有効化

Oracle Application Access Controls GovernorとOracle Identity Manager間のSSL通信を有効にするには、次の手順を実行します。

注意:

登録プロセス中にsslEnableをtrueに設定したものと仮定します。

1. 次のようにしてOracle Application Access Controls Governorホスト・コンピュータで証明書をエクスポートします。

注意:

手順1で、JAVA_HOMEはOracle Application Access Controls Governorホスト・コンピュータ上のディレクトリを示しています。

1. JAVA_HOME/binディレクトリから次のコマンドを実行します。

keytool -genkey -alias tomcat -keyalg RSA -keystore JAVA_HOME/lib/security/.keystore
keytool -certreq -alias tomcat -file JAVA_HOME/lib/security/xell.cvs -keystore JAVA_HOME/lib/security/.keystore
keytool -export -alias tomcat -file JAVA_HOME/lib/security/server.cert -keystore JAVA_HOME/lib/security/.keystore

これらのコマンドを実行した後、サーバー証明書(server.cert)がJAVA_HOME/lib/securityディレクトリ内に作成されます。

2. TOMCAT_HOME/conf/server.xmlファイルで、キーストアの詳細をConnector要素の属性として入力します。次の例を参照してください。

<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="JAVA_HOME/lib/security/.keystore">

3. Oracle Application Access Controls Governorを再起動します。

2. 次のようにしてOracle Identity Managerホスト・コンピュータに証明書をインポートします。

注意:

手順2で、JAVA_HOMEはOracle Identity Managerホスト・コンピュータ上のディレクトリを指しています。

1. Oracle Application Access Controls Governorホスト・コンピュータで作成されたサーバー証明書を、Oracle Identity Managerホスト・コンピュータのJAVA_HOME/lib/securityディレクトリにコピーします。

2. JAVA_HOME/binディレクトリから次のコマンドを実行します。

keytool -import -alias oaacg_trusted_cert  -file JAVA_HOME/lib/security/server.cert -trustcacerts -keystore JAVA_HOME/lib/security/cacerts -storepass changeit

27.7.2 SAP GRCとOracle Identity Manager間のSSLの有効化

SAP GRCとOracle Identity Manager間のSSL通信を有効にするには、SAP GRCホスト・コンピュータで次のようにして証明書をエクスポートします。

注意:

ここでは、JAVA_HOMEは、アプリケーション・サーバーの実行に使用されるOracle Identity Managerホスト・コンピュータ上のディレクトリを指しています。

1. Webブラウザで、SAP GRC Access Controlの「Web Services Navigator」ページを開きます。URLは次のようなものです。

https://mysapserver01:50001/VirsaCCRiskAnalysisService/Config1?wsdl

2. 次の手順は、使用しているブラウザによって異なります。

- Microsoft Internet Explorerの場合: 「セキュリティの警告」ダイアログ・ボックスで、「証明書の表示」をクリックします。ダイアログ・ボックスの「詳細」タブで「このファイルをコピーする」ボタンを使用して、証明書をエクスポートします。

- Mozilla Firefoxの場合: 証明書を.pemファイルとしてエクスポートします。この手順を実行するには、Mozilla Webサイトから証明書ビューア拡張機能をダウンロードし、インストールすることが必要となる場合があります。

3. Oracle Identity Managerをホストするアプリケーション・サーバーによって使用されるJAVA_HOME/lib/securityディレクトリに、証明書をコピーします。

4. 端末ウィンドウで、JAVA_HOME/binディレクトリに移動します。

5. 次のコマンドを実行して、GRC証明書をcacertsにインポートします。

keytool -import -alias sapgrc_trusted_cert -file JAVA_HOME/lib/security/CERTIFICATE_FILENAME -trustcacerts -keystore JAVA_HOME/lib/security/cacerts -storepass changeit

このコマンドでは、次のように指定します。

- CERTIFICATE_FILENAMEは、SAP GRCホスト・コンピュータからエクスポートした証明書の名前です。

- -storepass changeit句は、cacertsキーストアのパスワードを指定します。

6. 証明書を信頼するかどうかの指定を要求されたら、yesを入力します。
証明書がキーストアに追加されたことを示すメッセージが表示されます。

27.7.3 SSL経由でのSoDチェックWebサービスのコール

SOAでは、oim-config.xmlファイル内でoimFrontEndURLとして指定されているURL(Oracle Identity Manager UIへのアクセスに使用されるURL)経由で、Oracle Identity Manager Webサービスをコールします。デフォルトではこれはHTTP URLです。通信がSSL経由で行われるように、これをHTTPSに変更できます。Oracle Identity ManagerのSSLポートは、WebLogic管理コンソールで確認できます。

SSL経由でSoDチェックWebサービスをコールするには、次の手順を実行します。

1. Oracle Identity ManagerのSSLポートを特定します。これを行うには、次の手順を実行します。

1. WebLogic管理コンソールにログインします。

2. 「サーバー」→「oim_server1」に移動します。「SSLリスニング・ポート」が有効になっています。

2. Enterprise ManagerのMBeanブラウザでoimFrontEndURLを変更します。これを行うには、次の手順を実行します。

1. Enterprise Managerにログインします。

2. 「oim_server1」に移動します。

3. ペインの上部にあるリストから、システムMBeanブラウザを選択します。

4. アプリケーション定義のMBean→「oracle.iam」→「サーバー: oim_server1」→「アプリケーション: oim」→「XMLConfig」→「構成」→「XMLConfig.DiscoveryConfig」→「検出」に移動します。属性が右側に表示されます。

5. 「oimFrontEndURL」をクリックし、値を次のように変更します。
https://HOST_NAME:SSL_PORT

注意:

oimFrontEndURLの値は、Oracle Identity Managerのインストール時に設定することもできます。

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

4. SoD対応リソースに対するリクエストを作成します。新しいワークフロー・インスタンスはEnterprise Managerで確認できます。SSLポートでWebサービスがコールされるようになります。

注意:

Oracle Identity ManagerおよびSOAが同じJava Runtime Environment(JRE)で実行されているものと仮定します。SOAとOracle Identity Managerが異なるJREで実行されている場合、SSL通信を行うためにはWebLogic証明書の交換が必要になります。詳細は、次のURLを使用してOracle Technology Network(OTN)WebサイトにあるOracle WebLogic Server 10gリリース3(10.3)のドキュメントを参照してください。

http://www.oracle.com/technetwork/middleware/weblogic/documentation/index.html

27.8 SoD非対応コネクタでのワークフローの構成

この項で説明されている手順は、事前に構成されたSoD互換コネクタ(Oracle E-Business User Management、SAP User ManagementおよびSAP CUA)の1つを使用しない場合のみ実行してください。この項の内容は次のとおりです。

- SoD用の承認ワークフローの変更

- SoD用のプロビジョニング・ワークフローの変更

27.8.1 SoD用の承認ワークフローの変更

SoD用の承認ワークフローを変更するには、次の手順を実行します。

1. Oracle Identity Managerの以前のリリースのオブジェクト・フォームのかわりに、11gリリース1(11.1.1)でのリクエストの作成時に入力するデータが、リクエスト・データセットに入力されます。プロビジョニング対象のターゲット・システム・リソース用にリクエスト・データセットがまだ存在しない場合は、新しい親データセットおよび子データセットを作成し、MDSインポート・ユーティリティを使用してこれらをMDSにインポートします。

注意:

- リクエスト・データセットではSoDチェック・フィールドを追加しないでください。これらのフィールドは共通データセットの一部であり、使用されているコネクタに関係なくデフォルトで使用可能です。共通データセット内のSoDフィールドは次のとおりです。

<!-- Common SoD check attributes used for Provision Resource -->
<AttributeReference name="SoDCheckStatus" attr-ref="SoDCheckStatus" length="50" type="String" widget="text" read-only="true" available-in-bulk="false" system-type="true"/>
<AttributeReference name="SoDCheckTrackingID" attr-ref="SoDCheckTrackingID" length="50" type="String" widget="text" read-only="true" available-in-bulk="false" system-type="true"/>
<AttributeReference name="SoDCheckResult" attr-ref="SoDCheckResult" length="4000" type="String" widget="text" read-only="true" available-in-bulk="false" system-type="true"/>
<AttributeReference name="SoDCheckTimestamp" attr-ref="SoDCheckTimestamp" length="50" type="Date" widget="text" read-only="true" available-in-bulk="false" system-type="true"/>
<AttributeReference name="SoDCheckEntitlementViolation" attr-ref="SoDCheckEntitlementViolation" length="4000" type="String" widget="text" read-only="true" available-in-bulk="false" system-type="true"/>

ここで、<attr-ref>タグ値は、プロセス・フォーム・フィールドへのマッピングを表します。したがって、SoDに対して有効になっているすべてのコネクタでは、親プロセス・フォームにこれらの特定のフォーム・フィールド・ラベルが必要です。たとえば、SoDCheckStatus属性値は、SoDCheckStatusというラベルを持つ親プロセス・フォーム・フィールドにマップされています。

- リクエスト・データセットの詳細は、「手順1: リソースのリクエスト・データセットの作成」を参照してください。

- MDSインポートおよびエクスポート・ユーティリティの詳細は、第33章「MDSユーティリティとユーザーが修正可能なメタデータ・ファイル」を参照してください。

- 以前のリリースのOracle Identity Managerのオブジェクト・フォームは、11gリリース1(11.1.1)のリクエスト・データセットに置き換えられています。したがって、コネクタにオブジェクト・フォームが存在していても、それらは使用されません。

次に、eBusiness Suite User TCA Foundationリソースのサンプルのリクエスト・データセットを示します。使用されているリソースに適したリクエスト・データセットを作成してください。

<request-data-set xmlns="http://www.oracle.com/schema/oim/request"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/request"
name="eBusiness Suite User TCA Foundation"    entity="eBusiness Suite User TCA Foundation" operation="PROVISION">

<!-- Parent form having fields -->

<AttributeReference name="Effective Date From" attr-ref="Effective Date From" type="Date" length="50" widget="date" required="true" available-in-bulk="true"/>
<AttributeReference name="SSO GUID" attr-ref="SSO GUID" type="String" length="256" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="Last Name" attr-ref="Last Name" type="String" length="150" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="EBS Server" attr-ref="EBS Server" type="String" length="50" widget="itresource-lookup" available-in-bulk="true" itresource-type="eBusiness Suite UM" required="true"/>
<AttributeReference name="Password Expiration Interval" attr-ref="Password Expiration Interval" type="Long" length="50" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="Fax" attr-ref="Fax" type="String" length="80" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="Password" attr-ref="Password" type="String" length="30" widget="text" masked="true" required="true" available-in-bulk="true"/>
<AttributeReference name="Effective Date To" attr-ref="Effective Date To" type="Date" widget="date" length="50" required="false" available-in-bulk="true"/>
<AttributeReference name="Description" attr-ref="Description" type="String" length="240" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="Password Expiration Type" attr-ref="Password Expiration Type" type="String" length="30" widget="lookup" required="false" available-in-bulk="true" lookup-code="Lookup.EBS.PasswordExpirationType"/>
<AttributeReference name="SSO User ID" attr-ref="SSO User ID" type="String" length="256" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="User Name" attr-ref="User Name" type="String" length="100" widget="text" required="true" available-in-bulk="true"/>
<AttributeReference name="First Name" attr-ref="First Name" type="String" length="150" widget="text" required="false" available-in-bulk="true"/>
<AttributeReference name="Party ID" attr-ref="Party ID" type="Long" widget="text" length="50" required="false" available-in-bulk="true"/>
<AttributeReference name="User ID" attr-ref="User ID" type="Long" widget="text" length="50" required="false" available-in-bulk="true"/>
<AttributeReference name="Email" attr-ref="Email" type="String" length="240" widget="text" required="false" available-in-bulk="true"/>

<!--  Child form EBS -->
<AttributeReference name="UD_EBST_RSP" attr-ref="UD_EBST_RSP" type="String" length="20" widget="text" available-in-bulk="true">
<AttributeReference name="Effective Start Date" attr-ref="Effective Start Date" type="Date" length="50" widget="date" required="false" available-in-bulk="true"/>
<AttributeReference name="Effective End Date" attr-ref="Effective End Date" type="Date" length="50" widget="date" required="false" available-in-bulk="true"/>
<AttributeReference name="Application Name" attr-ref="Application Name" type="String" length="256" widget="lookup" required="false" available-in-bulk="true" lookup-code="Lookup.EBS.Application"/>
<AttributeReference name="Responsibility Name" attr-ref="Responsibility Name" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded as lkv_encoded,lkv_decoded as lkv_decoded from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and
lku_type_string_key='Lookup.EBS.Responsibility' and instr(lkv_encoded,concat('$Form data.Application Name','~'))>0" display-field="lkv_decoded" save-field="lkv_encoded"/>
</AttributeReference>

</AttributeReference>

<AttributeReference name="UD_EBST_RLS" attr-ref="UD_EBST_RLS" type="String" length="20" widget="text" available-in-bulk="true">
<AttributeReference name="Start Date" attr-ref="Start Date" type="Date" widget="date" length="50"  required="false" available-in-bulk="true"/>
<AttributeReference name="Expiration Date" attr-ref="Expiration Date" type="Date" widget="date" length="50" required="false" available-in-bulk="true"/>

<AttributeReference name="Application Name" attr-ref="Application Name" type="String" length="256" widget="lookup" required="false" available-in-bulk="true" lookup-code="Lookup.EBS.Application"/>
<AttributeReference name="Role Name" attr-ref="Role Name" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded as lkv_encoded,lkv_decoded as lkv_decoded from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and
lku_type_string_key='Lookup.EBS.UMX.Roles' and instr(lkv_encoded,concat('$Form data.Application Name','~'))>0" display-field="lkv_decoded" save-field="lkv_encoded"/>
</AttributeReference>
</AttributeReference>
</request-data-set>

図27-3に、SoDチェックが完了した後のリクエスト・データセット・ページに表示される、SoD属性のシステム属性を示します。

図27-3 SoDCheckAttributesシステム属性

「図27-3 SoDCheckAttributesシステム属性」の説明

2. コネクタのITリソースで、まだ存在しない場合はTopologyNameパラメータを作成します。図27-4に、このパラメータが追加されたサンプルのITリソースを示します。

図27-4 TopologyNameパラメータ

「図27-4 TopologyNameパラメータ」の説明

コネクタITリソースでSoDチェック・プロパティがtrueに設定され、topologyNameパラメータが適切な値に設定されている場合、承認ワークフローの前処理ステージでデフォルトのSoDチェックが実行されます。リクエストが作成された後、リクエスト・ステータスが、非同期SoDチェックの場合は「SoDチェック結果が保留中です」、同期SoDチェックの場合は「SoDチェックが完了しました」ステータスになります。非同期SoDチェックの場合、SoDチェックを完了するにはSoDチェック結果の取得(承認)スケジュール済ジョブが実行されている必要があります。

注意:

SoDチェックの実行中にエラーが発生した場合は、リクエスト・データセット内の「SoDチェックのステータス」属性が「SoDチェックがエラーで完了しました」に設定され、リクエストが承認に送られます。SoDチェックが正常に実行されていなくてもリクエストを承認するかどうかについての最終的な決定は、承認者が下します。

図27-5に、非同期SODチェックのリクエスト履歴を示します。

図27-5 非同期SoDチェックのリクエスト履歴

「図27-5 非同期SoDチェックのリクエスト履歴」の説明

3. あらゆるレベルの承認の前にデフォルトでトリガーされるSoDチェックに加え、事前定義されたDefaultSODApprovalワークフローをアタッチすることによってもSoDチェックをトリガーできます。ワークフローを承認の操作レベルにアタッチするには、承認ポリシーを作成します。

注意:

Oracle Identity Manager 11gでは、SoDワークフローが機能するためにはSOAおよびWebLogic Serverにパッチが必要でした。Oracle Identity Manager 11g PS1のリリースでは、パッチは必要ありません。

デフォルト・ワークフローの使用の詳細は、「承認ポリシーを使用したワークフローの適用」を参照してください。このワークフローには、システム管理者に割り当てられる承認タスクが含まれています。この承認タスクの後で、SoDチェックを開始するために、非同期SoDCheck Webサービスがコールされます。SoDCheck Webサービスを完了してコールバックするには、SoDチェック結果の取得(承認)スケジュール済ジョブを実行する必要があります。図27-6に、SoDCheck Webサービス・コールを含むワークフローを示します。

注意:

すべてのリクエストには、テンプレート・レベル承認、リクエスト・レベル承認および操作レベル承認の、3つの承認レベルがあります。DefaultSODApprovalワークフローをアタッチできるのは、承認レベルのみです。バルク・リクエストでは、すべてのリソースおよびユーザーについて、リクエスト・レベル承認が一般的です。このレベルの承認後、リソースとユーザーの組合せごとに個別のリクエストが作成されます。ワークフローでは、リソースとユーザーごとに、個別にSoDチェックが実行されます。

ワークフローは、リクエスト・レベル承認の後でSoDチェックが必要な場合に役立ちます。一例として、承認者によりコネクタITリソース情報が入力される場合があります。この場合、リクエスト・データセットのITリソース・フィールドは、次に示すように承認者専用に設定されます。

<AttributeReference name="EBS Server" attr-ref="EBS Server" type="String" length="50" widget="itresource-lookup" available-in-bulk="true" itresource-type="eBusiness Suite UM" required="true" approver-only="true"/>

この例では、リクエストの要求時にはITリソース情報は使用できません。これは、承認者による入力後に初めて使用できるようになります。リクエスト・レベル承認時にこれが入力された場合は、DefaultSODApprovalワークフローを操作レベルで使用できます。

図27-6 SoDCheck Webサービス・コールを含むワークフロー

「図27-6 SoDCheck Webサービス・コールを含むワークフロー」の説明

この後、承認タスクを含むswitch caseがSoD管理者ロールに割り当てられます。このロールを持つすべてのユーザーは、タスクを要求して承認できます。図27-7に示すように、switchは、SoDチェックの結果が成功か失敗かに基づきます。

図27-7 承認タスクを含むSwitch Case

「図27-7 承認タスクを含むSwitch Case」の説明

図27-8に、承認タスクの割当てを示します。

図27-8 承認タスクの割当て

「図27-8 承認タスクの割当て」の説明

承認ワークフローは、Oracle Identity Manager 11gリリース1(11.1.1)でBPELに移行されたため、デフォルト・ワークフローを表示または変更するには、JDeveloperを使用する必要があります。デフォルトのSoDワークフローは、OIM_HOME/workflows/composites/DefaultSODApproval.zipファイルに含まれています。このファイルを解凍し、JDeveloperでDefaultSODApproval.jprを開くことができます。さらに、デフォルトの承認ワークフローを変更して新しいワークフローを作成し、SoDチェックWebサービスをコールしてオンデマンドでSoDチェックを開始できます。これを行うには、次の手順を実行します。

SOAでのワークフローの作成とデプロイ

1. OIM_HOME/workflows/new-workflow/new_project.xmlを実行して、新しいワークフロー・プロジェクトを作成します。
説明:

- WEBLOGIC_HOMEは、Oracle WebLogic Serverがインストールされているディレクトリです。

- NEW_PROJECTは、作成する新規プロジェクトの名前です。

新しいワークフロー・プロジェクトを作成するには、次のコマンドを実行します。

ant -f new_project.xml

これにより、新しいワークフロー名のプロジェクト名、アプリケーション名およびサービス名を入力するよう要求されます。この3つすべてに、SODWorkflowのような任意の名前を指定します。これにより、指定された名前を持つ新規プロジェクトがworkflows/new-workflow/process-template/ディレクトリに作成されます。

2. JDevepolerでprocess-template/APPLICATION_NAME/PROJECT_NAME/にナビゲートし、PROJECT_NAME.jprを開きます(ここで、APPLICATION_NAMEおよびPROJECT_NAMEは、それぞれアプリケーションおよびプロジェクトの名前です)。
PROJECT_NAME.jprワークフローは、DefaultRequestApprovalワークフローと同じです。SoDCheck Webサービスをコールするように、このワークフローを変更できます。図27-9に、人による承認後にSoDチェックを実行するように変更された、デフォルト・ワークフローを示します。

図27-9 SoDチェックを実行するように変更されたワークフロー

「図27-9 SoDチェックを実行するように変更されたワークフロー」の説明

3. OIM_HOME/workflows/composites/DefaultSODApproval.zipを解凍し、asyncsod.wsdlを解凍されたディレクトリからOIM_HOME/workflows/ process-template/APPLICATION_NAME/PROJECT_NAME/にコピーします。SODCheckService1などのWebサービスをcomposite.xmlに追加し、asyncsod.wsdlをWSDLファイルとして提供します。SoDCheckパートナ・リンクは、図27-10のようになります。

注意:

BPELは、パートナ・リンクを介してすべての外部エンティティに接続します。

図27-10 SoDチェック・パートナ・リンク

「図27-10 SoDチェック・パートナ・リンク」の説明

4. ApprovalProcess.bpel設計に、次のBPELアクティビティを含めます。

- ASSIGN: assignアクティビティは、SoDチェックWebサービスをコールする前に追加する必要があります。このアクティビティにより、Webサービスをコールするために必要なパラメータが初期化されます。assignアクティビティを作成するには、次の手順を実行します。
i) JDeveloperで開いたBPELプロセスにアクティビティをドラッグ・アンド・ドロップします。

ii) アクティビティが作成されたら、アクティビティをダブルクリックし、「コピー操作」タブをクリックします。

iii) 「追加」をクリックして「コピー操作」を選択します。表27-1に示すように、変数の値を指定します。

表27-1 割り当てる変数

コピー元

コピー先

XML Fragment

<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
<Address/>
</EndpointReference>

変数

partnerlink

Expression

concat(substring-before(bpws:getVariableData('inputVariable','payload','/client:process/ns1:url'), "/workflowservice/CallbackService"), '/sodcheck/SoDCheckInitiateService')

Partnerlink, EndpointReference, Address

変数

partnerlink

Partner Link

SODCheckService1

変数

Payload, RequestId

変数

SODInvoke_initiate_InputVariable。SODInvoke_initiate_InputVariableは、Invoke BPELアクティビティで定義された変数です。

次の各図に、追加される値を示します。

図27-11に、最終的なassignアクティビティを示します。

図27-11 最終的なAssignアクティビティ

「図27-11 最終的なAssignアクティビティ」の説明

- INVOKE: このアクティビティの詳細は次のとおりです。
相互作用タイプ: Partnerlink

パートナ・リンク: SODCheckService

操作: Initiate

入力変数: SODInvoke_initiate_InputVariable

図27-12に、フィールドにサンプル値が入力された「Invoke」ダイアログ・ボックスを示します。

図27-12 「Invoke」ダイアログ・ボックス

「図27-12 「Invoke」ダイアログ・ボックス」の説明

- RECEIVE: このアクティビティの詳細は次のとおりです。
相互作用タイプ: Partnerlink

パートナ・リンク: SODCheckService

操作: Result

Variable: SODResultReceive_result_InputVariable

図27-13に、フィールドにサンプル値が入力された「Receive」ダイアログ・ボックスを示します。

図27-13 「Receive」ダイアログ・ボックス

「図27-13 「Receive」ダイアログ・ボックス」の説明

- SWITCH: このアクティビティは、SODCheckの結果に基づいてワークフローをスイッチするためのものです。switch caseは、図27-14のようになります。

図27-14 Switch Case

「図27-14 Switch Case」の説明

- 新規ヒューマン・タスク: 新規ヒューマン・タスクを作成して、システム管理者以外の承認者に割り当てることができます。新規承認タスクは、ワークフローにすでに存在する古いものと同じですが、承認者が異なります。このヒューマン・タスクはswitch caseで使用されます。たとえば、SoDチェックが成功した場合に、承認タスクをロールに割り当てることができます。SoDチェックが失敗した場合は、承認タスクをSOD管理者ロールに割り当てることができます。DefaultSODApprovalでは常に、承認タスクをSoD管理者ロールに割り当てます。

注意:

SoDCheck Webサービスは複数回コールできます。

5. AsyncSoD WebサービスのリクエストとコールバックのためのSAMLポリシーの適用:
Security Assertion Markup Language(SAML)にづいたメッセージ保護ポリシー付きOWSM SAMLトークンは、SOAコンポジットからOracle Identity ManagerへのSoDチェックの非同期コールにおいて、メッセージ保護のセキュリティ・ポリシーとして使用されます。非同期SoDチェックWebサービスでは、この項で説明するように、リクエストのためのメッセージ保護クライアント・ポリシー付きSAMLトークンおよびコールバックのためのメッセージ保護サービス・ポリシー付きSAMLトークンを使用する必要があります。

リクエストのためのメッセージ保護クライアント・ポリシー付きSAMLトークンを適用するには、次の手順を実行します。

i) 図27-15に示すように、AsynchSoD Webサービスを右クリックし、「WSポリシーの構成」を選択して、「リクエスト対象」を選択します。

図27-15 リクエストのためのWSポリシーの構成

「図27-15 リクエストのためのWSポリシーの構成」の説明

ii) 「SOA WSポリシーの構成」ダイアログ・ボックスの「セキュリティ」セクションで、正符号(+)のアイコンをクリックしてセキュリティ・ポリシーを追加します。

iii) 図27-16に示すように、クライアント・セキュリティ・ポリシーの選択ダイアログ・ボックスで「wss11_saml _token_with_message_protection_client_policy」を選択し、「OK」をクリックします。

図27-16 クライアント・セキュリティ・ポリシーの選択

「図27-16 クライアント・セキュリティ・ポリシーの選択」の説明

コールバックのためのメッセージ保護サービス・ポリシー付きSAMLまたはユーザー名トークンを適用するには、次の手順を実行します。

i) AsynchSoD Webサービスを右クリックし、「WSポリシーの構成」を選択して、「コールバック対象」を選択します。

ii) 「SOA WSポリシーの構成」ダイアログ・ボックスの「セキュリティ」セクションで、正符号(+)のアイコンをクリックしてセキュリティ・ポリシーを追加します。

iii) 図27-17に示すように、サーバー・セキュリティ・ポリシーの選択ダイアログ・ボックスで「wss11_saml _or_username_token_with_message_protection_service_policy」を選択し、「OK」をクリックします。

図27-17 サーバー・セキュリティ・ポリシーの選択

「図27-17 サーバー・セキュリティ・ポリシーの選択」の説明

6. プロジェクトをコンパイルして、エラーがないか確認します。エラーがない場合は、プロジェクトを右クリックし、「デプロイ」を選択します。表示されるダイアログ・ボックスで、次のいずれかのオプションを選択します。

- アプリケーション・サーバーにデプロイ: このオプションを選択してから、適切なサーバーを選択します。ワークフローは、アプリケーション・サーバーに直接デプロイされます。

- JARにデプロイ: JDeveloperのデプロイ・ディレクトリの下に、sca_PROJECT_NAME_rev1.0.jarという名前でJARファイルが作成されます(ここで、PROJECT_NAMEはプロジェクトの名前です)。

7. SOA_HOME/bin/ディレクトリから、次のコマンドを実行してSOAサーバーにワークフローをデプロイします。

注意:

- このガイドでは、SOA_HOMEはSOAサーバーがインストールされているディレクトリを指します。

- このコマンドを実行する前に、SOAサーバーが稼働していることを確認してください。

ant -f ant-sca-deploy.xml -DserverURL=http://SOA_SERVER_HOSTNAME:SOA_PORT
-DsarLocation=JDeveloper/deploy/sca_PROJECT_NAME_rev1.0.jar -Duser=SOA_USER -Dpassword=SOA_PASSWORD

注意:

次の項目を有効な値で置き換える必要があります。

- SOA_SERVER_HOSTNAME

- SOA_PORT

- PROJECT_NAME

- SOA_USER

- SOA_PASSWORD

これにより、SOAサーバーに新規コンポジットがデプロイされます。次のURLにナビゲートすると、コンポジットがデプロイされたかどうかを確認できます。

http://SOA_SERVER_HOSTNAME:SOA_PORT/soa-infra

URLのSOA_SERVER_HOSTNAMEはSOAサーバーのホスト名で、SOA_PORTはSOAサーバーがインストールされているポートで置き換えてください。

8. SOAサーバーを再起動します。

関連項目:

新規ワークフローを作成し、それをOracle Identity Managerに登録する一般的な手順は、第25章「SOAコンポジットの開発」を参照してください。

ワークフローの登録

1. OIM_HOME/workflows/registration/ディレクトリに、DefaultRequestApproval.propsをコピーしてNEW_PROJECT_NAME.propsファイルを作成します。名前属性を変更して、NEW_PROJECT_NAME.propsを変更します。
ここで、NEW_PROJECT_NAMEは作成した新規プロジェクトの名前です。

NEW_PROJECT_NAME.propsファイルの内容は次のとおりです。

#This is is the input file for registering the default workflow
# <new project name>
name=NEW_PROJECT_NAME
category=Approval
providerType=BPEL
serviceName=RequestApprovalService
domainName=default
version=1.0
payLoadID=payload
operationID=process
listOfTasks=ApprovalTask

各構成要素は次のとおりです。

- versionパラメータは、BPELにデプロイされたワークフローのバージョンです。

- listOfTasksパラメータは、承認タスクのコロン区切りリストです。たとえば、新規承認タスクをApproval_Task1として追加する場合は、ApprovalTask:ApprovalTask1をこのパラメータの値として指定する必要があります。

2. 次のようにしてOIM_HOME/workflows/registration /registerworkflows-mp.xmlを実行します。
ant -f registerworkflows-mp.xml register

このコマンドにより、次の項目を入力するよう要求されます。

ユーザー名: Oracle Identity Manager管理者のユーザー名を入力します。

パスワード: Oracle Identity Manager管理者のパスワードを入力します。

OIMサーバーのt3 URL: t3://OIM_HOST_NAME/OIM_MANAGED_SERVER_PORTと入力します。ここで、OIM_HOST_NAMEはOracle Identity Managerがインストールされているコンピュータのホスト名で、OIM_MANAGED_SERVER_PORTはOracle Identity Managerがインストールされているポートで置き換えます。

プロパティ・ファイルの入力パス(完全なファイル名): OIM_HOME/workflows/registration/NEW_PROJECT_NAME.props。ここで、NEW_PROJECT_NAMEは作成したプロジェクトの名前で置き換えます。

承認ポリシーを使用したワークフローの適用

1. SoDワークフローを適用するリクエスト・モデル用の承認ポリシーを作成します。たとえば、リソースのプロビジョニング中にSoDチェックを実行するには、「リソースのプロビジョニング」リクエスト・モデル用のポリシーを作成します。承認ポリシーの作成の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの承認ポリシーの作成に関する説明を参照してください。

注意:

- SoDはリソースごとに個別にトリガーされるため、SoDワークフローは必ず承認の操作レベルでアタッチしてください。

- SoDエンジンが非同期であるか同期であるかにかかわらず、SoDチェックWebサービスは常に非同期であり、ワークフローの変更は両方に対して同じになります。

27.8.2 SoD用のプロビジョニング・ワークフローの変更

各プロセス定義には、権限をユーザーにプロビジョニングするために、1つのプロセス・タスクがアタッチされています。SoD検証プロセスは、このタスクをトリガーする前、ターゲット・システムで権限を保持する子表にすべてのデータを挿入した直後に実行する必要があります。したがって、子表にデータを挿入した後、SoD検証プロセスが完了するまで、このプロセス・タスクを保持する必要があります。これを実行するには、ユーザーへの権限のプロビジョニングに先行するHolderタスクを作成します。

Holderタスクは、SoD検証プロセスが完了する前に、ユーザーにリソースをプロビジョニングすることを防ぐために追加されます。ユーザー権限は、このタスクが完了した場合にのみプロビジョニングされます。SoDエンジンで、権限の割当てがSoDポリシーまたはルールに違反していないことが検証されると、このタスクは完了します。

SoD検証プロセスが承認ワークフローで実行された場合、プロビジョニング・レベルでSoD検証プロセスが有効になっている場合であっても、SoD検証プロセスを再実行する必要はありません。SoD検証プロセスを実行する必要があるかないかは、プロビジョニング・レベルでのSoD検証プロセスの前に、次のチェックを行うことにより評価できます。

- プロビジョニングはリクエストに関連がありますか。

- 関連がある場合、SoDCheckStatusフィールドはSoDCheckCompletedに設定されていますか。

- 設定されている場合、権限のプロビジョニング中にSoD検証プロセスを実行しないでください。

注意:

SoD検証プロセスは、プロセス子フォームが権限の追加、更新または削除のために編集された場合のみ再実行されます。

SoD検証用プロビジョニング・ワークフローを変更するには、次の手順を実行します。

1. Holderタスクをプロビジョニング・ワークフローに追加します。このタスクは条件付きにし、「複数のインスタンスを許可」オプションを選択する必要があります。
次の図は、このHolderタスクを示しています。

画像holder1.gifの説明

2. コネクタの権限の挿入、更新および失効タスクを、Holderタスクに依存させます。
次の図は、Holderタスクに依存するOracle E-Business User Managementコネクタのすべての権限タスクを示しています。

画像holder2.gifの説明

次の図は、Add Responsibility to Userタスクに先行するタスクとしてのHolderタスクを示しています。

画像holder3.gifの説明

3. SODCheckerタスク(名前がSODCheckerで始まる任意のタスク)を追加します。このタスクは条件付きにする必要があります。
次の図は、このSODCheckerタスクを示しています。

画像sodchecker_prov1.gifの説明

4. InitiateSODCheckプロセス・タスク・アダプタをSoDCheckerタスクにアタッチします。
次のレスポンス・コードをSODCheckerタスクにアタッチします。

レスポンス・コード

タスク・ステータス

説明

SODCheckResultPending

P

SoD検証プロセスが開始され、結果待ちの状態です。

注意: このレスポンス・コードはSoDエンジン用で、レスポンスが非同期的に返されます。

SODCheckCompleted

C

SoD検証プロセスの結果が返され、レスポンスはSoD違反がないことを示します。

SODCheckViolation

C

SoD検証プロセスの結果が返され、レスポンスはSoD違反があることを示します。

SODCheckNotInitiated

C

Oracle Identity ManagerでSoDが有効になっていないため、SoD検証プロセスは開始されていません。

次の図に、これらのレスポンス・コードを示します。

画像sodchecker_prov2_.gifの説明

27.9 権限としてのフィールドのマーク

この項には次のトピックが含まれます:

- 権限データを保持するリクエスト・データセット属性のマーク

- 権限データを保持する子プロセス・フォーム表のマーク

27.9.1 権限データを保持するリクエスト・データセット属性のマーク

権限を保持するリクエスト・データセット属性を、権限プロパティをtrueに設定してマークします。次に例を示します。

<AttributeReference name="Responsibility Name" attr-ref="Responsibility Name" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true" entitlement="true">
<lookupQuery lookup-query="select lkv_encoded as lkv_encoded,lkv_decoded as lkv_decoded from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and
lku_type_string_key='Lookup.EBS.Responsibility' and instr(lkv_encoded,concat('$Form data.Application Name','~'))>0" display-field="lkv_decoded" save-field="lkv_encoded"/>
</AttributeReference>

関連項目:

リクエスト・データセットの作成の詳細は、「手順1: リソースのリクエスト・データセットの作成」を参照してください。

27.9.2 権限データを保持する子プロセス・フォーム表のマーク

子プロセス・フォーム表では、異なるタイプの複数値データ(ロール・データ、プロファイル・データおよびアドレス情報など)を保持できます。SoD処理に使用する権限データを保持している子プロセス・フォーム表をマークする必要があります。詳細は、「子プロセス・フォームでの権限属性のマーク」を参照してください。

27.10 ターゲット・システムおよびSoDエンジンのカスタムの組合せ

この項には次のトピックが含まれます:

- カスタム・ターゲット・システムの使用

- カスタムSoDエンジンの追加

27.10.1 カスタム・ターゲット・システムの使用

注意:

この項で説明する手順は、Oracle E-Business Suite、SAP CUAおよびSAP R3以外のターゲット・システムを使用する場合にのみ実行します。Oracle Application Access Controls GovernorおよびSAP GRC以外のSoDエンジンを使用する場合は、「カスタムSoDエンジンの追加」の手順も実行する必要があります。

この手順は、Oracle Identity ManagerでのSoDの最初の実装前、または実装後のいつでも実行できます。

次に、新規ターゲット・システム用のSILを構成する手順のサマリーを示します。

1. 「前提条件への対応」の項に示されている手順に従います。

2. コネクタ用にIdMvsSoDDataTransformationOperインタフェースのJavaクラス実装を作成します。手順は、「変換レイヤーの作成」を参照してください。

3. 変換サービス・コンポーネントをデプロイします。「変換レイヤーのデプロイ」を参照してください。

4. 登録XMLファイルに新規ターゲット・システムのエントリを追加します。手順は、「登録XMLファイルの変更」を参照してください。

5. 「SoD非対応コネクタでのワークフローの構成」の手順を実行します。

6. 権限データを保持する子プロセス・フォームをマークします。手順は、「権限としてのフィールドのマーク」を参照してください。

7. 新規ターゲット・システムを登録します。手順は、「新規ターゲット・システムの登録」を参照してください。

27.10.1.1 前提条件への対応

次の前提条件を満たしていることを確認します。

1. ターゲット・システムからSoDエンジンに権限データをロードします。
詳細は、SoDエンジンのベンダーのドキュメントを参照してください。

2. ターゲット・システム用のOracle Identity Managerコネクタをデプロイします。詳細は、コネクタのドキュメントを参照してください。

27.10.1.2 変換レイヤーの作成

変換レイヤーは、ターゲット・システムの属性値を、SoDエンジンで使用可能な値に変換するために使用されます。変換レイヤーは、すべての新規SoDエンジンまたはターゲット・システム・タイプに対して作成する必要があります。

IdMvsSoDDataTransformationOperインタフェースの実装として、変換レイヤーを作成する必要があります。transformInputおよびtransformSoDAnalysisInputメソッドの実装は、IdMvsSoDDataTransformationOperインタフェースの実装クラスで作成します。

関連項目:

実装メソッドの詳細は、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。

Oracle Identity Managerの以前のリリースでは、承認ワークフロー・データはオブジェクト・フォームから読み取られます。Oracle Identity Manager 11gリリース1(11.1.1)では、オブジェクト・フォームは承認プロセス内のリクエスト・データセットに置き換えられています。そのため、権限データがオブジェクト・フォームではなくリクエスト・データセットから読み取られるように、変換レイヤーを変更する必要があります。

変換レイヤーでは、リクエスト・モデルもチェックする必要があります。リクエスト・モデルがリソースのプロビジョニングである場合、データはリクエスト・データセットからのみ読み取る必要があります。一方、リクエスト・モデルがプロビジョニング済リソースの変更である場合は、データはリクエスト・データセットとプロセス・フォームの両方から読み取る必要があります。

27.10.1.3 変換レイヤーのデプロイ

変換サービス・コンポーネントは、次のようにデプロイされます。

1. IdMvsSoDDataTransformationOperサービス・コンポーネント・タイプの実装用に作成したJavaクラスのJARファイルを作成します。

2. UploadJarユーティリティを使用して、JARファイルをThirdPartyとしてアップロードします。

注意:

UploadJar.shまたはUploadJar.batユーティリティは、OIM_HOME/bin/ディレクトリにあります。この場所からユーティリティを実行して、作成したJARファイルをMDSにアップロードします。

27.10.1.4 登録XMLファイルの変更

registration.xmlファイルで、次のようにして変換レイヤーの詳細を入力します。

1. MDSからRegistration.xmlファイルをインポートします。Registration.xmlファイルは、ネームスペース/metadata/iam-features-sil/db/Registration.xmlでMDS内に存在します。

2. テキスト・エディタでRegistration.xmlファイルを開きます。

3. SystemType要素およびServiceComponent要素を、このXML行ブロックのように追加します。

注意:

設定が必要な値は、太字で強調されています。このXMLブロックの後に、ガイドラインとサンプル値を示します。

<SystemType name="SYSTEM_TYPE_NAME" type="Sod Source DataStore"></SystemType>

<ServiceComponent type="IdMvsSoDDataTransformationOper" name="NAME_FOR_IMPLEMENTATION"
<Impl-Class>NAME_OF_IPMLEMENTATION_CLASS</Impl-Class>
<IdMSystemType>OIM</IdMSystemType>
<SoDEngineType>SoD_ENGINE</SoDEngineType>
<srcSystemType>SYSTEM_TYPE_NAME</srcSystemType>

<DataTransformation>
<AttrSoD type="user" name="NAME_OF_ATTRIBUTE_ON_TARGET_SYSTEM"  sourceIdMAttrName="NAME_OF_ATTRIBUTE_ON_SOD_ENGINE" isSourceKey="true"/>
<AttrSoD type="user" name="firstname"  sourceIdMAttrName="firstname" isSourceKey="false"/>
<AttrSoD type="user" name="lastname"  sourceIdMAttrName="lastname" isSourceKey="false"/>
<AttrSoD type="duty" dutyType="ENTITLEMENT_TYPE"  name="accessorigid"  sourceIdMAttrName="ENTITLEMENT_NAME" isSourceKey="true"/>
</DataTransformation>

<DataTransformation>
. . .
</DataTransformation>

<DataTransformation>
. . .
</DataTransformation>
</ServiceComponent>

registration.xmlファイルでSystemType要素とServiceComponent要素を追加する際、次のガイドラインに従います。

- プレースホルダを次の値に置き換えます。

- SYSTEM_TYPE_NAME: システム・タイプの名前を指定します。

- <SystemType>タグのタイプには、カスタム・ターゲット・システムの場合はSoD Source DataStore値を、カスタムSoDエンジンの値としてはSoD Engineを指定できます。

- NAME_FOR_IMPLEMENTATION: サービス・コンポーネントの名前を指定します。たとえば、DBToOAACGのように指定します。

- NAME_OF_IPMLEMENTATION_CLASS: 「変換レイヤーの作成」の手順に従って作成したクラスに設定した名前を指定します。たとえば、oracle.iam.grc.sod.scomp.impl.oaacg.transformation.IdMvsSoDDataTransformationOperDBvsOAACGのように指定します。

- SoD_ENGINE: SoDエンジンとしてOracle Application Access Controls Governorを使用する場合は、OAACGを入力します。SoDエンジンとしてSAP GRCを使用する場合は、GRCを入力します。カスタムSILプロバイダを使用する場合は、そのSoDエンジンに設定した名前を入力します。

関連項目:

「カスタムSoDエンジンの追加」

- SYSTEM_TYPE_NAME: 先に入力したシステム・タイプ名を指定します。

- NAME_OF_ATTRIBUTE_ON_TARGET_SYSTEM: ターゲット・システムの属性の名前を指定します。

- NAME_OF_ATTRIBUTE_ON_SOD_ENGINE: SoDエンジンの対応する属性の名前を指定します。

- ENTITLEMENT_TYPE: 権限のタイプを入力します。たとえば、ROLEのように指定します。

- ENTITLEMENT_NAME: 権限の1つのインスタンスの名前を入力します。たとえば、Resource Managerのように指定します。

- 作成する属性マッピングごとに1つのDataTransformation要素を追加します。

4. Registration.xmlファイルを保存して閉じます。

5. Registration.xmlファイルをエクスポートしてMDSに戻します。

27.10.1.5 新規ターゲット・システムの登録

新規ターゲット・システムを登録するには、次の各項に記載されている手順を実行します。

- 登録スクリプトの実行と登録情報の指定

- システム・タイプ名の記録

27.10.1.5.1 登録スクリプトの実行と登録情報の指定

登録スクリプト(registration.shおよびregistration.bat)により、登録プロセスが進められます。このスクリプトを実行すると、必要な情報を入力するよう要求されます。スクリプトにより最初に表示される一連のプロンプトは、registration.xmlファイルから読み取られます。登録スクリプトはOIM_HOME/binディレクトリにあります。registration.xmlファイルはMDSにあります。

注意:

Oracle Identity Managerインストールのライフサイクル中はいつでも、登録スクリプトを複数回実行できます。たとえば、新規のSoDエンジンを登録するとします。スクリプトの実行時に、プロンプトを使用して、入力を行うセクションに移動します(一連のプロンプト)。残りのセクションはスキップできます。

登録スクリプトの実行例は、例27-1を参照してください。この例では、SoDエンジンの情報を指定するためにITリソースが作成されているものと仮定します。

スクリプトを実行し、Oracle Identity Managerインストール、SoDエンジンおよびターゲット・システムの登録情報を指定するには、次の手順を実行します。

1. MDSからSILConfig.xmlファイルをエクスポートします。SILConfig.xmlファイルは、ネームスペース/metadata/iam-features-sil/db/SILConfig.xmlで、MDS内に存在します。

2. テキスト・エディタでSILConfig.xmlファイルを開き、DOMBuilderFactoryImpl要素の値を指定します。
DOMBuilderFactoryImpl要素の値は、使用するJREによって異なります。

- Sun JREまたはOracle JRockit JREを使用する場合は、次の値を含むDOMBuilderFactoryImpl要素のコメントアウトを解除します。

com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

- IBM JREを使用する場合は、次の値を含むDOMBuilderFactoryImpl要素のコメントアウトを解除します。

org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

3. コマンド・ウィンドウで、OIM_HOME/binディレクトリに移動し、登録スクリプトを実行します。
Oracle Identity Managerのログイン情報を入力します。ユーザー名、パスワードおよびURLの値を入力するよう要求されます。サンプルの実行セグメントを次に示します。

[Enter the admin username:]OIM_ADMINISTRATOR_LOGIN
[Enter the admin password:]OIM_ADMINISTRATOR_PASSWORD
[Enter the service url:]t3://OIM_HOST_NAME:OIM_PORT_NO

次の項目に対して有効な値を指定します。

- OIM_ADMINISTRATOR_LOGIN

- OIM_ADMINISTRATOR_PASSWORD

- OIM_HOST_NAME

- OIM_PORT_NO

T3 URLの例は次のとおりです。

t3://localhost:14000

登録を続行するかどうかの指定を要求されます。

Do you want to proceed with registration? (y/n)

注意:

ここから先は、スクリプトで表示される各プロンプトの説明の後に、プロンプトの実際のメッセージが続きます。このドキュメントでは、実際のメッセージは固定幅フォントで示されます。

4. 登録を続行するには、yを入力します。Oracle Identity Managerインストールを登録するかどうかの指定を要求されます。

Register System Instance for type OIM?(y/n)

5. nを入力します。

注意:

ここから先は、Oracle E-Business SuiteおよびOracle Application Access Controls Governorインストールの登録固有の流れになります。流れは、SAP CUAまたはSAP R/3およびSAP GRCインストールの場合とほぼ同じです。

6. Oracle E-Business Suiteインストールを登録するかどうかの指定を要求されます。

Register System Instance for type EBS? (y/n)

7. デフォルトで登録されている既存のOracle E-Business Suiteを使用する場合は、nを入力します。Oracle Identity Managerの別のITリソースを含む新規EBSインスタンスを登録するには、yを入力します。

8. yを入力すると、Oracle E-Business Suiteインストールのインスタンス名の入力を要求されます。

Provide instance name

Oracle E-Business Suiteインストールの名前を入力します。例:

ebs2

9. Oracle Application Access Controls Governorインストールを登録するかどうかの指定を要求されます。

Register System Instance for type OAACG? (y/n)

デフォルトで登録されている既存のOAACGを使用する場合は、nを入力します。Oracle Identity Managerの別のITリソースを含む新規OAACGインスタンスを登録するには、yを入力します。

10. yを入力すると、Oracle Application Access Controls Governorインストールのインスタンス名の入力を要求されます。

Provide instance name

Oracle Application Access Controls Governorインストールの名前を入力します。例:

oaacg01

11. 作成したITリソース名の入力を要求されます。

OIM ITResource Instance Name:

作成したITリソース名OAACG ITR2を入力します。

12. 登録するSoDコンポーネント(システム・インスタンス)が他にない場合は、残りのプロンプトでnを入力します。そうでない場合は、SAPおよびGRCインスタンスに対して同様の手順に従います。この後で、Registration.xmlに追加したカスタム・システム・タイプ(たとえば、NEW)の入力を要求されます。

Register System Instance for type NEW? (y/n)

13. yを入力します。カスタム・タイプのインスタンス名の入力を次のように要求されます。

Provide instance name

14. インストールの名前を、new1のように入力します。追加したシステム・タイプがSoDエンジンである場合は、作成したITリソースの名前の入力を要求されます。

OIM ITResource Instance Name:

15. 作成したITリソース名ITR_NEWを入力します。

16. テキスト・エディタでSILConfig.xmlファイルを開き、Topologies要素の値を指定します。トポロジの値の詳細は、「システム・タイプ名の記録」を参照してください。
次のXMLブロックは、Topologies要素とその子要素を示しています。

注意:

ターゲット・システムとSoDエンジンの組合せが複数ある場合、Topologies要素内に複数のTopology要素を追加できます。

<Topologies>
<Topology>
<name>@topologyName</name>
<IdmId>@Idm RegistrationId</IdmId>
<SodId>@Sod RegistrationId</SodId>
<SDSId>@Sds RegistrationId</SDSId>
</Topology>
</Topologies>

Topologies要素の次の子要素の値を入力します。

- @topologyName: トポロジ名を入力します。

注意:

TopologyName ITリソース・パラメータの値として、Topology要素と同じ名前を設定します。

- @Idm RegistrationId: Oracle Identity Managerインストールの登録IDを入力します。

- @Sod RegistrationId: SoDエンジンの登録IDを入力します。

- @Sds RegistrationId: ターゲット・システムの登録IDを入力します。

関連項目:

Topologies要素の子要素の詳細は、「システム・タイプ名の記録」の手順2を参照してください。

17. SILConfig.xmlをエクスポートしてMDSに戻します。

例27-1に、登録スクリプトの実行例の出力を示します。ここでは、SoDエンジンの情報を指定するためにITリソースが作成されているものと仮定します。

例27-1 登録スクリプトの実行例

sh registration.sh
Enter data related to login to OIM Server
[Enter the admin username:]OIM_ADMINISTRATOR_LOGIN
[Enter the admin password:]OIM_ADMINISTRATOR_PASSWORD
[Enter the service url:]t3://localhost:14000
Do you want to proceed with registration? (y/n)
y
Register System Instance for type OIM ?(y/n)
n
Register System Instance for type EBS ?(y/n)
n
Register System Instance for type OAACG ?(y/n)
n
Register System Instance for type SAP ?(y/n)
n
Register System Instance for type GRC ?(y/n)
n
Register System Instance for type NEW ?(y/n)
y
Provide instance name
new1
OIM ITResource Instance Name:
ITR_NEW

27.10.1.5.2 システム・タイプ名の記録

登録プロセスの最後に、システム・タイプ名がOracle Identity Managerデータベースで設定されます。これらの名前は、登録スクリプトを使用してデータベースから取得できます。取得したら、これらの名前をSILConfig.xmlファイルに入力する必要があります。

サービス・コンポーネント名を取得して記録するには、次の手順を実行します。

1. コマンド・ウィンドウで、次のディレクトリに移動します。
OIM_HOME/bin/

2. 次のコマンドのいずれかを実行します。
Microsoft Windowsの場合:

registration.bat printRegistrationIDs

UNIXの場合:

registration.sh printRegistrationIDs

このコマンドの出力例は、次のとおりです。

-----------------------------------------------
System Type     Instance Name  Registration ID
-----------------------------------------------
OIM                 oim                     1
EBS                 Ebs                     2
OAACG               oaacg                   3

3. これらのインスタンス名を参照のためにコピーします。

27.10.2 カスタムSoDエンジンの追加

注意:

この項で説明する手順は、Oracle Application Access Controls GovernorおよびSAP GRC以外のSoDエンジンを使用する場合にのみ実行します。Oracle E-Business Suite、SAP CUAおよびSAP R3以外のターゲット・システムを使用する場合は、「カスタム・ターゲット・システムの使用」の手順も実行する必要があります。

SILプロバイダの作成を開始する前に、SoDエンジンをインストールする必要があります。

この手順は、Oracle Identity ManagerでのSoDの最初の実装前、または実装後のいつでも実行できます。

次に、SILプロバイダを作成する手順のサマリーを示します。

1. 「前提条件への対応」の項に示されている手順に従います。

2. SoDエンジンの情報を保持するためのITリソースを作成します。「SoDエンジンの情報を保持するためのITリソースの作成」を参照してください。

3. SILプロバイダ用インタフェースのJavaクラス実装を作成します。手順は、「プロバイダ用サービス・コンポーネントの実装」を参照してください。

4. サービス・コンポーネントをデプロイします。「サービス・コンポーネントのデプロイ」を参照してください。

5. 登録XMLファイルに、新規SoDエンジンのエントリを追加します。手順は、「新規SoDエンジン用登録XMLファイルの変更」を参照してください。

6. 新規SoDエンジンを登録します。手順は、「新規SILプロバイダの登録」を参照してください。

27.10.2.1 前提条件への対応

次の前提条件を満たしていることを確認します。

1. ターゲット・システムからSoDエンジンに権限データをロードします。この手順を実行するために、任意のETLユーティリティを使用できます。詳細は、SoDエンジンのベンダーのドキュメントを参照してください。

2. SoDエンジンで、ターゲット・システムからロードしたデータを使用して、ポリシー定義またはリスク定義を作成します。

3. ターゲット・システム用のOracle Identity Managerコネクタをデプロイします。詳細は、コネクタのドキュメントを参照してください。

27.10.2.2 SoDエンジンの情報を保持するためのITリソースの作成

SoDエンジンの情報を保持するには、ITリソースを作成する必要があります。

ITリソース・タイプ(まだ存在しない場合)およびITリソースの作成の詳細は、第11章「リソース・オブジェクトの開発」を参照してください。ITリソース・タイプおよびITリソースには任意の名前を指定できます。次の表は、ITリソースに含める必要のあるパラメータの名前を示しています。

パラメータ

説明

サンプル値

Source Datastore Name

SoDエンジンで定義したソース・データ・ストア(ターゲット・システム)の名前を入力します。

ソース・データ・ストア名は、「Oracle Application Access Controls Governorの構成」の項で説明されている手順の実行中に指定します。

EBS STMD122

dbuser

SoDエンジンで使用されるデータベース上のスキーマ所有者のユーザー名を入力します。

このアカウントは、SoD処理中にApplication Access Controls Governorデータベースへのアクセスに使用されます。

注意: このパラメータは、Oracle Application Access Controls Governor固有のものです。

databaseusr1

dbpassword

SoDエンジンで使用されるデータベース上のスキーマ所有者のパスワードを入力します。

注意: このパラメータは、Oracle Application Access Controls Governor固有のものです。

Cryp100ne

jdbcURL

SoDエンジンで使用されるデータベースに接続するためのJDBC URLを入力します。

注意: このパラメータは、Oracle Application Access Controls Governor固有のものです。

jdbc:oracle:thin:@10.123.123.123

password

APIコール用にSoDエンジンで作成されたアカウントのパスワードを入力します。

K1rb1r0s

port

SoDエンジンがリスニングを行うポートの番号を入力します。

8090

server

SoDエンジンが稼働しているホスト・コンピュータのIPアドレスを入力します。

10.231.231.231

sslEnable

SoDエンジンでHTTPS通信リクエストのみを受け入れる場合、trueを入力します。それ以外の場合はfalseを入力します。

false

username

SoDエンジンで作成されたアカウントのユーザー名を入力します。このアカウントは、SoD検証中に使用されるSoDエンジンAPIのコールのために使用されます。

jdoe

sodServerURL

SoDサーバーのURLを次の形式で入力します。

http(s)://HOST_NAME:PORT_NUMBER/URL

http://10.231.231.231:8090/grcc/services/GrccService

注意:

複数のSoDエンジンを使用する場合は、同じITリソース・タイプで複数のITリソースを作成してください。

27.10.2.3 プロバイダ用サービス・コンポーネントの実装

次のサービス・コンポーネントのJava実装を作成します。

関連項目:

Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンス

- SoDAnalysisExecutionOper: SoD分析レイヤーを、デフォルトで提供されていないカスタムSoDエンジン用に実装する必要があります。

- IdMvsSoDDataTransformationOper: ターゲット・システムの属性値を、SoDエンジンで使用可能な値に変換するために使用されます。変換レイヤーは、すべての新規SoDエンジンまたはターゲット・システム・タイプに対して作成する必要があります。

- CallBackIdMOper(オプション): Oracle Identity Managerにアクセスするために、SoD分析レイヤーからのコールバックが必要な場合に実装されます。

- SoDDataValidationOper(オプション): SoD分析レイヤーで指定された属性に対して検証を提供するために実装されます。

27.10.2.4 サービス・コンポーネントのデプロイ

「プロバイダ用サービス・コンポーネントの実装」で作成されたサービス・コンポーネントは、次のようにデプロイされます。

1. サービス・コンポーネントの実装用に作成したJavaクラスのJARファイルを作成します。

2. UploadJarユーティリティを使用して、JARファイルをThirdPartyとしてアップロードします。

注意:

UploadJar.shまたはUploadJar.batユーティリティは、OIM_HOME/binにあります。この場所からユーティリティを実行して、作成したJARファイルをMDSにアップロードします。

27.10.2.5 新規SoDエンジン用登録XMLファイルの変更

Registration.xmlファイルで、次のようにして変換レイヤーの詳細を入力します。

1. MDSからRegistration.xmlファイルをインポートします。Registration.xmlファイルは、ネームスペース\metadata\iam-features-sil\db\Registration.xmlでMDS内に存在します。

2. テキスト・エディタでRegistration.xmlファイルを開きます。

3. SoDエンジン用のSystemType要素を次のように追加します。

<SystemType name="SYSTEM_TYPE_NAME" type="SYSTEM_TYPE" isSynch="IS_SYNCH">
<!-- The Parameters which are required to connect the Sod Engine. -->
<Parameter name="PARAM_NAME1" required="true" />
<Parameter name="PARAM_NAME2" required="true" />
...
</SystemType>

ここで、次のように値を置き換えます。

- SYSTEM_TYPE_NAMEをシステム・タイプ名で置き換えます。

- SYSTEM_TYPEをSoDエンジンで置き換えます。

- IS_SYNCHを、SoDエンジンが同期か非同期かに応じて、trueまたはfalseで置き換えます。

- PARAM_NAMEを、SoDエンジンに接続するために使用するパラメータ名で置き換えます。これらのパラメータ値は、SoDエンジンの登録中に指定する必要があります。これらは、SoDエンジンに接続するために、サービス・コンポーネント実装クラスで読み取られます。

4. 実装されたすべてのサービス・コンポーネントを次のように追加します。

<ServiceComponent type="SERVICECOMPONENT_TYPE" name="NAME_FOR_IMPLEMENTATION"
<Impl-Class>NAME_OF_IPMLEMENTATION_CLASS</Impl-Class>
<IdMSystemType>SYSTEM_TYPE_NAME_FOR_IDM</IdMSystemType>
<SoDEngineType>SYSTEM_TYPE_NAME_FOR_SOD_ENGINE</SoDEngineType>
<srcSystemType>SYSTEM_TYPE_NAME_FOR_TARGET_SYSTEM</srcSystemType>

<!-- AttrSoD tag is only required for Sod Analysis Service Component-->
<AttrSoD type="user" isKey="true" name="NAME_OF_ATTRIBUTE_ON_SOD_ENGINE">
<!-- "name" attribute of the "Validation" element should be same as the "name" of one of the registered "ServiceComponent" of type "SoDDataValidationOper" -->
<Validation name="NAME_FOR_VALIDATION_ON_ATTRIBUTE"/>
</AttrSoD>

<AttrSoD type="duty" isKey="true" dutyType="ENTITLEMENT_TYPE" name="NAME_OF_ENTITLEMENT_ON_SOD_ENGINE"><Validation name="isNotNullOAACG"/>
</AttrSoD>

<AttrSoD...>
...
</AttrSoD>

<!-- DataTransformation tag is only required for transformation Service component-->
<DataTransformation>
<AttrSoD type="user" name="NAME_OF_ATTRIBUTE_ON_TARGET_SYSTEM"  sourceIdMAttrName="NAME_OF_ATTRIBUTE_ON_SOD_ENGINE" isSourceKey="true"/>
<AttrSoD type="user" name="firstname"  sourceIdMAttrName="firstname" isSourceKey="false"/>
<AttrSoD type="user" name="lastname"  sourceIdMAttrName="lastname" isSourceKey="false"/>
<AttrSoD type="duty" dutyType="ENTITLEMENT_TYPE"  name="accessorigid"  sourceIdMAttrName="ENTITLEMENT_NAME" isSourceKey="true"/>
</DataTransformation>

</ServiceComponent>

ここで、次のように値を置き換えます。

- SERVICECOMPONENT_TYPE: サービス・コンポーネントのタイプに応じて、CallBackIdMOper、SoDAnalysisExecutionOper、SoDDataValidationOperまたはIdMvsSoDDataTransformationOperなどの値を指定できます。

- NAME_FOR_IMPLEMENTATION: サービス・コンポーネントの名前をDBToOAACGのように指定します。

- NAME_OF_IPMLEMENTATION_CLASS: 「変換レイヤーの作成」の手順に従って作成したクラスに設定した名前を指定します。たとえば、oracle.iam.grc.sod.scomp.impl.oaacg.transformation.IdMvsSoDDataTransformationOperDBvsOAACGのように指定します。

- SOD_ENGINE: SoDエンジンとしてOracle Application Access Controls Governorを使用する場合は、OAACGを入力します。SoDエンジンとしてSAP GRCを使用する場合は、GRCを入力します。カスタムSILプロバイダを使用する場合は、そのSoDエンジンに設定した名前を入力します。

関連項目:

「カスタムSoDエンジンの追加」

- SYSTEM_TYPE_NAME: 先に入力したシステム・タイプ名を指定します。

- NAME_OF_ATTRIBUTE_ON_TARGET_SYSTEM: ターゲット・システムの属性の名前を指定します。

- NAME_OF_ATTRIBUTE_ON_SOD_ENGINE: SoDエンジンの対応する属性の名前を指定します。

- ENTITLEMENT_TYPE: 権限のタイプを、ROLEのように入力します。

- ENTITLEMENT_NAME: 権限の1つのインスタンスの名前を、Resource Managerのように入力します。

5. Registration.xmlファイルを保存して閉じます。

6. Registration.xmlファイルをエクスポートしてMDSに戻します。

27.10.2.6 新規SILプロバイダの登録

新規SILプロバイダを登録するには、次の各項で説明されている手順を実行します。

1. 登録スクリプトの再実行の詳細は、「登録スクリプトの実行と登録情報の指定」を参照してください。スクリプトのここでの実行では、登録済のサービス・コンポーネントの値を入力しないでください。

2. SILConfig.xmlファイルでの新規ターゲット・システムに関するデータの入力の詳細は、「システム・タイプ名の記録」を参照してください。

27.11 Oracle Identity AnalyticsによるロールSoDチェックの実行

ロールSoDチェックは、ユーザーにロールを割り当てるリクエストまたはユーザーからロールを削除するリクエストが要求された場合に実行されます。Oracle Identity AnalyticsによるロールSoDチェックは、リクエストが要求された場合にのみ実行され、ロールが直接割り当てられた場合または削除された場合は実行されません。

- ロールSoDチェックの有効化

- ロールSoDチェックの使用

注意:

Oracle Identity AnalyticsによるSoDチェックを実行するには、Oracle Identity ManagerとOracle Identity Analyticsが統合されていることが前提条件です。

27.11.1 ロールSoDチェックの有効化

Oracle Identity AnalyticsによるロールSoDチェックを有効化するには、次の手順を実行する必要があります。

1. XL.SoDCheckSystemPropertyシステム・プロパティの値をTRUEに設定します。システム・プロパティの詳細は、『Oracle Fusion Middleware Oracle Identity Manager管理者ガイド』のシステム・プロパティの管理に関する説明を参照してください。

2. RoleSoDCheckTopologyNameシステム・プロパティの値をsodoiaに設定します。このトポロジは事前定義され、登録されています。

3. OIA-ITRes ITリソースでOIA接続の詳細を、次の図に示すように設定します。
画像oia_it_res.gifの説明

27.11.2 ロールSoDチェックの使用

次の各項では、ロールSoD機能を実装する方法について説明します。

- ユーザーがロールを要求する場合のSoDチェック

- ユーザーがロールを削除する場合のSoDチェック

- 管理者がロールの割当てを要求する場合のSoDチェック

- 管理者がロールの削除を要求する場合のSoDチェック

- コールバック・ポリシーを持つロールの割当て/削除リクエストに対するSoDチェック

27.11.2.1 ユーザーがロールを要求する場合のSoDチェック

次の手順は、ユーザーがロールに対するリクエストを要求した場合に実行されます。SoDチェックは、有効化されている場合に実行されます。この手順の例では、ユーザーにrole1がすでに割り当てられていることを前提としています。

次のステップを実行します。

1. 管理およびユーザー・コンソールにユーザーとしてログインします。

2. 「セルフ・サービス」で、「リクエストの作成」タブをクリックし、「自分のためのリクエスト」オプションを選択して、「次」をクリックします。

3. 「リクエスト・テンプレート」リストから、「ロールの自己割当て」を選択して、「次」をクリックします。

4. ユーザーにすでに割り当てられているロールと競合するロールを選択し、「次」をクリックします。

5. 理由を追加し、「終了」をクリックしてリクエストを発行します。

6. 管理およびユーザー・コンソールからログアウトします。

7. 管理およびユーザー・コンソールに管理者としてログインし、次のことを確認します。

- 次の図に示すように、リクエストの詳細を表示します。
画像role-usecase1-6.gifの説明

- 次の図に示すように、リクエストの詳細でSoDチェックの結果を表示します。
画像role-usecase1-7.gifの説明

27.11.2.2 ユーザーがロールを削除する場合のSoDチェック

この手順では、削除されるロールがユーザーにすでに割り当てられていることを前提としています。

次のステップを実行します。

1. 管理およびユーザー・コンソールにユーザーとしてログインします。

2. 「セルフ・サービス」で、「リクエストの作成」タブをクリックし、「自分のためのリクエスト」オプションを選択して、「次」をクリックします。

3. 「リクエスト・テンプレート」リストから、「ロールの自己削除」を選択して、「次」をクリックします。

4. 削除するロールを選択し、「次」をクリックします。

5. 「終了」をクリックしてリクエストを発行します。

6. 管理およびユーザー・コンソールからログアウトします。

7. 管理およびユーザー・コンソールに管理者としてログインし、次のことを確認します。

- 次の図に示すように、リクエストの詳細を表示します。
画像role-usecase2-4.gifの説明

- リクエストの詳細でSoDチェックの結果を表示します。競合するロールの1つが削除されたため、SoDチェックは成功します。次の図は、SoDチェックの結果を示しています。
画像role-usecase2-5.gifの説明

27.11.2.3 管理者がロールの割当てを要求する場合のSoDチェック

この手順により、システム管理者はユーザーにロールを割り当てることができます。

1. 管理およびユーザー・コンソールにシステム管理者としてログインします。

2. 拡張管理で、「リクエストの作成」タブをクリックし、「リクエスト・テンプレート」リストから「ロールの割当て」を選択して、「次」をクリックします。

3. リクエストを要求する対象のユーザーを選択して、「次」をクリックします。

4. ユーザーに割り当てるロールを選択して、「次」をクリックします。

5. 「終了」をクリックしてリクエストを発行します。

6. 次の手順は、リクエストに関連するロールの数によって異なります。

- 3つ以上のロールに対するリクエストが要求された場合、バルク・リクエストが作成されます。この場合、SoDチェックは個別の子リクエストに対して実行されます。まず、「セルフ・サービス」にログインし、承認するリクエストを選択して、「タスクの承認」をクリックすることにより、リクエスト・レベル承認を実行する必要があります。

- 2つのロールに対するリクエストが要求された場合、2つの子リクエストが作成され、そのそれぞれに対してSoDチェックが実行されます。次の図は、2つの子リクエストを示しています。
画像role-usecase3-6.gifの説明

- 最初の子リクエストをクリックして、SoDチェックの結果を表示します。

- 結果には、次のように、2つの競合するロールに対するリクエストが要求されたために、SoDチェックが失敗したことが示されています。
画像role-usecase3-8.gifの説明

- 2番目のリクエストをクリックすると、次のようにその詳細が表示されます。
画像role-usecase3-9.gifの説明

27.11.2.4 管理者がロールの削除を要求する場合のSoDチェック

この手順により、システム管理者はユーザーからロールを削除できます。

1. 管理およびユーザー・コンソールにシステム管理者としてログインします。

2. 拡張管理で、「リクエストの作成」タブをクリックし、「リクエスト・テンプレート」リストから「ロールからの削除」を選択して、「次」をクリックします。

3. リクエストを要求する対象のユーザーを選択して、「次」をクリックします。

4. 削除するロールを選択し、「次」をクリックします。

5. 「終了」をクリックしてリクエストを発行します。

6. 次に示すように、リクエストの詳細を表示します。
画像role-usecase4-5.gifの説明

7. リクエストの詳細でSoDチェックの結果を表示します。競合するロールの1つが削除されたため、次に示すように、SoDチェックに成功しました。
画像role-usecase4-6.gifの説明

27.11.2.5 コールバック・ポリシーを持つロールの割当て/削除リクエストに対するSoDチェック

このタイプのリクエストは自動的に承認されます。前述のユースケースに示すように、リクエストを要求できます。選択されるリクエスト・テンプレートは、「コールバック・ポリシーを持つロールの割当て」またはコールバック・ポリシーを持つロールの削除です。SoDチェックは、前述のユースケースに示すように実行されます。

27.12 プロビジョニング・ワークフローでのSoDの使用

この項では、SoDに関連する様々なユースケースについて説明します。

注意:

この項の手順は、OAACGなどの非同期SoDエンジン用であり、非同期SoDエンジンでSoDチェックを完了するには、スケジュール済ジョブを実行する必要があります。

- ダイレクト・プロビジョニング

- 権限の更新

- リクエスト・プロビジョニング

- プロビジョニング済リソースを変更するためのリクエストの作成

- DefaultSODApprovalワークフローによるリクエスト・プロビジョニング

- 承認者専用フィールドおよびDefaultSODApprovalワークフローによるリクエスト・プロビジョニング

- 自分のためのリクエスト

- アクセス・ポリシーに基づくプロビジョニング

- アクセス・ポリシーに基づくプロビジョニングを使用した権限の更新

27.12.1 ダイレクト・プロビジョニング

次の手順を実行して、ダイレクト・プロビジョニングでSoDチェックを有効化できます。

1. SoDチェック・システム・プロパティを有効化します。SoDチェック・システム・プロパティの詳細は、「SoDの有効化」を参照してください。

2. コネクタITリソースでトポロジ名パラメータを設定します。トポロジ名パラメータの設定の詳細は、「SoDの有効化」の手順2を参照してください。

3. 「SoD用のプロビジョニング・ワークフローの変更」の説明に従って、コネクタ・プロビジョニング・ワークフローを変更します。

SoD対応リソースを直接プロビジョニングするには、次の手順を実行します。

1. ターゲット・システムにアカウントを作成するユーザーを作成します。

2. Oracle Identity Administrationの「ユーザーの詳細」ページで、「リソース」タブに移動し、「追加」をクリックします。

3. 使用可能なオプションから、SoD対応リソースを選択します。

4. プロセス・フォームの詳細を入力します。親プロセス・フォームには、SoDCheckStatus、SoDCheckTrackingID、SoDCheckResult、SoDCheckTimestampおよびSoDCheckEntitlementViolationなどのSoDチェック・フィールドが含まれている必要があります。これらのフィールドには、SoDチェックの値が移入されます。

5. 子フォームに権限を入力したことを確認します。入力されていない場合、SoDは競合する権限をチェックするためにのみ必要なため、SoDチェックは実行されません。

6. プロビジョニングの開始後、ターゲット・システムにアカウントが作成されたことは確認できますが、権限はプロビジョニングされません。これは、SoDチェックが完了するまで、権限タスクは「待機中」ステータスに保持されるためです。
リソース・プロファイルで、HolderタスクおよびSoDCheckerタスクが「保留」ステータスになり、親プロセス・フォームのSoDCheckStatusフィールドに「SoDチェック結果が保留中です」と表示されます。SoDCheckTrackingIDフィールドには、SoDエンジンで開始されたシミュレーションのトラッキングIDが表示されます。

7. SoDチェック結果の取得(プロビジョニング)スケジュール・ジョブを実行して、SoDエンジンから結果を取得し、SoDチェックを完了します。

8. 親プロセス・フォームのSoDCheckResultが「成功」ステータスになっている場合、競合は存在せず、ターゲット・システムで権限がプロビジョニングされます。フォームのSoDCheckStatusフィールドに「SoDチェックが完了しました」と表示され、HolderタスクおよびSoDCheckerタスクが完了します。

9. 親プロセス・フォームのSoDCheckResultが「失敗」ステータスになっている場合、競合が存在し、ターゲット・システムで権限はプロビジョニングされません。フォームのSoDCheckEntitlementViolationフィールドに、SoDエンジン上で競合しているポリシーが表示され、Holderタスクは取り消されます。

27.12.2 権限の更新

リソース・プロファイルを開き、子フォームで権限を追加、更新または削除しようとしたときには必ずSoDチェックがトリガーされ、新規HolderタスクおよびSoDCheckerタスクが生成されます。SoDチェックを完了するには、SoDチェック結果の取得(プロビジョニング)スケジュール・ジョブを実行する必要があります。新しい権限が古い権限と競合する場合、新しい権限はプロビジョニングされません。そうでない場合は、新しい権限がターゲット・システムでプロビジョニングされます。

権限の追加、更新および削除は、行単位で行われます。そのため、変更ごとに個別のSoDチェックがトリガーされます。2つ変更を行うと、変更ごとに1つ、合わせて2つの新規SoDCheckerタスクが表示されます。

27.12.3 リクエスト・プロビジョニング

次の操作を行うことにより、リクエスト・プロビジョニングでデフォルトのSoDチェックを有効化できます。

- SoDチェック・システム・プロパティを有効化します。

- コネクタITリソースでトポロジ名パラメータを設定します。

- リクエスト・データセットにはITリソース・タイプの属性が必要で、その値はリクエスト作成中に指定する必要があります。有効な値が、そのトポロジ名パラメータに存在する必要があります。

SoD対応リソースをプロビジョニングするためのリクエストを作成するには、次の手順を実行します。

1. Oracle Identity Manager拡張管理で、「リクエスト」セクションに移動し、左ペインのツールバーで「リクエストの作成」をクリックします。「リソースのプロビジョニング」リクエスト・モデルを選択します。

2. リクエスト・データセットで定義された属性の値を指定します。SoDチェック・フィールドは共通データセットの一部であり、リクエストの作成中には表示されません。これらのフィールドは、リクエストが作成された後に、「リクエストの詳細」ページに表示できます。

3. リクエストの作成ウィザードで権限データを属性値として指定すると、このウィザードにより、リクエスト・データセットに基づいて属性名が表示されます。権限が指定されない場合、SoDチェックは開始されません。

4. SoDが正常に開始されると、リクエストは「SoDチェック結果が保留中です」ステータスになります。リクエスト・データセットでSoDチェック・フィールドの値を確認します。エラーが原因でSoDが正常に開始されない場合、リクエストは直接「リクエスト承認を取得しています」ステータスに移行します。データセット内のSoDCheckStatusフィールドには、「SoDチェックが開始されていません」と表示されます。

5. リクエストが「SoDチェック結果が保留中です」ステータスになっている場合は、SoDチェック結果の取得(承認)スケジュール・ジョブを実行してSoDチェックを完了し、リクエストを承認に送ります。競合がある場合は、SoDCheckResultフィールドに「失敗」ステータスが表示され、SoDCheckEntitlementViolationフィールドに違反している職務が表示されます。

6. Oracle Identity Managerセルフ・サービスから、リクエスト・レベル承認を承認または拒否します。リクエスト・レベル承認のデフォルト・ワークフローはDefaultRequestApprovalです。このワークフローに従って、承認タスクがシステム管理者ロールに割り当てられます。管理者がリクエストを承認すると、リクエストは操作レベル承認に送られます。デフォルトでは、このレベルの承認はシステム管理者ロールにも割り当てられます。
承認者は、リクエストの詳細フィールドに表示されているSoDチェックの結果に基づいて、リクエストを承認または拒否できます。

すべての承認が取得されると、リソースがターゲット・システムでプロビジョニングされます。

27.12.4 プロビジョニング済リソースを変更するためのリクエストの作成

ターゲット・システムでのアカウントの変更を要求するには、次の手順を実行します。

1. Oracle Identity Manager拡張管理で、「リクエスト」セクションに移動し、左ペインのツールバーで「リクエストの作成」をクリックします。「プロビジョニング済リソースの変更」リクエスト・モデルを選択します。

2. 変更するリソースおよび変更を必要とするユーザーを選択します。
リクエスト・データセットに事前定義されている属性の値が表示されます。SoDチェック・フィールドは共通データセットの一部であり、リクエストの作成中には表示されません。これらのフィールドは、リクエストが作成された後に、「リクエストの詳細」ページに表示できます。

3. リクエストの作成ウィザードで、権限データを属性値として追加、更新または削除すると、このウィザードにより、リクエスト・データセットに基づいて属性名が表示されます。

4. SoDが正常に開始されると、リクエストは「SoDチェック結果が保留中です」ステータスになります。リクエスト・データセットでSoDチェック・フィールドの値を確認します。エラーが原因でSoDが正常に開始されない場合、リクエストは直接「リクエスト承認を取得しています」ステータスに移行します。SoDCheckStatusフィールドには、「SoDチェックが開始されていません」と表示されます。

5. リクエストが「SoDチェック結果が保留中です」ステータスになっている場合は、SoDチェック結果の取得(承認)スケジュール・ジョブを実行してSoDチェックを完了し、リクエストを承認に送ります。競合がある場合は、SoDCheckResultフィールドに「失敗」ステータスが表示され、SoDCheckEntitlementViolationフィールドに違反している職務が表示されます。

6. セルフ・サービスから、リクエスト・レベル承認を承認または拒否します。リクエスト・レベル承認のデフォルト・ワークフローはDefaultRequestApprovalです。このワークフローに従って、承認タスクがシステム管理者ロールに割り当てられます。管理者がリクエストを承認すると、リクエストは操作レベル承認に送られます。デフォルトでは、このレベルの承認はシステム管理者にも割り当てられます。承認者は、リクエストの詳細フィールドに表示されているSoDチェックの結果に基づいて、承認または拒否できます。
すべての承認が取得されると、新しい権限がターゲット・システムでプロビジョニング、更新または削除されます。

27.12.5 DefaultSODApprovalワークフローによるリクエスト・プロビジョニング

承認ポリシーを使用してDefaultSODApprovalワークフローが指定されている場合は、リクエスト・プロビジョニングのための次の手順を実行します。

1. 操作レベルでDefaultSODApprovalワークフローを指定します。つまり、承認の操作レベルより前の手順は同じままです。

2. DefaultSODApprovalワークフローによって、リクエストが承認の操作レベルに送られると、承認タスクがシステム管理者ロールに割り当てられます。管理者がこのタスクを承認すると、SoDチェックWebサービスがロードされ、SoDチェックが開始されます。
これは、リクエスト・ステータス(「SoDチェック結果が保留中です」である必要があります)をチェックすることにより確認できます。SoDチェック結果の取得(承認)スケジュール済ジョブを実行してSoDチェックを完了します。

3. SOD管理者ロールに割り当てられる承認タスクが生成されます。このロールを持つすべてのユーザーが、タスクを要求して承認できます。

4. タスクを承認する前に、リクエストの詳細でSoDチェックの結果を確認してください。タスクが承認されている場合、アカウント、権限またはその両方のプロビジョニングが続けられます。

このユースケースでは、SoDチェックは2回実行されます。1回目はあらゆるレベルの承認の前に行われるデフォルトのSoDチェックであり、2回目のSoDチェックはDefaultSODApprovalワークフローにより開始されます。

27.12.6 承認者専用フィールドおよびDefaultSODApprovalワークフローによるリクエスト・プロビジョニング

リクエスト・データセットの「ITリソース」フィールドが承認者専用に設定されている場合、その値はリクエストの作成時には設定されず、承認者のみが設定できます。SoDチェックでは、コネクタITリソースからSILトポロジ情報を取得します。そのため、リソースが選択されていない場合、SoDチェックはトリガーされません。この場合、どのレベルの承認の前にもSoDチェックは実行されず、承認者によるITリソース情報の提供後に、DefaultSODApprovalワークフローを使用してのみSoDチェックが実行されます。

承認者専用フィールドとDefaultSODApprovalワークフローによりリクエスト・プロビジョニングを行うには、次の手順を実行します。

1. 発行されたリクエストは、リクエスト・レベル承認に直接送られます。この前にSoDチェックは行われません。承認者は、ITリソース情報を提供した後でリクエストを承認します。

2. DefaultSODApprovalワークフローによって、リクエストが承認の操作レベルに送られると、承認タスクがシステム管理者ロールに割り当てられます。管理者がこのタスクを承認すると、SoDチェックWebサービスが起動され、SoDチェックが開始されます。これは、リクエスト・ステータス(「SoDチェック結果が保留中です」である必要があります)をチェックすることにより確認できます。SoDチェック結果の取得(承認)スケジュール・ジョブを実行して、SoDチェックを完了する必要があります。

3. SoD管理者ロールに割り当てられる承認タスクが生成されます。このロールを持つすべてのユーザーが、タスクを要求して承認できます。

4. タスクを承認する前に、リクエストの詳細でSoDの結果を確認してください。タスクが承認されている場合、アカウント、権限またはその両方のプロビジョニングが続けられます。

27.12.7 自分のためのリクエスト

ユーザーは、セルフ・サービスからリソースを要求するか、またはリソースを変更するためのリクエストを要求できます。SoDチェックの手順は、その他のリソース・プロビジョニングのユースケースと同様です。

27.12.8 アクセス・ポリシーに基づくプロビジョニング

アクセス・ポリシーに基づくプロビジョニングを行うには、次の手順を実行します。

1. 新規ロールを作成します。

2. SoD対応リソースを新規ロールにプロビジョニングするためのアクセス・ポリシーを作成します。子フォームに権限を入力したことを確認します。

3. 新しく作成したユーザーにこのロールを割り当てます。これにより、ターゲット・システムでアカウントがプロビジョニングされますが、権限のプロビジョニングはSoDチェックが実行されるまで行われません。

4. プロセス・フォームをチェックして、SoDCheckStatusフィールド値を確認します。SoDチェックが正常に開始されている場合、SoDCheckStatusフィールドの値は「SoDチェック結果が保留中です」になり、HolderタスクおよびSoDCheckerタスクが生成され、これらは「保留」ステータスになっています。

5. SoDチェック結果の取得(プロビジョニング)スケジュール済ジョブを実行して、SoDチェックを完了します。

6. SoDチェックに成功すると、HolderタスクおよびSoDCheckerタスクが完了し、権限がプロビジョニングされます。そうでない場合は、Holderタスクが取り消され、権限はプロビジョニングされません。

27.12.9 アクセス・ポリシーに基づくプロビジョニングを使用した権限の更新

アクセス・ポリシーに基づくプロビジョニングを使用して権限を更新するには、次の手順を実行します。

1. 新規ロールを作成します。

2. SoD対応リソースを新規ロールにプロビジョニングするためのアクセス・ポリシーを作成します。子フォームに権限を入力したことを確認します。

3. SoD対応リソースのプロビジョニングをすでに行っているユーザーにこのロールを割り当てます。アクセス・ポリシーでは、このアカウントの権限の更新のみを行います。

4. 子プロセス・フォームの新規権限行をチェックします。親プロセス・フォームをチェックして、SoDCheckStatusフィールド値を確認します。SoDチェックが正常に開始されている場合、SoDCheckStatusフィールドの値は「SoDチェック結果が保留中です」になり、HolderタスクおよびSoDCheckerタスクが生成され、これらは「保留」ステータスになっています。

5. SoDチェック結果の取得(プロビジョニング)スケジュール済ジョブを実行して、SoDチェックを完了します。

6. SoDチェックに成功すると、HolderタスクおよびSoDCheckerタスクが完了し、権限がプロビジョニングされます。そうでない場合は、Holderタスクが取り消され、権限はプロビジョニングされません。

27.13 SoD関連イベントのロギングの有効化

すべてのSoD関連イベントのロギングを有効にするには、次の手順を実行します。

1. テキスト・エディタで、DOMAIN_HOME/config/fmwconfig/servers/oim_server1/logging.xmlファイルを開きます。

2. <loggers>要素を見つけます。次にサンプルの<loggers>要素を示します。

<loggers>
<logger name="" level="WARNING:1">
<handler name="odl-handler"/>
<handler name="wls-domain"/>
<handler name="console-handler"/>
</logger>

ロギング・レベルを、INCIDENT_ERROR:1、ERROR:1、NOTIFICATION:1、NOTIFICATION:16、TRACE:1、TRACE:16またはTRACE:32に変更できます。デフォルト・ロギング・レベルでは、エラーおよび警告メッセージが出力されます。

27.14 SoDチェックのトラブルシューティング

表27-2に、SoDチェックの実行中にエラーが発生した場合に実行できるトラブルシューティング手順を示します。

表27-2 SoDチェックのトラブルシューティング

問題

解決策

プロセス・フォームのSoDCheckStatusフィールドに値が表示されないか、デフォルト値が表示されます。EBSコネクタのフィールドでは、「SoDチェックが開始されていません」がデフォルト値です。また、SoDCheckResultフィールドに値が移入されません。

これは、SoD構成が正しくないことを意味します。XL.SoDCheckRequiredシステム・プロパティがtrueに設定されているかどうかを確認してください。設定されている場合は、コネクタITリソース・フィールドでtopologyNameの値を確認します。

デフォルトの登録が使用されている場合、topologyNameパラメータの値はsodoaacg(OAACG SoDエンジンの場合)およびsodgrc(SAP GRCの場合)です。登録が手動で行われている場合は、対応するトポロジがSILConfig.xmlファイルで定義されており、このファイルが変更後にMDSにシードされているかどうかを確認してください。

プロセス・フォームまたはリクエスト・データセットのSoDCheckStatusフィールドに「SoDチェックがエラーで完了しました」と表示されます。

SoDCheckResultフィールドには「SoDエンジンのエラー」と表示されます。

SoD構成は正しいがSoDエンジンの接続情報が正しくない可能性があるか、SoDエンジンでエラーが発生しました。SoDエンジンのエラーは、次のような理由により発生することがあります。

- SoDエンジンまたは対応するデータベースがダウンしています。

- SoDエンジンが、ターゲット・システムと完全に同期していません。そのため、SoDチェックが行われる特定の権限がSoDエンジンに存在しない可能性があります。

SoDエンジン・ログで、その他のエラーがないかを確認します。SoDエンジンによりトラッキングIDが返されない場合、シミュレーションは正常に開始されていません。

プロセス・フォームのSoDCheckStatusフィールドがSoDの結果が保留中ですステータスになっており、スケジュール済ジョブを実行しても「SoDチェックが完了しました」ステータスになりません。

承認用のスケジュール済ジョブではなく、SoDチェック結果の取得(プロビジョニング)スケジュール済ジョブを実行していることを確認します。スケジュール済ジョブがトリガーされていることを確認します。デバッグ・レベルのロギングを有効化して、これを確認できます。

スケジュール済ジョブが実行されてもSoDチェックが完了しない場合は、SoDエンジンでエラーが発生しています。SoDエンジン・ログで詳細を確認してください。

SoD対応リソースを要求する際、リクエストを作成してもデータセットにSoDフィールドが表示されず、リクエストはリクエスト・レベル承認に直接送られます。

このエラーは、SoD構成が正しくないことを意味します。XL.SoDCheckRequiredシステム・プロパティがtrueに設定されているかどうかを確認してください。設定されている場合は、コネクタITリソース・フィールドでtopologyNameの値を確認します。

デフォルトの登録が使用されている場合、topologyNameパラメータの値はsodoaacg(OAACG SoDエンジンの場合)およびsodgrc(SAP GRCの場合)です。

登録が手動で行われている場合は、対応するトポロジがSILConfig.xmlファイルで定義されており、このファイルが変更後にMDSにシードされているかどうかを確認してください。

リクエスト・データセットのSoDCheckStatusフィールドがSoDの結果が保留中ですステータスになっており、スケジュール済ジョブを実行しても「SoDチェックが完了しました」ステータスになりません。

承認用のスケジュール済ジョブではなく、SoDチェック結果の取得(承認)スケジュール済ジョブを実行していることを確認します。スケジュール済ジョブがトリガーされていることを確認します。デバッグ・レベルのロギングを有効化して、これを確認できます。

スケジュール済ジョブが実行されてもSoDチェックが完了しない場合は、SoDエンジンでエラーが発生しています。SoDエンジン・ログで詳細を確認してください。

リクエスト・プロビジョニング中にSoDチェックが正常に実行されましたが、ユーザー・プロファイルのリソース状態に「プロビジョニング済」と表示されません。そのため、リクエストが「操作が開始されました」ステータスになっています。

リソース履歴でプロセス・タスクを確認します。System Validationタスクのみが表示されている場合、必要なデータがこのフォームに保存されていない可能性があります。編集モードでフォームを開き、「保存」をクリックすると、手動でフォームを保存できる場合があります。以降のリクエストのために、プロセス定義で自動保存オプションを有効化してください。

ターゲット・システムでアカウントを作成するためのタスクなど、その他のタスクがリソース履歴に表示されている場合は、タスクの詳細をチェックして、ターゲット・システムのエラーがないかどうかを確認してください。たとえば、作成中のアカウントがターゲット・システムにすでに存在しています。

ダイレクト・プロビジョニング中にSoDチェックが正常に実行されましたが、ユーザー・プロファイルのリソース状態が「プロビジョニング済」ではありません。

リソース履歴でプロセス・タスクを確認します。System Validationタスクのみが表示されている場合、必要なデータがこのフォームに保存されていない可能性があります。これは、プロセス定義で自動保存オプションがオンになっている場合に発生することがあり、そのため、ダイレクト・プロビジョニング中にフォームが表示されません。編集モードでフォームを開き、「保存」をクリックすると、手動でフォームを保存できる場合があります。以降のリクエストのために、プロセス定義で自動保存オプションを無効化してください。

ターゲット・システムでアカウントを作成するためのタスクなど、その他のタスクがリソース履歴に表示されている場合は、タスクの詳細をチェックして、ターゲット・システムのエラーがないかどうかを確認してください。たとえば、作成中のアカウントがターゲット・システムにすでに存在しています。

リクエスト・プロビジョニングは正常に実行され、リクエスト・データセットに該当する値が表示されましたが、SoDステータスと結果がプロセス・フォームに反映されません。

プロセス・フォームでSoDフィールド・ラベルを確認してください。これらは、SoDCheckStatus、SoDCheckTrackingID、SoDCheckResult、SoDCheckTimestampおよびSoDCheckEntitlementViolationである必要があります。これらのフィールド・ラベルを変更すると、SoDフィールドがリクエスト・データセットからプロセス・フォームにマップされません。

特定のSoDリクエストが複数回試行され、エラーが生成されます。

SoD構成に問題があるか、特定のリクエストで発行されたデータにエラーがある可能性があります。SoD構成が正しいにもかかわらず、リクエストにエラーのトレースがあり、その特定のリクエストを無視するには、WebLogic管理コンソールからOIMSODQueueの「再配信の制限」を変更して、そのリクエストに関連するJMSメッセージが複数回試行されないようにできます。これを行うには、次の手順を実行します。

1. WebLogic管理コンソールにログインします。

2. 「サービス」→「メッセージング」→「JMSモジュール」→「OIMJMSModule」の順に移動します。すべてのキューのリストが表示されます。

3. 「oimSODQueue」をクリックし、「配信の失敗」をクリックします。

4. 「再配信の制限」の値を、-1から正の値に変更します。これにより、SoD JMSメッセージの再試行回数が決定されます。

タスク割当てルールの評価にエラーがあります。ユーザーnullのタスク割当てルールの評価にエラーがあります。エラーは次のとおりです。「構成"{1}"の"{0}"の所有者を取得中のエラー。構成"jazn.com"の"SOD ADMINISTRATORS"の所有者を取得中にエラーが発生しました。グループ名が有効であり、所有者が関連付けられていることを確認してください。エラーを修正できない場合は、Oracleサポートに連絡してください。ユーザーnullに指定されたルールが有効であることを確認してください。」

このエラーは無視してください。このエラーの原因は、OIMDBProviderではロールの所有者の取得がサポートされていないことです。そのため、SOAではこのエラーがログに記録されます。

DefaultSODApprovalワークフローを使用してSoDチェックを実行しようとすると、次のエラー・メッセージが表示されます。

Unknown Credential type to find the password for the given map : oim key : sodcheck.credentials

「SoDの有効化」の手順5の説明に従って、sodcheck.credentialsを追加してください。

次のエラーが表示されます。

[exec] Caused By: Thor.API.Exceptions.tcITResourceNotFoundException
[exec] at com.thortech.xl.ejb.beansimpl.tcITResourceInstanceOperationsBean.getITResourceInstanceParametersData

SoDエンジンITリソースが作成されていません。そのため、使用するSoDエンジンに応じたITリソースを作成する必要があります。たとえば、OAACGの場合はOAACG-ITResを作成します。

OAACGとOIAなど、複数のSoDエンジンに対してSoDが有効化されている場合に、OIAを使用してSoDチェックを開始しようとすると、OAACGファイルからエラーがログに記録されることがあります。

この問題は、SILConfig.xmlファイル内のトポロジ・エントリが正しくない場合に発生します。これらのエントリを確認するには、MDSからSILConfig.xmlファイルをエクスポートします。デフォルト・プロバイダの場合、SILConfig.xmlファイルにはトポロジ名に対応するSIL登録IDが含まれています。SILConfig.xmlのIDと、SIL登録スクリプトから返されるIDは同じである必要があります。たとえば、SILConfig.xmlに含まれるsodoiaトポロジのIDは次のようになります。

<IdmId>1</IdmId>
<SodId>7</SodId>
<SDSId>6</SDSId>

この場合、登録スクリプトにより返されるIDは次のようになります。

1 oimInstance
6 oimSDSInstance
7 oiaInstance

これらが異なる場合、SILConfig.xmlファイルでIDを変更し、MDSユーティリティを使用してファイルを再インポートしてください。

第VII部

カスタマイズ

この部は、Oracle Identity Managerで使用できるユーザー・インタフェースのカスタマイズに役立つ章で構成されています。

次の章で構成されます。

- 第28章「Oracle Identity Managerのインタフェースのカスタマイズ」

- 第29章「カスタムADFタブのセルフ・サービスへの追加」

- 第30章「カスタマイズの一般概念」

28 Oracle Identity Managerのインタフェースのカスタマイズ

この章では、Oracle Identity Managerで使用可能なユーザー・インタフェースの様々な側面のカスタマイズ方法について説明します。

注意:

Oracle Identity Manager 11gリリース1(11.1.1)には、暫定UIと呼ばれる、従来のUIテクノロジに基づく多数のUIページが含まれています。技術上の相違のために、暫定UIはポップアップ・ウィンドウに表示され、そのルック・アンド・フィールは異なります。これらのUIについては、この章の関連する項で説明します。

この章では、次の内容を説明します。

- ブランド・カスタマイズ

- スタイルシートの変更

- ボタン・ラベルの名前変更

- メニューおよびタブの使用

- 機能の無効化

- コンソールの表での列の追加または削除

- データ・カスタマイズ

- カスタムURLの挿入

- ポップアップ・プロパティの変更

- ワークフロー・デザイナのカスタマイズ

28.1 ブランド・カスタマイズ

ブランド情報のカスタマイズには、ロゴ、ロゴ・マウスオーバー・テキスト、ブランド・テキストの3つの側面があります。これらは2つの方法によりカスタマイズできます。この項では、これを行う方法のうちの1つについて説明します。もう1つの方法は、適切なスタイル・クラスを使用してスキンを変更する方法であり、この方法については「スタイルシートの変更」で説明します。

ブランド・カスタマイズは、次の方法のいずれかを使用して行うことができます。

- 各コンソールでファイルを編集する方法(この項で説明します)

- スタイルシートを使用する方法(「スタイルシートの変更」で説明します)

スキンおよびスタイルシートは、UIのルック・アンド・フィールをカスタマイズできるメカニズムです。スタイルシートの変更やカスタム・スキンを使用する利点は、これらの変更が集中管理されており、簡単に管理できる点です。スキンおよびスタイルシートの詳細は、次のURLでOracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイドのスタイルおよびスキンを使用した外観のカスタマイズに関する説明を参照してください。

http://download.oracle.com/docs/cd/E15523_01/web.1111/b52029/toc.htm

特定のカスタマイズ(ブランド・ロゴ・マウスオーバー・テキストなど)は、この項で説明するとおり、より簡単に実行できます。

ブランド・カスタマイズでは両方の方法を組み合せて使用でき、ほとんどの変更にはスタイルシートの変更やカスタム・スキンを使用して、特定のアイテム(ブランド・ロゴ・マウスオーバー・テキストなど)にはこの項で説明するような特定ファイルの変更を使用します。

ブランドは次のセクションでカスタマイズできます。

- ログイン・ページ

- アイデンティティ管理

- 認証されていないセルフ・サービス

- 認証されたセルフ・サービス

- 拡張管理

28.1.1 ログイン・ページ

ログイン・ページ用のブランド変更は、次のファイルで構成されます。

- iam-consoles-faces.war/pages/Login.jspx

- admin.war/pages/Login.jspx

ブランド・テキスト

ブランド・テキストは、リソース・バンドル・プロパティbranding_textの値を変更することにより変更できます。Login.jspxの次の場所でその値が参照されています。

<f:facet name="branding">
<af:outputText value="#{admin.model.resources.common.branding_text}"              id="ot1"/>
</f:facet>

次のリソース・バンドルがプロパティの参照に使用されます。

iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Common_LOCALE.properties

ここでLOCALEをロケールの値で置き換えることにより(たとえば、Common_en.properties)、適切なファイルを使用します。

ヒント:

- ファイルを変更する前に、ファイルのバックアップを作成します。編集するファイルは、コンソールを使用して実行するカスタマイズのタイプに対応します。たとえば、IdentityUIBundle_en.propertiesファイルを編集することにより、Oracle Identity Administrationのブランド・テキストを変更します。

- JARファイルとWARファイルのアップロードおよびダウンロードの方法については、第35章「JARおよびリソース・バンドルのアップロード・ユーティリティ」を参照してください。

- JARファイルを抽出できない場合は、Java JDKがあるディレクトリを指すようにPATH環境変数が設定されていることを確認します。

ロゴ・イメージ

ロゴ・イメージを変更するには、次の手順を実行します。

1. 新しいイメージ(new-logo.pngなど)をoim.ear/iam-consoles-faces.war/images/ディレクトリにコピーします。

2. iam-consoles-faces.war/pages/Login.jspx内にある次の行の後に、スタイルシート・クラスを追加します。

<af:document title="#{admin.model.resources.common.title_login_page}" id="d1"                 theme="dark" maximized="true">

例:

<af:document title="#{admin.model.resources.common.title_login_page}" id="d1"
theme="dark" maximized="true">
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url('/oim/images/new-logo.png');
background-position:center;
background-repeat:repeat-n; display:block;
height:3.5em; width:119px;
}
</af:resource>
…

3. 次のように、brandingLogoClsという名前およびCSSクラス名としての値を含む属性を行内に追加します。
<af:pageTemplate viewId="/templates/IdmSignIn.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">

例:

<af:pageTemplate viewId="/templates/IdmSignIn.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
…

4. Oracle Identity Managerを再起動しても、WebLogic管理対象サーバーのtmp/ディレクトリからの古いファイルがロードされ、この結果、新しいロゴ・イメージは表示されません。この問題を修正するには、次の手順を実行します。

1. Oracle WebLogic Serverを停止します。

2. $DOMAIN_ROOT/servers/oim_server1/tmp/ディレクトリにあるすべてのファイルを削除します。

3. Oracle WebLogic Serverを起動します。

ロゴ・マウスオーバー・テキスト

ロゴ・マウスオーバー・テキストを変更するには、次の手順を実行します。

1. アーカイブの内容を次の場所から一時フォルダに抽出します。

ORACLE_HOME/modules/oracle.idm.uishell_11.1.1/oracle.idm.uishell.war

2. 元のファイルのバックアップを作成します。

3. /WEB-INF/lib/oracle-idm-uishell.jarファイルの内容を一時的な場所に抽出します。

4. templates/IdmShell.jspxファイルおよびtemplates/IdmSignIn.jspxファイルでshortDesc='Oracle'を検索し、(デフォルトのOracleのかわりに)必要なロゴ・マウスオーバー・テキストを次のコードのshortDescの値として指定します。

<af:panelBorderLayout styleClass="AFBrandingBar" id="ptpbl1">
<f:facet name="start">
<af:panelGroupLayout styleClass="AFBrandingBarItem"
inlineStyle="background-color: white;"
id="ptpgl2">
<af:spacer shortDesc="Oracle"
styleClass="#{attrs.brandingLogoCls}"
id="pts1"/>
</af:panelGroupLayout>
</f:facet>

コード例を使用して、どの場所を置き換えるかを確認します。正確なコードは、この例と多少異なる場合があります。置換するテキストは、AFBrandingBarItemスタイル・クラスが使用されているパネル内にあります。

5. JARファイルを再パッケージして、抽出したWebアーカイブ(WAR)ファイルの/WEB-INF/lib/ディレクトリに配置します。

6. oracle.idm.uishell.warファイルを再パッケージして、元の場所に配置します。
WARファイルを再パッケージする場合、MANIFEST.MFファイルを上書きしないでください。たとえば、次のコマンドを使用します。

jar –cmf META-INF\MANIFEST.MF oracle.idm.uishell.war *

注意:

MANIFEST.MFファイルは、WARファイルを作成すると常に作成されます。このファイルには、WARファイルに関する情報(ファイルのビルド番号やバージョン番号など)が含まれています。引数としてmと入力すると、元のMANIFEST.MFファイルに存在する詳細がJavaで保持されるよう強制できます。つまり、ファイルは上書きされません。Oracle Identity Managerでは、oracle.idm.uishell.warファイルの内容を使用するためにこの情報が必要です。

28.1.2 アイデンティティ管理

Oracle Identity Administrationのブランド変更は、admin.war/pages/Admin.jspxで構成されます。

ブランド・テキスト

ブランド・テキストは、リソース・バンドル・プロパティbranding_textの値を変更することにより変更できます。Admin.jspxの次の場所でその値が参照されています。

<f:facet name="branding">
<af:outputText value="#{resUI.branding_text}" id="ot1"/>
</f:facet>

ここで、resUIは次のリソース・バンドルを参照します。

admin.war/WEB-INF/lib/IdentityTaskFlow.jar/oracle/iam/identitytaskflow/resources/IdentityUIBundle_LOCALE.properties

ブランド・ファセットではADFタグが使用されており、ブランド・ニーズに対して柔軟に対応できます。

ロゴ・イメージ

ロゴ・イメージを変更するには、次の手順を実行します。

1. 新しいイメージ(new-logo.pngなど)をoim.ear/iam-consoles-faces.war/images/ディレクトリにコピーします。

2. admin.war/pages/Admin.jspx内にある次の行の後に、スタイルシート・クラスを追加します。

<af:document title="#{resUI.window_title_text}" theme="dark" id="d1">

例:

<af:document title="#{resUI.window_title_text}" theme="dark" id="d1">
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url('/oim/images/new-logo.png');
background-position:center;
background-repeat:repeat-n; display:block;
height:3.5em; width:119px;
}
</af:resource>
…

3. 次のように、brandingLogoClsという名前およびCSSクラス名としての値を含む属性を行内に追加します。
<af:pageTemplate viewId="/templates/IdmShell.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">

例:

<af:pageTemplate viewId="/templates/IdmShell.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
…

4. Oracle Identity Managerを再起動しても、WebLogic管理対象サーバーのtmp/ディレクトリからの古いファイルがロードされ、この結果、新しいロゴ・イメージは表示されません。この問題を修正するには、次の手順を実行します。

1. Oracle WebLogic Serverを停止します。

2. $DOMAIN_ROOT/servers/oim_server1/tmp/ディレクトリにあるすべてのファイルを削除します。

3. Oracle WebLogic Serverを起動します。

ロゴ・マウスオーバー・テキスト

「ログイン・ページ」で説明したように、ログイン・ページのロゴ・マウスオーバー・テキストを変更するための手順を実行する場合、この項の手順を実行する必要はありません。

ロゴ・マウスオーバー・テキストを変更するには、次の手順を実行します。

1. アーカイブを次の場所から一時フォルダに抽出します。
ORACLE_HOME/modules/oracle.idm.uishell_11.1.1/oracle.idm.uishell.war

2. 元のファイルのバックアップを作成します。

3. WEB-INF/lib/oracle-idm-uishell.jarファイルを一時的な場所に抽出します。

4. templates/IdmShell.jspxファイルおよびtemplates/IdmSignIn.jspxファイルでshortDesc='Oracle'を検索し、(デフォルトのOracleのかわりに)必要なロゴ・マウスオーバー・テキストを次のようにshortDescの値として指定します。

<af:panelBorderLayout styleClass="AFBrandingBar"
id="ptpbl1">
<f:facet name="start">
<af:panelGroupLayout styleClass="AFBrandingBarItem"
inlineStyle="background-color: white;"
id="ptpgl2">
<af:spacer shortDesc="Oracle"
styleClass="#{attrs.brandingLogoCls}"
id="pts1"/>
</af:panelGroupLayout>
</f:facet>

5. JARファイルを再パッケージして、抽出したWARファイルのWEB-INF/libに配置します。

6. oracle.idm.uishell.warファイルを再パッケージして、元の場所に配置して戻します。

28.1.3 認証されていないセルフ・サービス

認証されていないセルフ・サービスのUIに対するブランド変更は、iam-consoles-faces.war/pages/USelf.jspxで構成されます。

ブランド・ファセット

ブランド・テキストは、リソース・バンドル・プロパティheader_brandingの値を変更することにより変更できます。USelf.jspxの次の場所でその値が参照されています。

<f:facet name="branding">
<af:outputText id="brandingTitle" value="#{uself.model.resources.uself.header_branding}"/>
</f:facet>

uselfリソース・バンドルは次の場所にあります。

iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/USelf_LOCALE.properties

ロゴ・イメージ

ロゴ・イメージを変更するには、次の手順を実行します。

1. 新しいイメージ(new-logo.pngなど)をoim.ear/iam-consoles-faces.war/images/ディレクトリにコピーします。

2. iam-consoles-faces.war/pages/USelf.jspx内にある次の行の後に、スタイルシート・クラスを追加します。

<f:facet name="metaContainer">

例:

<f:facet name="metaContainer">
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url('/oim/images/new-logo.png');
background-position:center;
background-repeat:repeat-n; display:block;
height:3.5em; width:119px;
}
</af:resource>
…

3. 同じファイルで、brandingLogoClsという名前およびCSSクラス名としての値を含む属性を次の行内に追加します。

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx">

例:

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx">
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
…

4. Oracle Identity Managerを再起動しても、WebLogic管理対象サーバーのtmp/ディレクトリからの古いファイルがロードされ、この結果、新しいロゴ・イメージは表示されません。この問題を修正するには、次の手順を実行します。

1. Oracle WebLogic Serverを停止します。

2. $DOMAIN_ROOT/servers/oim_server1/tmp/ディレクトリにあるすべてのファイルを削除します。

3. Oracle WebLogic Serverを起動します。

ロゴ・マウスオーバー・テキスト

ブランド・ロゴ・イメージのマウスオーバー・テキストを変更するには、iam-consoles-faces.war/pages/USelf.jspxファイルで次の手順のいずれかを実行します。

- 行<af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx">内で、静的テキスト値として次の値を追加します。

<f:attribute name="brandingLogoText" value="My Company"/>

- リソース・バンドルから、プロパティ(text_logo_mouseoverなど)を対応するバンドル(iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/USelf_LOCALE.properties)に追加して、次に示すように使用します。

<f:attribute name="brandingLogoText" value="#{uself.model.resources.uself.text_logo_mouseover}"/>

28.1.4 認証されたセルフ・サービス

Oracle Identity Managerセルフ・サービスに対するブランド変更は、iam-consoles-faces.war/pages/Self.jspxで構成されます。

ブランド・ファセット

ブランド・テキストは、リソース・バンドル・プロパティheader_brandingの値を変更することにより変更できます。Self.jspxの次の場所でその値が参照されています。

<f:facet name="branding">
<af:outputText id="brandingTitle" value="#{self.model.resources.self.header_branding}"/>
</f:facet>

selfリソース・バンドルは、iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Self_LOCALE.propertiesにあります。

ロゴ・イメージ

ロゴ・イメージを変更するには、次の手順を実行します。

1. 新しいイメージ(new-logo.pngなど)をoim.ear/iam-consoles-faces.war/images/ディレクトリにコピーします。

2. iam-consoles-faces.war/pages/Self.jspx内にある次の行の後に、スタイルシート・クラスを追加します。

<f:facet name="metaContainer">

例:

<f:facet name="metaContainer">
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url('/oim/images/new-logo.png');
background-position:center;
background-repeat:repeat-n; display:block;
height:3.5em; width:119px;
}
</af:resource>
…

3. 同じファイルで、brandingLogoClsという名前およびCSSクラス名としての値を含む属性を次の行内に追加します。

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx">

例:

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx">
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
…

4. Oracle Identity Managerを再起動しても、WebLogic管理対象サーバーのtmp/ディレクトリからの古いファイルがロードされ、この結果、新しいロゴ・イメージは表示されません。この問題を修正するには、次の手順を実行します。

1. Oracle WebLogic Serverを停止します。

2. $DOMAIN_ROOT/servers/oim_server1/tmp/ディレクトリにあるすべてのファイルを削除します。

3. Oracle WebLogic Serverを起動します。

ロゴ・マウスオーバー・テキスト

ブランド・ロゴ・イメージのマウスオーバー・テキストを変更するには、iam-consoles-faces.war/pages/Self.jspxファイルで次の手順のいずれかを実行します。

- 行<af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx">内で、静的テキスト値として次の値を追加します。

<f:attribute name="brandingLogoText" value="My Company"/>

- リソース・バンドルから、プロパティ(text_logo_mouseoverなど)を対応するバンドル(iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Self_LOCALE.properties)に追加して、次に示すように使用します。

<f:attribute name="brandingLogoText" value="#{self.model.resources.self.text_logo_mouseover}"/>

28.1.5 拡張管理

拡張管理のブランド変更は、iam-consoles-faces.war/pages/Admin.jspxで構成されます。

ブランド・ファセット

ブランド・テキストは、リソース・バンドル・プロパティheader_branding_advの値を変更することにより変更できます。Admin.jspxの次の場所でその値が参照されています。

<f:facet name="branding">
<af:outputText id="brandingTitle" value="#{admin.model.resources.admin.header_branding_adv}"/>
</f:facet>

adminリソース・バンドルは、iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Admin_LOCALE.propertiesにあります。

ロゴ・イメージ

ロゴ・イメージを変更するには、次の手順を実行します。

1. 新しいイメージ(new-logo.pngなど)をoim.ear/iam-consoles-faces.war/images/ディレクトリにコピーします。

2. iam-consoles-faces.war/pages/Admin.jspx内にある次の行の後に、スタイルシート・クラスを追加します。

<f:facet name="metaContainer">

例:

<f:facet name="metaContainer">
<af:resource type="css">
.MyCustomBrandingLogo {
background-image:url('/oim/images/new-logo.png');
background-position:center;
background-repeat:repeat-n; display:block;
height:3.5em; width:119px;
}
</af:resource>
…

3. 同じファイルで、brandingLogoClsという名前およびCSSクラス名としての値を含む属性を次の行内に追加します。

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx">

例:

<af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx">
<f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/>
…

4. Oracle Identity Managerを再起動しても、WebLogic管理対象サーバーのtmp/ディレクトリからの古いファイルがロードされ、この結果、新しいロゴ・イメージは表示されません。この問題を修正するには、次の手順を実行します。

1. Oracle WebLogic Serverを停止します。

2. $DOMAIN_ROOT/servers/oim_server1/tmp/ディレクトリにあるすべてのファイルを削除します。

3. Oracle WebLogic Serverを起動します。

ロゴ・マウスオーバー・テキスト

ブランド・ロゴ・イメージのマウスオーバー・テキストを変更するには、iam-consoles-faces.war/pages/Admin.jspxファイルで次の手順のいずれかを実行します。

- 行<af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx">内で、静的テキスト値として次の値を追加します。

<f:attribute name="brandingLogoText" value="My Company"/>

- リソース・バンドルから、プロパティ(text_logo_mouseoverなど)を対応するバンドル(iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Admin_LOCALE.properties)に追加して、次に示すように使用します。

<f:attribute name="brandingLogoText" value="#{admin.model.resources.admin.text_logo_mouseover}"/>

28.2 スタイルシートの変更

この章では、スタイルシートを更新する手順について説明します。トピックは次のとおりです。

- スタイルシートの概要

- カスタム・スキンの作成およびスタイルシートの上書き

- 暫定UIにおけるスタイルシート

28.2.1 スタイルシートの概要

Oracle ADFでは、アプリケーションの外観をカスタマイズするためにスタイルとともにスキンを使用します。これらの概念は、暫定UIのポップアップを除き、Oracle Identity Managerのすべてのインタフェースに適用されます。

関連項目:

スタイルシートをカスタマイズする前に、次のURLでFusion Middleware Webユーザー・インタフェース開発者ガイドのスタイルおよびスキンを使用した外観のカスタマイズに関する説明を参照してください。

http://download.oracle.com/docs/cd/E15523_01/web.1111/b52029/toc.htm

次のURLでは、スタイルシートをカスタマイズするために使用できるCSSスタイル・セレクタすべてがリストされています。

http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e15862/toc.htm

trinidad-config.xmlで新規スキンを構成します。Oracle Identity Managerのデフォルトのスキンは、fusionです。

<?xml version="1.0" encoding='utf-8'?>
<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">
<skin-family>fusion</skin-family>
</trinidad-config>

コンソール固有のtrinidad-config.xmlファイルは、次の2つです。

- アイデンティティ管理の場合: admin.war/WEB-INF/trinidad-config.xml

- セルフ・サービス(認証されていない)および拡張管理の場合: iam-consoles-faces.war/WEB-INF/trinidad-config.xml

28.2.2 カスタム・スキンの作成およびスタイルシートの上書き

fusionスキンによるデフォルトを保持して、特定のスタイルシート要素を上書きするには、次の手順を実行します。

1. trinidad-skins.xmlファイルでスキンを作成します。trinidad-skins.xmlを/iam-consoles-faces.war/WEB-INF/ディレクトリからadmin.war/WEB-INF/ディレクトリにコピーします。/admin.war/WEB-INF/trinidad-skins.xmlファイルと/iam-consoles-faces.war/WEB-INF/trinidad-skins.xmlファイルの両方に対して、次の変更を行います。

<?xml version="1.0" encoding='utf-8'?>
<skins xmlns="http://myfaces.apache.org/trinidad/skin">
<skin>
<id>myskin.desktop</id>
<family>myskin</family>
<extends>fusion.desktop</extends>
<render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
<style-sheet-name>skins/myskin/myskin.css</style-sheet-name>
<bundle-name>oracle.iam.consoles.faces.resources.AdfComponentsMessageBundle</bundle-name>
</skin>
</skins>

2. admin.war/WEB-INF/trinidad-config.xmlファイルとiam-consoles-faces.war/WEB-INF/trinidad-config.xmlファイルの両方で、新規のmyskinを次に示すように登録します。

<?xml version="1.0" encoding='utf-8'?>
<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">
<skin-family>myskin</skin-family>
</trinidad-config>

3. admin.war/skins/myskin/myskin.cssファイルとiam-consoles-faces.war/skins/myskin/myskin.cssファイルの両方で、myskin.cssを作成します。

4. デフォルトから上書きされる必要があるスタイルシート要素を指定します。たとえば、ブランド・テキストの色を変更するには、次を追加します。

.AFBrandingBarTitle, .xdj
{
color:#800080;
}

5. Oracle WebLogic Server管理コンソールを使用して、Oracle Identity Managerデプロイメントを再デプロイ(または更新)します。

「ブランド・カスタマイズ」での方法にかわる方法としてブランド情報を変更するには、カスタム・スキンを作成して「スタイルシートの概要」のURLで示した適切なスタイル・クラスを使用します。

28.2.3 暫定UIにおけるスタイルシート

この項では、管理およびユーザー・コンソールにおける暫定UIのルック・アンド・フィールをカスタマイズする方法について説明します。これを行うには、カスケード・スタイルシートを編集します。

この項には次のトピックが含まれます:

- 変更するファイル

- 暫定UIの外観のカスタマイズ

28.2.3.1 変更するファイル

暫定UIの色、フォントおよび位置合せをカスタマイズするには、/xlWebApp/css/Xellerate.cssファイルまたはロケール固有のカスケード・スタイルシートを編集します。

28.2.3.2 暫定UIの外観のカスタマイズ

Xellerate.cssスタイルシートにより、暫定UIページの色、フォント、ポイント・サイズおよび位置合せが定義されます。暫定UIの外観の編集方法が決定したら、次の手順を実行します。

1. ページのソースを表示します。

2. 変更するページの要素に関連するスタイルシート・クラスを決定します。

3. Xellerate.cssファイル内でスタイルシート・クラス名を検索します。

Xellerate.cssファイルにはコンテキスト・ラベルが含まれています。暫定UIの外観について特定の側面をカスタマイズする場合、これらのコンテキスト・ラベルを使用して、編集するクラスを検索します。また、このファイル内のクラスは、画面のリージョン(ヘッダー、本文、フッターなど)およびクラスが影響を及ぼすHTML要素(リンク、表、チェック・ボックスなど)に応じて編成されています。

28.3 ボタン・ラベルの名前変更

この項では、様々なコンソールでボタン・ラベルの名前を変更できる方法について説明します。

- アイデンティティ管理

- その他のコンソール

- 暫定UIのポップアップ

28.3.1 アイデンティティ管理

アイデンティティ管理は次の4つの主要な機能領域で構成されており、それぞれの領域に独自のリソース・バンドルがあります。

- ユーザー管理:

admin.war/WEB-INF/lib/IdentityTaskFlow.jar/oracle/iam/identitytaskflow/resources/IdentityUIBundle_LOCALE.properties

- 組織管理:

admin.war/WEB-INF/lib/orgmgmtTF.jar/oracle/iam/consoles/orgmgmt/tf/resources/orgmgmt-ui_LOCALE.properties

- ロール管理:

admin.war/WEB-INF/lib/rolemgmtTF.jar/oracle/iam/consoles/rolemgmt/tf/resources/rolemgmt-ui_LOCALE.properties

- ポリシー管理:

admin.war/WEB-INF/lib/OESOIMTaskFlows.jar/oracle/iam/consoles/oesoim/tf/resources/oes-oim-ui_LOCALE.properties

たとえば、ポリシー管理UIの場合、対応するプロパティ・ファイルで、次のプロパティがボタン・ラベル用に設定されています。

button.advanced=Advanced
button.apply=Apply
button.apply.accessKey=A
button.back=Back
button.back.accessKey=B
button.cancel=Cancel
button.cancel.accessKey=C
button.edit_attribute=Edit Attributes
button.edit_attribute.accessKey=E
button.finish=Finish
button.finish.accessKey=F
button.next=Next
button.next.accessKey=N
button.ok=Ok
button.ok.accessKey=O
button.revert=Revert
button.revert.accessKey=R
button.save=Save
button.save.accessKey=S

28.3.2 その他のコンソール

認証されていないセルフ・サービス、認証されたセルフ・サービスおよび拡張管理に対して共通のボタン・ラベルは、次のリソース・バンドルで設定されています。

iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Common_LOCALE.properties

例:

text_cancel = Cancel
description_cancel = Cancel

text_submit = Submit
description_submit = Submit.

text_reset = Reset
description_reset = Reset

text_previous = Back
description_previous = Back

text_next = Next
description_next = Next

text_refresh = Refresh
description_refresh = Refresh

text_perform = Perform
description_perform = Perform

text_confirm = OK
description_confirm = Confirm

セルフ・サービスの一部のボタン・ラベルは、iam-consoles-faces.war/WEB-INF/lib/OIMUI.jar/oracle/iam/selfservice/self/agentry/resources/Agent_LOCALE.propertiesファイルからも使用されます。

拡張管理では、数多くのボタン・ラベルが、それぞれの機能のAgent_LOCALE.propertiesファイルから使用されます。たとえば、リクエストされたボタンの場合、使用するファイルはiam-consoles-faces.war/WEB-INF/lib/OIMUI.jar/oracle/iam/request/agentry/resources/ディレクトリにあるAgent_LOCALE.propertiesです。

このファイルの一部のボタンは、次のとおりです。

Intent[BACK].name =Back
Intent[BACK].description =Back
Intent[NEXT].name =Next
Intent[NEXT].description =Next
Intent[ADD].name=Add
Intent[CANCEL].name=Cancel
Intent[CLEAR].name=Clear
Intent[SAVE].name=Save
Intent[APPLY].name=Apply
Intent[REVERT].name=Revert
Intent[PREV_RES].name=Previous Resource
Intent[NEXT_RES].name=Next Resource
Intent[CLOSE_REQ].name=Close Request
Intent[SEARCH_LKQ].name=Search
Intent[REFRESH].name=Refresh

一部の主要な機能について、OIMUI.jar内のエージェント・プロパティ・ファイルの場所のリストを次に示します。

- システム構成: oracle/iam/conf/agentry/resources

- ユーザー構成: oracle/iam/configservice/agentry/resources

- スケジューラ: oracle/iam/features/scheduler/agentry/resources

- 通知テンプレート: oracle/iam/features/notification/agentry/resources

- リコンシリエーション: oracle/iam/reconciliation/agentry/resources

- リクエスト: oracle/iam/request/agentry/resources

- リクエスト・テンプレート: oracle/iam/requesttemplate/agentry/resources

- 認証されたセルフ・サービス: oracle/iam/selfservice/self/agentry/resources

- 認証されていないセルフ・サービス: oracle/iam/selfservice/uself/agentry/resources

- セルフ・サービスのタスク・リスト: oracle/iam/tasklist/agentry/resources

28.3.3 暫定UIのポップアップ

この項では、管理およびユーザー・コンソールの暫定UIページに表示される説明およびラベルをカスタマイズする方法について説明します。また、特定の(エラー・メッセージが生成された)状況下で表示されるエラー・メッセージを編集する方法についても説明します。

次のテキストをカスタマイズできます。

- 指示文などの手順の説明

- ページのラベル

- ページ内のフィールドのラベル

- ボタンに表示されるラベル

- 他のページへのリンクのラベル

- コピーライトの日付と情報

この項には次のトピックが含まれます:

- 変更するファイル

- 説明とラベルのカスタマイズ

28.3.3.1 変更するファイル

管理およびユーザー・コンソールの暫定UIページにおけるテキストをカスタマイズするには、xlWebApp\WEB-INF\classes\xlWebAdmin_LOCALE.propertiesファイルまたはロケール固有のpropertiesファイルを編集します。

propertiesファイルには他にも、ワークフロー・ビジュアライザとワークフロー・デザイナ用のxlRichClient.propertiesや、イメージ参照などの一般的な(ロケール固有ではない)プロパティを組み込むために使用されるxlDefaultAdmin.propertiesなどがあります。

28.3.3.2 説明とラベルのカスタマイズ

コンソールに表示されるテキストは、xlWebAdmin_LOCALE.propertiesファイルに格納されています。ラベル、手順説明またはエラー・メッセージを編集するには、次の手順を実行します。

1. テキストが表示されるJSPページにアクセスします。

2. テキストに関連付けられるプロパティを参照します。

3. xlWebAdmin_LOCALE.propertiesファイルでプロパティ名を検索します。

複数のページに含まれるテキストを制御するプロパティ、または複数の製品機能に関連付けられるプロパティは、このファイルのGLOBALセクションのいずれか(GLOBALメッセージなど)にリストされています。また、これらのプロパティはタイプ固有のラベル(メッセージ、ボタン、ラベルなど)によって分けられ、プロパティのグループも編成します。

製品機能のより具体的なコンテキストで表示されるテキストを制御するプロパティ(ユーザーの作成や自己登録など)は、機能固有の方法でラベル付けされたセクション(MANAGE USERラベルなど)にリストされます。

ワークフロー・ビジュアライザのラベルの幅は、ピクセル長を文字長に変換することにより計算されます。誤って変換すると、テキストが切り捨てられたり、ラベルの周りに余分な空白スペースができてしまう可能性があります。xlRichClient.propertiesファイルまたはロケール固有のファイル(日本語用のxlRichClient_jp.propertiesなど)には、global.workflowRenderer.labelWidthFactorという名前のプロパティが含まれています。このプロパティは、ラベル・テキストをピクセル長から文字長に変換する場合に使用されます。ワークフロー・ビジュアライザのラベル幅を変更するには、このプロパティに割り当てられている整数値を変更します。整数が大きくなるとラベル幅は増加され、整数が小さくなると減少されます。

28.4 メニューおよびタブの使用

この項では、管理およびユーザー・コンソールの様々なセクションで、メニューおよびタブを追加したり更新する方法について説明します。

- Oracle Identity Administration

- その他のコンソール

28.4.1 Oracle Identity Administration

最上位レベルのタブ(「管理」および「ポリシー」)は、IDMシェル構成ファイルadmin.war/WEB-INF/idmshell-config.xmlで構成されます。IDMシェルの詳細は、次のURLを参照してください。

http://www.oracle.com/technetwork/developer-tools/adf/uishell-093084.html

構成ファイルは次のようになります。

<taskflows>
<taskflow id="_oes_oim_lhs" closeable="false" indialog="false"
taskFlowId="/taskflows/brsr/BrowseSearch-TF.xml#BrowseSearch-TF">
<name>Browse And Search</name>
<description>Browse And Search</description>
</taskflow>
<taskflow id="_oes_oim_rhs" closeable="false" indialog="false"
taskFlowId="/taskflows/welcome/Welcome-TF.xml#Welcome-TF">
</taskflow>
</taskflows>
<modules>
<module id="oes_oim_mgr" helpTopicId="oim_ia_policy">
<lhs-area>
<taskflow refId="_oes_oim_lhs"/>
</lhs-area>
<default-taskflow-list>
<taskflow refId="_oes_oim_rhs"/>
</default-taskflow-list>
</mLoading...odule>
</modules>

<taskflow>タブの内部にある構成は、ADFタスク・フローを表します。ADFメニューの詳細は、次のURLでOracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイドのメニュー、ツールバーおよびツールボックスに関する説明を参照してください。

http://download.oracle.com/docs/cd/E15523_01/web.1111/b52029/toc.htm

次の例では、アイデンティティ管理に対して新規タブを構成するために必要な手順を示しています。

1. OIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/idmshell-config.xmlファイルをテキスト・エディタで開きます。

2. <taskflows>タグ内で、構成済タスク・フローのリストに新規タスク・フローを追加して、一意のIDを指定します。わかりやすくするために、次のnew_tabタスク・フロー構成では、「ようこそ」タブのタスク・フロー構成(admin_welcome)を模倣しています。

<taskflow id="new_tab" closeable="false" indialog="false"
taskFlowId="/taskflows/adminwelcome/AdminWelcome-taskflow.xml#AdminWelcome-taskflow">
</taskflow>

3. 同じファイルを下へスクロールして<modules>タグを見つけ、このタグ内に、adminというIDを持つ<module>を見つけます。

4. <default-taskflow-list>に新規<taskflow>を追加し、そのrefIDを以前に追加したタスク・フローID(すなわちnew_tab)に設定します。

<module id="admin">
<lhs-area>
<taskflow refId="usr_lhs"/>
</lhs-area>
<default-taskflow-list>
<taskflow refId="admin_welcome"/>
<taskflow refId="new_tab"/>
</default-taskflow-list>
</module>

注意:

モジュールは最上位レベルのタブを参照し、Default-Taskflow-Listエントリは第2レベルのタブを参照します。

5. propertiesファイルで新規タブにテキストを割り当てます。unzipなどのツールを使用して、ファイルOIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/lib/IdentityTaskFlow.jarを一時ディレクトリ[WORK_DIR]に抽出します。

6. アイデンティティ管理のヘッダーを変更するには、ファイルWORK_DIR/oracle/iam/identitytaskflow/resources/IdentityUIBundle_en.properties(または、必要に応じて他の言語固有の変換ファイル)を編集します。

7. TaskFlow[new_tab].nameという名前の新規プロパティを追加し、適切な名前(New Tabなど)を割り当てます。

8. TaskFlow[new_tab].descriptionという名前の新規プロパティを追加し、適切な説明(New Tab Descriptionなど)を割り当てます。

TaskFlow[new_tab].name=New Tab
TaskFlow[new_tab].description=New Tab Description

注意:

大カッコ内の値は、タスク・フローIDと一致する必要があります。このようにして、これらのプロパティ値を指定されたタブやタスク・フローに関連付けます。

9. ディレクトリをWORK_DIRに変更し、次のjar構文を使用してWORK_DIRの下のファイルとディレクトリを再パッケージします。

jar -cf IdentityTaskFlow.jar *

10. この新しいIdentityTaskFlow.jarファイルをOIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/lib/に配置します。これを上書きする前に、必ず元のファイルをバックアップするようにしてください。

11. Oracle WebLogic Server管理コンソールを使用して、Oracle Identity Managerデプロイメントを再デプロイ(または更新)します。

28.4.2 その他のコンソール

セルフ・サービスには、最上位レベルのタブを非表示にする機能があります。また、セルフ・サービスUIを使用して、新しいカスタム・タブを追加することもできます。カスタム・タブは、カスタムのjsffページの実装に関連付けることができます。セルフ・サービスにおける最上位レベルのメニューおよびタブの非表示については、「機能の無効化」で説明します。新規タブの追加およびセルフ・サービスのカスタムjsffの関連付けの詳細は、「カスタムADFタブのセルフ・サービスへの追加」で説明します。

28.5 機能の無効化

この項では、様々なコンソールやユーザー・インタフェースで機能を有効化または無効化できる方法について説明します。

- 認可ポリシーを介した機能へのアクセスの無効化

- その他の管理機能

- その他のコンソール

28.5.1 認可ポリシーを介した機能へのアクセスの無効化

アイデンティティ管理、認証されたセルフ・サービスおよび拡張管理の機能の大半へのアクセスは、Oracle Identity ManagerとOracle Entitlements Server(OES)との統合を利用して制御されています。OES内で管理されている機能およびアクションの場合、機能やアクションを無効化するには、ユーザーが使用できるポリシーを制御することにより、その機能へのアクセスを削除する方法をお薦めします。

関連項目:

認可ポリシーの作成と変更の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの認可ポリシーの管理に関する説明を参照してください。

たとえば、カスタマ・サポート組織でITエグゼクティブ(アウトバウンド・サービス)ロールを持つユーザーは、全ユーザーの検索および各ユーザーの連絡先情報の表示のみを許可されている必要があります。したがって、Oracle Identity Managerセルフ・サービスの左側のペインにあるユーザーまたはロールを作成および変更するためのボタンは、これらのユーザーに対して非表示となっている必要があります。

認可ポリシーを変更し、管理またはユーザー・コンソールの左側のペインにあるいくつかのアクションのうち、ユーザーに権限のないものに対応するボタンを非表示または無効にすることができます。これを行うには、次の手順を実行します。

1. ユーザー管理に対して認可ポリシーを作成します。認可ポリシーの作成の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのロール管理に対する認可ポリシーの作成に関する説明を参照してください。

2. 「権限」タブをクリックして、「ユーザーの検索」および「ユーザー詳細の表示」としての権限を設定します。

3. 「ユーザー詳細の表示」権限の場合、連絡先情報の属性を選択します。

4. 「データの制約」タブをクリックし、組織(カスタマ・サポートなど)のメンバーとしてのデータの制約を設定します。

5. 「割当て」タブをクリックします。このタブには、このポリシーに割り当てられているロールが表示されます。ITエグゼクティブ(アウトバウンド・サービス)などのロールを追加します。ロールの追加の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのロール管理に対する認可ポリシーの作成に関する説明の手順10を参照してください。

6. 「適用」をクリックして、変更を保存します。

「ユーザー検索」および「詳細の表示」のアクション・メニュー、ボタンまたはリンクについては、認可サービスAPIの使用による強制を設定する必要があります。操作に対するユーザーのアクセスが拒否される場合、このアクションは表示されないか、または無効として表示されます。

28.5.2 その他の管理機能

認可ポリシーを使用して機能を無効化できない場合は、別のオプションにより対応するADFアクション・タグを無効化できます。ほとんどのADFアクション・タグを無効化したり非表示にすることができます。

詳細は、次を参照してください。

- 次のURLのOracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイドのADF Facesコンポーネントの使用に関する説明
http://download.oracle.com/docs/cd/E15523_01/web.1111/b52029/toc.htm

- Oracle ADFコンポーネントのホーム・ページから使用できるADFタグのガイド

28.5.3 その他のコンソール

セルフ・サービスからの機能は、iam-consoles-faces.war/WEB-INF/faces-config-self.xmlファイルを編集することにより削除できます。

たとえば、「プロファイル」タブをセルフ・サービスで非表示にすることにより無効化するには、ファイルで次のようにコメントします。

- この機能に対応するマネージドBean定義の場合

<!--managed-bean>
<managed-bean-name>myProfilePrimaryOperation</managed-bean-name>
....
<managed-bean-->

- この機能に対応するマップ・エントリの場合

<!--map-entry>
<key>#{myProfilePrimaryOperation.entityTypeId}</key>
<value>#{myProfilePrimaryOperation}</value>
</map-entry-->

28.6 コンソールの表での列の追加または削除

この項では、UIの検索可能な列を追加または削除する方法について説明します。内容は次のとおりです。

- アイデンティティ管理

- 暫定UI

28.6.1 アイデンティティ管理

アイデンティティ管理の表では、標準のADF機能が使用されます。UIにおける多くの拡張検索ページには、ユーザーが追加の検索可能属性から選択できるよう「フィールドの追加」ボタンがあります。ユーザー、ロールおよび組織を検索できるようにするには、スキーマで検索可能であるとして属性がマークされている必要があります。

関連項目:

Oracle ADFコンポーネントのホーム・ページから入手できるADFタグのガイドを参照してください。

表28-1は、jsffファイルと対応するコードの一部分を示しており、これを使用して、アイデンティティ管理の表をカスタマイズできます。

表28-1 アイデンティティ管理の表をカスタマイズするために変更するファイル

jsffファイル

コードの一部分

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/advsearch/AdvancedSearchview.jsff

<af:table var="row" rowBandingInterval="0" id="t1"
binding="#{pageFlowScope.userAdvancedSearchBean.table}"
value="#{pageFlowScope.userAdvancedSearchBean.searchResult}"
emptyText="#{resUI.empty_table_string}"
columnStretching="none"
rowSelection="multiple" fetchSize="#{pageFlowScope.userAdvancedSearchBean.fetchSize}"
selectionListener="#{pageFlowScope.userAdvancedSearchBean.tableListener.processSelection}"
sortListener="#{pageFlowScope.userAdvancedSearchBean.sortListener.processSort}"
contextMenuId="::contextPopup2">
<af:forEach items="#{pageFlowScope.userAdvancedSearchBean.columns}"
var="def" varStatus="defIndex">
<c:choose>
<c:when test="${defIndex.index == 0}">
<af:column headerText="#{pageFlowScope.userAdvancedSearchBean.advancedSearchAttrsTranslation[def.name]}"
sortable="true" id="c1" headerNoWrap="true"
sortProperty="#{def.name}">
<af:commandLink text="#{row[def.name]}" id="ot2"
actionListener="#{pageFlowScope.userAdvancedSearchBean.userLinkListener.processAction}"/>
</af:column>
</c:when>
<c:otherwise>
<af:column headerText="#{pageFlowScope.userAdvancedSearchBean.advancedSearchAttrsTranslation[def.name]}"
sortable="true" id="c2" headerNoWrap="true"
sortProperty="#{def.name}">
<af:outputText value="#{row[def.name]}" id="ot3"/>
</af:column>
</c:otherwise>
</c:choose>
</af:forEach>
</af:table>

#{pageFlowScope.userAdvancedSearchBean.columns}は、拡張検索結果の属性に対して構成される属性のリストを戻します。ユーザー用の拡張検索表の属性を変更する場合は、「拡張コンソール」、「ユーザー構成」、「検索構成」、「検索結果表構成」の属性を変更します。「検索結果表構成」の最初の属性が、リンクとして表示されます。

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff

「ロール」タブ:

<af:treeTable binding="#{pageFlowScope.modifyUserBean.roleTreeTable}"
value="#{pageFlowScope.modifyUserBean.treeModel}"
var="role" rowBandingInterval="1" id="ROLES_DATA"
rowSelection="single" columnStretching="last"
fetchSize="9" contentDelivery="immediate"
selectionListener="#{pageFlowScope.modifyUserBean.roleSelected}"
immediate="true" width="100%">
<f:facet name="nodeStamp">
<af:column sortable="true" width="350" sortProperty="roleDisplayName"
headerText="#{resUI.role_display_name_text}" id="c1">
<!--<af:group>-->
<!--<af:image source="/images/group_ena.png"/> -->
<af:outputText value="#{role.roleDisplayName}" id="ot52"/>
<!--</af:group>-->
</af:column>
</f:facet>

<af:column sortable="false" width="250"
headerText="#{resUI.role_name_text}"
align="start" id="c72">
<af:outputText value="#{role.roleName}" id="ot12"/>
</af:column>
<af:column sortable="false" width="250"
headerText="#{resUI.role_descripetion_text}"
align="start" id="c7">
<af:outputText value="#{role.description}" id="ot11"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.role_namespace_text}"
align="start" id="c71">
<af:outputText value="#{role.roleNameSpace}" id="ot111"/>
</af:column>
<!--af:column sortable="false"
headerText="#{resUI.role_assigned_on_text}"
align="start" id="c6">
<af:outputText value="#{role.provisionedOn}" id="ot1"/>
</af:column-->
</af:treeTable>

「ロール」タブには、要件に基づいて再配置または削除できる静的列が含まれています。ロール・オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.RoleDetailVOのインスタンスです。

public String getRoleName()
public String getProvisionedOn()
public String getMembershipType()
public String getDescription()
public List<RoleDetailVO> getChildren()
public String getRoleKey()
public String getRoleDisplayName()
public String getRoleNameSpace()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff

「リソース」タブ:

<af:table var="row" columnStretching="last"
summary="#{resUI.resources_table_summary_text}"
contentDelivery="immediate"
binding="#{pageFlowScope.modifyUserBean.resourceTable}"
fetchSize="60" id="t3"
emptyText="#{resUI.empty_table_string}"
value="#{pageFlowScope.modifyUserBean.resources}"
rowSelection="single"
selectionListener="#{pageFlowScope.modifyUserBean.showSelectedResourceDetailsAction}">

<af:column sortable="true"
headerText="#{resUI.resource_name_text}"
align="start" id="c6">
<af:commandLink id="com1" text="#{row.resourceName}" partialSubmit="true"
actionListener="#{pageFlowScope.modifyUserBean.showResourceDetailsReadOnlyAction}"
disabled="#{row.viewActionDisable}"/>
</af:column>
<af:column sortable="false" headerText="#{resUI.resource_type_text}"
align="start" id="c3">
<af:outputText value="#{row.type}" id="ot6"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.resource_status_text}"
align="start" id="c4">
<af:outputText value="#{row.status}" id="ot7"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.resource_provisioned_text}"
align="start" id="c5">
<af:outputText value="#{row.provisionedOn}" id="ot8"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.resource_request_key_text}"
align="start" id="c52">
<af:outputText value="#{row.requestId}" id="ot82"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.resource_service_account}"
align="start" id="c53">
<af:outputText value="#{row.serviceAccount}" id="ot84"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.resource_description_text}"
align="start" id="c51">
<af:outputText value="#{row.descriptiveData}" id="ot81"/>
</af:column>
</af:table>

「リソース」タブには、要件に基づいて再配置または削除できる静的列が含まれています。行オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.ResourceDetailVOのインスタンスです。

public String getResourceName()
public String getStatus()
public String getProvisionedOn()
public String getType()
public String getProcessInstanceKey()
public String getResourceUserKey()
public String getResourceKey()
public String getObjectInstanceForUserKey()
public String getTaskArchived()
public String getDescriptiveData()
public String getRequestId()
public String getServiceAccount()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff

「プロキシ」タブ:

<af:table var="row" rowBandingInterval="0" id="t5"
contentDelivery="lazy"
binding="#{pageFlowScope.modifyUserBean.proxyTable}"
emptyText="#{resUI.empty_table_string}"
value="#{pageFlowScope.modifyUserBean.proxyList}"
selectionListener="#{pageFlowScope.modifyUserBean.proxySelectionAction}"
columnStretching="last" rowSelection="single">
<af:column sortable="true"
headerText="#{resUI.proxy_name_text}" id="c9"
sortProperty="proxyName">
<af:commandLink text="#{row.proxyName}" id="ot4"
actionListener="#{pageFlowScope.modifyUserBean.openProxyDetailPageAction}"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.proxy_start_date_text}"
id="c13">
<af:outputText value="#{row.startDate}" id="ot2"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.proxy_end_date_text}" id="c10">
<af:outputText value="#{row.endDate}" id="ot14"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.proxy_status_text}" id="c11">
<af:outputText value="#{row.status}" id="ot13"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.proxy_relationship_text}"
id="c12">
<af:outputText value="#{row.relationship}" id="ot15"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.proxy_last_updated_text}"
id="c8">
<af:outputText value="#{row.lastUpdated}" id="ot10"/>
</af:column>
</af:table>

「プロキシ」タブには、要件に基づいて再配置または削除できる静的列が含まれています。行オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.ProxyDetailVOのインスタンスです。

public String getStartDate()
public String getEndDate()
public String getStatus()
public String getRelationship()
public String getLastUpdated()
public String getProxyName()
public String getProxyKey()
public String getProxyNameUserKey()
public String getLoginUserKey()
public String getLoginUserName()
public String getRequestId()
public String getServiceAccount()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff

「直属の部下」タブ:

<af:table value="#{pageFlowScope.modifyUserBean.reportList}"
var="row" fetchSize="60"
binding="#{pageFlowScope.modifyUserBean.directReportiesTable}"
emptyText="#{resUI.empty_table_string}"
rowSelection="single" id="t6"
selectionListener="#{pageFlowScope.modifyUserBean.directReportSelectedAction}"
columnStretching="last">
<af:column sortProperty="Name" sortable="false"
headerText="#{resUI.username_header_text}"
id="column1">
<af:outputText value="#{row.userDisplayName}" id="outputText1"/>
</af:column>
<af:column sortProperty="Name" sortable="false"
headerText="#{resUI.userlogin_header_text}"
id="column2">
<af:outputText value="#{row.username}" id="outputText2"/>
</af:column>
<af:column sortProperty="Status" sortable="false"
headerText="#{resUI.status_header_text}"
id="column4">
<af:outputText value="#{row.identityStatus}"
id="outputText3"/>
</af:column>
<af:column sortProperty="Org" sortable="false"
headerText="#{resUI.organization_header_text}"
id="column5">
<af:outputText value="#{row.organization}" id="outputText4"/>
</af:column>
</af:table>

「直属の部下」タブには、要件に基づいて再配置または削除できる静的列が含まれています。行オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.ReportDetailVOのインスタンスです。

public String getUsername()
public String getFirstName()
public String getLastName()
public String getStatus()
public String getOrganization()
public String getEmail()
public String getPhone()
public String getGlobalID()
public String getIdentityStatus()
public String getAccountStatus()
public String getUserDisplayName()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff

「リクエスト」タブ:

<af:table var="row" rowBandingInterval="1" id="t8"
columnStretching="column:column7" rowSelection="single"
emptyText="#{resUI.empty_table_string}"
value="#{pageFlowScope.modifyUserBean.requestList}"
binding="#{pageFlowScope.modifyUserBean.requestsTable}">
<af:column sortable="true" sortProperty="requestID"
headerText="#{resUI.request_id_header_text}" id="c14">
<af:commandLink text="#{row.requestID}" id="cl1"
actionListener="#{pageFlowScope.modifyUserBean.showSelectedRequestDetailsAction}"/>
</af:column>
<af:column sortable="true" sortProperty="modelName"
headerText="#{resUI.request_model_name_header_text}"
id="c17" noWrap="false">
<af:outputText value="#{row.modelName}" id="ot18"/>
</af:column>
<af:column id="c18" headerText="#{resUI.request_status_text}"
noWrap="false">
<af:outputText value="#{row.status}" id="ot23"/>
</af:column>
<af:column sortable="true" sortProperty="requestedBy"
headerText="#{resUI.request_requested_by_header_text}"
id="c15">
<af:outputText value="#{row.requestedBy}" id="ot19"/>
</af:column>
<af:column sortable="false"
headerText="#{resUI.request_parent_id_header_text}"
id="c16">
<af:outputText value="#{row.parentID}" id="ot20"/>
</af:column>
<af:column sortable="false" headerText="#{resUI.request_date_requested_header_text}" id="column6">
<af:outputText value="#{row.dateRequested}" id="ot21"/>
</af:column>
</af:table>

「リクエスト」タブには、要件に基づいて再配置または削除できる静的列が含まれています。行オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.RequestDetailVOのインスタンスです。

public String getRequestID()
public String getRequestedBy()
public String getParentID()
public String getDateRequested()
public String getModelName()
public String getStatus()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/rolepicker/RolePicker.jsff

<af:table binding="#{pageFlowScope.rolePickerBean.table}"
value="#{pageFlowScope.rolePickerBean.results}" var="row"
emptyText="#{resUI.empty_table_string}" id="t1"
inlineStyle="width:inherit;" rowSelection="multiple"
columnBandingInterval="1" columnStretching="first"
fetchSize="40"
selectionListener="#{pageFlowScope.rolePickerBean.roleSelectAction}">
<af:column headerText="" id="c0" rowHeader="true" width="18px"/>
<af:column headerText="#{resUI.role_display_name_text}" id="c3"
headerNoWrap="true">
<af:outputText value="#{row.roleDisplayName}" id="ot5"/>
</af:column>
<af:column headerText="#{resUI.role_namespace_text}" id="c1"
headerNoWrap="true">
<af:outputText value="#{row.roleNameSpace}" id="ot3"/>
</af:column>
<af:column headerText="#{resUI.role_name_text}" id="c2"
headerNoWrap="true">
<af:outputText value="#{row.roleName}" id="ot4"/>
</af:column>
</af:table>

ロール・ピッカー・ポップアップの列は、要件に基づいて再配置または削除できます。ロール・オブジェクトは、次のメソッドを含むoracle.iam.identitytaskflow.common.model.vo.RoleDetailVOのインスタンスです。

public String getRoleName()
public String getProvisionedOn()
public String getMembershipType()
public String getDescription()
public List<RoleDetailVO> getChildren()
public String getRoleKey()
public String getRoleDisplayName()
public String getRoleNameSpace()

admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/search/SimpleSearchview.jsff

<af:table var="row" rowBandingInterval="0" id="t4"
binding="#{pageFlowScope.simpleSearchBean.table}"
value="#{pageFlowScope.simpleSearchBean.searchResult}"
emptyText="#{resUI.empty_table_string}"
columnStretching="last"
rowSelection="multiple"
fetchSize="#{pageFlowScope.simpleSearchBean.tableFetchSize}"
selectionListener="#{pageFlowScope.simpleSearchBean.processSelection}"
sortListener="#{pageFlowScope.simpleSearchBean.tableSortListener.processSort}">
.......
<af:column headerText="#{pageFlowScope.simpleSearchBean.headerText}"
sortable="true" id="c1"
headerNoWrap="true"
sortProperty="#{pageFlowScope.simpleSearchBean.sortProperty}">
<af:commandLink text="#{row[pageFlowScope.simpleSearchBean.sortProperty]}" id="ot2"
actionListener="#{pageFlowScope.simpleSearchBean.userLinkListener.processAction}"/>
</af:column>
</af:table>

oracle.iam.identitytaskflow.backing.taskflows.search.SimpleSearchView getSearchResult()メソッドは、ユーザー用の単純検索表に表示される文字列のリストを戻します。表示する必要がある値を含む属性は、拡張管理、ユーザー構成、検索構成、単純検索属性で定義された属性から、次の順序で決定されます。

1. 表示名

2. ユーザー・ログイン

3. ユーザー・キー

4. 拡張管理、ユーザー構成、検索構成、単純検索属性における最初の属性エントリ

admin.war/WEB-INF/lib/OESOIMTaskFlows.jar/taskflows/advsrh/AdvancedSearch.jsff

「認可ポリシー」タブの拡張検索機能は、admin.war/WEB-INF/lib/OESOIMTaskFlows.jar/taskflows/advsrh/AdvancedSearch.jsffファイルによって管理されます。ファイルの内容は次のとおりです。

<af:table var="row" columnStretching="last" id="shTable"
rowSelection="single" columnSelection="single"
contentDelivery="immediate"
summary="#{props['padvsrc.tabs.browse.columns.summary']}"
binding="#{pageFlowScope.advancedSearchBean.searchTableBinding}"
selectionListener="#{pageFlowScope.advancedSearchBean.selectSearchRow}"
emptyText="#{props['brsr.tabs.advsrch.emptyText']}"
shortDesc="#{props['brsr.tabs.advsrch.shortDesc']}"
value="#{pageFlowScope.advancedSearchBean.searchResultsModel}"
partialTriggers=":q2"
columnBandingInterval="1">
...
<af:column sortable="true"
sortProperty="authzPolicy.displayName"
headerText="#{props['padvsrc.columns.policy_name.headerText']}"
width="200" noWrap="false" align="start" id="c1">
<af:outputText value="#{row.authzPolicy.displayName}" id="ot2"/>
</af:column>

行オブジェクトは、次のgetterメソッドを含むoracle.iam.consoles.oesoim.tf.base.PolicyTableModel.SearchWrapperのインスタンスです。

public AuthzPolicy getAuthzPolicy()
public boolean getHasAssignment()
public boolean getHasAssignment()
public String getAssignment()
public boolean getHasPermissions()
public String getFirstPermission()
public String getPermissions()

28.6.2 暫定UI

管理およびユーザー・コンソールの暫定UIページで、タスクを実行するメニュー項目(アクセス・ポリシーの管理など)をクリックすると、検索ページが表示されます。たとえば、「アクセス・ポリシー」メニュー項目の下で「管理」リンクをクリックすると、アクセス・ポリシーを検索するための2つのドロップダウン・メニューを含む「アクセス・ポリシーの管理」ページが表示されます。ドロップダウン・メニューの数およびドロップダウン・メニュー項目をカスタマイズできます。

検索結果が表示されたら、各ページに表示される結果表の最大行数を決定できます。ユーザーが結果表から項目を選択すると、詳細ページ(「リソースの詳細」ページなど)が表示されます。詳細ページには、追加の詳細メニューが含まれています。これらのメニュー項目をカスタマイズできます。

この項には次のトピックが含まれます:

- 検索ドロップダウン項目のカスタマイズ

- 検索ドロップダウン項目数および検索結果数のカスタマイズ

28.6.2.1 検索ドロップダウン項目のカスタマイズ

Design Consoleを使用して、検索ページの検索コードおよび追加詳細を変更します。ドロップダウンをカスタマイズするには、次の手順を実行します。

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

2. 「管理」→「参照定義」に移動して、「参照定義」フォームを開きます。

3. 必要な検索定義を検索して特定します。

ヒント:

検索基準について、lookup.webclient*検索を使用して検索ページを見つけるか、または*additional_detailsを使用して追加詳細を見つけます。

4. 検索コードに対して必要な変更を行い、各検索ページのドロップダウン・メニューに表示されるオプションを設定します。

- コード・キーは各列のメタデータです。

- デコード値は、管理およびユーザー・コンソールに表示される値です。

- コード・キーリストでの項目の表示順序は、管理およびユーザー・コンソールのドロップダウン・リストでの表示順序です。エントリを削除し、再度追加すると、そのエントリはリストの最後に表示されます。

5. 変更を保存します。

28.6.2.2 検索ドロップダウン項目数および検索結果数のカスタマイズ

ドロップダウン・メニューの数および各ページの検索結果の最大数を変更するには、xlDefaultAdmin.propertiesファイルを編集します。

ドロップダウン・メニューの数を設定するには、次の手順を実行します。

1. xlDefaultAdmin.propertiesファイルを開きます。

2. 表28-2からプロパティを特定し、必要に応じて編集します。

表28-2 検索ページのメニュー数を決定するプロパティ

プロパティ名

デフォルト

ページ

global.property.numsearchaccesspolicyfields

2

アクセス・ポリシー

global.property.numsearchresourcefields

2

リソース検索

global.property.numsearchattestationprocessfields

3

アテステーション・プロセス

3. 各ページの検索結果の最大数を変更するには、プロパティglobal.displayrecordNum.valueの値を必要な値に変更します。デフォルト値は10です。

4. ファイルを保存します。

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

28.7 データ・カスタマイズ

この項では、様々なコンソールのフォーム・テンプレートをカスタマイズできる方法について説明します。内容は次のとおりです。

- 拡張管理

- 認証されていないセルフ・サービス

- 認証されたセルフ・サービス

28.7.1 拡張管理

リクエスト・テンプレートを変更して、自己登録やリクエスト・フォームのリクエスト属性をカスタマイズできます。

詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドのリクエスト・テンプレートの管理に関する説明を参照してください。

28.7.2 認証されていないセルフ・サービス

自己登録に使用されるテンプレートは、SelfCreateUserDataSet.xmlファイル内のテンプレート属性を指定することによりカスタマイズできます。これにより、属性をレンダリングしたり、制限事項を指定することもできます。

28.7.3 認証されたセルフ・サービス

「ユーザー構成」のUIを使用して、「プロファイル」ページの属性を表示または非表示にするようユーザー・フォームを構成できます。

「プロファイル」ページに属性を表示するために必要な手順は、次のとおりです。

1. 「プロファイル」ページを確認して、必要なカスタマイズを決定します。

2. 拡張管理に移動し、「構成」の下で「ユーザー構成」をクリックします。

3. 「アクション」メニューから、「ユーザー属性」を選択します。

4. 「プロファイル」ページに表示する属性を選択し、「アクション」メニューから「属性の変更」を選択します。

5. 可視性を「はい」に変更して、「保存」をクリックします。
「プロファイル」ページに、この属性が表示されるようになります。

このページの属性を非表示にするには、同様の手順を使用できます。

28.8 カスタムURLの挿入

この項では、カスタマイズされたURLをコンソールに挿入する方法について説明します。トピックは次のとおりです。

- アイデンティティ管理のカスタムURL

- その他のコンソールのカスタムURL

28.8.1 アイデンティティ管理のカスタムURL

アイデンティティ管理はADFタスク・フローとして開発されました。タスク・フローの.jsffファイルを変更して、カスタムURLを挿入できます。次のWebサイトで、Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイドのナビゲーション・コンポーネントの使用に関する説明を参照してください。

http://download.oracle.com/docs/cd/E15523_01/web.1111/b52029/toc.htm

28.8.2 その他のコンソールのカスタムURL

認証されていないセルフ・サービス、認証されたセルフ・サービスおよび拡張管理では、カスタムURLを挿入するための2つのオプションがあります。

認証されていないセルフ・サービス、認証されたセルフ・サービスおよび拡張管理のページを使用すると、対応する.jspxファイルを編集することによりカスタムURLを追加できます。これには、ヘッダーなどの場所にADFタグを使用してカスタムURLを配置するオプションがあります。

ファイルは次のとおりです。

認証されていないセルフ・サービスの場合:

iam-consoles-faces.war/pages/USelf.jspx

認証されたセルフ・サービスの場合:

iam-consoles-faces.war/pages/Self.jspx

拡張管理の場合:

iam-consoles-faces.war/pages/Admin.jspx

注意:

.jspxファイルで許可された別の場所にさらに静的テキストを追加するには、同じファイルを使用できます。たとえば、ヘッダー・リージョンに静的テキストを追加するには、ファイルで適切なadfファセットを識別し、標準のadfタグを使用してこのような情報を配置します。

28.9 ポップアップ・プロパティの変更

認証されていないセルフ・サービス、認証されたセルフ・サービスおよび拡張管理のポップアップを変更して、プロパティを変更できます(サイズ変更のオンとオフの切替えなど)。これを行うには、対応する.jspxファイルを変更してポップアップ定義を変更します。

ファイルは次のとおりです。

認証されていないセルフ・サービスの場合:

iam-consoles-faces.war/pages/USelf.jspx

認証されたセルフ・サービスの場合:

iam-consoles-faces.war/pages/Self.jspx

拡張管理の場合:

iam-consoles-faces.war/pages/Admin.jspx

たとえば、操作ポップアップ(確認やメッセージのポップアップとは異なり、なんらかの操作を含むポップアップのことです)により、POPUP_FORM_0の定義が検索されます。この定義内に含まれている<af:dialog />定義に、resize="on"を次のように追加します。

<af:popup id="POPUP_FORM_0" clientComponent="true"                 contentDelivery="lazyUncached">
<af:dialog binding="#{admin.view.popupForms[0].dialog}"
resize="on"  clientComponent="true" cancelVisible="false"
…

28.10 ワークフロー・デザイナのカスタマイズ

特定のロケールの必要に応じて、ワークフロー・デザイナのユーザー・インタフェースをカスタマイズするには、多数のプロパティを利用できます。これらのプロパティ・ファイルは、xlWebApp\WEB-INF\classes\xlRichClient_LOCALE.propertiesにあります。

この項では、ワークフロー・デザイナのカスタマイズ例について、いくつか説明します。

タスク名のラベル幅は、次を使用してカスタマイズできます。

global.workflowRenderer.labelWidthFactor=7

特定のロケールでテキストが切り捨てられると思われる場合、このプロパティを適宜変更して、ラベル幅を変更できます。

同様に、タスクおよびレスポンスを表すアイコンの幅と高さは、次を使用して制御できます。

workflowRenderer.referenceMarker.defaultHeight=22
workflowRenderer.referenceMarker.defaultWidth=22
workflowRenderer.referenceMarker.defaultDistance=6
workflowRenderer.referenceMarker.maxLabelLength=5

workflowRenderer.response.defaultHeight=20
workflowRenderer.response.defaultWidth=250
workflowRenderer.response.maxLabelLength=25

workflowRenderer.task.defaultHeight=38
workflowRenderer.task.defaultWidth=38
workflowRenderer.task.maxLabelLength=200

デザイナの実装における別の場所での検索機能では、ユーザーおよびグループが検索される場合、結果数が多くなる可能性があります。表示される結果数を制御するには、次のプロパティを使用できます。

workflowDesigner.label.limitUserSearchResults=200
workflowDesigner.label.limitGroupSearchResults=200
workflowDesigner.label.limitAdapterSearchResults=200
workflowDesigner.label.limitEmailTemplateSearchResults=200
workflowDesigner.label.limitRulesSearchResults=200
workflowDesigner.label.limitAssignTypeSearchResults=200
workflowDesigner.label.limitDependentDataTaskSearchResults=200
workflowDesigner.label.limitExistingTasksSearchResults=200

戻される結果数がこれらの数より多くなると、検索基準を絞り込むようメッセージが表示されます。

29 カスタムADFタブのセルフ・サービスへの追加

この章では、ADFページ・フラグメントをOracle Identity Managerセルフ・サービスに追加する機能について説明します。

セルフ・サービスでの複雑なカスタマイズを有効にするには、セルフ・サービスの「タスク」セクション、「リクエスト」セクションおよび「プロファイル」セクションの右側に最上位タブを追加します。これを行うには、次の手順を実行します。

1. UIカスタマイズの新規.jsffフラグメントを作成します。
ADFでは、個別のファイルを.jspxファイルに埋め込むdeclarativeComponentタグが提供されます。このタグを使用して、カスタム・ページ・フラグメントをSelf.jspxに埋め込みます。カスタム・ファイルは、/web/pageFragments/ディレクトリのiam-consoles-faces.warにある必要があります。たとえば、/web/pageFragments/custom/Custom.jsffとなります。

次に、ページ・ヘッダーとともに簡単な開始例を示します。

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
xmlns:f="http://java.sun.com/jsf/core">
<jsp:directive.page contentType="text/html;charset=utf-8"/>
<af:componentDef>
<af:panelStretchLayout id="psl1a" topHeight="auto" startWidth="0px"
endWidth="0px" bottomHeight="0px">
<f:facet name="bottom"/>
<f:facet name="start"/>
<f:facet name="end"/>
<f:facet name="top">
<af:panelHeader id="ph1a" size="-1" text="">
<f:facet name="context">
<af:outputText value="Customize Fragment" id="ot2a" inlineStyle="font-size:15px"/>
</f:facet>
<f:facet name="menuBar"/>
<f:facet name="toolbar"/>
<f:facet name="legend">
<af:separator id="s2a"/>
</f:facet>
<f:facet name="info"/>
</af:panelHeader>
</f:facet>
</af:panelStretchLayout>
</af:componentDef>
</jsp:root>

2. UIカスタマイズのマネージドBeanを作成し、別の.jarファイルでBeanをコンパイルして、このBeanをiam-consoles-faces.warに追加します。

注意:

通常、JavaServer Facesアプリケーションには、ページで使用されるUIコンポーネントに関連付けられているJavaBeansコンポーネントであるマネージドBeanまたはバッキングBeanが1つ以上含まれています。バッキングBeanはUIコンポーネントのプロパティを定義します(各プロパティはコンポーネントの値またはコンポーネント・インスタンスにバインドされます)。また、バッキングBeanでは、検証、イベント処理、ナビゲーション処理などのコンポーネントに関連した機能を実行するメソッドも定義できます。

カスタム・ビジネス・ロジックを指定するには、各カスタム・ページに新規マネージドBeanを作成する必要があります。新規マネージドBeanは、iam-consoles-faces.warに追加できる新規.jarファイルにコンパイルする必要があります。

3. カスタマイズ・ページをfaces-config-self.xmlに追加します。
次のようにカスタム・ページを定義します。

<managed-bean>
<managed-bean-name>customPage</managed-bean-name>
<managed-bean-class>
oracle.iam.consoles.faces.backing.Self$OperationAction
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<property-class>java.lang.String</property-class>
<value>customization_page</value>
</managed-property>
<managed-property>
<property-name>pageUrl</property-name>
<property-class>java.lang.String</property-class>
<value>../pageFragments/custom/Custom.jsff</value>
</managed-property>
</managed-bean>

次のようにカスタム・ページをprimaryOperationsMapに追加します。

<managed-bean>
<managed-bean-name>primaryOperationsMap</managed-bean-name>
<managed-bean-class>java.util.LinkedHashMap</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<map-entries>
<key-class>java.lang.String</key-class>
<value-class>oracle.iam.consoles.faces.backing.Self$OperationAction</value-class>
<map-entry>
<key>#{myTaskPrimaryOperation.entityTypeId}</key>
<value>#{myTaskPrimaryOperation}</value>
</map-entry>
<map-entry>
<key>#{myRequestPrimaryOperation.entityTypeId}</key>
<value>#{myRequestPrimaryOperation}</value>
</map-entry>
<map-entry>
<key>#{myProfilePrimaryOperation.entityTypeId}</key>
<value>#{myProfilePrimaryOperation}</value>
</map-entry>
<!-- New custom fragments -->
<map-entry>
<key>#{customPage.id}</key>
<value>#{customPage}</value>
</map-entry>
</map-entries>
</managed-bean>

4. 新規マネージドBeanをfaces-config-self.xmlに追加します。
oim.ear/iam-consoles-faces.war/WEB-INF/faces-config-self.xmlファイルで新規マネージドBeanクラスを次のように構成する必要があります。

<managed-bean>
<managed-bean-name>customBean</managed-bean-name>
<managed-bean-class>oracle.iam.consoles.faces.custom.CustomBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

5. 次のようにタブ名のカスタム・プロパティをSelf.propertiesに追加します。

注意:

リソース名の最初の部分は、手順3のmanaged-bean idパラメータと一致する必要があります。

customization_page.text=Custom
customization_page.shortDesc=Custom Description

30 一般的なカスタマイズの概念

Design Consoleは、フォームやワークフローの設計、アダプタの作成と管理など、構成や設計のための各種機能を備え、Oracle Identity Managerのカスタマイズに使用できます。Design Consoleでは、アプリケーション構成の特定領域を扱うための権限をユーザーに付与できます。

この章の内容は、次のとおりです。

- ルール要素、変数、データ型およびシステム・プロパティ

- サービス・アカウント

- Design Consoleのアクション

30.1 ルール要素、変数、データ型およびシステム・プロパティ

Design Consoleでは、ルールのルール要素の追加と変更、電子メール定義の作成または編集、フォームの作成など、Oracle Identity Managerのカスタマイズ・タスクを行うことができます。これらのカスタマイズ・タスクでは、パラメータ、変数およびデータ型を設定する必要があります。この項では、これらのパラメータ、変数およびデータ型について説明します。

「ルール・デザイナ」フォームの「ルール要素」タブでは、ルールの要素およびネストしたルールを作成および管理できます。表30-1に、「ルール・デザイナ」フォームでOracle Identity Managerのルールの作成に使用できるルール要素を示します。

表30-1 Oracle Identity Managerのルールを作成するためのルール要素

タイプ

サブタイプ

属性ソース

変数

一般

NA

ユーザー・プロファイル・データ

電子メール

終了日

名

アイデンティティ

姓

表示名

マネージャ

ミドル・ネーム

組織名

ユーザー・ロール名

開始日

一般

該当なし

ユーザー・プロファイル・データ

ユーザー・タイプ

アイデンティティ・ステータス

ユーザー・ログイン

Design Consoleのアクセス

「ユーザー」フォームの「ユーザー定義フィールド」タブの「ユーザー定義フィールド」に表示される任意のフィールド

プロセス決定

組織プロビジョニング

リクエスタ情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

「ユーザー」フォームの「ユーザー定義フィールド」タブの「ユーザー定義フィールド」に表示される任意のフィールド

プロセス決定

組織プロビジョニング

オブジェクト情報

オブジェクト名

オブジェクト・タイプ

リクエスト・ターゲット情報

組織カスタマ・タイプ

組織名

組織ステータス

親組織

「組織」フォームの「ユーザー定義フィールド」タブに表示される任意のフィールド

オブジェクト・データ情報

リソース・オブジェクトに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

プロセス・データ情報

プロセスに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

ユーザー・プロビジョニング

リクエスタ情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

ユーザー・タイプ

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

FormMetadata.xmlユーザー自己登録内、およびユーザー・プロファイル変更セクションでプロパティuseInRuleがtrueに設定されている任意のフィールド

オブジェクト情報

オブジェクト名

オブジェクト・タイプ

リクエスト・ターゲット情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

ユーザー・タイプ

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

FormMetadata.xmlユーザー自己登録内、およびユーザー・プロファイル変更セクションでプロパティuseInRuleがtrueに設定されている任意のフィールド

プロセス決定

ユーザー・プロビジョニング

リクエスタ情報; リクエスト・ターゲット情報

「ユーザー」フォームの「ユーザー定義フィールド」タブの「ユーザー定義フィールド」に表示される任意のフィールド

オブジェクト情報

オブジェクト名

オブジェクト・タイプ

オブジェクト・データ情報

リソース・オブジェクトに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

プロセス・データ情報

プロセスに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

タスクの割当て

組織のプロビジョニング; ユーザーのプロビジョニング

タスク情報

保留中の取消しを許可

複数のインスタンスを許可

マネージャへのタスクの割当て

手動挿入不可

タスク(条件付き)

タスク・データ・ラベル

タスクのデフォルト割当て先

タスク名

完了する必要があるタスク

タスク順序

プロセス情報

オブジェクト名

プロセス名

プロセス・タイプ

オブジェクト情報

オブジェクト名

オブジェクト・タイプ

リクエスタ情報

電子メール

終了日

名

アイデンティティ

タスクの割当て

組織のプロビジョニング; ユーザーのプロビジョニング

リクエスタ情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

ユーザー・タイプ

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

「ユーザー」フォームの「ユーザー定義フィールド」タブの「User Defined Fields」に表示される任意のフィールド

オブジェクト・データ情報

リソース・オブジェクトに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

プロセス・データ情報

プロセスに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

事前移入

組織のプロビジョニング; ユーザーのプロビジョニング

リクエスタ情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

ユーザー・タイプ

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

「ユーザー」フォームの「ユーザー定義フィールド」タブの「User Defined Fields」に表示される任意のフィールド

リクエスト情報

リクエスト作成日

リクエストID

リクエスト・オブジェクト・アクション

リクエスト優先度

リクエスタ

オブジェクト情報

オブジェクト名

オブジェクト・タイプ

オブジェクト・データ情報

リソース・オブジェクトに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

プロセス・データ情報

プロセスに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

組織プロビジョニング

リクエスト・ターゲット情報

組織カスタマ・タイプ

組織名

組織ステータス

親組織

「組織」フォームの「ユーザー定義フィールド」タブに表示される任意のフィールド

ユーザー・プロビジョニング

リクエスト・ターゲット情報

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ・ログイン

事前移入

ユーザー・プロビジョニング

リクエスト・ターゲット情報

表示名

電子メール

終了日

名

アイデンティティ

姓

マネージャの氏名

マネージャ

ミドル・ネーム

組織名

ユーザー・タイプ

開始日

アイデンティティ・ステータス

ユーザー・ロール名

ユーザー・ログイン

Design Consoleのアクセス

「ユーザー」フォームの「ユーザー定義フィールド」タブの「User Defined Fields」に表示される任意のフィールド

「電子メール定義」フォームを使用して、ユーザーに送信される電子メール通知のテンプレートを作成できます。表30-2に、「電子メール定義」フォームで電子メールのテンプレートの作成に使用できる変数を示します。

表30-2 テンプレートを作成するための変数

タイプ

ターゲット

ロケーション・タイプ

連絡先タイプ

変数

プロビジョニング関連

ユーザー・プロファイル情報; 割当て先プロファイル情報

該当なし

該当なし

名

アイデンティティ

姓

マネージャ・ログイン

ミドル・ネーム

ロール

ステータス

終了日

ユーザー・グループ名

ユーザー・ログイン

ユーザー・マネージャ

開始日

Oracle Identity Managerタイプ

マネージャの氏名

組織名

電子メール

プロビジョニング関連

ユーザー・プロファイル情報; 割当て先プロファイル情報

該当なし

該当なし

「ユーザー」フォームの「ユーザー定義フィールド」タブの「User Defined Fields」に表示される任意のフィールド

オブジェクト情報

該当なし

該当なし

オブジェクト名

オブジェクト・ターゲット・タイプ

オブジェクト・タイプ

プロセス情報

該当なし

該当なし

オブジェクト名

プロセス名

プロセス・タイプ

オブジェクト・データ情報

該当なし

該当なし

リソース・オブジェクトに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

プロセス・データ情報

該当なし

該当なし

プロセスに関連付けられたカスタム・フォームについて「フォーム・デザイナ」フォームの「追加列」タブに表示される任意のフィールド

一般

ユーザー・プロファイル情報

該当なし

該当なし

名

アイデンティティ

姓

電子メール・アドレス

マネージャ・ログイン

ミドル・ネーム

ロール

ステータス

ユーザー終了日

ユーザー・グループ名

ユーザー・ログイン

ユーザー・マネージャ

ユーザー開始日

Oracle Identity Managerタイプ

「ユーザー」フォームの「ユーザー定義フィールド」タブの「User Defined Fields」に表示される任意のフィールド

表30-3に、「フォーム・デザイナ」フォームを使用したOracle Identity Managerフォームの作成に使用されるデータ型に関連付けられるプロパティを示します。

表30-3 Oracle Identity Managerフォーム作成用のデータ型に関連付けるプロパティ

データ型

データ・プロパティ

説明

テキスト・フィールド

必須

フォームの保存にこのテキスト・フィールドの入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能

Oracle Identity Managerでフォームが生成された際にこのテキスト・フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

参照フィールド

オートコンプリート

対応する「プロパティ値」フィールドにtrueと入力すると、Oracle Identity Managerで参照フィールドがフィルタ処理されます。ユーザーは、ダブルクリックする前に参照フィールドに文字を追加できます。これにより、これらの文字と一致する参照値のみが参照ウィンドウに表示されます。

たとえば、「State」参照フィールドの場合、ユーザーはこのフィールドにnewと入力できます。ユーザーが参照フィールドをダブルクリックすると、newで始まる州(New Hampshire、New Jersey、New MexicoおよびNew Yorkなど)のみが参照ウィンドウに表示されます。Oracle Identity Managerで参照フィールドのフィルタ処理をしない場合は、対応する「プロパティ値」フィールドにfalseと入力します。

「オートコンプリート」プロパティのデフォルト・プロパティ値は、falseです。

列見出し

対応する「プロパティ値」フィールドに、ユーザーが参照フィールドをダブルクリックしたときに参照ウィンドウに表示される列見出しの名前を入力します。参照ウィンドウに複数の列がある場合は、各列見出しを「Organization Name, Organization Status」のようにカンマで区切って「プロパティ値」フィールドに入力します。

参照フィールド

列名

対応する「プロパティ値」フィールドに、参照ウィンドウに表示する列見出しを表すデータベース列の名前を入力します。

参照ウィンドウに複数の列がある場合は、各データベース列をカンマで区切って「プロパティ値」フィールドに入力します。

列幅

対応する「プロパティ値」フィールドに、参照ウィンドウに表示される列の幅を入力します。

参照ウィンドウに複数の列がある場合は、各列の幅を「20,20」のようにカンマで区切って「プロパティ値」フィールドに入力します。

参照列名

対応する「プロパティ値」フィールドに、参照列の名前をデータベースで表示されるとおりに入力し、これをデータベースに保存する必要があります。

参照問合せ

対応する「プロパティ値」フィールドに、ユーザーが参照フィールドをダブルクリックしたときに実行されるSQL問合せの名前を入力します。この結果、該当する参照列が参照ウィンドウに表示されます。

問合せから返されるデータを正しく表示するには、xlWebAdmin_locale.propertiesファイルにlookupfield.headerプロパティを追加する必要があります。たとえば、select usr_status from usrというSQL問合せの場合を考えます。この問合せから返されるデータを表示するには、xlWebAdmin_ locale.propertiesファイルに次のエントリを追加する必要があります。

lookupfield.header.users.status=User Status

xlWebAdmin_locale.propertiesファイルに、指定した問合せに対するlookupfield.headerプロパティがない場合、対応する参照アイコンをクリックすると、管理およびユーザー・コンソールに参照ウィンドウが表示されます。

lookupfield.headerプロパティの構文は次のとおりです。

lookupfield.header.column_code=display value

エントリのcolumn_code部分は小文字で、空白はアンダースコア(_)に置き換えます。

参照フィールドの列ヘッダーに対する次のエントリが、デフォルトでシステム・リソース・バンドルで使用可能です。

lookupfield.header.lookup_definition.lookup_ code_information
.code_key=Value
lookupfield.header.lookup_definition.lookup_code_information
.decode=Description
lookupfield.header.users.manager_login=User ID
lookupfield.header.organizations.organization_ name=Name
lookupfield.header.it_resources.key=Key
lookupfield.header.it_resources.name=Instance Name
lookupfield.header.users.user_id=User ID
lookupfield.header.users.last_name=Last Name
lookupfield.header.users.first_name=First Name
lookupfield.header.groups.group_name=Group Name
lookupfield.header.objects.name=Resource Name
lookupfield.header.access_policies.name=Access Policy Name

参照フィールド

参照コード

対応する「プロパティ値」フィールドに、参照定義コードを入力します。このコードには、参照値や参照値が選択されたときに参照フィールドに表示されるテキストなどの参照フィールドに関係するすべての情報が含まれます。

重要: 「参照コード」データ・プロパティは、「列見出し」、「列名」、「列幅」、「参照列名」および「参照問合せ」プロパティのかわりに使用できます。また、これらの5つのデータ・プロパティの値セットは、「参照コード」プロパティに含まれる情報によって無効になります。

ヒント: 参照コードを入力する簡単な方法は、「参照定義」フォームを起動して目的のコードを問い合せ、このコードをクリップボードにコピーして「参照コード」フィールドに貼り付けることです。

注意: 参照定義コードの分類タイプは、参照タイプ(「参照定義」フォームの「参照タイプ」ラジオ・ボタンを選択)である必要があります。

必須

フォームの保存にこの参照フィールドの入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこの参照フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

テキスト領域

行数

対応する「プロパティ値」フィールドに、テキスト領域の行の長さを入力します。テキスト領域の長さを5行にする場合は、「プロパティ値」フィールドに5と入力します。

必須

フォームの保存にこのテキスト領域の入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのテキスト領域が表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

ITリソース参照フィールド

タイプ

このデータ・プロパティを選択すると、「プロパティ値」フィールドにボックスが表示されます。このボックスから、ITリソースのサーバーのタイプを選択します。

重要: このプロパティは必須です。

必須

フォームの保存にこの参照フィールドの入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこの参照フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

日時ウィンドウ

必須

フォームの保存にこのテキスト・フィールドの入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このテキスト・フィールドに入力するには、これをダブルクリックし、表示された日時ウィンドウから日付と時間を選択します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのテキスト・フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

パスワード・フィールド

必須

フォームの保存にこのテキスト・フィールドの入力が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのテキスト・フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

参照フィールド

参照コード

対応する「プロパティ値」フィールドに、参照定義コードを入力します。このコードには、参照値や参照値が選択されたときに参照フィールドに表示されるテキストなどの参照フィールドに関係するすべての情報が含まれます。

参照問合せ

対応する「プロパティ値」フィールドに、ユーザーが参照フィールドをダブルクリックしたときに実行されるSQL問合せの名前を入力します。この結果、該当する参照列が参照ウィンドウに表示されます。

問合せから返されるデータを正しく表示するには、xlWebAdmin_locale.propertiesファイルにlookupfield.headerプロパティを追加する必要があります。たとえば、select usr_status from usrというSQL問合せの場合を考えます。この問合せから返されるデータを表示するには、xlWebAdmin_ locale.propertiesファイルに次のエントリを追加する必要があります。

lookupfield.header.users.status=User Status

xlWebAdmin_locale.propertiesファイルに、指定した問合せに対するlookupfield.headerプロパティがない場合、対応する参照アイコンをクリックすると、管理およびユーザー・コンソールに参照ウィンドウが表示されます。

lookupfield.headerプロパティの構文は次のとおりです。

lookupfield.header.column_code=display value

エントリのcolumn_code部分は小文字で、空白はアンダースコア(_)に置き換えます。

参照フィールドの列ヘッダーに対する次のエントリが、デフォルトでシステム・リソース・バンドルで使用可能です。

lookupfield.header.lookup_definition.lookup_ code_information
.code_key=Value
lookupfield.header.lookup_definition.lookup_code_information
.decode=Description
lookupfield.header.users.manager_login=User ID
lookupfield.header.organizations.organization_ name=Name
lookupfield.header.it_resources.key=Key
lookupfield.header.it_resources.name=Instance Name
lookupfield.header.users.user_id=User ID
lookupfield.header.users.last_name=Last Name
lookupfield.header.users.first_name=First Name
lookupfield.header.groups.group_name=Group Name
lookupfield.header.objects.name=Resource Name
lookupfield.header.access_policies.name=Access Policy Name

列名

対応する「プロパティ値」フィールドに、参照ウィンドウに表示する列見出しを表すデータベース列の名前を入力します。

参照ウィンドウに複数の列がある場合は、各データベース列をカンマで区切って「プロパティ値」フィールドに入力します。

ラジオ・ボタン

必須

フォームの保存にこのラジオ・ボタンの選択が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのラジオ・ボタン(または、ラジオ・ボタンのグループ)が表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

チェック・ボックス

必須

フォームの保存にこのチェック・ボックスの選択が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのチェック・ボックスが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

コンボ・ボックス

参照コード

対応する「プロパティ値」フィールドに、参照定義コードを入力します。このコードには、ボックス項目や参照値が選択されたときにボックスに表示されるテキストなどのボックスに関係するすべての情報が含まれます。

重要: 「参照コード」データ・プロパティは、「列見出し」、「列名」、「列幅」、「参照列名」および「参照問合せ」プロパティのかわりに使用できます。また、これらの5つのデータ・プロパティの値セットは、「参照コード」プロパティに含まれる情報によって無効になります。

ヒント: 参照コードを入力する簡単な方法は、「参照定義」フォームを起動して目的のコードを問い合せ、このコードをクリップボードにコピーして「参照コード」フィールドに貼り付けることです。

注意: 参照定義コードの分類タイプは、参照タイプ(「参照定義」フォームの「参照タイプ」オプションを選択)である必要があります。

必須

フォームの保存にこのボックス・フィールドからの項目の選択が必要な場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、falseです。

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのボックスが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

テキスト・フィールド(表示のみ)

表示可能フィールド

Oracle Identity Managerでフォームが生成された際にこのテキスト・フィールドが表示されるようにする場合は、対応する「プロパティ値」フィールドにtrueと入力します。そうでない場合は、このフィールドにfalseと入力します。

注意: このデータ・プロパティのデフォルト値は、trueです。

30.2 サービス・アカウント

サービス・アカウントは、メンテナンス目的で使用される一般的な管理者アカウントです。通常、一連のユーザーによって共有されます。サービス・アカウントは、通常のアカウントと同様の方法でリクエスト、プロビジョニングおよび管理されます。サービス・アカウントは、内部フラグによって通常のアカウントと区別されます。

ユーザーがサービス・アカウントを使用してプロビジョニングされると、Oracle Identity Managerで、ユーザーのアイデンティティからサービス・アカウントへのマッピングが管理されます。このユーザーは、サービス・アカウントの所有者とみなされます。ユーザーが削除された、またはリソースが失効された場合、取消しタスクが発生するはずだったサービス・アカウントのプロビジョニング・プロセスの取消しは行われません。かわりに、Oracle Identity Managerでの無効化および有効化アクションと同様の方法で、タスクがプロビジョニング・プロセスに挿入されます。このタスクによってユーザーからサービス・アカウントへのマッピングが削除され、サービス・アカウントが使用可能なアカウントのプールに戻されます。この管理機能は、APIを通じて公開されています。

表30-4に、サービス・アカウントの管理タスクとこれに対応するAPIを示します。

表30-4 サービス・アカウントの管理タスクと対応するAPI

タスク

説明

APIメソッド

サービス・アカウントの変更

既存の通常アカウントをサービス・アカウントに変更することも、既存のサービス・アカウントを通常アカウントに変更することもできます。どちらの場合も、サービス・アカウントの変更タスクがプロビジョニング・プロセスに挿入され、「プロセス定義」の「タスク」タブでアクティブになります。このプロビジョニング・プロセスに関連付けられている任意のアダプタが実行されます。アダプタがない場合は、事前定義されたレスポンス・コードが追加されます。

tcUserOperationsIntf.changeFromServiceAccount

tcUserOperationsIntf.changeToServiceAccount

サービス・アカウント・アラート

サービス・アカウントがリンクされているユーザーが削除または無効化された場合、「サービス・アカウント・アラート」タスクがサービス・アカウント・インスタンスのプロビジョニング・プロセスに挿入されます。このタスクを使用して、ユーザーに対して発生したイベントに応じた適切なアクションを開始できます。

該当なし

移動したサービス・アカウント

サービス・アカウントの所有権を、あるユーザーから別のユーザーに移すことができます。これによって、プロビジョニング・インスタンスは新しい所有者のリソース・プロファイルに表示され、古いユーザーのリソース・プロファイルには表示されなくなります。アカウントの移動後に、リソース・インスタンスのプロビジョニング・プロセスに「移動したサービス・アカウント」タスクが挿入されます。このプロビジョニング・プロセスに関連付けられている任意のアダプタが実行されます。アダプタがない場合は、事前定義されたレスポンス・コードが追加されます。

tcUserOperationsIntf.moveServiceAccount

30.2.1 サービス・アカウントのカスタマイズ: シナリオ1

次のシナリオでは、ユーザーがActive Directoryに対してサービス・アカウントをリクエストできるようにする方法について説明します。サービス・アカウントを作成するには、最初に通常アカウントを作成してから、changeToServiceAccount APIを使用してその通常アカウントをサービス・アカウントに変更します。次に、このプロセスを示します。

1. ユーザーがログインし、サービス・アカウントをリクエストします。

2. システムがActive Directoryスーパーバイザに承認を求めます。

3. Active Directoryスーパーバイザがリクエストを承認します。

4. サービス・アカウントが作成されます。

5. リクエストが承認されたことを示す通知が従業員に送信されます。

6. 後で、サービス・アカウント所有者のオフボーディングが行われると、その所有者のスーパーバイザがサービス・アカウントの新しい所有者として割り当てられ、新しい所有者に通知が送信されます。

このシナリオを実装するには、次の手順を実行します。

1. Active Directoryオブジェクト・フォームで、チェック・ボックス・フィールドを追加して、サービス・アカウントと通常アカウントのどちらをリクエストするかをユーザーが選択できるようにします。

2. Active Directoryプロセス・フォームを変更して、チェック・ボックス・フィールドを組み込み、データ・フローを確立します。

3. オブジェクト・フォームを更新するための権限をユーザーに付与します。
サービス・アカウントのリクエスト・プロセスは、ユーザーのセルフ・リクエスト・プロセスと同じです。リクエストは通常の方法で作成および承認されます。

4. アカウントの作成後に挿入されるプロビジョニング・プロセス(プロセス・フォームのサービス・アカウント・フラグをチェックし、現在のアカウントのoiu_keyを使用してchangeToServiceAccount() APIを呼び出すプロセス)に条件付きタスクを追加します。
プロビジョニングが開始されると、プロビジョニング・プロセスによってフラグがチェックされ、changeToServiceAccount() APIがロードされます。

タスクでは、タスク完了時に電子メール通知を送信できます。

5. ユーザーのオフボーディングが行われたら、アダプタを「サービス・アカウント・アラート」タスクにアタッチすることで、システムによって現在のユーザーの識別、そのユーザーのマネージャまたはスーパーバイザの参照、およびtcUserOperationsIntf.moveServiceAccount() APIのロードを通じて、サービス・アカウントの所有権が適切に再割当てされるようにします。

30.2.2 サービス・アカウントのカスタマイズ: シナリオ2

この項では、別のユーザーのサービス・アカウントの所有権をリクエスト・ユーザーに譲渡するようリクエストできるようにする方法について簡単に説明します。次に、このプロセスを示します。

1. ユーザーがOracle Identity Managerにログインし、特定のActive Directoryサービス・アカウントの所有権が現在のユーザーからリクエスト・ユーザーに譲渡されるようリクエストします。

2. リクエストが承認のために現在のサービス・アカウント所有者に転送されます。

3. 現在の所有者の承認を受けて、サービス・アカウントがリクエスト・ユーザーに譲渡されます。

このシナリオを実装するには、次の手順を実行します。

注意:

このユースケースでは、多くのカスタマイズが必要です。

1. Oracle Identity Managerユーザー・インタフェースではアカウント所有権の譲渡リクエストはサポートされていないため、ダミー・リソースを作成し、システムに存在するサービス・アカウントに対して特定のリソース・オブジェクトを問い合せるカスタム・ロジックを割り当てます。

2. このシナリオにおける承認者はサービス・アカウント所有者です。したがって、タスク割当てアダプタを使用して、最初にサービス・アカウント所有者を取得してから、その所有者にタスクを割り当てます。
前のシナリオで示したように、タスクではタスク完了時に電子メール通知を送信できます。

3. 承認を得たら、moveServiceAccount() APIをロードしてサービス・アカウントの所有権をリクエスタに譲渡します。

30.3 Design Consoleのアクション

表30-5に、Oracle Identity Managerのアクションと、その条件および結果を示します。

表30-5 Oracle Identity Managerのアクション、条件および結果

アクション

条件

結果

ユーザーの削除。

Oracle Identity Managerで、プロセス・インスタンスの既存のすべてのタスクが取り消されます。タスクに取消しタスクが定義されている場合は、これが挿入されます。

この場合、このタスクに対する条件が満たされ(ユーザーが失効され)、Oracle Identity Managerでタスクが既存のプロセスに挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

ユーザーの無効化。

Oracle Identity Managerで、「タスクの結果」コンボ・ボックスに「無効化」の選択肢が表示されるタスクに対する各プロセスがチェックされます。

この場合、このタスクに対する条件が満たされ(ユーザーが無効化され)、Oracle Identity Managerでタスクが既存のプロセスに挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

ユーザーの有効化。

Oracle Identity Managerで、「タスクの結果」コンボ・ボックスに「有効化」の選択肢が表示されるタスクに対する各プロセスがチェックされます。

この場合、このタスクに対する条件が満たされ(ユーザーが有効化され)、Oracle Identity Managerでタスクが既存のプロセスに挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

ユーザーのパスワードが「ユーザー」フォームで変更

Oracle Identity Managerで、各プロセスが「ユーザー・パスワードの変更」タスクを持つかどうかがチェックされます。

この場合、このタスクに対する条件が満たされ(ユーザーのパスワードが変更され)、Oracle Identity Managerで、タスクが定義されている既存のすべてのプロセスにタスクが挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

アプリケーション・プロセス・フォームのデータ・フィールドの変更。

Oracle Identity Managerで、各プロセスがfield label Updated命名規則で始まるタスク(HomeDirectory Updatedなど)を持つかどうかがチェックされます。

このタスクに対する条件が満たされ(プロセス・タスクはfield label Updated命名規則で始まる)ます。Oracle Identity Managerで、このタスクが定義されている既存のすべてのプロセスにタスクが挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

ユーザーのプロファイル情報が他の組織に移動。

Oracle Identity Managerで、各プロセスがMove Userで始まるタスクを持つかどうかがチェックされます。

このタスクに対する条件が満たされ(ユーザーのプロファイル情報が他の組織に移動)ます。Oracle Identity Managerでタスクが既存のプロセスに挿入されます。タスクに付加されているアダプタがある場合は、これが実行されます。

第VIII部

APIおよびWebサービス

この部では、Oracle Identity ManagerでサポートされているAPIおよびWebサービスについて説明します。

次の章で構成されます。

- 第31章「APIの使用」

- 第32章「SPMLサービスの使用」

31 APIの使用

オラクル社では、Oracle Identity Managerで使用可能なサービス(以前のリリースではユーティリティと呼ばれていました)を公開する目的で、ネットワーク対応型のJavaベースのApplication Program Interface(API)を提供しています。このAPIはPlain Old Java Objects(POJO)に基づき、Oracle Identity Managerと対話するために必要なすべての処理を行います。このAPIは、Oracle Identity Managerのクライアントを構築する場合や、サード・パーティ製品をOracle Identity Managerプラットフォームに統合する場合に使用できます。

この章では、次の内容を説明します。

- Oracle Identity Managerサービスへのアクセス

- Oracle Identity Managerサービス

- よく使用されるサービス

- Oracle Identity Manager用クライアントの開発

- 従来のOracle Identity Manager APIの使用

- コード・サンプル

31.1 Oracle Identity Managerサービスへのアクセス

Oracle Identity Managerサービスへのエントリ・ポイントは、oracle.iam.platform.OIMClientクラスです。以前のリリースで使用されていたThor.API.tcUtilityFactoryもサポートされます。Oracle Identity Managerと統合するためのクライアントの開発には、oracle.iam.platform.OIMClientを使用することをお薦めします。

この項の内容は次のとおりです。

- OIMClientの使用

- tcUtilityFactoryの使用

31.1.1 OIMClientの使用

OIMClientは、Oracle Identity Managerで使用可能なサービスにアクセスするためのエントリ・ポイントです。OIMClientを使用するには、次の手順を実行します。

1. Oracle Identity Managerアプリケーションへの接続に必要な環境情報を持つOIMClientのインスタンスを作成します。

Hashtable env = new Hashtable();

env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL, "weblogic.jndi.WLInitialContextFactory");
env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, http://OIM_HOSTNAME:OIM_PORT);
OIMClient oimClient = new OIMClient(env);

ここで、OIM_HOSTNAMEをOracle Identity Managerがデプロイされているホスト名に、OIM_PORTをポート番号に置き換えます。

2. 適切な資格証明を使用してOracle Identity Managerにログインします。

oimClient.login(OIM_USERNAME, OIM_PASSWORD);

3. サービスを参照します。

UserManager usermgr = oimClient.getService(UserManager.class);

4. サービスでメソッドをコールします。

HashMap userAttributes = new HashMap();
……………..
UserManagerResult result = userMgr.create(new User(null, userAttributes));

31.1.2 tcUtilityFactoryの使用

Oracle Identity Managerの以前のリリースでは、Oracle Identity Managerサービス(従来のリリースではユーティリティと呼ばれていたもの)へのアクセスでtcUtilityFactoryがサポートされていました。tcUtilityFactoryは引き続きサポートされます。ただし、前述のとおり、Oracle Identity Manager用のあらゆるクライアント・アプリケーションの作成でOIMClientを使用することをお薦めします。

tcUtilityFactoryを使用するには、次の手順を実行します。

1. ユーザー名やパスワードなどの環境情報を持つtcUtilityFactoryのインスタンスを作成します。

tcUtilityFactory ioUtilityFactory = new tcUtilityFactory(env, "OIM_USERNAME", "OIM_PASSWORD");

2. ユーティリティの完全修飾名を指定して、ユーティリティまたはサービスを参照します。

tcUserOperationsIntf moUserUtility = (tcUserOperationsIntf)ioUtilityFactory.getUtility("Thor.API.Operations.tcUserOperationsIntf");

3. ユーティリティで次の操作を実行します。

Hashtable mhSearchCriteria = new Hashtable();
mhSearchCriteria.put("Users.First Name", psFirstName);
tcResultSet moResultSet = moUserUtility.findUsers(mhSearchCriteria);

31.2 Oracle Identity Managerサービス

Oracle Identity Manager APIを使用して、Oracle Identity Managerで使用可能なサービスにアクセスできます。11g リリース1(11.1.1)で導入されたAPIと従来のAPIとでは使用されている表記規則が異なるため、この項ではこれらについて次の各トピックで個別に説明します。

- Oracle Identity Manager 11gリリース1(11.1.1)で導入されたサービス

- 従来のサービスまたはユーティリティ

31.2.1 Oracle Identity Manager 11g リリース1(11.1.1)で導入されたサービス

Oracle Identity Manager 11g リリース1(11.1.1)で導入されたサービスでは、次の表記規則に従います。

- パッケージ名: サービスは、名前がapiで終わるパッケージに含まれます。次に例を示します。

oracle.iam.request.api
oracle.iam.identity.usermgmt.api

- サービス・インタフェース名: 11gで導入されたサービスは通常、*Serviceというネーミング規則を使用します。次に例を示します。

oracle.iam.request.api.RequestService
oracle.iam.selfservice.self.selfmgmt.api.AuthenticatedSelfService

一部のアイデンティティ管理APIでは、APIに*Managerというネーミング規則を使用します。次に例を示します。

oracle.iam.identity.usermgmt.api.UserManager

31.2.2 従来のサービスまたはユーティリティ

ユーティリティとも呼ばれる従来のサービスでは、次のネーミング規則に従います。

- パッケージ名: 従来のAPIはすべてThor.API.Operationsパッケージに含まれます。

- サービス・インタフェース名: サービス名の形式は、*Intfです。たとえば、Thor.API.Operations.tcImportOperationsIntfとなります。

関連項目:

Oracle Identity Managerで使用可能な全サービスのリストは、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスを参照してください。前述のネーミング規則を使用して、APIを検索できます。

31.3 よく使用されるサービス

表31-1に、Oracle Identity Managerでよく使用されるサービスの一部を示します。

表31-1 よく使用されるサービス

サービス名

説明

UserManager

ユーザーの作成、検索、変更、削除などのユーザー管理操作を提供します。

RequestService

リクエストの発行、取消し、クローズおよび検索操作を提供します。

注意: 存在しないリクエスト・テンプレートの検索時にリクエスト・テンプレート・サービスを使用すると、null値が返されます。

RoleManager

ロールの作成、検索、変更、削除などのロール管理操作を提供します。このサービスでは、ロール・メンバーおよびロール間の関係の管理操作も提供されます。

OrganizationManager

組織の作成、検索、変更、削除、有効化、無効化などの組織管理操作を提供します。

31.3.1 従来のサービスと新規サービス間のマッピング

Oracle Identity Manager 11g リリース1(11.1.1)では、従来のAPIの一部が新規アーキテクチャを使用して再作成されており、対応するユーティリティ・サービスまたはインタフェース・クラスが変更されています。表31-2に、従来のインタフェースと新規インタフェース間の対応の概要を示します。

表31-2 従来のサービスと新規サービス間のマッピング

従来のサービス

新規サービス

Thor.API.Operations.tcUserOperationsIntf

oracle.iam.identity.usermgmt.api.UserManager

Thor.API.Operations.tcGroupOperationsIntf

oracle.iam.identity.rolemgmt.api.RoleManager

Thor.API.Operations.tcOrganizationOperationsIntf

oracle.iam.identity.orgmgmt.api.OrganizationManager

Thor.API.Operations.tcRequestOperationsIntf

oracle.iam.request.api.RequestService

Thor.API.Operations.tcSchedulerOperationsIntf

oracle.iam.scheduler.api.SchedulerService

Thor.API.Operations.tcEmailOperationsIntf

oracle.iam.notification.api.NotificationService

31.4 Oracle Identity Manager用クライアントの開発

この項には次のトピックが含まれます:

- クライアント開発の前提条件

- 設定と構成

31.4.1 クライアント開発の前提条件

Oracle Identity Manager用クライアントを開発するには、次の前提条件を満たしている必要があります。

- Java Development Kit(JDK)1.6がインストールされており、パス内に設定されていること

- ANT 1.7がインストールされており、パス内に設定されていること

31.4.2 設定と構成

Oracle Identity Managerパッケージには、クライアントの開発に必要なライブラリと構成ファイルを含むZIPファイルが含まれています。また、独自のアプリケーション開発の出発点として使用できるサンプル・クライアントも含まれています。

Oracle Identity Manager用のアプリケーション・クライアントを実行するには、次の手順を実行します。

1. OIM_ORACLE_HOME/server/client/oimclient.zipを、クライアントを開発するコンピュータ(oimclient/ディレクトリなど)にコピーします。このドキュメントでは、このディレクトリをOIM_CLIENT_HOMEと呼びます。ZIPファイルを解凍します。oimclient.zipファイルは、conf、lib、sample、directories、oimclient.jarおよびREADMEで構成されています。

2. アプリケーション・サーバー固有のクライアント・ライブラリをOIM_CLIENT_HOME/lib/ディレクトリにコピーします。Oracle WebLogic Serverでは、wlfullclient.jarがクライアント・ライブラリです。これは、MIDDLEWARE_HOME/WL_HOME/server/lib/ディレクトリ(たとえば、/scratch/beahome/wlserver_10.3/server/lib/)に作成されます。wlfullclient.jarが存在するかどうかを確認します。存在しない場合は、jarbuilderツールを使用して生成する必要があります。wlfullclient.jarの生成方法は、Oracle WebLogic Serverのドキュメントを参照してください。

3. サンプル・クライアントを編集して実行します。これを行うには、次の手順を実行します。

1. OIM_CLIENT_HOME/sample/src/oracle/iam/samples/SampleOIMClient.javaサンプル・クライアント・ファイルを開きます。

2. Oracle Identity Managerが表示されるホストを指すように、次の定数を編集します。

- OIMURL: Oracle Identity Managerホスト・コンピュータのURL

- OIMUserName: Oracle Identity Managerの管理者のユーザー名

- OIMPassword: Oracle Identity Managerの管理者のパスワード

3. antコマンドを実行します。これにより、サンプル・クライアントがコンパイルされ、実行されます。サンプルが正常に実行されると、次の出力が生成されます。

[java] LOGGER >> Creating client....
[java] LOGGER >> Logging in
[java] LOGGER >> Log in successful
[java] LOGGER >> User Created

31.5 従来のOracle Identity Manager APIの使用

この項の内容は次のとおりです。

- 結果セット・オブジェクトの使用方法

- Oracle Identity Manager例外の処理

- クリーンアップ

31.5.1 結果セット・オブジェクトの使用方法

従来のOracle Identity Manager APIでは、多くの場合tcResultSetインタフェースを使用します。Thor.API.tcResultSetインタフェースは、データベースから取得したレコードを格納するデータ構造です。データセットを戻す必要のあるOracle Identity Manager APIのメソッドでは、結果セットが使用されます。この結果セットは、列が属性に対応し、行がエンティティに対応する2次元データ構造です。たとえば、ユーザーを検索するメソッドにより戻される結果セットの場合、各行が1人のユーザーに関するデータを表し、行内の各列がそのユーザーの属性を表します。

付属する様々なメソッドを使用して、結果セット内をスクロールし、特定の属性に対応する個々のエントリを取得できます。結果セット内の特定の行を検索するには、行番号をパラメータとしてgoToRow()メソッドを使用します。行から列の値を取得するには、getStringValue()などの適切なアクセッサ・メソッドを使用します。特定の列から値を取得するには、列名をパラメータとしてアクセッサ・メソッドに渡します。列名は、Oracle Identity Managerメタデータ・システムで定義されている説明的なコードです。

次の表に、サンプル・メタデータ値の一部を示します。このマッピングは参照コードに基づいており、Design Consoleで「参照定義」フォームを使用して参照できます。

列コード

説明

IT Resources.Name

ITリソースの名前

Process Definition.Name

プロビジョニング・プロセスの名前

注意:

既存のレコードを更新する際に必要となるため、取得した結果セット・オブジェクトの状況を常に把握してください。

結果セットの使用方法の例を次に示します。この例では、findAllUsers()メソッドをコールして結果セットを取得します。このメソッドでは、特定の基準に一致するユーザーをすべて検出します。

tcResultSet moResultSet = moUserUtility.findAllUsers(mhAttribs);

findAllUsers()メソッドでレコードが戻されたかどうかをチェックするには、次のようにisEmpty()メソッドを使用します。

boolean mbEmpty = moResultSet.isEmpty();

検出されたレコード数を取得するには、getRowCount()メソッドを使用します。レコードが見つからない場合、このメソッドは0を返します。次に、例を示します。

int mnNumRec = moResultSet.getRowCount();

システム内の特定のレコードを選択するには、次のようにgoToRow()メソッドを使用します。

moResultSet.goToRow(5);

現在の行から属性値を取得するには、次のように適切なアクセッサ・メソッドを使用します。

String msUserLastName = moResultSet.getStringValue("Users.Last Name");

31.5.2 Oracle Identity Manager例外の処理

APIのメソッドでは、Oracle定義のJava例外がスローされます。捕捉した例外オブジェクトでgetMessage()メソッドを使用するかわりに、isMessage内部変数にアクセスして例外メッセージを取得できます。

31.5.3 クリーンアップ

tcUtilityFactoryクラスによって、ユーティリティまたはファクトリ・インスタンスで使用されるすべてのリソースが管理され、使用後のリソースを解放する手段が提供されます。

ユーティリティ・クラス・インスタンスを取得し、このユーティリティ・クラスに関連付けられているリソースを解放するために、tcUtilityFactoryをインスタンス化して使用する場合は、ファクトリ・クラスでclose(utility Object)メソッドをコールします。セッションが終了している場合は、ファクトリ・インスタンスでclose()メソッドをコールして、すべてのユーティリティ・クラス、セッション・オブジェクトおよびデータベース・オブジェクトを解放します。

静的コールを使用してユーティリティ・クラスを直接取得した場合は、ユーティリティ・オブジェクトが不要になった後に、そのユーティリティ・オブジェクトのclose(object)メソッドをコールします。

31.6 コード・サンプル

例31-1に、Oracle Identity Manager情報の取得方法を示します。この例では、ファクトリ・クラスのインスタンスが作成されます。次に、個々のユーティリティ・クラスを取得し、それらを使用してOracle Identity Managerの情報を取得するために、インスタンスが複数回コールされます。

例31-1 Oracle Identity Manager情報の取得

/*
This class is intented to showcase some of OIM API's. These API's are
specific to OIM 11g release. As an example, Legacy API's usage for
Organization is also shown.
*/

package oracle.iam.samples;

// Role related API's
import oracle.iam.identity.rolemgmt.api.RoleManager;
import oracle.iam.identity.rolemgmt.vo.Role;
import oracle.iam.identity.exception.RoleSearchException;
import oracle.iam.identity.rolemgmt.api.RoleManagerConstants.RoleAttributeName;
import oracle.iam.identity.rolemgmt.api.RoleManagerConstants.RoleCategoryAttributeName;

// User related API's
import oracle.iam.identity.usermgmt.api.UserManager;
import oracle.iam.identity.usermgmt.vo.User;
import oracle.iam.identity.exception.UserSearchException;
import oracle.iam.identity.usermgmt.api.UserManagerConstants.AttributeName;

// Organization Legacy API's
import Thor.API.Operations.tcOrganizationOperationsIntf;
import Thor.API.tcResultSet;
import Thor.API.Exceptions.tcAPIException;
import Thor.API.Exceptions.tcColumnNotFoundException;
import Thor.API.Exceptions.tcOrganizationNotFoundException;

import oracle.iam.platform.OIMClient;
import oracle.iam.platform.authz.exception.AccessDeniedException;
import oracle.iam.platform.entitymgr.vo.SearchCriteria;

import java.util.*;

import javax.naming.NamingException;
import javax.security.auth.login.LoginException;

public class Sample {

private static OIMClient oimClient;

/*
* Initialize the context and login with client supplied environment
*/
public void init() throws LoginException {
System.out.println("Creating client....");
String ctxFactory = "weblogic.jndi.WLInitialContextFactory";
String serverURL = "t3://OIM_HOSTNAME:OIM_PORT";
String username = "xelsysadm";
String password = "xelsysadm";
Hashtable env = new Hashtable();
env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL,ctxFactory);
env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, serverURL);

oimClient = new OIMClient(env);
System.out.println("Logging in");
oimClient.login(username, password);
System.out.println("Log in successful");
}

/**
* Retrieves User login based on the first name using OIM 11g
* UserManager service API.
*/
public List getUserLogin(String psFirstName) {
Vector mvUsers = new Vector();
UserManager userService = oimClient.getService(UserManager.class);
Set<String> retAttrs = new HashSet<String>();

// Attributes that should be returned as part of the search.
// Retrieve "User Login" attribute of the User.
// Note: Additional attributes can be specified in a
// similar fashion.
retAttrs.add(AttributeName.USER_LOGIN.getId());

// Construct a search criteria. This search criteria states
// "Find User(s) whose 'First Name' equals 'psFirstName'".
SearchCriteria criteria;
criteria = new SearchCriteria(AttributeName.FIRSTNAME.getId(), psFirstName, SearchCriteria.Operator.EQUAL);
try {
// Use 'search' method of UserManager API to retrieve
// records that match the search criteria. The return
// object is of type User.
List<User> users = userService.search(criteria, retAttrs, null);

for (int i = 0; i < users.size(); i++) {
//Print User First Name and Login ID
System.out.println("First Name : " + psFirstName + "  --  Login ID : " + users.get(i).getLogin());
mvUsers.add(users.get(i).getLogin());
}
} catch (AccessDeniedException ade) {
// handle exception
} catch (UserSearchException use) {
// handle exception
}
return mvUsers;
}

/**
* Retrieves the administrators of an Organization based on the
* Organization name. This is Legacy service API usage.
*/
public List getAdministratorsOfOrganization(String psOrganizationName) {
Vector mvOrganizations = new Vector();
tcOrganizationOperationsIntf moOrganizationUtility = oimClient.getService(tcOrganizationOperationsIntf.class);
Hashtable mhSearchCriteria = new Hashtable();
mhSearchCriteria.put("Organizations.Organization Name", psOrganizationName);
try {
tcResultSet moResultSet = moOrganizationUtility.findOrganizations(mhSearchCriteria);
tcResultSet moAdmins;
for (int i = 0; i < moResultSet.getRowCount(); i++) {
moResultSet.goToRow(i);
moAdmins = moOrganizationUtility.getAdministrators(moResultSet.getLongValue("Organizations.Key"));
mvOrganizations.add(moAdmins.getStringValue("Groups.Group Name"));
System.out.println("Organization Admin Name : " + moAdmins.getStringValue("Groups.Group Name"));
}
} catch (tcAPIException tce) {
// handle exception
} catch (tcColumnNotFoundException cnfe) {
// handle exception
} catch (tcOrganizationNotFoundException onfe) {
// handle exception
}
return mvOrganizations;
}

/**
* Retrieves Role Display Name based on Role name and Role Category
* using OIM 11g RoleManager service API. This example shows how
* to construct compound search criteria.
*/
public List getRoleDisplayName(String roleName, String roleCategory ) {
Vector mvRoles = new Vector();
RoleManager roleService = oimClient.getService(RoleManager.class);
Set<String> retAttrs = new HashSet<String>();

// Attributes that should be returned as part of the search.
// Retrieve the "Role Display Name" attribute of a Role.
// Note: Additional attributes can be specified in a
// similar fashion.
retAttrs.add(RoleAttributeName.DISPLAY_NAME.getId());

// Construct the first search criteria. This search criteria
// states "Find Role(s) whose 'Name' equals 'roleName'".
SearchCriteria criteria1;
criteria1 = new SearchCriteria(RoleAttributeName.NAME.getId(), roleName, SearchCriteria.Operator.EQUAL);

// Construct the second search criteria. This search criteria
// states "Find Role(s) whose 'category' equals 'roleCategory'".
SearchCriteria criteria2;
criteria2 = new SearchCriteria(RoleCategoryAttributeName.NAME.getId(), roleCategory, SearchCriteria.Operator.EQUAL);

// Construct the compound search criteria using 'criteria1' and
// 'criteria2' as arguments. This showcases how to construct
// compound search criterias.
SearchCriteria criteria = new SearchCriteria(criteria1, criteria2, SearchCriteria.Operator.AND);
try {
// Use 'search' method of RoleManager API to retrieve
// records that match the search criteria. The return
// object is of type Role.
List<Role> roles = roleService.search(criteria, retAttrs, null);

for (int i = 0; i < roles.size(); i++) {
//Print Role Display Name
System.out.println("Role Display Name : " +
roles.get(i).getDisplayName());
mvRoles.add(roles.get(i).getDisplayName());
}
} catch (AccessDeniedException ade) {
// handle exception
} catch (RoleSearchException use) {
// handle exception
}
return mvRoles;
}

// Main method invocation
// Following assumptions are made
//1. A User "Joe Doe" already exists in OIM
//2. An Organization  "Example Organization" already exists in OIM
//3. A Role "Foobar" already exists in OIM
public static void main(String args[]) {
List moList = null;

try {
Sample oimSample = new Sample();

// initialize resources
oimSample.init();
// retrieve User logins with first name 'Joe'
moList=oimSample.getUserLogin("Joe");
// retrieve User logins with first names starting with 'J'
moList=oimSample.getUserLogin("J*");
// retrieve the administrators of an Organization with name
// 'Example Organization'
moList=oimSample.getAdministratorsOfOrganization(
"Example Organization");
// retrieve Role display name with role name 'FooBar'
// and role category as 'Defaut'
moList=oimSample.getRoleDisplayName("foobar", "Default");
// release resources
oimClient.logout();
} catch (Exception e) {
e.printStackTrace();
}
}
}

次に、サンプルの出力を示します。

[java] Creating client....
[java] Logging in
[java] Log in successful
[java] First Name : Joe  --  Login ID : JDOE
[java] First Name : J*  --  Login ID : JHOND
[java] First Name : J*  --  Login ID : JDOE
[java] Organization Admin Name : SYSTEM ADMINISTRATORS
[java] Role Display Name : foobar

32 SPMLサービスの使用

Oracle Identity Managerでは、クライアント・アプリケーションに対して、Service Provisioning Markup Language(SPML)を使用するアイデンティティ管理サービスを提供します。

この章では、Oracle Identity ManagerでサポートされるSPML XSD Webサービス・インタフェースについて説明します。内容は次のとおりです。

- 概要

- アイデンティティの作成(SPMLコア・サービス: addRequest)

- ユーザー、ロール、属性およびロール・メンバーシップの変更(SPMLコア・サービス: modifyRequest)

- アイデンティティまたはロールの削除(SPMLコア・サービス: deleteRequest)

- リクエスト・ステータスの確認(SPMLコア・サービス: statusRequest)

- 使用可能なターゲットのリスト(SPMLコア・サービス: listTargets)

- ユーザーの無効化(SPML一時停止サービス: suspendRequest)

- ユーザーの有効化(SPML一時停止サービス: resumeRequest)

- ユーザーがアクティブであるかどうかの確認(SPML一時停止サービス: activeRequest)

- ユーザー名の検証(SPMLユーザー名サービス: validateUsername)

- ユーザー名の取得(SPMLユーザー名: suggestUsername)

- SPML Webサービスの保護

- サポートされていない操作

関連項目:

カスタム属性を使用したSPMLサービスのカスタマイズの詳細は、「SPMLの例-ユーザーの追加」を参照してください。

32.1 概要

この項では、Oracle Identity ManagerでのXSDプロファイルを使用したSPMLサービスの使用について説明します。

32.1.1 SPMLの相互作用について

Oracle Identity Managerでは、クライアント・アプリケーションでアイデンティティ(ユーザーおよびロール)を管理できるようにする、アイデンティティ管理サービスを提供します。このサービスでは、ユーザー、リソースおよびサービス・プロビジョニング情報の交換のための、OASIS委員会の仕様に基づくXMLフレームワークである、Service Provisioning Markup Language(SPML)が使用されます。

このドキュメントでは、Oracle Identity ManagerでサポートされるSPMLの相互作用をリストおよび説明します。

プロファイル・サポート

SPMLには、XSDプロファイルとDSMLプロファイルの2つのプロファイルがあります。このリリースのOracle Identity Managerでは、XSDプロファイルを使用します。

相互作用のタイプ

SPML仕様では、同期または非同期の相互作用が可能です。

Oracle Identity Managerでは、リクエストの追加、変更、削除、一時停止および再開のための非同期相互作用のみがサポートされています。非同期相互作用の場合、Oracle Identity Managerが保留のステータスで即時に応答し、リクエスタがstatusRequestを発行して現在の状態を取得します。

ユーザー名サービスの場合、すべてのサービスが同期となります。

検索API

アイデンティティ管理レルムの検索APIについては、Oracle Fusion Middleware Oracle Identity Manager Java APIリファレンスのOracle Identity Management APIを参照してください。

32.1.2 統合インタフェース

統合インタフェースは、Service Provisioning Markup Language(SPML)の観点から定義されています。Oracle Identity Managerでは、SPMLの実装によって、アイデンティティとロールの管理およびユーザー名の予約機能がサポートされています。

非同期と同期の両方の実行モードがサポートされていますが、すべてのサービスで両方のモードがサポートされているわけではありません。リクエストで無効なモードが指定されていると、サービスは、unsupportedExecutionMode SPMLエラー・コードを戻します。

SPMLサービスを使用するには、アプリケーションでWebサービス・クライアントを作成する必要があります。このクライアントのWSDLは、次のURLから入手可能です。

http://OIM_HOST:OIM_PORT/spml-xsd/SPMLService?WSDL

別の方法として、ホストされたSPML WebサービスのエンドポイントURLを使用して、WSDLおよびXMLのスキーマ定義に移動することもできます。

XSD(oracle_common_pso.xsd)は、$OIM_HOME/features/spml-xsd.jarから入手可能です。

32.2 アイデンティティの作成(SPMLコア・サービス: addRequest)

ユーザー属性またはロール属性を使用してアイデンティティを作成するには、非同期実行モードがサポートされているaddRequest操作を実装します。リクエスト送信が正常に行われると、リクエスト送信トラッキングIDが戻され、リクエスト・ステータスが保留としてリストされます。

ユーザーを作成するときに、addRequest操作を使用して、ロール・メンバーシップをそのユーザーに割り当てることもできます。そのためには、typeOfReferenceがmemberOfに設定されたSPML参照機能を使用してロールGUIDをPSO参照IDとして組み込む必要があります。

注意:

ユーザー名属性またはパスワード属性が指定されていない場合、適切なプラグインがインストールされていると、これらの属性をOracle Identity Managerで自動生成できます。

表32-1に、addRequest操作によるアイデンティティ作成の機能を示します。

表32-1 addRequestによるアイデンティティ作成

項目/機能

説明

SPML実行モード

非同期のみ。

入力

[SPMLv2]で定義されたaddRequest要素。

オプション(ロール・メンバーシップの参照機能)。

出力

[SPMLv2]で定義されたaddResponse要素。

処理

追加操作を使用して、アイデンティティを追加できます。必要に応じて、既存のロールをアイデンティティに割り当てる場合があります。

customError SPML カスタム・エラー・コードを使用すると、ランタイム・エラーが報告されます。レスポンスでは、検証エラーのみが戻されます。リクエストIDは戻されません。

例

これらの例については、次の付録を参照してください。

- 「SPMLの例-ユーザーの追加」

- 「SPMLの例-ロール割当てによるユーザーの追加」

32.3 ユーザー、ロール、属性およびロール・メンバーシップの変更(SPMLコア・サービス: modifyRequest)

次のタスクのためのSPML modifyRequestサービスを実装します。

- ロール・メンバーシップの既存のユーザー(アイデンティティ)への割当てまたは既存のユーザーからの取消し

- 既存のロールの変更

- ユーザー属性の変更

表32-2に、modifyRequest操作によるロール・メンバーシップ管理の機能を示します。

表32-2 modifyRequestによるロール・メンバーシップ管理

項目/機能

説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたmodifyRequest要素。

ロール・メンバーシップを削除するにはmodificationMode="delete"を使用し、ロール・メンバーシップを追加するにはmodificationMode="add"を使用します。

参照機能(typeOfReference="inheritsFrom")およびPSO IDとしてのロールGUIDを使用して宣言されたロール・メンバーシップ。

出力

[SPMLv2]で定義されたmodifyResponse要素。

処理

modifyRequest操作を使用して、既存のアイデンティティまたは既存のロールを変更できます。

この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、unsupportedExecutionMode SPMLエラー・コードが戻されます。

変更リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、malformedRequestまたはinvalidIdentifier SPML不正リクエスト・エラーがそれぞれ戻されます。

customError SPMLカスタム・エラー・コードを使用すると、その他のランタイム・エラーが報告されます。

例

これらの例については、次の付録を参照してください。

- C.11項「SPMLの例-ロール・メンバーシップの割当て」

- C.12項「SPMLの例-ロール・メンバーシップの取消し」

32.4 アイデンティティまたはロールの削除(SPMLコア・サービス: deleteRequest)

表32-3の説明に従って、SPML deleteRequestサービスを実装し、既存のロールまたはユーザーを削除します。

表32-3 deleteRequestによるロール・メンバーシップの削除

項目/機能

説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたdeleteRequest要素。

出力

[SPMLv2]で定義されたdeleteResponse要素。

処理

deleteRequest操作を使用して、既存のアイデンティティまたは既存のロールを削除できます。

この操作では、アイデンティティとロールの両方について、SPML実行モードを確認します。実行モードが無効な場合は、unsupportedExecutionMode SPMLエラー・コードが戻されます。

削除リクエストにアイデンティティPSOオブジェクトが含まれていないか、または無効なGUIDが含まれている場合、この操作により、malformedRequestまたはinvalidIdentifier SPML不正リクエスト・エラーがそれぞれ戻されます。

customError SPMLカスタム・エラー・コードを使用すると、その他のランタイム・エラーが報告されます。

例

「SPMLの例-ロールの削除」の例を参照してください。

32.5 リクエスト・ステータスの確認(SPMLコア・サービス: statusRequest)

ステータス操作を使用すると、リクエスタは、非同期操作が次のステータスであるかどうかを確認できます。

- 失敗

- 保留

- 正常終了

非同期操作の場合、リクエストが送信されると、検証エラー後のエラーをレスポンスで戻すことができません。発生したエラーはステータス・レスポンスで戻されます。statusRequestによってリクエスト・ステータスが失敗として戻される場合、statusResponseによってエラー・メッセージも表示されます。

表32-4に、statusRequest操作の機能を示します。

表32-4 リクエスト・ステータスの確認

項目/機能

説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたstatusRequest要素。

出力

[SPMLv2]で定義されたstatusResponse要素。

処理

ステータス操作では、非同期操作の識別子を含む属性asyncRequestIDが使用されます。

操作識別子が無効な場合、noSuchIdentifierエラー・コードが戻されます。

ステータス操作の結果は、statusResponse要素のステータス属性に指定されます。

例

C.19項「SPMLの例-ステータス・リクエスト」の例を参照してください。

32.6 使用可能なターゲットのリスト(SPMLコア・サービス: listTargets)

SPML listTargetsサービスを使用すると、リクエスタは、プロバイダがプロビジョニングに使用できる一連のターゲットを取得できます。サービスによって、次のものも戻されます。

- 各ターゲットでサポートされているオブジェクト・タイプ

- 各ターゲットのそれぞれのオブジェクトに対してプロバイダでサポートされている一連の機能

現在サポートされているターゲットはOracle Identity Managerのみであり、サポートされているオブジェクト・タイプはOracle Identity Managerのすべてのオブジェクト・タイプです。

表32-5に、listTargetsによるターゲットの取得の機能を示します。

表32-5 listTargetsによるターゲットの取得

項目/機能

説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたlistTargetsRequest要素。

出力

[SPMLv2]で定義されたlistTargetsResponse要素。

処理

XMLスキーマのプロファイルのみがサポートされています。別のプロファイル・リクエストの場合には、unsupportedProfileエラー・コードが表示されて失敗します。

単一で静的なプロビジョニング・ターゲットOracle Identity Managerがサポートされています。

PSOオブジェクト・スキーマ、各PSOに対してサポートされている機能のリストおよび操作データ機能のスキーマをlistTargetsResponse要素に挿入することによって、レスポンスが生成されます。

32.7 ユーザーの無効化(SPML一時停止サービス: suspendRequest)

一時停止操作を使用すると、リクエスタはユーザーを一時停止できます。

表32-6に、suspendRequest操作の機能を示します。

表32-6 suspendRequestによるユーザーの一時停止

項目/機能

説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたsuspendRequest要素。

出力

[SPMLv2]で定義されたsuspendResponse要素。

処理

この操作には、有効なユーザーPSO IDおよび必要に応じて有効な一時停止日付が必要です。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

一時停止操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

例

「SPMLの例-ユーザーの一時停止」の例を参照してください。

32.8 ユーザーの有効化(SPML一時停止サービス: resumeRequest)

resumeRequest操作を使用すると、リクエスタは一時停止されたユーザーを再開したり有効化できます。

表32-7に、resumeRequest操作の機能を示します。

表32-7 resumeRequestによるユーザーの再有効化

項目/機能

説明

SPML実行モード

非同期。

入力

[SPMLv2]で定義されたresumeRequest要素。

出力

[SPMLv2]で定義されたresumeResponse要素。

処理

この操作には、有効なユーザーPSO IDが必要であり、必要に応じて有効な再開日付を指定します。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

再開操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

例

「SPMLの例-ユーザーの再開」の例を参照してください。

32.9 ユーザーがアクティブであるかどうかの確認(SPML一時停止サービス: activeRequest)

activeRequest操作を使用すると、リクエスタは、指定されたユーザーがアクティブであるか、または一時停止されているかを確認できます。

表32-8に、activeRequest操作の機能を示します。

表32-8 activeRequestによるユーザーが一時停止されているかどうかの確認

項目/機能

説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたactiveRequest要素。

出力

[SPMLv2]で定義されたactiveResponse要素。

処理

この操作には、有効なユーザーPSO IDが必要です。

PSO識別子が無効な場合は、noSuchIdentifierエラー・コードが戻されます。

リクエストが有効であり、指定されたユーザーが存在する場合、プロバイダはユーザー・ステータスを取得する必要があります。

activeRequest操作はユーザーに対してのみ適用できます。PSOオブジェクトがアイデンティティでない場合は、unsupportedOperationエラーが戻されます。

例

「SPMLの例-ユーザーがアクティブであるかどうかの確認」の例を参照してください。

32.10 ユーザー名の検証(SPMLユーザー名サービス: validateUsername)

validateUsername操作を使用すると、リクエスタは、ユーザー名がすでに存在するか、または予約されているかどうかを確認できます。

表32-9に、resumeRequest操作の機能を示します。

表32-9 resumeRequestによるユーザー名の有効性の確認

項目/機能

説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたvalidateUsernameRequest要素。

userNameは受け入れられる唯一の入力パラメータです。

出力

[SPMLv2]で定義されたvalidateUsernameResponse要素。

処理

この操作では、ユーザー名を取得して、このユーザー名が存在しているかどうかを確認します。

処理エラーがSPML customErrorコードとともに報告されます。

例

「SPMLの例-ユーザー名の検証」の例を参照してください。

32.11 ユーザー名の取得(SPMLユーザー名: suggestUsername)

suggestUsername操作を使用すると、リクエスタは、指定されたポリシーに対する有効なユーザー名を取得できます。

表32-10に、suggestUsername操作の機能を示します。

表32-10 suggestUsernameによるユーザー名の取得

項目/機能

説明

SPML実行モード

同期。

入力

[SPMLv2]で定義されたsuggestUsernameRequest要素。

出力

[SPMLv2]で定義されたsuggestUsernameResponse要素。

処理

この操作では、ユーザー情報を取得し、取得した情報を使用して、適用可能なユーザー名ポリシーに基づいたユーザー名を構成します。

処理エラーがSPML customErrorコードとともに報告されます。

例

「SPMLの例-ユーザー名の提示」の例を参照してください。

32.12 SPML Webサービスの保護

この項では、SPML Webサービスを保護する方法について説明します。内容は次のとおりです。

- Webサービスのセキュリティについて

- リクエストの例

- ポリシーの適用

32.12.1 Webサービスのセキュリティについて

SPML XSD Webサービスでは、Oracle Web Services Security Managerを使用してセキュリティが提供されています。SPML Webサービスは、次のポリシーを使用して保護されています。

注意:

SPML XSDプロファイルのWebサービスをロードできるのは、SPML_App_Roleのメンバーであるユーザーによってのみです。これは、追加されたセキュリティに対してのみ行われます。

Webサービスに対するMBeanの構成の詳細は、Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイドを参照してください。

- SAMLまたはユーザー名トークン・サービス・ポリシー(メッセージ保護付き):

oracle/wss11_username_token_with_message_protection_client_policy

- ユーザー名トークンおよびメッセージ保護セキュリティを使用したFusion Applications環境:

oracle/wss11_username_token_with_message_protection_client_policy

デフォルトのポリシーは、Oracle Enterprise Manager Fusion Middleware Controlを使用して変更できます。

32.12.2 リクエストの例

サンプルのリクエストは次のようになります。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" >
<soap:Header>
<ns1:Security>
<ns1:UsernameToken>
<ns1:Username>weblogic</ns1:Username>
<ns1:Password>weblogic1</ns1:******>
</ns1:UsernameToken>
</ns1:Security>
</soap:Header>
<soap:Body xmlns:ns1="urn:oasis:names:tc:SPML:2:0">
<ns1:listTargetsRequest />
</soap:Body>
</soap:Envelope>

32.12.3 ポリシーの適用

デプロイメント時に、管理者はOracle Enterprise Manager Fusion Middleware Controlコンソールを使用して適切なセキュリティ・ポリシーを適用し、サービスを保護できます。Fusion Middleware Controlの使用の詳細は、次のドキュメントを参照してください。

Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイドのセキュリティおよび管理ツールへのアクセスに関する説明

32.13 サポートされていない操作

Oracle Identity Manager 11gリリース1(11.1.1)では、XSDプロファイルの一部として次のSPML操作はサポートされていません。

- ユーザーの検索

- ロールの検索

- 組織に対するあらゆる操作(作成、変更、削除または検索など)

第IX部

ユーティリティ

この部では、Oracle Identity Managerが提供するユーティリティについて説明します。

次の章で構成されます。

- 第33章「MDSユーティリティとユーザーが変更可能なメタデータ・ファイル」

- 第34章「バルク・ロード・ユーティリティの使用」

- 第35章「JARおよびリソース・バンドルのアップロード・ユーティリティ」

33 MDSユーティリティとユーザーが修正可能なメタデータ・ファイル

Oracle WebLogic Serverでは、Oracle Identity Managerメタデータを変更できるユーティリティが3つ提供されます。これらを次に示します。

- weblogicExportMetadata.shまたはWeblogicExportMetadata.bat: MDSデータベースから特定のメタデータ・ファイルをエクスポートします。

- weblogicImportMetadata.shまたはWeblogicImportMetadata.bat: 特定のメタデータ・ファイルをMDSデータベースにインポートします。

- weblogicDeleteMetadata.shまたはWeblogicDeleteMetadata.bat: MDSデータベースから特定のメタデータ・ファイルを削除します。

この項ではユーティリティの使用方法について説明します。トピックは次のとおりです。

- MDSユーティリティの環境の設定

- プロパティ・ファイルの構造

- ユーザーが修正可能なメタデータ・ファイル

- MDSユーティリティの使用例

33.1 MDSユーティリティの環境の設定

MDSユーティリティの環境を設定するには、次の2つの手順を実行する必要があります。

- 環境変数の設定

- ユーティリティに必要なパラメータを指定するプロパティ・ファイルの設定

環境変数の設定

OIM_ORACLE_HOME環境変数をMiddlewareホーム・ディレクトリ内のOracle Identity ManagementのOracleホーム・ディレクトリに設定します。たとえば、Microsoft Windowsの場合は、OIM_ORACLE_HOME環境変数をC:\Oracle\Middleware\Oracle_IDM1\ディレクトリに設定します。

プロパティ・ファイルの設定

ユーティリティと同じフォルダにあるweblogic.propertiesファイルで必要なプロパティを設定します。

表33-1 プロパティ・ファイルのパラメータ

プロパティ名

説明

注意

wls_servername

Oracle Identity ManagerがデプロイされているOracle WebLogic Serverの名前。

application_name

アプリケーションの名前。

値は次のとおりです。

- oim: すぐに使用できるイベント・ハンドラをインポート/エクスポートする場合。

- OIMMetadata: カスタマイズ可能メタデータの場合。「ユーザーが修正可能なメタデータ・ファイル」を参照してください。

カスタム・データをインポートまたはエクスポートする場合は、application_nameをOIMMetadataに設定します。

metadata_from_loc

XMLファイルのインポート元となるディレクトリの場所。このプロパティは、weblogicImportMetadata.shスクリプトで使用されます。

Microsoft Windowsのパスには、ファイルまたはディレクトリのセパレータとして//が含まれます。

metadata_to_loc

XMLファイルのエクスポート先となるディレクトリの場所。このプロパティは、weblogicExportMetadata.shスクリプトで使用されます。

Microsoft Windowsのパスには、ファイルまたはディレクトリのセパレータとして//が含まれます。

metadata_files

XMLファイルのフルパスと名前。このプロパティは、weblogicExportMetadata.shスクリプトおよびweblogicDeleteMetadata.shスクリプトで使用されます。

たとえば、/file/User.xmlを指定して、ユーザー・エンティティ定義をエクスポートします。複数のxmlファイルをカンマ区切りの値として指定できます。

インポート・ユーティリティの使用

weblogicImportMetadata.shユーティリティを実行すると、metadata_from_locに指定されているすべてのファイルがインポートされます。

たとえば、/scratch/johnny/temp/oim/file/User.xmlのUser.xmlをインポートするとします。この場合、metadata_from_locを/scratch/johnny/temp/oimとして定義する必要があります。

注意:

metadata_from_locで指定したディレクトリまたはそのサブディレクトリにその他のファイルが存在しないことを確認してください。インポート・ユーティリティでは、そのディレクトリの下のすべてのファイルを再帰的にインポートすることを試みます。

すべてのインポート・ユーティリティ、エクスポート・ユーティリティおよび削除ユーティリティは、OIM_ORACLE_HOME/server/bin/ディレクトリに配置されています。

エクスポート・ユーティリティの使用

weblogicExportMetadata.shユーティリティを実行すると、metadata_filesに指定されているファイルがmetadata_to_locによって指定されているフォルダにエクスポートされます。

注意:

ファイル名にスペースが含まれている場合は、引用符などのエスケープ文字を使用しないでファイル名をそのまま指定する必要があります。たとえば、ProvisionResourceeBusiness Suite User.xmlという名前のファイルをエクスポートする場合(パスは/db/ProvisionResourceeBusiness Suite User.xml)、メタデータ・ファイル・プロパティを次のように指定する必要があります。

metadata_files=/db/ProvisionResourceeBusiness Suite User.xml

削除ユーティリティの使用

weblogicDeleteMetadata.shユーティリティを実行すると、metadata_filesに指定されているファイルがMDSから削除されます。

注意:

ファイル名にスペースが含まれている場合は、引用符などのエスケープ文字を使用しないでファイル名をそのまま指定する必要があります。たとえば、ProvisionResourceeBusiness Suite User.xmlという名前のファイルを削除する場合(パスは/db/ProvisionResourceeBusiness Suite User.xml)、メタデータ・ファイル・プロパティを次のように指定する必要があります。

metadata_files=/db/ProvisionResourceeBusiness Suite User.xml

33.2 プロパティ・ファイルの構造

プロパティ・ファイルは次のようになります。

# Weblogic Server Name on which OIM application is running

wls_servername=@servername

# If you are importing or exporting any out of box event handlers, value is oim.
# For rest of the out of box metadata, value is OIMMetadata.
# If you are importing or exporting any custom data, always use application name as OIMMetadata.

application_name=@appname

# Directory location from which XML file should be imported.
# Lets say I want to import User.xml and it is in the location /scratch/johnny/temp/oim/file/User.xml,
# I should give from location value as /scratch/johnny/temp/oim. Make sure no other files exist
# in this folder or in its sub folders. Import utility tries to recursively import all the files under the
# from location folder. This property is only used by weblogicImportMetadata.sh

metadata_from_loc=@metadata_from_loc

# Directory location to which XML file should be exported to

metadata_to_loc=@metadata_to_loc

# For example /file/User.xml to export user entity definition. You can specify multiple xml files as comma separated values.
# This property is only used by weblogicExportMetadata.sh and weblogicDeleteMetadata.sh scripts

metadata_files=@metadata_files

33.3 ユーザーが修正可能なメタデータ・ファイル

次のメタデータを使用して、LDAPでユーザーおよびロールがどのコンテナに作成されるかを設定するLDAPコンテナ・ルールを構成します。

注意:

Oracle Identity Managerでは、/metadataまたは/dbで始まるファイル・パスのMDSのみを確認します。このため、XMLドキュメントのパスまたはディレクトリ名の先頭は、/metadataまたは/dbのいずれかにする必要があります。

/db/LDAPContainerRules.xml

次のメタデータは、LDAPユーザー、ロール、ロール階層およびロール・メンバーシップ・リコンシリエーションの、リコンシリエーション・プロファイルとリコンシリエーション水平表のエンティティ定義を構成するために使用します。

/db/LDAPUser
/db/LDAPRole
/db/LDAPRoleHierarchy
/db/LDAPRoleMembership
/db/RA_LDAPROLE.xml
/db/RA_LDAPROLEHIERARCHY.xml
/db/RA_LDAPROLEMEMBERSHIP.xml
/db/RA_LDAPUSER.xml
/db/RA_MLS_LDAPROLE.xml
/db/RA_MLS_LDAPUSER.xml
/db/oim-config.xml

次のメタデータは、LDAPユーザー、ロール・エンティティ定義とメンバーシップおよび階層関係定義を構成するために使用します。

/metadata/iam-features-ldap-sync/LDAPRole.xml
/metadata/iam-features-ldap-sync/LDAPRoleMembership.xml
/metadata/iam-features-ldap-sync/LDAPUser.xml
/metadata/iam-features-ldap-sync/LDAPUserMembership.xml

次のメタデータには、デフォルトのリクエスト・タイプのリクエスト・モデルおよびデータセット定義が含まれています。

/metadata/iam-features-requestactions/model-data/AssignRolesDataset.xml
/metadata/iam-features-requestactions/model-data/CreateRoleDataSet.xml
/metadata/iam-features-requestactions/model-data/CreateUserDataSet.xml
/metadata/iam-features-requestactions/model-data/DeleteRoleDataSet.xml
/metadata/iam-features-requestactions/model-data/DeleteUserDataset.xml
/metadata/iam-features-requestactions/model-data/DeleteUserRequest.xml
/metadata/iam-features-requestactions/model-data/DisableUserDataset.xml
/metadata/iam-features-requestactions/model-data/DisableUserRequest.xml
/metadata/iam-features-requestactions/model-data/EnableUserDataset.xml
/metadata/iam-features-requestactions/model-data/EnableUserRequest.xml
/metadata/iam-features-requestactions/model-data/ModifyRoleDataSet.xml
/metadata/iam-features-requestactions/model-data/ModifyUserDataset.xml
/metadata/iam-features-requestactions/model-data/RemoveRolesDataset.xml
/metadata/iam-features-requestactions/model-data/ResourceCommonDataset.xml
/metadata/iam-features-requestactions/model-data/SelfCreateUserDataset.xml

次のメタデータには、Oracle Identity Managerの操作の事前定義済イベント・ハンドラ定義が含まれています。

注意:

これらは読取り専用ドキュメントです。これらのメタデータ・ファイルで定義されているイベント・ハンドラを変更および削除する必要がある場合は、Oracleサポートに連絡してください。

/db/ldapMetadata/EventHandlers.xml
/metadata/iam-features-OIMMigration/EventHandlers.xml
/metadata/iam-features-Scheduler/EventHandlers.xml
/metadata/iam-features-accesspolicy/event-definition/EventHandlers.xml
/metadata/iam-features-asyncwsclient/EventHandlers.xml
/metadata/iam-features-autoroles/event-definition/EventHandlers.xml
/metadata/iam-features-callbacks/event_configuration/EventHandlers.xml
/metadata/iam-features-configservice/event-definition/EventHandlers.xml
/metadata/iam-features-identity/event-definition/EventHandlers.xml
/metadata/iam-features-notification/EventHandlers.xml
/metadata/iam-features-passwordmgmt/event-definition/EventHandlers.xml
/metadata/iam-features-reconciliation/event-definition/EventHandlers.xml
/metadata/iam-features-request/event-definition/EventHandlers.xml
/metadata/iam-features-requestactions/event-definition/EventHandlers.xml
/metadata/iam-features-selfservice/event-definition/EventHandlers.xml
/metadata/iam-features-sod/EventHandlers.xml
/metadata/iam-features-system-configuration/EventHandlers.xml
/metadata/iam-features-tasklist/EventHandlers.xml
/metadata/iam-features-templatefeature/EventHandlers.xml
/metadata/iam-features-transUI/EventHandlers.xml
/metadata/iam-features-spmlws/EventHandlers.xml

33.4 MDSユーティリティの使用例

任意のカーネル操作のために追加のイベント・ハンドラを作成するには、そのイベント・ハンドラをXMLファイルで定義して、MDSに送信する必要があります。

たとえば、ユーザーIDを生成するユーザー作成操作に対する事前処理イベント・ハンドラを作成する必要があるとします。次に、イベント・ハンドラ定義の例を示します。

<eventhandlers>
<preprocess-handler
class="oracle.iam.user.ComputeUserID"
entity-type="User"
operation="CREATE"
name="Compute User ID"
order="1001"
stage="preprocess"
sync="TRUE">
</preprocess-handler>
</eventhandlers>

EventHandlers.xmlというXMLファイルにこの内容を含めて、/metadata/user/custom/などのパスを持つ、/scratch/dataなどのディレクトリに配置します。

注意:

Oracle Identity Managerでは、/metadataまたは/dbで始まるファイル・パスのMDSのみを確認します。このため、XMLドキュメントのパスまたはディレクトリ名の先頭は、/metadataまたは/dbのいずれかにする必要があります。

このファイルをMDSにインポートするには、weblogic.propertiesファイルの次の値を変更し、weblogicImportMetadata.sh/weblogicImportMetadata.batファイルを実行します。

wls_servername=oim server name, for example oim_server1
application_name=oim
metadata_from_loc=/scratch/data

このメタデータ/XMLファイルは、フルパスが/metadata/user/custom/EventHandlers.xmlであるMDSにインポートされます。たとえば、ドキュメントを更新し、このイベント・ハンドラが実行される順序を変更するとします。この場合、最初に、weblogic.propertiesファイルの次の値を変更し、weblogicExportMetadata.sh/weblogicExportMetadata.batファイルを実行して、このドキュメントをエクスポートします。

wls_servername=oim server name, for example oim_server1
application_name=oim
metadata_to_loc=/scratch/data
metadata_files=/metadata/user/custom/EventHandlers.xml

ドキュメントは/scratch/data/metadata/user/customフォルダにエクスポートされます。/scratch/dataにフォルダ構造/metadata/user/customがない場合は、MDSによって作成されます。

これで、ファイルを編集して順序を変更し、前述と同様にインポート・コマンドを実行できます。

最後に、ユーザーIDが、計算されるのではなく、ユーザー作成時に指定されるようにするとします。この場合、このドキュメント/XMLを削除する必要があります。ドキュメントを削除するには、weblogic.propertiesファイルの次の値を変更し、weblogicDeleteMetadata.sh/weblogicDeleteMetadata.batファイルを実行します。

wls_servername=oim server name, for example oim_server1
application_name=oim
metadata_files=/metadata/user/custom/EventHandlers.xml

34 バルク・ロード・ユーティリティの使用

Oracle Identity Managerは、組織内で多数あるユーザー・データのリポジトリの1つである場合があります。Oracle Identity Managerの使用を開始するとき、他のリポジトリのデータをOracle Identity Managerにロードすることが必要になる場合があります。バルク・ロード・ユーティリティは、このような要件の解決策となります。

バルク・ロード・ユーティリティは、大量のデータをOracle Identity Managerにロードするプロセスを自動化することを目的としています。データのロードに必要な停止時間の短縮に役立ちます。このユーティリティは、Oracle Identity Managerのインストール後に使用することも、Oracle Identity Managerの本番期間中に随時使用することもできます。

このドキュメントの内容は次のとおりです。

- バルク・ロード・ユーティリティの機能

- バルク・ロード・ユーティリティのインストール

- バルク・ロード操作用のデータベースの準備

- ユーティリティの実行

- OIMユーザー・データのロード

- アカウント・データのロード

- ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロード

- 操作中に記録されるデータ

- バルク・ロード操作からのパフォーマンス・データの収集

- バルク・ロード操作後のクリーンアップ

- 監査スナップショットの生成

34.1 バルク・ロード・ユーティリティの機能

バルク・ロード・ユーティリティの機能は次のとおりです。

- このユーティリティは、Oracle Identity Managerリリース9.1.0以上と互換性があります。

- データは、OIMユーザー、OIMユーザーに割り当てられた(プロビジョニングされた)アカウント、ロール、ロール階層、ロール・メンバーシップまたはロール・カテゴリとして、Oracle Identity Managerにロードできます。

- データは、1つまたは複数のCSVファイル、または1つのデータベース表からロードできます。Oracle Identity Managerにインポートされたデータは、OIMユーザー、OIMユーザーにプロビジョニングされたアカウント、ロール、ロール階層、ロール・メンバーシップまたはロール・カテゴリに自動的に変換されます。

- データは、1つまたは複数の信頼できるソースからロードできます。

- データは、空のOracle Identity Managerリポジトリ、またはすでにOIMユーザーおよびリソースに関するデータが含まれているOracle Identity Managerリポジトリにロードできます。つまり、ユーザー・データは、Oracle Identity Managerのインストール直後か、またはシステムがすでに本番状態にある場合にいつでもロードできます。

- ユーザー・データのロード中に生成された例外は処理され、プロセスのロードに失敗したレコードはロードを再試行できます。

- バルク・ロード操作後に、監査スナップショットを生成できます。

- 操作中にはダミー・パスワードが使用されるため、OIMユーザー・データのバルク・ロード後、最初のログイン時にパスワードの変更を要求されます。

注意:

このユーティリティはユーザー属性の暗号化に使用できません。つまり、Oracle Identity Managerでユーザー・フィールドが暗号化されている場合、このユーティリティを使用して、そのフィールドにロードされたデータを暗号化することはできません。

34.2 バルク・ロード・ユーティリティのインストール

このユーティリティをインストールするには、次の手順を実行します。

1. インストール・パッケージの次のディレクトリを圧縮し、Oracle Identity Managerデータベース・ホスト・コンピュータ上のディレクトリにコピーします。
MIDDLEWARE_HOME/Oracle_IDM1/server/db/oim/oracle/Utilities/oimbulkload

注意:

ユーティリティは、リモート・ホストから実行できます。Oracle Identity Managerデータベース・ホストのディレクトリからこのユーティリティを実行することは、必須ではありません。

2. ZIPファイルの内容を抽出します。
ZIPファイルの内容を抽出すると、oimbulkloadディレクトリが作成されます。このディレクトリ内に、次のディレクトリが作成されます。

- sqls: このディレクトリには、バルク・ロード操作中に使用されるSQLスクリプトが含まれています。

- scripts: このディレクトリには、バルク・ロード操作中に使用される.shスクリプトと.batスクリプトが含まれています。

- csv_files: 入力ソースとして1つまたは複数のCSVファイルを使用する場合、CSVファイルはこのディレクトリに格納する必要があります。

- lib: このディレクトリには、oimBulkLoad.jarファイルが含まれています。

- sample_data: このディレクトリには、次のサンプルCSVファイルが含まれています。

- OIMユーザーのロード操作の場合:
master.txt

OIDusers.csv

HRusers.csv

- アカウントのロード操作の場合:
parentAD.csv

childAD.csv

- ロールに関連したロード操作の場合:
Role.csv(ロール・ロード)

Rolec.csv(ロール・カテゴリ)

Roleh.csv(ロール階層)

Rolem.csv(ロール・メンバーシップ)

- Logs_ YYYYMMDD_hhmi: このログ・ディレクトリには、バルク・ロード操作のサマリーが格納されるログ・ファイルが含まれています。このディレクトリは実行時に作成されます。

次の項では、ユーティリティおよびバルク・ロード操作の詳細を説明します。

- ユーティリティを構成するスクリプト

- バルク・ロード操作中に使用される一時表

- ユーティリティで提供されるオプション

34.2.1 ユーティリティを構成するスクリプト

ユーティリティを構成する主なスクリプトは次のとおりです。

- oim_blkld.bat and oim_blkld.sh
このスクリプトには、バルク・ロード操作を実行するためのコードが含まれています。このスクリプトを実行すると、他のスクリプトやストアド・プロシージャがコールされます。

- oim_blkld_setup.sql
このスクリプトは、Oracle Identity Manager表領域にデータファイルを追加するために使用されます。詳細は、このドキュメントの「Oracle Identity Manager表領域でのデータファイルの作成」で説明します。

34.2.2 バルク・ロード操作中に使用される一時表

バルク・ロード操作中には、次の一時表が使用されます。

- OIM_BLKLD_TMP_SUFFIX
入力ソースとしてCSVファイルを使用する場合、ユーティリティによってOIM_BLKLD_TMP_SUFFIX表が自動的に作成され、最初にCSVファイルのデータがこの表にロードされます。表名の接尾辞は、次のように決定されます。

- ファイル名の最初の6文字が考慮されます。

- 最初の6文字を判断する際には、ファイル名の特殊文字およびファイル拡張子(.csv)は無視されます。

- 最初の6文字に一意の数字が追加されます。

- たとえば、ファイル名がacc_Data.csvの場合、バルク・ロード操作中に作成される表の名前はoim_blkld_tmp_accDat1となります。

複数のCSVファイルがある場合、ファイルごとに1つの表が作成されます。各CSVファイル名の最初の6文字が表名に追加されるため、各ファイル名の最初の6文字が必ず一意になるようにします。このガイドラインについては、このドキュメントで後述します。

注意:

入力ソースとしてデータベース表を使用する場合、その表には任意の名前を指定できます。この表の名前を、ユーティリティの入力パラメータの1つとして指定します。

- OIM_BLKLD_EX_SUFFIX
OIM_BLKLD_EX_SUFFIX表は、バルク・ロード操作中に失敗した(Oracle Identity Managerにロードされなかった)データ・レコードを保持するために使用されます。OIM_BLKLD_TMP_SUFFIX表ごとに、1つのOIM_BLKLD_EX_SUFFIX表が作成されます。表のEXCEPTION_MSG列には、表内の各レコードの失敗の理由が格納されます。

入力ソースとしてCSVファイルを使用する場合、CSVファイル名の最初の6文字は、表名に接尾辞として追加されます。たとえば、CSVファイルの名前がusrdt120508.csvの場合、表名はOIM_BLKLD_EX_ usrdt1となります。複数のCSVファイルがある場合、CSVファイルごとに1つの一時表が作成されます。

注意:

複数のCSVファイルがある場合、各CSVファイル名の最初の6文字が必ず一意になるようにします。

- OIM_BLKLD_LOG
バルク・ロード操作中、ユーティリティにより、進捗メッセージおよびエラー・メッセージがOIM_BLKLD_LOG表に挿入されます。この表に問い合せることで、バルク・ロード操作の進捗を監視できます。この手順の詳細は、このドキュメントで後述します。

34.2.3 ユーティリティで提供されるオプション

バルク・ロード・ユーティリティを実行すると、次のオプションのいずれかを選択するように要求されます。

注意:

選択するオプションによっては、ユーティリティからさらに入力を要求されます。

- ユーザー・データのロード
ユーティリティでOIMユーザー・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUSR表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- アカウント・データのロード
ユーティリティでアカウント・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity Managerの関連するUD_表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- ロール・データのロード
ユーティリティでロール・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUGP表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- ロール・メンバーシップのロード
ユーティリティでロール・メンバーシップ・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのUSG表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- ロール階層のロード
ユーティリティでロール階層データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのGPG表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- ロール・カテゴリのロード
ユーティリティでロール・データをロードする場合は、このオプションを選択します。つまり、データはOracle Identity ManagerのROLE_CATEGORY表にインポートされます。また、ロードするデータの入力ソース(CSVファイルまたはデータベース表)を選択できます。

- 監査スナップショットの生成
ユーティリティでロードしたデータの監査スナップショットを生成する場合は、このオプションを選択します。

34.3 バルク・ロード操作用のデータベースの準備

バルク・ロード操作用にデータベースを準備する場合は、次の項目を実行します。

- 一時表の表領域の作成

- Oracle Identity Manager表領域でのデータファイルの作成

34.3.1 一時表の表領域の作成

「バルク・ロード操作中に使用される一時表」で説明したとおり、バルク・ロード操作中には一時データベース表が使用されます。Oracle Identity Managerデータベースのデフォルトの表領域を使用するかわりに、これらの一時表を収容する表領域を作成することをお薦めします。

データベースのドキュメントの表領域作成手順に従ってください。

34.3.2 Oracle Identity Manager表領域でのデータファイルの作成

Oracle Identity Managerのインストール中に作成されるOracle Identity Manager表領域のデータファイルのデフォルトのサイズは、500MBです。ロードするデータを収容するために、このデータファイルへの領域の追加が必要になる場合があります。または、データファイルを作成します。

Oracle Identity Manager表領域でデータファイルを作成するには、次の手順を実行します。

1. SQL*Plusセッションを開始します。

2. Oracle Identity ManagerデータベースにSYSDBAとして接続します。

3. oim_blkld_setup.sqlスクリプトを実行します。スクリプトから次の情報の入力を要求されます。

- Oracle Identity Manager表領域の名前

- Oracle Identity Manager表領域に追加されるデータファイルのフルパスおよび名前

- Oracle Identity Managerデータベースのユーザー名

34.4 ユーティリティの実行

注意:

既存の表と競合する名前がある場合、ユーティリティにより、既存の一時表が各実行の開始時に上書きされます。必要に応じて、ユーティリティの前の実行時に作成された一時データベース表の名前を変更します。

ユーティリティを実行するには:

1. Oracle Identity Managerを停止します。

2. 次のいずれかのスクリプトを実行します。

注意:

非ASCIIデータが含まれているCSVファイルをロードするには、oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行する前に、NLS_LANG環境パラメータを次の形式のUTF8キャラクタ・セットに設定します。

NLS_LANG = LANGUAGE_TERRITORY.UTF8

例:

NLS_LANG = American_America.UTF8

- UNIXコンピュータの場合:
OIMBulkload/script/oim_blkld.sh

- Microsoft Windowsコンピュータの場合:
OIMBulkload\script\oim_blkld.bat

3. 「ユーティリティで提供されるオプション」の説明に従って、ユーザー、アカウント、ロール関連のデータなど、ロードするデータに応じてメイン・メニューのオプションのいずれか1つを選択します。

4. 2番目のメニューから、次のように選択します。

- 入力ソースとしてCSVファイルを使用する場合、CSVファイルを選択します。

- 入力ソースとしてデータベース表を使用する場合、DB表を選択します。

5. 要求されたら、「ユーティリティの入力パラメータの値の確認」で説明されている入力パラメータの値を指定します。

注意:

OIMユーザー・データのロードに必要な入力パラメータの詳細は、「ユーティリティの入力パラメータの値の確認」を参照してください。アカウント、ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロードに必要な入力パラメータの詳細は、対応する項を参照してください。

6. 「操作の進捗の監視」で説明する手順に従い、操作のパフォーマンスを監視します。

34.5 OIMユーザー・データのロード

OIMユーザー・データをロードする手順の概要は次のとおりです。

1. バルク・ロード用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

2. パスワードが、バルク・ロード操作中に作成されるすべてのOIMユーザーに対してデフォルトのパスワードとして使用されるOIMユーザーを作成します。

3. バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、ユーザー・データを表にコピーします。

CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにユーザー・データをコピーします。また、データのロード順にロード元となるファイルの名前が含まれるmaster.txtファイルを作成します。

4. ユーティリティの入力パラメータの値を確認します。

5. Oracle Identity Managerを停止します。

6. oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。oim_blkld.shスクリプトまたはoim_blkld.batスクリプトの実行の詳細は、「ユーティリティの実行」を参照してください。

7. バルク・ロード操作の進捗を監視します。

8. バルク・ロード操作の結果を確認します。

9. 必要に応じて、最初の実行でロードされなかったデータをリロードします。

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

11. バルク・ロード操作の結果を検証します。

12. 操作のパフォーマンス・データを収集します。

13. 操作中に作成された一時表およびファイルを削除します。

14. 監査スナップショットを生成します。

次の項では、OIMユーザー・データのロードに必要な手順の詳細について説明します。

- ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定

- バルク・ロード操作用の入力ソースの作成

- ユーティリティの入力パラメータの値の確認

- 操作の進捗の監視

- 操作中に記録された例外の処理

- 例外の修正およびデータ・レコードのリロード

- バルク・ロード操作の結果の検証

34.5.1 ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定

このユーティリティでは、バルク・ロード操作中に作成されたOIMユーザーに割り当てるパスワードを暗号化しません。かわりに、操作中に作成されたすべてのOIMユーザーに、既存のOIMユーザーのパスワードを割り当てます。

注意:

各OIMユーザーは、最初のログインでパスワードを変更する必要があります。

ユーティリティを実行すると、パスワードを新規OIMユーザーのデフォルトのパスワードとして使用する既存のOIMユーザーのログイン名を指定するように要求されます。ユーティリティを実行する前に、このOIMユーザーを次のように作成します。

注意:

Oracle Identity Managerでは、バルク・ロード操作専用のユーザーを作成し、後で必要でなくなったときにこのユーザーを削除できます。このようにしない場合は、既存の任意のOIMユーザーを使用して、バルク・ロード操作を実行できます。

1. Oracle Identity Manager管理およびユーザー・コンソールに、ユーザーの作成権限を持つユーザーとしてログインします。

2. 「管理」をクリックします。

3. 「ようこそ」ページで「ユーザーの作成」をクリックします。

4. 次のフィールドの値を指定します。

- ユーザー・ログイン

- 名(オプション)

- 姓

- 組織: 「Xellerateユーザー」を選択します。

- パスワード

- パスワードの確認

5. 「保存」をクリックします。

34.5.2 バルク・ロード操作用の入力ソースの作成

使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。

- 入力ソースとしてのCSVファイルの使用

- 入力ソースとしてのデータベース表の作成

34.5.2.1 入力ソースとしてのCSVファイルの使用

バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。

- CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。

- CSVファイルの1行目は制御行と呼ばれます。この行には、Oracle Identity ManagerデータベースにおけるUSR表の列名のカンマ区切りリストが含まれている必要があります。

注意:

「パスワード」列または暗号化されたその他の列が、列リストに含まれていないことを確認してください。このドキュメントで前述したように、ユーティリティでは、Oracle Identity ManagerにロードするすべてのOIMユーザーに、指定した既存のOIMユーザーのパスワードが割り当てられます。

- ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。
CSVファイルの内容のサンプルを次に示します。

USR_LOGIN,USR_FIRST_NAME,USR_LAST_NAME,UD_ADUSER_OBJECTGUID
john_doe, John, Doe, jdoe
jane_doe, Jane, Doe, janedoe
richard_roe, Richard, Roe, rroe

- 列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。

- CSVファイルには、USR表で必須と指定されているすべての列の値が含まれている必要があります。次の表に、USR表のロードに必要な必須列を示します。

必須列

説明

USR_FIRST_NAME

ユーザーの名

USR_LAST_NAME

ユーザーの姓

注意:

- USR_LOGINは、Oracle Identity Manager 11gリリース1(11.1.1)では必須列ではありません。

- 一部のキー必須列は無視できます。たとえば、ORG_NAMEによって移入される、USR表のACT_KEY列は無視できます。

- CSVファイルの各行では、USR表のUSR_LOGIN列に一意の値が必要です。複数のファイルがある場合、USR_LOGINの値がCSVファイル全体にわたり一意であることを確認します。USR_LOGIN値の一意性のチェックは、Oracle Identity Managerの既存のOIMユーザーについても行う必要があります。
USR_LOGIN値が一意であることを確認する作業には、時間がかかる場合があります。別の方法として、最初にバルク・ロード操作を実行し、一意でないUSR_LOGIN値を修正してから、変更されたユーザー・レコードについてロード操作を再試行できます。ユーティリティでは、実行時にUSR_LOGIN値の一意性をチェックし、このチェックにパスしなかったレコードをOIM_BLKLD_EX表にコピーするので、これが可能になります。最初の実行でロードされなかったレコードについて、バルク・ロード操作を再試行する手順については、このドキュメントで後述します。

- 各ユーザー・レコードに組織名を含める場合、制御行にORG_NAMEを追加し、2行目以降でユーザーごとに組織名を入力します。ORG_NAMEが含まれていない場合は、ユーザーをXellerateユーザー組織に割り当てる必要があります。

注意:

CSVファイルのORG_NAME列に表示されているすべての組織名が、Oracle Identity Managerに存在する必要があります。

- 各ユーザー・レコードにマネージャ名を含める場合、制御行にMANAGER_NAMEを追加し、2行目以降でユーザーごとにマネージャのUSR_LOGIN値を入力します。
すべてのCSVファイルからすべてのユーザー・データをOracle Identity Managerにロードした後、ユーティリティでは、マネージャを調べるためにUSR_LOGIN値を参照します。MANAGER_NAME列で指定したUSR_LOGIN値がOracle Identity Managerに存在しない場合、ユーザー・レコードの参照は失敗し、レコードは例外表のOIM_BLKLD_EXにコピーされます。バルク・ロード操作の最後に、「例外の修正およびデータ・レコードのリロード」で説明する手順を実行すると、最初の実行で失敗したユーザー・レコードをリロードできます。

- CSVファイルに次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ORG_NAME: Xellerate Users

USR_TYPE: End-User

USR_STATUS: Active

USR_EMP_TYPE: Full-Time

- ロードするユーザー・データが含まれるCSVファイルの名前を含むマスターTXTファイルを作成します。このファイルには任意の名前(master.txtなど)を指定できます。マスター・ファイルをoimbulkload/csv_filesディレクトリに保存します。
複数のCSVファイルをロードする場合は、マスター・ファイルの別々の行に各データCSVファイルの名前を入力します。CSVファイル名のリストを、ユーティリティでファイルからデータをロードする順序に並べ替えます。たとえば、3つのデータCSVファイル(London_Users.csv、NewYork_Users.csvおよびTokyo_Users.csv)を作成したとします。マスター・ファイルで、データCSVファイルの名前を次の順序で入力します。

Tokyo_Users.csv
London_Users.csv
NewYork_Users.csv

ユーティリティを実行すると、データはこの順序でロードされます。これは、LondonおよびNew Yorkのユーザー・データがTokyoユーザーに依存している可能性があるためです。これは、マネージャ-ユーザー階層を保証するためです。

- CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。

34.5.2.2 入力ソースとしてのデータベース表の作成

OIMユーザー・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。

- Oracle Identity Managerデータベースに表を作成します。

- 表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)

ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。

- 残りの列は、使用するUSR表の列と同じである必要があります。つまり、作成する表に含めないオプションのUSR_列は無視します。

- 表に次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。
ORG_NAME: Xellerate Users

USR_TYPE: End-User

USR_STATUS: Active

USR_EMP_TYPE: Full-Time

表34-1に、サンプル・データベース表の構造を示します。

表34-1 サンプル・データベース表の構造

名前

NULLかどうか

タイプ

USR_LOGIN

NOT NULL

VARCHAR2(256)

USR_FIRST_NAME

VARCHAR2(150)

USR_LAST_NAME

NOT NULL

VARCHAR2(150)

. . .

. . .

. . .

OIM_BLKLD_USRSEQ

NOT NULL

NUMBER(19)

34.5.3 ユーティリティの入力パラメータの値の確認

ユーティリティの入力パラメータは次のとおりです。

- Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。

- データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。

//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME

- OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。

- OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。

データベース・ユーザー・パスワードは、要求されたときに2回入力します。

- マスター・ファイル名
ロードされるCSVデータファイルの名前を含むファイルの名前。

このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。マスター・ファイルとCSVデータファイルは、oimbulkload/csv_filesディレクトリに置きます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。

- 一時表名
入力ソースとして使用される一時表の名前。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。

- 制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。

- 表領域名
バルク・ロード操作中に一時表が作成される表領域の名前。ユーザーが表領域名を指定しない場合は、デフォルトの表領域が使用されます。

詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

- 日付書式
CSVファイルの日付列で使用される日付書式。

このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。

日付書式は、次の項目に一致する必要があります。

- dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式

- CSVファイルで指定されている日付書式

- バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。

バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。

- デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。

- デフォルト・パスワードのユーザーID
「ユーティリティによって追加されたOIMユーザーのデフォルト・パスワードの設定」で説明した手順を実行して作成するOIMユーザーのログイン名。

34.5.4 操作の進捗の監視

バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、OIMユーザー・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'USER' AND LOG_LEVEL = 'PROGRESS_MSG'
ORDER BY MSG_SEQ_NO;

バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'USER' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

34.5.5 操作中に記録された例外の処理

バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。

oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_user_load_summary.log

操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。

例34-1に、OIMユーザー・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。

例34-1 OIMユーザー・データのロード後に生成されるログ・ファイルの例

****************************************************************

Processing File: u10.csv
================================================================
U S E R    L O A D    S T A T I S T I C S    F O R   F I L E : u10.csv
================================================================
Start Time:   08-AUG-08 11.44.12.228000 AM
End Time:     08-AUG-08 11.44.13.368000 AM
Number of Records Processed:  10
Number of Records Loaded:     8
Number of Records Rejected:   2
================================================================
The name of the TMP table used during the load:
OIM_BLKLD_TMP_U101

The name of the Exception table used during the load:
OIM_BLKLD_EX_U101

****************************************************************
Processing File: u10b.csv

================================================================
U S E R    L O A D    S T A T I S T I C S    F O R   F I L E : u10b.csv
================================================================
Start Time:   08-AUG-08 11.44.15.368000 AM
End Time:     08-AUG-08 11.44.15.540000 AM
Number of Records Processed:  16
Number of Records Loaded:     15
Number of Records Rejected:   1
================================================================
The name of the TMP table used during the load:
OIM_BLKLD_TMP_U10B2

The name of the Exception table used during the load:
OIM_BLKLD_EX_U10B2
================================================================

================================================================
Time taken in re-building indexes and enabling FK constraints
================================================================
Start time:      08-AUG-08 11.44.15.556000 AM
End Time:        08-AUG-08 11.46.50.586000 AM
================================================================

この例では、拒否レコードの数は2です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。

注意:

各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。

34.5.6 例外の修正およびデータ・レコードのリロード

前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'USER' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。

拒否レコードをリロードするには、次の手順を実行します。

1. 拒否レコードが格納されている例外表のバックアップを作成します。

注意:

この手順はオプションですが、バックアップを作成することをお薦めします。

2. 例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。

3. 例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。

4. ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。

5. oim_blkld_user_load_summary.logファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。

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

34.5.7 バルク・ロード操作の結果の検証

バルク・ロード操作の結果を検証するには、ユーティリティによって追加されたOIMユーザーの1人について、次の手順を実行できるかどうかをチェックします。

注意:

これらの手順ではシステムにフットプリントが残るため、バルク・ロードの検証は、テスト・ユーザーを使用して実行する必要があります。システムにフットプリントが残らないようにするには、変更を元に戻します。たとえば、リソースをOIMユーザーにプロビジョニングした場合は、バルク・ロード操作の結果のテスト後に、リソースをプロビジョニング解除します。

- OIMユーザーとしてログインします。パスワードの変更を要求されます。

- OIMユーザー用のリソースをプロビジョニングします。

- OIMユーザーをロールに追加します。

- OIMユーザーのアカウント・プロファイルを変更します。

- OIMユーザーにプロビジョニングされたリソースを失効させます。

- 前にOIMユーザーを追加したロールからそのユーザーの割当てを解除します。

- アカウント・プロファイルを再び変更し、プロファイルを元の状態に戻します。

- そのユーザーに関する「ユーザー・リソース・アクセス」レポート(操作上のレポート)および「ユーザー・リソース・アクセス履歴」レポートを生成できるかどうかをチェックします。

- アテステーションを作成し、診断ダッシュボードを使用してそのステータスをチェックします。

34.6 アカウント・データのロード

アカウント・データをロードする手順の概要は次のとおりです。

1. バルク・ロード操作用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

2. バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、アカウント・データを表にコピーします。

CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにアカウント・データをコピーします。

3. ユーティリティの入力パラメータの値を確認します。

4. Oracle Identity Managerを停止します。

5. oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。

6. バルク・ロード操作の進捗を監視します。

7. バルク・ロード操作の結果を確認します。

8. 必要に応じて、最初の実行でロードされなかったデータをリロードします。

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

10. バルク・ロード操作の結果を検証します。

11. 操作のパフォーマンス・データを収集します。

12. 操作中に作成された一時表およびファイルを削除します。

13. 監査スナップショットを生成します。

アカウント・データのバルク・ロード操作の要件および機能

アカウント・データのバルク・ロード操作の要件および機能は次のとおりです。

- リコンシリエーションを設定し、ターゲット・システムからいくつかのアカウントをインポートすることによって、リコンシリエーションをテストできるようにする必要があります。

- 対応するOIMユーザーがあるアカウントのみをロードできます。

- 複数のITリソースが必要なターゲット・システムはサポートされません。

- バルク・ロード操作中には、重複したアカウントを検出できません。入力ソースで同じアカウントについて複数のエントリがある場合、対応するOIMユーザーに複数のアカウントが作成されます。

- 特定のターゲット・システムの場合、Oracle Identity Managerに複数のプロビジョニング・プロセスまたはプロセス・フォームがあると、リソース・オブジェクトのデフォルトのプロビジョニング・プロセスがユーティリティによって使用されます。

- 以前のバルク・ロード操作がどのステージまで進行したかに関する情報は格納されていません。つまり、ユーティリティはバルク・ロード操作を再開できません。バルク・ロード操作前に、Oracle Identity Managerデータベースをバックアップする必要があります。バルク・ロード操作を再試行する場合、最初にデータベースをリストアしてから、手順を再実行します。

次の項では、アカウント・データのロードに必要な手順の詳細について説明します。

- バルク・ロード操作用の入力ソースの作成

- ユーティリティの入力パラメータの値の確認

- 操作の進捗の監視

- 操作中に記録された例外の処理

- 例外の修正およびデータ・レコードのリロード

- バルク・ロード操作の結果の検証

34.6.1 バルク・ロード操作用の入力ソースの作成

使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。

- 入力ソースとしてのCSVファイルの使用

- 入力ソースとしてのデータベース表の作成

34.6.1.1 入力ソースとしてのCSVファイルの使用

バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。

- CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。

- CSVファイルの1行目は制御行と呼ばれます。この行には、アカウント・データをロードするアカウント(UD_*)表の列名のカンマ区切りリストが含まれている必要があります。UD_表を検索するには、Design Consoleのプロセス・フォームに移動します。プロセス・フォームの詳細は、第12章「プロビジョニング・プロセスの開発」を参照してください。

注意:

「パスワード」列または暗号化されたその他の列が、列リストに含まれていないことを確認してください。

- ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。

- 列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。

- CSVファイルには、アカウント表で必須と指定されているすべての列の値が含まれている必要があります。アカウント表のキー必須列は無視する必要があります。

- 親表および子表にアカウント・データをロードする場合、1つの親CSVファイルと、子表ごとに1つのCSVファイルを作成する必要があります。たとえば、1つの親表と3つの子表にデータをロードする場合、1つの親CSVファイルと3つの子CSVファイルを作成する必要があります。

- アカウント・データを親表および子表にロードする場合、少なくとも1つの列を両方の表で同じにします。この列は、親CSVファイルと子CSVファイル間のリンク属性に対応します。次の例では、この方法が示されています。
親CSVファイルの内容のサンプルを次に示します。

UD_ADUSER_UID,UD_ADUSER_ORGNAME,UD_ADUSER_FNAME,UD_ADUSER_LNAME,UD_ADUSER_MNAME,UD_ADUSER_FULLNAME,UD_ADUSER_OBJECTGUID
ADTEST1,"7~CN=ForeignSecurityPrincipals,DC=vivek01,DC=com",adtest1,adtest1,,adtest1,102

子CSVファイルの内容のサンプルを次に示します。

UD_ADUSER_UID,UD_ADUSER_ORGNAME,UD_ADUSRC_GROUPNAME
ADTEST1,"7~CN=ForeignSecurityPrincipals,DC=vivek01,DC=com",group2

UD_ADUSER_UID列は、親ファイルと子ファイルの両方で共通です。

- CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。

34.6.1.2 入力ソースとしてのデータベース表の作成

アカウント・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。

- Oracle Identity Managerデータベースに表を作成します。

- 表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)

ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。

- 残りの列は、使用するアカウント(UD_)表の列と同じである必要があります。つまり、作成する表に含めないオプションのUD_列は無視します。

表34-2に、サンプルの親表の構造を示します。

表34-2 サンプル・データベース表の構造

名前

NULLかどうか

タイプ

UD_ADUSER_UID

VARCHAR2(20)

UD_ADUSER_ORGNAME

VARCHAR2(256)

UD_ADUSER_FNAME

VARCHAR2(80)

UD_ADUSER_LNAME

VARCHAR2(80)

UD_ADUSER_MNAME

VARCHAR2(80)

UD_ADUSER_FULLNAME

VARCHAR2(240)

OIM_BLKLD_SEQ

NOT NULL

NUMBER(19)

表34-3に、サンプルの子表の構造を示します。

表34-3 サンプルの子データベース表の構造

名前

NULLかどうか

タイプ

UD_ADUSER_UID

VARCHAR2(20)

UD_ADUSER_ORGNAME

VARCHAR2(256)

UD_ADUSRC_GROUPNAME

VARCHAR2(32)

OIM_BLKLD_SEQ

NOT NULL

NUMBER(19)

34.6.2 ユーティリティの入力パラメータの値の確認

ユーティリティの入力パラメータは次のとおりです。

- Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。

- データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。

//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME

- OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。

- OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。

- オブジェクト名(OBJ_NAME)
ロードされるアカウント・データに対応するリソース・オブジェクトの名前。

- CSVファイル名
入力ソースとして使用されるCSVファイルの名前。

このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。親CSVファイルおよび子CSVファイルからデータをロードする場合、カンマ区切りリストを使用して、ファイル名を入力します。親CSVファイルの名前を最初に指定し、その後に子CSVファイルの名前を指定する必要があります。

- 一時表名
入力ソースとして使用される一時表の名前。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。

- 制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。

- 表領域名
バルク・ロード操作中に一時表が作成される表領域の名前(エンドユーザーが表領域名を指定しない場合、デフォルトの表領域が使用されます)。

詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

- 日付書式
CSVファイルの日付列で使用される日付書式。

このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。

日付書式は、次の項目に一致する必要があります。

- dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式

- CSVファイルで指定されている日付書式

- バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。

バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。

- デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。

- ITリソース名
ターゲット・システム用に作成されたITリソースの名前。

34.6.3 操作の進捗の監視

バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、アカウント・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'PROGRESS_MSG'
ORDER BY MSG_SEQ_NO;

たとえば、次の問合せを実行すると、アカウント・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'PROGRESS_MSG'
ORDER BY MSG_SEQ_NO;

バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

34.6.4 操作中に記録された例外の処理

バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。

oimbulkload/logs_YYYYMMDD_hhmm/oim_blkld_account_load_summary.log

操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。

例34-2に、アカウント・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。

例34-2 アカウント・データのロード後に生成されるログ・ファイルの例

=============================================================
A C C O U N T    L O A D    S T A T I S T I C S
=============================================================
Start Time:   22-JUL-08 03.59.30.206000 PM
End Time:     22-JUL-08 04.03.21.126000 PM
Number of Records Processed:  100026
Number of Records Loaded:     100000
Number of Records Rejected:   26
=============================================================

The names of the TMP tables used during the load:
OIM_BLKLD_TMP_P100001
OIM_BLKLD_TMP_C100002
The names of the Exception tables used during the load:
OIM_BLKLD_EX_P100001
OIM_BLKLD_EX_C100002

この例では、拒否レコードの数は26です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。

注意:

各バルク・ロード操作の最後に、例外表のバックアップを作成することをお薦めします。

34.6.5 例外の修正およびデータ・レコードのリロード

注意:

複数のターゲット・システムのCSVファイルからデータをロードする場合、次の方法のいずれかを使用できます。

- 方法1: CSVファイルのすべてのセットに対してユーティリティを実行し、この項で説明する手順を実行します。

- 方法2: CSVファイルの1つのセットに対してユーティリティを実行し、この項で説明する手順を実行します。その後、次のセットのCSVファイルに対してこの手順を繰り返します。

前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ACCOUNT' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。

拒否レコードをリロードするには、次の手順を実行します。

1. 拒否レコードが格納されている例外表のバックアップを作成します。

注意:

この手順はオプションですが、バックアップを作成することをお薦めします。

2. 例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。

3. 例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。

4. ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。

5. oim_blkld_account_load_summary.logファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。

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

34.6.6 バルク・ロード操作の結果の検証

バルク・ロード操作の結果を検証するには、ユーティリティによってアカウントが追加されたOIMユーザーの1人について、次の手順を実行できるかどうかをチェックします。

- OIMユーザーとしてログインし、新規に作成されたアカウントが、そのユーザーのリソース・プロファイルに表示されているかどうかをチェックします。

- 新規に作成されたアカウントの資格証明を使用して、ターゲット・システムにログインします。

34.7 ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロード

ロール関連データをロードする手順の概要は次のとおりです。

1. バルク・ロード操作用のデータベースを準備していない場合は、準備します。詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

2. バルク・ロード操作の入力ソースを作成します。
データベース表を入力ソースとして使用する場合は、表を作成して、ロール関連データを表にコピーします。

CSVファイルを入力ソースとして使用する場合は、CSVファイルを作成し、このファイルにロール関連データをコピーします。また、データのロード順にロード元となるファイルの名前が含まれるmaster.txtファイルを作成します。

3. ユーティリティの入力パラメータの値を確認します。

4. Oracle Identity Managerを停止します。

5. oim_blkld.shスクリプトまたはoim_blkld.batスクリプトを実行します。

6. バルク・ロード操作の進捗を監視します。

7. バルク・ロード操作の結果を確認します。

8. 必要に応じて、最初の実行でロードされなかったデータをリロードします。

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

10. バルク・ロード操作の結果を検証します。

11. 操作のパフォーマンス・データを収集します。

12. 操作中に作成された一時表およびファイルを削除します。

13. 監査スナップショットを生成します。

次の項では、OIMユーザー・データのロードに必要な手順の詳細について説明します。

- バルク・ロード操作用の入力ソースの作成

- ユーティリティの入力パラメータの値の確認

- 操作の進捗の監視

- 操作中に記録された例外の処理

- 例外の修正およびデータ・レコードのリロード

- バルク・ロード操作の結果の検証

34.7.1 バルク・ロード操作用の入力ソースの作成

使用する入力ソースに応じて、次のいずれかの項で示されているガイドラインに従います。

- 入力ソースとしてのCSVファイルの使用

- 入力ソースとしてのデータベース表の作成

34.7.1.1 入力ソースとしてのCSVファイルの使用

バルク・ロード操作用の入力ソースとしてCSVファイルを使用する場合は、CSVファイルの作成時に次のガイドラインに従います。

- CSVファイルは、oimbulkload/csv_filesディレクトリに置く必要があります。

- CSVファイルの1行目は制御行と呼ばれます。

- この行には、Oracle Identity Managerデータベースにおける選択したロール・アップロード(ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ)に基づく列名のカンマ区切りリストが含まれている必要があります。

- ファイルの2行目以降には、制御行にある列の値が含まれている必要があります。1行目の列の順序と、残りの行の値が同じである必要があります。ロール(UGP)CSVファイルの内容のサンプルを次に示します。
USR_ROLE_NAME,UGP_NAMESPACE,USR_LOGIN Administrators, null, XELSYSADM operators, null, XELSYSADM

- 列にカンマを含む値がある場合は、その値を二重引用符(")で囲む必要があります。

- CSVファイルには、各ロール表で必須と指定されているすべての列の値が含まれている必要があります。

- CSVファイルには、アップロード・ロール・データ、ロール階層、ロール・メンバーシップ・データおよびロール・カテゴリ・データに応じて、必須と指定されているすべての列の値が含まれている必要があります。

- ロール(UGP): UGP_ROLENAME、UGP_NAMESPACE、USR_LOGIN(UGP_NAMESPACEは不要な場合はNULLのままにしておくことができます)

- ロール階層(GPG): UGP_NAME、GPG_UGP_NAME

- ロール・メンバーシップ(USG): UGP_NAME、USR_LOGIN

- ロール・カテゴリ(ROLE_CATEGORY): ROLE_CATEGORY_NAME

CSVファイルの各行では、必須列の組合せの一意の値が必要です。

- CSVファイルに次の列の値が含まれていない場合、次のデフォルト値がOracle Identity Managerに挿入されます。

- ロール(UGP)の場合
UGP_ROLE_CATEGORY_KEY: ROLE_CATEGORY_NAMEがデフォルトのROLE_CATEGORY表からのROLE_CATEGORY_KEY。

UGP_DISPLAY_NAME: UGP_NAMEがデフォルトとなります。

- ロール階層(GPG)の場合

- ロール・メンバーシップ(USG)の場合
RUL_KEY: RUL_NAMEがデフォルトのRUL表からのRUL_KEY。

USG_PRIORITY: アップロード用に指定されている行に基づくUGP_KEYに基づくグループおよびランク。

- ロール・カテゴリ(ROLE CATEGORY)
なし

- ロードするロール・データが含まれるCSVファイルの名前を含むマスターTXTファイルを作成します。このファイルには任意の名前(master.txtなど)を指定できます。マスター・ファイルをoimbulkload/csv_filesディレクトリに保存します。
複数のCSVファイルをロードする場合は、マスター・ファイルの別々の行に各データCSVファイルの名前を入力します。CSVファイル名のリストを、ユーティリティでファイルからデータをロードする順序に並べ替えます。たとえば、3つのデータCSVファイル( Role1.csv、Role2.csvおよびRole3.csv)を作成したとします。マスター・ファイルで、データCSVファイルの名前を次の順序で入力します。

Role1.csv

Role2.csv

Role3.csv

ユーティリティを実行すると、データはこの順序でロードされます。

- CSVファイルがMicrosoft Windowsで生成され、Linux環境でロードされる場合は、\n\rなどの特殊文字を削除して実行時エラーを回避します。

34.7.1.2 入力ソースとしてのデータベース表の作成

OIMユーザー・データのロード用の入力ソースとしてデータベース表を使用する場合は、データベース表の作成時に次のガイドラインに従います。

- Oracle Identity Managerデータベースに表を作成します。

- 表には、次の主キー列が含まれている必要があります。
OIM_BLKLD_USRSEQ NUMBER(19)

ユーティリティでは、この列が主キーとして使用されます。必要に応じて、データベース順序を使用して、この列に値を移入できます。

- 残りの列は、使用する各ロール表の列と同じである必要があります。

表34-4に、サンプル・データベース・ロール表の構造を示します。

表34-4 サンプル・データベース表の構造

ロール

NULL

タイプ

UGP_ROLENAME

NOT NULL

VARCHAR2(2000)

UGP_NAMESPACE

VARCHAR2(512)

...

...

...

OIM_BLKLD_USRSEQ

NOT NULL

NUMBER(19)

34.7.2 ユーティリティの入力パラメータの値の確認

ユーティリティの入力パラメータは次のとおりです。

- Oracleホーム
Oracle Identity Managerデータベース用のホスト・コンピュータでのORACLE_HOME環境変数の値。

- データベース接続文字列
データベースに接続するための接続文字列。次の形式で入力する必要があります。

//HOST_IP_ADDRESS:PORT_NUMBER/SERVICE_NAME

- OIM DBユーザー
Oracle Identity Managerデータベース・ユーザーのデータベース・ログインID。

- OIM DBパスワード
Oracle Identity Managerデータベース・ユーザーのパスワード。

- オブジェクト名(OBJ_NAME)
ロードされるアカウント・データに対応するリソース・オブジェクトの名前。

- CSVファイル名
入力ソースとして使用されるCSVファイルの名前。

このパラメータは、入力ソースがCSVファイルの場合のみ使用されます。詳細は、「入力ソースとしてのCSVファイルの使用」を参照してください。親CSVファイルおよび子CSVファイルからデータをロードする場合、カンマ区切りリストを使用して、ファイル名を入力します。親CSVファイルの名前を最初に指定し、その後に子CSVファイルの名前を指定する必要があります。

- 一時表名
入力ソースとして使用される一時表の名前。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。詳細は、「入力ソースとしてのデータベース表の作成」を参照してください。

- 制御行
データベース表からOracle Identity Managerにロードされる列の名前のカンマ区切りリスト。

このパラメータは、バルク・ロード操作用の入力ソースがデータベース表である場合にのみ使用されます。

- 表領域名
バルク・ロード操作中に一時表が作成される表領域の名前(エンドユーザーが表領域名を指定しない場合、デフォルトの表領域が使用されます)。

詳細は、「バルク・ロード操作用のデータベースの準備」を参照してください。

- 日付書式
CSVファイルの日付列で使用される日付書式。

このパラメータは、入力ソースが1つまたは複数のCSVファイルの場合のみ使用されます。

日付書式は、次の項目に一致する必要があります。

- dd-mm-yyyyやMM-DD-YYYYなど、Oracleでサポートされている日付書式

- CSVファイルで指定されている日付書式

- バッチ・サイズ
ユーティリティで単一トランザクションとして処理する必要のあるユーザー・レコード数。

バッチ・サイズは、バルク・ロード操作のパフォーマンスに影響を与える可能性があります。このパラメータのデフォルト値は10000です。

- デバッグ・フラグ
このパラメータの値として、YまたはNを指定できます。このパラメータをYに設定すると、ユーティリティでは、バルク・ロード操作中に発生したイベントに関する詳細な情報が記録されます。詳細は、「操作中に記録されるデータ」を参照してください。

- ITリソース名
ターゲット・システム用に作成されたITリソースの名前。

34.7.3 操作の進捗の監視

バルク・ロード操作中に、操作の進捗に関する情報をOIM_BLKLD_LOG表に問い合せることができます。たとえば、次の問合せを実行すると、OIMロール・データをロードするバルク・ロード操作中に生成される進捗メッセージを確認できます。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'PROGRESS_MSG'
ORDER BY MSG_SEQ_NO;

バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

34.7.4 操作中に記録された例外の処理

バルク・ロード処操作理の最後に、ユーティリティでは、次のファイルに操作に関連する統計を記録します。

oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_ENTITY_NAME_load_summary.log

ログ・ファイル名のENTITY_NAMEは、ロードされるエンティティを表します。例:

- ロールの場合、ログ・ファイル名はoim_blkld_role_load_summary.logです。

- ロール・メンバーシップの場合、ログ・ファイル名はoim_blkld_rolemem_load_summary.logです。

操作中に例外が発生したかどうかを確認するには、このログ・ファイルを開き、Number of Records Rejectedラベルの数を確認します。拒否レコードの数がゼロより大きい場合、操作中に例外がスローされたことになります。ユーティリティに拒否されたユーザー・レコードは、例外表(OIM_BLKLD_EX_SUFFIX)に記録されます。拒否レコードごとに、そのレコードをロードできなかった理由に関する情報が、OIM_BLKLD_EX_SUFFIX表のEXCEPTION_MSG列に格納されます。

例34-3に、OIMロール・データを格納するバルク・ロード操作の最後にログ・ファイルに記録される統計の例を示します。

例34-3 OIMロール・データのロード後に生成されるログ・ファイルの例

***************************************************************************************************
Processing File: Role.csv
==========================================================================================
R O L E    L O A D    S T A T I S T I C S    F O R   F I L E : Role.csv
==========================================================================================
Start Time:   17-NOV-09 02.48.18.447767 AM
End Time:     17-NOV-09 02.48.19.228710 AM
Number of Records Processed:  2
Number of Records Loaded:     2
Number of Records Rejected:   0
==========================================================================================

The name of the TMP table used during the load:
OIM_BLKLD_TMP_ROLE1

The name of the Exception table used during the load:
OIM_BLKLD_EX_ROLE1
==========================================================================================
===============================================================================
Time taken in re-building indexes and enabling FK constraints
===============================================================================

Start time:      17-NOV-09 02.48.19.243781 AM

この例では、拒否ロードの数は2です。すべてのレコードがユーティリティによって拒否されたことがログ・ファイルに示されている場合、これらのレコードのロード操作の再試行の詳細は、「例外の修正およびデータ・レコードのリロード」を参照してください。

注意:

このユーティリティを使用して、リモートのOracle Identity Managerデータベースにデータをロードすることはできません。

34.7.5 例外の修正およびデータ・レコードのリロード

前述のように、バルク・ロード操作中に発生するエラーは、OIM_BLKLD_LOG表に問い合せることで表示できます。次に、エラー・メッセージを取得する問合せの例を示します。

SELECT MSG FROM OIM_BLKLD_LOG
WHERE MODULE = 'ROLE' AND LOG_LEVEL = 'ERROR'
ORDER BY MSG_SEQ_NO;

例外表OIM_BLKLD_EX_SUFFIXは、バルク・ロード操作中に入力ソースとして使用したデータ表ごとに作成されます。操作基準を満たさないレコードは、この例外表にコピーされます。各例外表の名前に追加される接尾辞は、対応するデータ表の名前に追加される接尾辞と同じです。

拒否レコードをリロードするには、次の手順を実行します。

1. 拒否レコードが格納されている例外表のバックアップを作成します。

注意:

この手順はオプションですが、バックアップを作成することをお薦めします。

2. 例外表の各レコードを確認し、EXCEPTION_MSG列に記録されているメッセージに基づいて、データのエラーを修正します。

3. 例外表のすべての拒否レコードのエラーを修正したら、表名をOIM_BLKLD_TMP_SUFFIXに変更し、これを入力ソースとして使用します。

4. ユーティリティを実行して、OIM_BLKLD_TMP_SUFFIX表からレコードをロードします。詳細は、「ユーティリティの実行」を参照してください。

5. oim_blkld_role_load_summary.logファイルまたはロール・メンバーシップ、ロール階層およびロール・カテゴリについて、対応するログ・ファイルでNumber of Records Rejectedラベルの値が0になるまで、手順1から4を繰り返します。

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

34.7.6 バルク・ロード操作の結果の検証

バルク・ロード操作の結果を検証するには、ユーティリティによって追加されたOIMロールの1つについて、次の手順を実行できるかどうかをチェックします。

1. Oracle Identity Manager管理およびユーザー・コンソールにログインし、新規に作成されたロールがロールの検索結果に表示されていることを確認します。

2. 新規に作成されたロール階層およびロール・メンバーの場合は、ロールの詳細ページでそれぞれ「階層」タブおよび「メンバー」タブをクリックします。

3. 新規に作成されたロール・カテゴリを検証するには、Oracle Identity Administrationの「ようこそ」ページで「拡張検索 - ロール・カテゴリ」をクリックします。拡張検索を実行して、新規に作成されたロールを見つけます。

34.8 操作中に記録されるデータ

バルク・ロード操作中、ユーティリティにより、進捗メッセージおよびエラー・メッセージがOIM_BLKLD_LOG表に挿入されます。この表のデータは、新規バルク・ロード操作の開始時に削除されません。この表の列の1つには、この表にメッセージが記録されたときのタイムスタンプが保持されます。

表34-5に、OIM_BLKLD_LOG表の構造を示します。

表34-5 OIM_BLKLD_LOG表の構造

列

NULL

タイプ

説明

MSG_SEQ_NO

NULL

NUMBER(19)

この列には、メッセージがこの表に挿入される順序を示す番号が格納されます。この列には、OIM_BLKLD_LOG_SEQ順序を使用して、値が移入されます。この列を使用すると、メッセージを表に記録された順序で問い合せることができます。

MODULE

NOT NULL

VARCHAR2(20)

この列には、次の値のいずれかが格納されます。

ROLE: この値は、OIMロール・データのロード中にメッセージが記録されたことを示します。

ROLE HIERARCHY: この値は、ロール階層データのロード中にメッセージが記録されたことを示します。

ROLE MEMBERSHIP: この値は、OIMロール・メンバーシップ・データのロード中にメッセージが記録されたことを示します。

ROLE CATEGORY: この値は、OIMロール・カテゴリ・データのロード中にメッセージが記録されたことを示します。

LOG_LEVEL

NOT NULL

VARCHAR2(20)

この列には、次の値のいずれかが格納されます。

ERROR: デバッグに役立つ詳細な情報イベントを示します。

DEBUG: アプリケーションの続行が可能なエラー・イベントを示します。エラーを使用して、すべての未処理例外がログに記録されます。

PROGRESS_MSG: 中間の進捗メッセージを示します。

LOAD_SOURCE

NOT NULL

VARCHAR2(40)

この列は、行が挿入されたバルク・ロード操作用のデータのソースを示します。値は、次のいずれかです。CSV File: FILE_NAME

DB Table

MSG

NOT NULL

VARCHAR2(4000)

この列には、LOG_LEVEL列に格納されている値に対応するメッセージが格納されます。

CREATE_DATE

DATE

この列には、レコードが作成されたときのタイムスタンプが格納されます。この列のエントリの形式は次のとおりです。

yyyy/mm/dd hh24:mi:ss

例:

2008/06/23 21:49:16:32

34.9 バルク・ロード操作からのパフォーマンス・データの収集

このドキュメントで前述したように、バルク・ロード操作中に、次のログ・ファイルが作成されます。

- OIMユーザーの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_user_load_summary.log

- アカウントの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_account_load_summary.log

- ロール、ロール階層、メンバーシップおよびロール・カテゴリの場合:
oimbulkload/logs_YYYYMMDD_HHMM/oim_blkld_ENTITY_NAME_load_summary.log

ログ・ファイル名のENTITY_NAMEは、ロードされるエンティティを表します。例:

- ロールの場合、ログ・ファイル名はoim_blkld_role_load_summary.logです。

- ロール・メンバーシップの場合、ログ・ファイル名はoim_blkld_rolemem_load_summary.logです。

このファイルに記録されたレコードは、バルク・ロード操作に関するパフォーマンス関連の情報の照合に使用できます。バルク・ロード操作後には、次の情報を収集できます。

- 開始時間

- 入力ソース

- ロード前のシステム内のレコード数

- ロードに成功したレコード数

- 拒否されたレコード数

- 合計所要時間

この情報は、ユーティリティの今後の実行時に使用できます。

関連項目:

エラー・イベントを格納するログ・レベルの詳細は、表34-5「OIM_BLKLD_LOG表の構造」を参照してください。

34.10 バルク・ロード操作後のクリーンアップ

バルク・ロード操作の結果を保存しない場合は、次のようにします。

- OIM_BLKLD_TMP_SUFFIX表、OIM_BLKLD_EX_SUFFIX表およびOIM_BLKLD_LOG表を削除します。

- 操作中に作成または使用したファイルをすべて削除します。

- 操作用の表領域を作成した場合、その表領域を削除します。

- logs_timestampディレクトリに作成されたログ・ファイルを削除する前に、「バルク・ロード操作からのパフォーマンス・データの収集」を参照してください。

注意:

まだOracle Identity Managerを再起動していない場合、この時点で再起動できます。

34.11 監査スナップショットの生成

必要に応じて、バルク・ロード操作後またはバルク・ロード操作中にいつでも、Oracle Identity Managerデータの監査スナップショットを生成できます。監査スナップショットは、バルク・ロード・ユーティリティのオプション7を選択して生成することもできます。ユーティリティでは、Oracle Identity Managerとともに出荷されている監査エンジンを使用します。内部的には、監査ユーティリティの実行時に、GenerateSnapshotスクリプトがコールされます。同様に、監査スナップショットを生成するオプションを選択すると、GenerateSnapshotスクリプトがコールされます。

注意:

監査ユーティリティの実行時には、Oracle Identity Managerが起動し、稼働中であることが必要です。

監査スナップショットを生成する前に、次の手順を実行します。

1. OIM_HOME/bin/GenerateSnapshot.sh(またはGenerateSnapshot.bat)ファイルをテキスト・エディタで開きます。

2. このファイル内の次の行を検索します。

- GenerateSnapshot.batファイルの場合:
SET XEL_HOME=..

- GenerateSnapshot.shファイルの場合:
XEL_HOME=..

3. この行を次の行で置き換えます。

- GenerateSnapshot.batファイルの場合:
SET XEL_HOME=OIM_HOME_DIRECTORY_PATH

- GenerateSnapshot.shファイルの場合:
XEL_HOME=OIM_HOME_DIRECTORY_PATH

4. ファイルを保存して閉じます。
監査スナップショットを生成する手順の詳細は、Oracle Fusion Middleware Oracle Identity Managerユーザーズ・ガイドの監査に関する説明を参照してください。

35 JARおよびリソース・バンドルのアップロード・ユーティリティ

テスト環境から本番環境に移行するときに、すべてのコネクタ・アーティファクトをそれぞれのデータベース表に移行する必要があり、これは次のアップロード・ユーティリティを使用して実行できます。

- JARのアップロード・ユーティリティ

- JARのダウンロード・ユーティリティ

- JARの削除ユーティリティ

- リソース・バンドルのアップロード・ユーティリティ

- リソース・バンドルのダウンロード・ユーティリティ

- リソース・バンドルの削除ユーティリティ

注意:

- JARおよびリソース・バンドルのアップロード・ユーティリティはすべてOIM_HOME/bin/ディレクトリから実行する必要があります。

- これらのユーティリティを実行する前に、wlfullclient.jarが生成されていることを確認します。

- スクリプトを実行する前にWL_HOMEを設定します。

- JARファイルおよびリソース・バンドル用のすべてのスクリプトでは、対話モードでの使用とコマンドライン・モードでの使用の両方がサポートされます。ただし、安全でパスワードがコンソールにエコーされない対話モードを使用することをお薦めします。

- スクリプトをコマンドライン・モードで実行するには、-help引数を指定します。例:

sh UploadJars.sh -help

JARファイルをサイレント・モードでアップロードするには、次の手順を実行します。

UploadJars.sh [-username USERNAME] [-password PASSWORD] [-serverURL <t3://OIM_HOSTNAME:OIM_PORT>] [-ctxFactory <weblogic.jndi.WLInitialContextFactory>] [-JavaTasks LOCATION_OF_JAVA_TASK_JAR]

複数のJARファイルをサイレント・モードでアップロードするには、次の手順を実行します。

UploadJars.sh [-username USERNAME] [-password PASSWORD] [-serverURL <t3://OIM_HOSTNAME:OIM_PORT>] [-ctxFactory <weblogic.jndi.WLInitialContextFactory>] [-JavaTasks <Location of the Java Task Jar>] [-ScheduleTask LOCATION_OF_SCHEDULED_TASK_JAR] [-ThirdParty LOCATION_OF_THIRD_PARTY_JAR]

- JARおよびリソース・バンドルのユーティリティは対話モードで使用するのが安全な実行方法であり、推奨されているため、このドキュメントでは対話モードでの使用について説明します。
JARまたはリソース・バンドルのユーティリティを対話モードで実行するには、引数を指定しないでスクリプトを実行します。例:

sh UploadJars.sh

35.1 JARのアップロード・ユーティリティ

UploadJars.shおよびUploadJars.batスクリプトはOIM_HOME/bin/ディレクトリで使用できます。これらのスクリプトを実行すると、JARファイルがデータベースにアップロードされます。

このユーティリティの起動例を次に示します。

[Enter OIM admin username :]ADMISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://xyz.com:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the jar type
1.JavaTasks
2.ScheduleTask
3.ThirdParty
1
Enter the path/location of jar file :
/tmp/example.jar
Do u want to load more jars [y/n] :n

注意:

14000はOracle Identity Managerポートです。

35.2 JARのダウンロード・ユーティリティ

DownloadJars.shおよびDownloadJars.batスクリプトはOIM_HOME/bin/ディレクトリで使用できます。これらのスクリプトを実行すると、JARファイルがデータベースからダウンロードされます。

このユーティリティの起動例を次に示します。

[Enter OIM admin username :]ADMINISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://localhost:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the jar type
1.JavaTasks
2.ScheduleTask
3.ThirdParty
1
Enter the full path of the download directory :
/home/joe/tmp
Enter the name of jar file to be downloaded from DB :
example.jar
Do u want to download more jars [y/n] :n

注意:

14000はOracle Identity Managerポートです。

35.3 JARの削除ユーティリティ

DeleteJars.shおよびDeleteJars.batスクリプトはOIM_HOME/bin/ディレクトリで使用できます。これらのスクリプトを実行すると、JARファイルがデータベースから削除されます。

このユーティリティの起動例を次に示します。

[Enter OIM admin username :]ADMINISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://localhost:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the jar type
1.JavaTasks
2.ScheduleTask
3.ThirdParty
1
Enter the name of jar to be deleted from DB :
example.jar
Do u want to delete more jars [y/n] :n

35.4 リソース・バンドルのアップロード・ユーティリティ

UploadResourceBundles.shおよびUploadResourceBundles.batスクリプトはOIM_HOME/server/bin/ディレクトリで使用できます。これらのスクリプトを実行すると、コネクタまたはカスタム・リソースがデータベースにアップロードされます。

このユーティリティの起動例を次に示します。

Enter OIM admin username :]ADMINISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://localhost:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the resource bundle type
1.Custom Resource
2.Connector Resource
2
Enter the path/location of resource bundle file :
/tmp/example.properties
Do u want to load more resource bundles [y/n] :n

35.5 リソース・バンドルのダウンロード・ユーティリティ

DownloadResourceBundles.shおよびDownloadResourceBundles.batスクリプトはOIM_HOME/bin/ディレクトリで使用できます。これらのスクリプトを実行すると、リソース・バンドルがデータベースからダウンロードされます。

このユーティリティの起動例を次に示します。

[Enter OIM admin username :]ADMINISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://localhost:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the resource bundle type
1.Custom Resource
2.Connector Resource
2
Enter the full path of the download directory :
/home/joe/tmp
Enter the name of resource bundle file :
example.properties
Do u want to download more resource bundles [y/n] :n

35.6 リソース・バンドルの削除ユーティリティ

DeleteResourceBundles.shおよびDeleteResourceBundles.batは、OIM_HOME/bin/ディレクトリで使用できます。これらのユーティリティを実行すると、リソース・バンドルがデータベースから削除されます。

このユーティリティの起動例を次に示します。

[Enter OIM admin username :]ADMINISTRATOR_LOGIN
[Enter the admin password :]ADMINISTRATOR_PASSWORD
[Enter serverURL :[ t3://localhost:14000 ]]t3://localhost:14000
[Enter context Factory :[ weblogic.jndi.WLInitialContextFactory ]]weblogic.jndi.WLInitialContextFactory
Enter the resource bundle type
1.Custom Resource
2.Connector Resource
2
Enter the name of resource bundle file to be deleted from DB:
example.properties
Do u want to delete more resource bundles [y/n] :n

第X部

レポート作成

この部では、Oracle Identity Managerでレポートを構成する方法、および権限レベル・レポートを開発する方法について説明します。

次の章で構成されます。

- 第36章「レポートの構成」

- 第37章「権限の開発」

36 レポートの構成

この章では、Oracle Identity Managerレポートについて説明し、内容は次のとおりです。

- Oracle Identity Managerレポートについて

- Oracle BI Publisherについて

- サポートされる製品

- ライセンス

- Oracle Identity Managerレポートのデプロイ

- Oracle Identity Managerレポートの構成

- Oracle Identity Managerレポートの生成

36.1 Oracle Identity Managerレポートについて

Oracle Identity Managerレポートは、Oracle BI PublisherをOracle Identity Management製品のレポート・ソリューションとして使用することを可能にします。

注意:

Oracle Identity Managerレポートは、機能領域に基づいて分類されます。たとえば、アクセス・ポリシー・レポート、アテステーション・リクエストおよび承認レポート、パスワード・ポリシー・レポートなどがあります。操作や履歴という名前ではなくなりました。

Oracle Identity Managerレポートにより、Oracle BI Publisherの制限付き使用ライセンス、および複数のOracle Identity Management製品用の簡単に使用できるレポート・パッケージが提供されます。

図36-1に示すように、Oracle Identity Managerレポートは、Oracle BI Publisherを使用してOracle Identity Management製品データベースの情報について問合せおよびレポートを行います。最小限の設定で、Oracle Identity Managerレポートを作成、管理および配信するための一般的な方法を提供します。

図36-1 Oracle Identity Managerレポートのアーキテクチャ

「図36-1 Oracle Identity Managerレポートのアーキテクチャ」の説明

Oracle Identity Managerレポートに含まれているレポート・テンプレートは、標準のOracle BI Publisherテンプレートです。ただし、各テンプレートをカスタマイズしてそのルック・アンド・フィールを変更できます。Oracle Identity Management製品のスキーマ定義を利用できる場合は、その情報を使用して独自のカスタム・レポートを作成できます。

注意:

テンプレートをカスタマイズする前に、元のデフォルト・レポート・テンプレートのバックアップ・コピーを作成することをお薦めします。

36.2 Oracle BI Publisherについて

Oracle BI Publisherはオラクル社のエンタープライズ・レポート・ソリューションの1つで、すべてのレポートおよびビジネス文書を作成、管理および配信するための、単一のレポート環境を提供します。Microsoft Word、Microsoft ExcelまたはAdobe Acrobatなどの、一般的な一連のデスクトップ・ツールを利用して、Oracle Identity Management製品を含む様々なソースのデータに基づいてレポート・レイアウトを作成および管理できます。

関連項目:

Oracle BI Publisherの機能の詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

36.3 サポートされる製品

Oracle Identity Managerレポート11gリリース1(11.1.1)では、表36-1に示す製品がサポートされます。

表36-1 サポートされる製品

テクノロジ

製品およびバージョン

Oracle Identity Management

Oracle Identity Manager 11gリリース1(11.1.1)

Oracle BI Publisher

Oracle BI Publisher 10g(10.1.3.4.1)

36.4 ライセンス

Oracle Identity Managerレポートのライセンス条件は、次のとおりです。Oracle Identity Managerレポートの使用条件に関する質問は、オラクル社の営業担当員にお問い合せください。

- Oracle Identity Managerレポートにより、制限付き使用ライセンス条件に準じて、無償でOracle BI Publisherをインストールおよび使用できます。Oracle Identity Managerレポートの制限付き使用ライセンスにより、Oracle BI Publisherの使用はOracle Identity Management製品のレポート作成のみに明示的に制限されます。

- Oracle Identity Managerレポートを使用するには、Oracle Technology Network Developer License Termsに準拠する必要があります。Oracle Identity Managerレポートを使用する前に、次のURLにあるOracle Technology NetworkのWebサイトでOracle Technology Network Developer License Termsを検索し、内容を確認してください。
http://www.oracle.com/technetwork/index.html

36.5 Oracle Identity Managerレポートのデプロイ

この項では、Oracle Identity Managerレポート11gリリース1(11.1.1)のデプロイ方法について説明し、内容は次のとおりです。

- 11gリリース1(11.1.1)へのアップグレード
以前のバージョンのOracle Identity Managerレポートをデプロイ済で、11gリリース1(11.1.1)にアップグレードする場合は、この項を参照してください。

- 11gリリース1(11.1.1)のインストール
11gリリース1(11.1.1)がOracle Identity Managerレポートの最初のデプロイである場合は、この項を参照してください。

36.5.1 11gリリース1(11.1.1)へのアップグレード

以前のバージョンのOracle Identity Managerレポートをデプロイ済で、既存のOracle Identity Managerレポートのデプロイを11gリリース1(11.1.1)にアップグレードする場合は、次の手順を実行する必要があります。

注意:

ORACLE_BI_PUBLISHER_HOMEは、Oracle BI Publisherがインストールされているルート・ディレクトリを表します。

1. 既存のレガシーOracle Identity Managerレポート・ディレクトリのバックアップ・コピーを具体的に次のように作成します。

- /ORACLE_BI_PUBLISHER_HOME/xmlp/XMLP/Reports/Oracle Identity Manager/

- /ORACLE_BI_PUBLISHER_HOME/Reports/BIP Sample Data/

注意:

ディレクトリは別の場所にある可能性があります。

これらのディレクトリのパックアップ・コピーは、アップグレードに失敗した場合に元に戻すためのソースになります。

2. Oracle BI Publisherサーバーを停止します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

3. 次の手順を実行して、既存のレガシーOracle Identity Managerレポート・ファイルすべてを、新しいリリース11g(11.1.1)のファイルに置き換えます。

1. OIM_HOME/reports/oim_product_reports_11_1_1_5_0.zipファイルの内容を抽出します。

2. ZIPファイルの内容をOracle BI Publisherサーバーの/ORACLE_BI_PUBLISHER_HOME/xmlp/XMLP/Reports/Oracle Identity Manager/ディレクトリにコピーおよび抽出します。

3. サンプル・データソースに対してサンプル・レポートを生成する場合は、/ORACLE_BI_PUBLISHER_HOME/Reports/BIP Sample Data/ディレクトリを、Oracle BI Publisherサーバーの任意の場所に再帰的にコピーします。この手順を実行すると、Oracle BI Publisherサーバーに次のようなディレクトリが含まれます。
/ORACLE_BI_PUBLISHER_HOME/Reports/BIP Sample Data/

4. Oracle BI Publisherサーバーを起動します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

アップグレードが完了し、「Oracle Identity Managerレポートの構成」に進んでOracle Identity Managerレポート11gリリース1(11.1.1)を使用してレポートを生成します。

36.5.2 11gリリース1(11.1.1)のインストール

11gリリース1(11.1.1)がOracle Identity Managerレポートの最初のデプロイである場合は、この項を参照してください。このトピックには、次の項が含まれています。

- Oracle Identity Managerレポート・ディレクトリについて

- Oracle BI Publisherの入手およびインストール

- Oracle Identity Managerレポートのインストール

36.5.2.1 Oracle Identity Managerレポート・ディレクトリについて

各Oracle Identity Management製品のOracle Identity Managerレポート・パッケージには、その製品固有のファイルのみが含まれています。各パッケージのディレクトリ構造および内容は、各製品で同じです。各パッケージのルート・ディレクトリの名前は特定のOracle Identity Management製品に対応し、ORACLE_BI_PUBLISHER_HOMEは、Oracle Identity Manager用のOracle Identity Managerレポート・パッケージのルート・ディレクトリを表します。

注意:

Oracle Identity ManagerレポートはBI Publisherに基づき、ネイティブ・レポートを参照しません。

レポート・ファイルは、IDM_HOME/server/reports/oim_product_reports_11_1_1_5_0.zipファイル内にあります。ZIPファイルの内容を抽出します。Oracle Identity Managerレポート・パッケージのディレクトリの詳細は、次のとおりです。

- /OIM_REPORTS/Reports/BIP Sample Data/
このディレクトリには、各レポートのサンプル・データファイルが含まれています。サンプル・データファイルの名前は、特定のレポートそれぞれに対応しています。たとえば、OIM_Approval_Activity.xmlは、Oracle Identity Managerの承認アクティビティ・レポートのサンプル・データ・ファイルです。

- /OIM_REPORTS/Reports/Oracle Identity Manager Reports/Samples/
このディレクトリには、各Oracle Identity Management製品固有の類似するレポートをカテゴリごとにグループ化するディレクトリ(アテステーション・レポートなど)が含まれています。これらのカテゴリ・ディレクトリ内には、個々のレポートに対応する名前のディレクトリが含まれます。レポート固有の各ディレクトリには、レポートに対応する名前のXML Data Object(.xdo)ファイルおよびRich Text Format(.rtf)ファイルが含まれています。

- XML Data Objectファイルは、SQL問合せ、パラメータ、データ・グループおよびレポート属性など、レポートのデータソースを定義します。

- Rich Text Formatファイルはレポート・レイアウト・ファイルで、それぞれのXML Data Objectファイルで定義されている属性を参照します。

デフォルトでは、このディレクトリに含まれているレポートは、Oracle Identity Manager用のOIM JDBCという名前のJDBCデータソースを使用するよう設定されています。

- /OIM_REPORTS/Reports/Oracle Identity Manager Reports/Samples/
Oracle Identity Managerレポートでは、サンプル・レポートを生成するためのオプションが提供されます。本番JDBCデータソースに対してレポートを実行せずにレポート・データの例を表示して外観を確認するには、サンプル・データソースを作成し、そのデータソースに対してサンプル・レポートを生成します。

このディレクトリには、各製品の個々のレポートに対応する名前のサブディレクトリが含まれています。各サブディレクトリには、サンプル・レポートとしてPDFファイルが含まれています。

デフォルトでは、このディレクトリに含まれているレポートは、Oracle Identity Manager用のOIM Sample Dataという名前のサンプル・データソースを使用するように設定されています。これらのサンプルは、各レポートのレイアウトおよび内容を示すために提供されており、含まれるデータは架空のものです。

36.5.2.2 Oracle BI Publisherの入手およびインストール

Oracle Identity Managerレポートは、Oracle BI Publisherを使用してOracle Identity Managerレポートを生成することを可能にします。

Oracle BI Publisherを入手してインストールするには、次の手順を実行します。

1. http://www.oracle.com/technetwork/index.htmlにあるOracle Technology NetworkのWebサイトにアクセスします。

2. Oracle BI PublisherまたはOracle BI Publisher Downloadというキーワードを使用して、Oracle BI Publisher Downloadページを検索します。

3. Oracle BI Publisher Downloadページに表示されるOracle Technology Network License Agreementを確認します。Oracle BI Publisherをダウンロードするには、Oracle Technology Network License Agreementに同意する必要があります。

注意:

Oracle BI Publisher Downloadページに表示されるOracle Technology Network License Agreementは、Oracle BI Publisherをダウンロードするためのライセンス契約であり、Oracle Identity Managerレポートのライセンス契約ではありません。

Oracle Identity Managerレポートの制限付き使用ライセンスにより、Oracle Identity Managerのレポート作成のみにOracle BI Publisherの使用は制限されます。Oracle Identity Managerレポートのライセンスの詳細は、「ライセンス」を参照してください。

4. 該当するリンクをクリックして、使用するオペレーティング・システムに適したOracle BI Publisherのバージョンをダウンロードします。

5. Oracle Business Intelligence Publisherインストレーション・ガイドを参照してOracle BI Publisherをインストールします。Oracle Business Intelligence Publisherインストレーション・ガイドにアクセスする方法の詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

6. Oracle Identity Managerレポートをインストールおよび構成する前に、Oracle BI Publisherが使用できることを確認します。

続行する場合は、「Oracle Identity Managerレポートのインストール」に進みます。

36.5.2.3 Oracle Identity Managerレポートのインストール

この項では、Oracle Identity Managerレポートのインストール方法を説明します。Oracle Identity Managerレポートをインストールする前に、Oracle BI Publisherをインストールし、使用できることを確認する必要があります。詳細は、「Oracle BI Publisherの入手およびインストール」を参照してください。このトピックには、次の項が含まれています。

- WebサイトからのOracle Identity Managerレポートのインストール

- Oracle Identity ManagerインストールからのOracle Identity Managerレポートのインストール

36.5.2.3.1 WebサイトからのOracle Identity Managerレポートのインストール

次の手順を実行して、Oracle Identity ManagerレポートをOracle Technology NetworkのWebサイトからインストールします。

1. Oracle BI Publisherサーバーを停止します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

2. OIM_HOME/reports/oim_product_reports_11_1_1_5_0.zipファイルの内容を抽出します。

3. /OIM_HOME/reports/BIPublisher/reports/ディレクトリを、Oracle BI Publisherサーバーの/ORACLE_BI_PUBLISHER_HOME/xmlp/XMLP/Reports/Oracle Identity Manager/ディレクトリに再帰的にコピーします。この手順を実行すると、Oracle BI Publisherサーバーに次のディレクトリが含まれます。
/ORACLE_BI_PUBLISHER_HOME/xmlp/XMLP/Reports/Oracle Identity Manager/

4. サンプル・データソースに対してサンプル・レポートを生成する場合は、/OIM_REPORTS/Reports/BIP Sample Data/ディレクトリを、Oracle BI Publisherサーバーの任意の場所に再帰的にコピーします。この手順を実行すると、Oracle BI Publisherサーバーに次のようなディレクトリが含まれます。
/ORACLE_BI_PUBLISHER_HOME/BIP Sample Data/

5. Oracle BI Publisherサーバーを起動します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

続行する場合は、「Oracle Identity Managerレポートの構成」に進みます。

36.5.2.3.2 Oracle Identity ManagerインストールからのOracle Identity Managerレポートのインストール

Oracle Identity ManagerレポートをOracle Identity Managerインストールのバージョンで構成する場合は、次の手順を実行してOracle Identity Managerレポートをインストールします。

1. Oracle BI Publisherサーバーを停止します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

2. Oracle Identity Managerレポート・パッケージを/OIM_HOME/ReportsディレクトリからOracle BI Publisherサーバーの場所にコピーします。例:
/ORACLE_BI_PUBLISHER_HOME/xmlp/XMLP/Reports/Oracle Identity Manager/

3. サンプル・データソースに対してサンプル・レポートを生成する場合は、/OIM_REPORTS/Reports/BIP Sample Data/ディレクトリを、Oracle BI Publisherサーバーの任意の場所に再帰的にコピーします。この手順を実行すると、Oracle BI Publisherサーバーに次のようなディレクトリが含まれます。
/ORACLE_BI_PUBLISHER_HOME/BIP Sample Data/

4. Oracle BI Publisherサーバーを起動します。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

続行する場合は、「Oracle Identity Managerレポートの構成」に進みます。

36.6 Oracle Identity Managerレポートの構成

この項では、Oracle Identity Manager用のOracle Identity Managerレポートの構成方法を説明します。内容は次のとおりです。

- Oracle Identity Manager用のOracle Identity Managerレポートの構成

- BPELベースのOracle Identity Managerレポートのセカンダリ・データソースの構成

36.6.1 Oracle Identity Manager用のOracle Identity Managerレポートの構成

次の手順を実行して、Oracle Identity Manager用のOracle Identity Managerレポートを構成します。

1. 次の手順を実行して、Oracle Identity Manager用のJDBCデータソースを構成します。

1. Webブラウザから管理者としてOracle BI Publisherにログインします。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

2. 「管理」タブをクリックし、「データソース」の下の「JDBC」をクリックして、「データソースの追加」ボタンをクリックします。「データソースの追加」画面が表示されます。

3. 「データソースの追加」画面のフィールドに次の情報を入力します。次の例の変数値をOracle Identity Managerデータベースの実際の値に置き換えます。

フィールド

入力するデータ

データソース名

OIM JDBC

接続文字列

jdbc:oracle:thin:@host:port:sid

ユーザー名

Oracle Identity Managerへのアクセス権を持つデータベース・スキーマ・ユーザーのユーザー名。

パスワード

「ユーザー名」フィールドで識別されたユーザーのパスワード。

データベース・ドライバ・クラス

oracle.jdbc.driver.OracleDriver

プロキシ認証を使用

プロキシ認証を使用する場合のみ、このオプションを選択してください。

4. 「接続のテスト」ボタンをクリックして、JDBCデータソースへの接続をテストします。接続に成功すると、「接続は正常に確立されました。」というメッセージが表示されます。
「接続は正常に確立されました。」というメッセージが表示されない場合、入力したデータが正しいか検証し、Oracle Identity Managerデータベースが稼働しているかどうか確認してください。

「接続は正常に確立されました。」というメッセージが表示されたら、「データソースの追加」画面の「適用」ボタンをクリックします。

2. (オプション)本番JDBCデータソースに対してレポートを実行せずにレポート・データの例を表示して外観を確認するには、サンプル・データソースに対してレポートを実行します。次の手順を実行して、サンプル・データソースを作成します。

1. 「管理」タブをクリックし、「データソース」の下の「ファイル」をクリックして、「データソースの追加」ボタンをクリックします。「データソースの追加」画面が表示されます。

2. 「データソースの追加」画面のフィールドに次の情報を入力します。

フィールド

入力するデータ

データソース名

OIM Sample Data

追加の構成を行わずにOracle Identity Managerレポートでサンプル・レポートを生成するには、このデータソースの名前をOIM Sample Dataにする必要があります。このデータソースの名前をOIM Sample Dataにしない場合、すべてのレポート・ファイルのデータソース・プロパティを、このフィールドに入力した名前に更新する必要があります。

最上位レベル・ディレクトリのフルパス

インストール時の/BIP Sample Data/OIM/ディレクトリのコピー先のパス。次に例を示します。

/ORACLE_BI_PUBLISHER_HOME/BIP Sample Data/OIM/

注意: /BIP Sample Data/OIM/ディレクトリは、別の場所にある可能性があります。

3. レポートを生成する予定の各Oracle Identity Managerユーザーに対して、Oracle BI Publisherでユーザー・アカウントを作成します。Oracle Identity Managerでは、すべてのレポートでデータ・セキュリティが実施されるため、ユーザーはアクセス権限を持つデータのみを表示できます。
Oracle BI PublisherでOracle Identity Managerユーザー・アカウントを作成するには、次の手順を実行します。

1. 「管理」タブをクリックし、「セキュリティ・センター」セクションの「ユーザー」をクリックして、「ユーザーの作成」をクリックします。「ユーザーの作成」画面が表示されます。

2. 「ユーザーの作成」画面のフィールドに次の情報を入力します。

フィールド

入力するデータ

ユーザー名

Oracle Identity Managerレポートを使用してレポートを生成する予定のOracle Identity Managerユーザーの名前を入力します。入力するユーザー名は、Oracle Identity Manager内のユーザー名と同一にする必要があります。

パスワード

ユーザーのパスワードを割り当てます。割り当てるパスワードをユーザーのOracle Identity Managerパスワードと同一にする必要はありません。

3. 「ユーザーの作成」画面の「適用」ボタンをクリックします。「ユーザー」画面が表示されます。

4. 手順bで作成したユーザーの「ロールの割当て」アイコンをクリックします。「ロールの割当て: username」画面が表示されます。

5. 「使用可能なロール」フィールドのリストから「BI Publisher管理者」を選択し、「移動」ボタンをクリックして「割当済ロール」フィールドに移動させ、「適用」をクリックします。

注意:

ユーザーへのロールの割当ては、特定のユーザーにどのような権限を付与する必要があるかに依存します。たとえば、すべてのユーザーに管理者ロールを割り当てる必要はありません。必要に応じて、開発者、スケジューラ、アナライザなどの他の各種ロールを割り当てることができます。

Oracle Identity Manager用の構成は完了です。Oracle Identity Managerのレポートを生成するには、「Oracle Identity Managerレポートの生成」を参照してください。

36.6.2 BPELベースのOracle Identity Managerレポートのセカンダリ・データソースの構成

次の4つのレポートには、BPELデータベースに接続してBPELデータを取得するセカンダリ・データソースがあります。

- タスク割当て履歴

- リクエストの詳細

- リクエスト・サマリー

- 承認アクティビティ

BI Publisherでは、1つのレポートに1つのデータソースのみを割り当てることができます。最初のデータソースはOracle Identity Managerデータソースであり、oim_datasourceと呼ばれます。Oracle Identity Managerデータソースの詳細は、「Oracle Identity Manager用のOracle Identity Managerレポートの構成」を参照してください。前述の4つのレポートには、BPELデータソースでBPEL JDBCと呼ばれるセカンダリ・データソースがあります。

BPELベースのレポート用のセカンダリ・データソースを構成するには、次の手順を実行します。

1. 次の手順を実行して、Oracle Identity Manager用のセカンダリJDBCデータソースを構成します。

1. Webブラウザから管理者としてOracle BI Publisherにログインします。詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

2. 「管理」タブをクリックし、「データソース」の下の「JDBC」をクリックして、「データソースの追加」ボタンをクリックします。「データソースの追加」画面が表示されます。

3. 「データソースの追加」画面のフィールドに次の情報を入力します。次の例の変数値をOracle Identity Managerデータベースの実際の値に置き換えます。

フィールド

入力するデータ

データソース名

BPEL JDBC

追加の構成を行わずにOracle Identity ManagerレポートでJDBCデータソースに対してレポートを生成するには、このデータソースの名前をbpel_datasourceにする必要があります。このデータソースの名前をbpel_datasourceにしない場合、すべてのレポート・ファイルのデータソース・プロパティを、このフィールドに入力した名前に更新する必要があります。

接続文字列

jdbc:oracle:thin:@host:port:sid

ユーザー名

soainfra

Oracle Identity Managerへのアクセス権を持つデータベース・スキーマ・ユーザーのユーザー名。

パスワード

「ユーザー名」フィールドで識別されたユーザーのパスワード。

データベース・ドライバ・クラス

oracle.jdbc.driver.OracleDriver

プロキシ認証を使用

プロキシ認証を使用する場合のみ、このオプションを選択してください。

4. 「接続のテスト」ボタンをクリックして、JDBCデータソースへの接続をテストします。接続に成功すると、「接続は正常に確立されました。」というメッセージが表示されます。
「接続は正常に確立されました。」というメッセージが表示されない場合、入力したデータが正しいか検証し、Oracle Identity Managerデータベースが稼働しているかどうか確認してください。

「接続は正常に確立されました。」というメッセージが表示されたら、「データソースの追加」画面の「適用」ボタンをクリックします。

36.7 Oracle Identity Managerレポートの生成

この項では、Oracle Identity Managerレポートの生成方法について説明し、内容は次のとおりです。

- サンプル・データソースに対するサンプル・レポートの生成

- 本番JDBCデータソースに対するレポートの生成

- BPELベースのJDBCデータソースに対するレポートの生成

注意:

Oracle Identity Manager管理およびユーザー・コンソールからBI Publisherにアクセスすることはできません。Oracle Idenitty Manager 11gレポートにアクセスするにはBI Publisherを明示的に開く必要があります。

36.7.1 サンプル・データソースに対するサンプル・レポートの生成

本番JDBCデータソースに対してレポートを実行せずにレポート・データの例を表示して外観を確認するには、サンプル・データソースに対してサンプル・レポートを生成します。サンプル・レポートを生成するには、まずサンプル・データソースを作成する必要があります。サンプル・データソースの作成の詳細は、使用するOracle Identity Management製品に応じて、「Oracle Identity Managerレポートの構成」の該当する項を参照してください。

サンプル・データソースを作成したら、次の手順を実行してサンプル・レポートを生成できます。

1. Webブラウザで、「Oracle Identity Manager用のOracle Identity Managerレポートの構成」で作成したユーザー名を使用してOracle BI Publisherにログインします。

2. 「共有フォルダ」、Oracle Identity Managerレポートの順にクリックし、サンプル・レポートを選択します。

3. 生成するサンプル・レポートについて「表示」をクリックします。

4. サンプル・レポートの出力フォーマットを選択して「表示」をクリックします。
サンプル・レポートが生成されます。

36.7.2 本番JDBCデータソースに対するレポートの生成

本番JDBCデータソースに対してレポートを生成するには、次の手順を実行します。

1. 「Oracle Identity Manager用のOracle Identity Managerレポートの構成」で作成したユーザー名を使用してOracle BI Publisherにログインします。

2. 「共有フォルダ」、Oracle Identity Managerレポート、「OIM_REPORTS」の順にクリックして、Oracle Identity Management製品のフォルダに移動します。

3. 生成するレポートについて「表示」をクリックします。

4. レポートの出力フォーマットを選択して「表示」をクリックします。
レポートが生成されます。

関連項目:

Oracle BI Publisherの詳細は、Oracle Business Intelligence Publisherのドキュメントを参照してください。

36.7.3 BPELベースのJDBCデータソースに対するレポートの生成

次の4つのレポートには、BPELデータベースに接続してBPELデータを取得するセカンダリ・データソースがあります。

- タスク割当て履歴

- リクエストの詳細

- リクエスト・サマリー

- 承認アクティビティ

これらのレポートには、BPELベースのJDBCデータソースでBPEL JDBCと呼ばれるセカンダリ・データソースがあります。

BPELベースのJDBCデータソースに対してレポートを生成するには、次の手順を実行します。

1. BPELデータソースがBI Publisherに存在することを確認します。このBPELデータソースはBPELデータベースを示す必要があります。BPELデータソースの作成方法の詳細は、「BPELベースのOracle Identity Managerレポートのセカンダリ・データソースの構成」を参照してください。

2. 「Oracle Identity Manager用のOracle Identity Managerレポートの構成」で作成したユーザー名を使用してOracle BI Publisherにログインします。

3. 「共有フォルダ」、Oracle Identity Managerレポート、「OIM_REPORTS」の順にクリックして、Oracle Identity Management製品のフォルダに移動します。

4. 生成するレポートについて「表示」をクリックします。

5. レポートの出力フォーマットを選択して「表示」をクリックします。
BPELベースのJDBCデータソースに基づいてレポートが生成されます。

37 権限の開発

ターゲット・システムのアカウントに付与される権限により、アカウント所有者(ユーザー)は特定のタスクや機能を実行できます。権限は、ロール、職責またはグループ・メンバーシップの場合があります。たとえば、ユーザーRichardがターゲット・システムでInventory Analystロールを付与されている場合、Richardはその権限を使用してターゲット・システムの在庫関連レポートにアクセスし、生成できます。

Oracle Identity Managerでは、OIMユーザーにプロビジョニングされるアカウント(リソース)ごとに1つのプロセス・フォームがあります。権限データは、プロセス・フォームの子プロセス・フォームに格納されます。前述の例では、ターゲット・システムのRichardのアカウントのプロセス・フォームには、Inventory Managerロール・データを保持する子プロセス・フォームがあります。

子プロセス・フォームに格納される権限データを構成する属性は、ターゲット・システムによって異なる可能性があります。また、ロールと職責などの異なるタイプの権限は、異なる属性を持つ場合があります。たとえば、ターゲット・システムAに、次のロール・データの属性が含まれます。

- ロール名

- ロールの説明

- 開始日

- 終了日

同じターゲット・システムに、職責データの異なる属性のセットが含まれる場合があります。

- 職責ID

- 割当て日

- 代理ユーザー

- エスカレーション・ユーザー

ターゲット・システムの権限を一意に識別する属性をマークまたは強調表示できます。前述のサンプル・ロールおよび職責データの属性で、「ロール名」属性と「職責ID」属性は、ターゲット・システムAのロール権限および職責権限を一意に識別します。権限を一意に識別する属性をマークすることにより、他のアイデンティティ管理ソリューションで使用可能であり、レポートでも表示される権限データの取得を有効にします。

この章では、次の項目について説明します。

- 使用可能権限および割り当てられた権限

- 権限データ取得プロセス

- 子プロセス・フォームでの権限属性のマーク

- 権限データを使用するためのスケジュール済タスクの構成

- 割り当てられた権限に対する変更の取得の無効化

- 権限関連レポート

37.1 使用可能権限および割り当てられた権限

ターゲット・システムには、定義済で、ターゲット・システムのアカウント(ユーザー)に割り当てる準備ができた一連の権限を含めることができます。このターゲット・システムをOracle Identity Managerと統合すると、ターゲット・システムからOracle Identity ManagerのLKV表に権限データをインポート(同期)できます。

注意:

事前定義済コネクタを使用してターゲット・システムを統合する場合は、スケジュール済タスクを使用してこの表に権限データをフェッチすることができます。

LKV表の権限は、アカウントへの割当てに使用可能です。このマニュアルでは、これらの権限を使用可能権限と呼びます。

プロビジョニング操作中、割り当てる権限を子プロセス・フォームの参照フィールドから選択します。このマニュアルでは、アカウントに割り当てられる権限を割り当てられた権限と呼びます。割り当てられた権限に関するデータは、子プロセス・フォーム表に格納されます。

37.2 権限データ取得プロセス

各子プロセス・フォームの権限属性をマークした後、次のプロセスが実行されます。

- 使用可能権限に関するデータの取得

- 割り当てられた権限に関するデータの取得

37.2.1 使用可能権限に関するデータの取得

次の手順では、使用可能権限に関するデータの取得方法について説明します。

注意:

これらの手順で説明するプロセスを有効にするには、各子プロセス・フォームの権限属性をマークする必要があります。その方法については、この章で後述します。

1. ターゲット・システムとの同期により、使用可能権限に関するデータがLKV表に格納されます。

2. 権限リスト・スケジュール済タスクをスケジュールし、実行します。

3. スケジュール済タスクで、UD_表の権限属性が識別されます。

4. スケジュール済タスクで、使用可能権限に関するデータがLKV表からENT_LIST表にコピーされます。

37.2.2 割り当てられた権限に関するデータの取得

この項では、割り当てられた権限に関するデータの取得方法について説明します。

注意:

これらの手順で説明するプロセスを有効にするには、各子プロセス・フォームUD_表の権限属性をマークする必要があります。その方法については、この章で後述します。

割り当てられた権限の初回の同期を行うには、次の手順を実行します。

1. 権限割当てスケジュール済タスクを、1回実行するようにスケジュールします。

2. スケジュール済タスクで、子プロセス・フォーム(UD_)表の権限属性が識別されます。

3. スケジュール済タスクで、各UD_表にINSERT、UPDATEおよびDELETEトリガーが作成されます。スケジュール済タスクで、OIU表にもトリガーが作成されます。

4. スケジュール済タスクで、割り当てられた権限に関するデータがUD_表からENT_ASSIGN表にコピーされます。

注意:

ENT_ASSIGN表には、リソース(ユーザー)に現在割り当てられている権限に関するデータが保持されます。権限が失効すると、その権限のレコードはこの表から履歴データに移動されます。詳細は、「権限更新」を参照してください。

割り当てられた権限の増分同期を行うには、次の手順を実行します。

1. 割り当てられた権限にプロビジョニング操作またはリコンシリエーションを介して変更が加えられると、追加、変更または削除された行がINSERT、UPDATEまたはDELETEトリガーによってUD_表からステージング表にコピーされます。

2. 権限更新スケジュール済タスクを構成し、実行します。

3. スケジュール済タスクで実行される処理は、ステージング(ENT_ASSIGN_DELTA)表のレコードごとに、割り当てられた権限に対して実行される操作のタイプによって異なります。

注意:

操作のタイプ(INSERT、UPDATEまたはDELETE)は、ステージング表に格納されるデータ項目の1つです。

- イベント: アカウントに権限が新規に割り当てられました。
処理: ENT_ASSIGN表に新規レコードが作成(ステージング表からコピー)されます。

- イベント: 既存の権限が変更されました。
処理: 既存のレコードがENT_ASSIGN表からENT_ASSIGN_HIST表にコピーされます。既存のレコードはENT_ASSIGN表から削除されます。新規に変更された権限に対応するレコードがENT_ASSIGN表に作成されます。

- イベント: 既存の権限が失効しました。
処理: 既存のレコードがENT_ASSIGN表からENT_ASSIGN_HIST表にコピーされます。既存のレコードはENT_ASSIGN表から削除されます。

37.3 子プロセス・フォームでの権限属性のマーク

権限データを取得するリソースの子プロセス・フォームUD_表の権限属性をマークする必要があります。ユーザーの操作環境に、15のターゲット・システムがあるとします。15個のリソースのうち12個のリソースの権限データを取得する場合は、それらの12個のリソースの権限属性をマークする必要があります。

この項で説明する手順を実行する際には、次のガイドラインに従います。

- 子プロセス・フォームで、権限データを保持する1つの属性のみをマークできます。

- マークする属性は、LookupFieldタイプであり、そのプロパティは次のどちらかである必要があります。

- 参照コード

- 参照問合せ
「参照問合せ」は次の条件を満たす必要があります。

- 問合せでLKU表およびLKV表が使用される

- 問合せの「参照コード」はLKU表のものである

- LKV_ENCODED列値が保存に使用される

- LKV_DECODED列値が表示目的で使用される

子プロセス・フォームのフィールドを権限としてマークするには、次の手順を実行します。

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

2. 「開発ツール」を開き、「フォーム・デザイナ」をダブルクリックします。

3. 権限をマークする子フォームを検索し、開きます。
たとえば、UD_ADUSRC子フォームの権限をマークできます。

4. 「新しいバージョンの作成」をクリックします。

5. 新規バージョンのラベルを入力し、「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

6. 「現在のバージョン」リストから、作成するバージョンを選択します。

7. 「プロパティ」タブで権限としてマークするフィールドを選択し、「プロパティの追加」をクリックします。

8. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限」を選択します。

注意:

列タイプがLookupFieldに設定され、プロパティ名が「参照コード」に設定されている場合にのみ、「権限」をフィールドのプロパティとして設定できます。

9. 「プロパティ値」フィールドに、trueと入力します。
ダイアログ・ボックスの他のフィールドに値を指定する必要はありません。

次のスクリーンショットは、参照フィールドの「プロパティの編集」ダイアログ・ボックスを示しています。

10. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

11. 権限の「開始日」および「終了日」値の取得を有効にする場合は、次の手順を実行します。

注意:

「開始日」および「終了日」値の取得は、両方のフィールドの列タイプがDateFieldDlgである場合にのみ有効にできます。

1. 「プロパティ」タブで「開始日」フィールドを選択し、「プロパティの追加」をクリックします。

2. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限有効期限開始」を選択します。

3. 「プロパティ値」フィールドに、trueと入力します。

4. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

5. 「プロパティ」タブで「終了日」フィールドを選択し、「プロパティの追加」をクリックします。

6. 「プロパティの追加」ダイアログ・ボックスの「プロパティ名」リストから、「権限有効期限終了」を選択します。

7. 「プロパティ値」フィールドに、trueと入力します。
次のスクリーンショットは、「開始日」フィールドの「プロパティの編集」ダイアログ・ボックスを示しています。

8. 「保存」アイコンをクリックしてダイアログ・ボックスを閉じます。

12. 「保存」アイコンをクリックして、子プロセス・フォームに行った変更を保存します。
次のスクリーンショットは、子プロセス・フォームの「プロパティ」タブを示しています。

注意:

「開始日」と「終了日」のマークはオプションです。

13. 「バージョンをアクティブにする」をクリックします。

37.4 権限データを使用するためのスケジュール済タスクの構成

権限データを使用するために次のスケジュール済タスクを構成します。

- 権限リスト

- 権限割当て

- 権限更新

37.4.1 権限リスト

Entitlement List・スケジュール済タスクでは、子プロセス・フォーム表の権限属性が識別され、権限データがLKV表からENT_LIST表にコピーされます。ENT_LIST表に作成されたレコードは、特定のターゲット・システムで定義された権限に対応します。

ユーザーの操作環境において新規権限がターゲット・システムで定義される頻度に応じて、このタスクのスケジュールを設定する必要があります。また、新しいターゲット・システムがOracle Identity Managerに統合された場合、このスケジュール済タスクを実行する必要があります。つまり、新しい権限をマークするたびにこのタスクを実行する必要があります。コネクタのスケジュール済タスクで参照フィールドのデータがターゲット・システムからLKV表にフェッチされた後、権限リスト・スケジュール済タスクを実行して、その権限データをENT_LIST表にコピーできます。

このスケジュール済タスクでは、ターゲット・システムの権限に対する更新や削除も処理されます。たとえば、Senior Accounts Analystロールがターゲット・システムから削除された場合、コネクタのスケジュール済タスクではそのロールのエントリがLKV表から削除されます。権限リスト・スケジュール済タスクを実行すると、ENT_LIST表のロールを含む行が削除済行としてマークされます。

37.4.2 権限割当て

権限割当てスケジュール済タスクは、割り当てられた権限に関するデータをENT_ASSIGN表に初めてコピーする場合に使用されます。このタスクでは、子プロセス・フォーム表の権限属性が識別され、割り当てられた権限に関するデータが子プロセス・フォーム表からENT_ASSIGN表にコピーされます。ENT_ASSIGN表に作成されたレコードは、特定のターゲット・システムで特定のユーザーに割り当てられた権限に対応します。

また、権限データのコピー元となる子プロセス・フォーム表にINSERT、UPDATEおよびDELETEトリガーが作成されます。これらのトリガーの機能の詳細は、「割り当てられた権限に関するデータの取得」を参照してください。

このスケジュール済タスクのRECORDS_TO_PROCESS_IN_BATCH属性を使用して、各バッチのレコード数を指定できます。デフォルトのバッチ・サイズは5000です。

このスケジュール済タスクは、権限データの使用を初めて開始するとき、および新しい子プロセス・フォーム・フィールドを権限としてマークするときに実行する必要があります。

37.4.3 権限更新

権限更新スケジュール済タスクでは、子プロセス・フォーム表の権限割当てデータに対する変更でENT_ASSIGN表が更新されます。権限割当てスケジュール済タスクで作成されたトリガーにより、権限割当てデータに加えられた変更がステージング表にコピーされます。権限更新スケジュール済タスクでは、ステージング表のデータが処理され、ENT_ASSIGN表のデータに必要な変更が加えられます。子プロセス・フォーム表のINSERT、UPDATEおよびDELETEトリガーの機能の詳細は、「割り当てられた権限に関するデータの取得」を参照してください。

37.5 割り当てられた権限に対する変更の取得の無効化

ENT_ASSIGN表の割り当てられた権限データの増分同期を手動で無効化できます。つまり、割り当てられた権限に対する変更の取得を無効化できます。これを行うには、子プロセス・フォーム表に作成された次のトリガーを削除するSQLスクリプトを作成し、実行します。

注意:

これらのトリガーは、権限割当てスケジュール済タスクによって作成されます。

- OIU表に作成されたOIU_U_TRGトリガー

- UD_表に作成された次のトリガー

- UD_TABLE_NAME_I_TRG

- UD_TABLE_NAME_D_TRG

- UD_TABLE_NAME_U_TRG

スクリプトの実行後、割り当てられた権限に対する変更はステージング表にコピーされません。

次に、子プロセス・フォーム表のトリガーを削除するSQLスクリプトのサンプルを示します。

create or replace
TRIGGER UD_REQENTC_I_TRG
AFTER INSERT ON UD_REQENTC
FOR EACH ROW
BEGIN
INSERT INTO ENT_ASSIGN_DELTA(ENT_ASSIGN_DELTA_KEY, orc_obi_key,ENT_OPERATION,DELTA_TABLE_OST_STATUS,DELTA_ENT_CODE,valid_from_date,OIU_KEY,SDK_TYPE  )
VALUES(ENT_ASSIGN_DELTA_SEQ.nextval,:new.orc_key,'grant',(select sdk_key from sdk where sdk_name='UD_REQENTC'),:new.UD_REQENTC_LKUP,sysdate,(select oiu.OIU_KEY from OIU oiu where oiu.ORC_KEY =:new.orc_key),'P');
END

UD_REQENTCは、権限フィールドを含む子フォーム名です。これは動的に生成されます。

37.6 権限関連レポート

次の事前定義済レポートは、割り当てられた権限に関するデータを提供します。

注意:

これらのレポートを表示するには、ADMINISTRATORSグループのメンバーである必要があります。

レポートでは、特定のユーザーに対する同じ権限の重複した割当ては抑制されます(ENT_表にコピーされないため)。たとえば、ターゲット・システムでユーザーJohn DoeにSales Superintendentロールが2回割り当てられた場合、レポートには、この権限のインスタンスが1つのみ示されます。

- 権限アクセス・リスト

- 権限アクセス・リスト履歴

- ユーザー・リソース権限

- ユーザー・リソース権限履歴

37.6.1 権限アクセス・リスト

「権限アクセス・リスト」レポートには、レポートの生成時に指定した権限を現在割り当てられているユーザーが一覧表示されます。このレポートには、権限に関する基本情報、および権限が割り当てられているユーザーのリストが表示されます。

37.6.2 権限アクセス・リスト履歴

「権限アクセス・リスト履歴」レポートには、レポートの生成時に指定した権限を割り当てられていたユーザーが一覧表示されます。このレポートには、権限に関する基本情報、および権限が割り当てられていたユーザーのリストが表示されます。

37.6.3 ユーザー・リソース権限

「ユーザー・リソース権限」レポートには、レポートの生成時に指定したユーザーの現在の権限が一覧表示されます。このレポートには、基本的なユーザー情報および権限の詳細が表示されます。

37.6.4 ユーザー・リソース権限履歴

「ユーザー・リソース権限履歴」レポートには、レポートの生成時に指定したユーザーに過去に割り当てられていた権限の詳細が一覧表示されます。このレポートには、基本的なユーザー情報および権限の詳細が表示されます。

第XI部

付録

この部は、次の付録で構成されています。

- 付録A「スケジュール済タスクの構成ファイル」

- 付録B「SPML属性とLDAPマッピング、およびOracle Identity Managerの属性」

- 付録C「SPMLの例」

- 付録D「メタデータ列コード」

A スケジュール済タスクの構成ファイル

この付録では、スケジューラ・タスクの定義を含むXMLファイルの構造および構成要素について説明します。

- スケジューラXMLファイルの構造

- scheduledTasks要素

- task要素

- name要素

- class要素

- description要素

- retry要素

- parameters要素

- string-param要素

- number-param要素

- boolean-param要素

A.1 スケジューラXMLファイルの構造

次に、構成XMLファイル内の要素のリストを示します。

<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
<task>
<name>
<class>
<description>
<retry>
<parameters>
<string-param>
.....
</string-param>

<number-param>
.......
</number-param>

<boolean-param>
.......
</boolean-param>
</parameters>
</task>
</scheduledTasks>

A.2 scheduledTasks要素

scheduledTasks要素は、スケジュール済タスクの定義に使用されるXMLのルート要素です。

表A-1に、scheduledTasks要素のプロパティの概要を示します。

表A-1 scheduledTasks要素のプロパティ

プロパティ

値

親要素

該当なし

属性

次のように、XML名前空間をscheduledTasks要素の属性として指定します。

<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">

注意: xmlnsパラメータは必須です。

子要素

task

出現回数

作成するスケジュール済タスクXMLファイルごとに1つ

要素値

該当なし

必須かオプションか

必須

A.3 task要素

task要素は、scheduledTasks要素の子要素です。

task要素は、スケジュール済タスクを定義するために使用します。task要素には、スケジュール済タスクの名前、クラス、説明、再試行回数などの情報が含まれます。

表A-2に、task要素のプロパティの概要を示します。

表A-2 task要素のプロパティ

プロパティ

値

親要素

scheduledTasks

属性

なし

子要素

name、class、description、retryおよびparameters

出現回数

作成するタスクごとに1つ

注意: 単一のスケジュール済タスクXMLファイルに複数のタスクを定義する場合は、定義するスケジュール済タスクごとに1つのtask要素を使用する必要があります。

要素値

該当なし

必須かオプションか

必須

A.4 name要素

name要素は、task要素の子要素です。name要素は、作成するスケジュール済タスクの名前を指定するために使用します。

表A-3に、name要素のプロパティの概要を示します。

表A-3 name要素のプロパティ

プロパティ

値

親要素

task

属性

なし

子要素

なし

出現回数

1つ

要素値

作成するスケジュール済タスクの名前。

注意: スケジュール済タスクの名前は一意にする必要があります。

必須かオプションか

必須

A.5 class要素

class要素(必須)は、task要素の子要素です。class要素は、スケジュール済タスクを実行するJavaクラスの名前を指定するために使用します。

表A-4に、class要素のプロパティの概要を示します。

表A-4 class要素のプロパティ

プロパティ

値

親要素

task

属性

なし

子要素

なし

出現回数

1つ

要素値

スケジュール済タスクを実行するJavaクラスの名前。スケジュール済タスクのクラスを開発する方法の詳細は、第6.4項「スケジュール済タスクのクラスの開発」を参照してください。

必須かオプションか

必須

A.6 description要素

description要素(必須)は、task要素の子要素です。description要素は、作成するタスクの説明を追加するために使用します。

表A-5に、description要素のプロパティの概要を示します。

表A-5 description要素のプロパティ

プロパティ

値

親要素

task

属性

なし

子要素

なし

出現回数

1つ

要素値

作成するタスクの説明

必須かオプションか

必須

A.7 retry要素

表A-6に、retry要素のプロパティの概要を示します。

表A-6 retry要素のプロパティ

プロパティ

値

親要素

task

属性

なし

子要素

なし

出現回数

1つ

要素値

スケジューラによってタスクが再スケジュールされるまでの待機時間(秒数)

必須かオプションか

必須

A.8 parameters要素

スケジュール済タスクでジョブを正常に実行するために必要なパラメータを実行時に指定する場合は、parameters要素を使用する必要があります。たとえば、取得するレコードの数を実行時にユーザーに指定させるスケジュール済タスクを作成できます。

この要素の中で指定するパラメータは、「ジョブの作成」ページの「パラメータ」セクションに表示されます。

表A-7に、parameters要素のプロパティの概要を示します。

表A-7 parameters要素のプロパティ

プロパティ

値

親要素

task

属性

なし

子要素

string-param、number-param、boolean-param

出現回数

1つ

要素値

該当なし

必須かオプションか

オプション

A.9 string-param要素

string-param要素は、文字列データ型の値をとるフィールドの名前を指定するために使用します。言い換えると、string-param要素では、文字列データ型の値を保持できるフィールドのラベルを指定します。

表A-8に、string-param要素のプロパティの概要を示します。

表A-8 string-param要素のプロパティ

プロパティ

値

親要素

parameters

属性

required、helpText、encrypted

子要素

なし

出現回数

Stringデータ型のパラメータごとに1つ

要素値

文字列パラメータの名前

必須かオプションか

オプション

表A-8に示すように、string-param要素には次の属性が含まれています。

- required
これは必須の属性で、値はtrueまたはfalseのいずれかです。

required属性の値がtrueの場合は、パラメータの値を実行時に必ず入力する必要があります。

required属性の値がfalseの場合は、パラメータの値を実行時に入力することは必須ではありません。

- helpText
この属性では、フィールドへの入力内容をユーザーが把握できるように、実行時に表示するテキストを指定します。通常は、パラメータによって作成されるフィールドの説明を指定します。

- encrypted
デフォルトでは、値はfalseになりますが、trueまたはfalseのどちらも指定できます。

encrypted属性の値がtrueの場合は、実行時に入力されるパラメータ値は暗号化された形式で格納されます。

required属性の値がfalseの場合は、実行時に入力されるパラメータ値はプレーン・テキストで格納されます。

A.10 number-param要素

number-param要素は、longデータ型の値をとるフィールドの名前を指定するために使用します。

表A-9に、number-param要素のプロパティの概要を示します。

表A-9 number-param要素のプロパティ

プロパティ

値

親要素

parameters

属性

required、helpText

子要素

なし

出現回数

longデータ型のパラメータごとに1つ

要素値

longデータ型を保持できるフィールドの名前

必須かオプションか

オプション

require属性とhelpText属性の動作および説明は、number-param要素とstring-param要素で同じです。require属性とhelpText属性の詳細は、「string-param要素」を参照してください。

A.11 boolean-param要素

boolean-param要素は、ブール・データ型の値をとるフィールドの名前を指定するために使用します。

表A-10に、boolean-param要素のプロパティの概要を示します。

表A-10 boolean-param要素のプロパティ

プロパティ

値

親要素

parameters

属性

required、helpText

子要素

なし

出現回数

ブール・データ型のパラメータごとに1つ

要素値

ブール・データ型を保持できるフィールドの名前

必須かオプションか

オプション

required属性とhelpText属性の動作および説明は、boolean-param要素とstring-param要素で同じです。required属性とhelpText属性の詳細は、第A.9項「string-param要素」を参照してください。

B SPML属性とLDAPマッピング、およびOracle Identity Managerの属性

SPML XSD Webサービスは、Oracle Identity Managerをバックエンド・サービスとして使用して、Fusionアプリケーションにプロビジョニング機能を提供します。SPML Webサービスの主要ビルディング・ブロックは、プロビジョニング対象となるオブジェクトを定義するSPML Provisioning Service Object(PSO)です。PSOの例としては、アイデンティティやロールがあげられます。

この付録では、サポートされているPSO属性とそのLDAPマッピングを示し、Oracle Identity Managerの属性における文字制限について説明します。最後に、アプリケーションからSPML Webサービスに渡すことができるその他の操作データについて説明します。この章には次の項目があります。

- アイデンティティのPSO属性

- ロールのPSO属性

- プリファレンス属性

- Oracle Identity Managerの属性における特殊文字制限

- 操作データ

B.1 アイデンティティのPSO属性

表B-1に、Oracle Identity ManagerでのSPML実装でサポートされているアイデンティティ属性、およびこれらの属性とLDAPオブジェクト/属性のマッピングを示します。

注意:

「構文」列は、関連する属性プロパティ(型、必須かどうかなど)を示しています。

表B-1 アイデンティティのPSO属性

SPML属性名

構文

説明

LDAPマッピング(Oracle Internet Directory)

ID

文字列、読取り専用、必須、単一

変更リクエストでユーザーを識別するために使用される識別子。

orclUserV2: orclguid

activeEndDate

タイムスタンプ、単一

ユーザーの終了日時。

orclUserV2: orclActiveEndDate

activeStartDate

タイムスタンプ、単一

ユーザーのアクティブ化日時。

orclUserV2: orclActiveStartDate

commonName

文字列、

必須

個人の共通名(通常は、個人のフルネームに同じバリエーションを加えたものです)。

person: cn

countryName

文字列、単一

個人の勤務先の国(2文字の[ISO3166]国コードで表されます)。

orclUserV2: c

departmentNumber

文字列、単一

この個人が所属する組織内の部門コード。数字のみまたは英数字を指定できます。

inetOrgPerson: departmentNumber

description

文字列、単一

個人に関する判読可能な説明。

person: description

displayName

文字列、単一、MLS

個人のエントリを表示するときに使用する優先名。

多言語サポート(MLS)に対応しており、ロケールの言語値(「en」や「fr」など)も指定できます。

inetOrgPerson: displayName

employeeNumber

文字列、単一

個人に割り当てられる数字または英数字の識別子(通常は、入社順や組織との関連に基づきます)。

inetOrgPerson: employeeNumber

employeeType

文字列、単一

従業員のタイプを識別します。有効な値のリストは、表B-2を参照してください。

inetOrgPerson: employeeType

facsimileTelephoneNumber

文字列、単一

個人の業務用FAX端末の電話番号。

organizationalPerson: facsimileTelephoneNumber

generationQualifier

文字列、単一

一般に個人名の接尾辞部となる名前文字列(「III」、「3rd」、「Jr.」など)。

N/A

givenName

文字列、単一

個人名の一部となる名前文字列(姓以外、名など)。

inetOrgPerson: givenName

hireDate

タイムスタンプ、単一

入社日。

orclUserV2: orclHireDate

homePhone

単純、文字列

個人に関連付けられている自宅電話番号。

inetOrgPerson:homePhone

homePostalAddress

単純、文字列

個人の自宅住所。

inetOrgPerson: homePostalAddress

initials

文字列、単一

個人名の一部またはすべて(姓以外)。

inetOrgPerson: initials

localityName

単純、文字列

勤務先の地域や場所の名前(市区町村、郡、その他の地理的地域など)。

N/A

mail

単純、文字列

個人の業務用インターネット・メール・アドレス(メールボックス[RFC2821]形式)。

inetOrgPerson: mail

manager

単純、文字列

個人のマネージャ。

N/A

middleName

文字列、単一

個人のミドル・ネーム。

orclUserV2: middleName

mobile

単純、文字列

個人に関連付けられている携帯電話番号。

inetOrgPerson: mobile

organization

文字列、単一

組織の名前(my_companyなど)。

organization

organizationUnit

文字列、単一

組織内の単位の名前(IT Supportなど)。

organizationalUnitName

pager

単純、文字列

個人の業務用ページャ電話番号。

inetOrgPerson: pager

password

文字列、単一

ユーザーのパスワード。

person: userPassword

postalAddress

文字列、単一

郵便業務で個人にサービスを提供するために使用される勤務先住所。

organizationalPerson: postalAddress

postalCode

文字列、単一

郵便業務で個人の勤務先の郵便ゾーンを識別するために使用されるコード。

organizationalPerson: postalCode

postOfficeBox

文字列、単一

郵便業務で使用される私書箱識別子(カスタマは、郵便局の敷地内で私書箱を通じて郵便物を受け取るように手配することができます)。

organizationalPerson: postOfficeBox

preferredLanguage

文字列、単一

個人の優先文字言語または優先会話言語。これは、国際化対応や人間とコンピュータの対話に役立ちます。この属性タイプの値は、[RFC2068]に定義されたAccept-Languageヘッダー・フィールドの定義に準拠する必要があります(ただし、1つの例外として、シーケンス"Accept-Language" ":"は省略してください)。

inetOrgPerson: preferredLanguage

state

文字列、単一

個人の勤務先の都道府県の完全名。

organizationalPerson: st

street

文字列、単一

個人の勤務先住所の場所情報(つまり、通り名、土地、番地)。

organizationalPerson: street

surname

文字列、単一

個人の姓の名前文字列。

person: sn

telephoneNumber

文字列、単一

個人の勤務先電話番号。

organizationalPerson: telephoneNumber

title

文字列、単一

組織における個人の役職。

organizationalPerson: title

username

文字列、単一

個人に関連付けられているコンピュータ・システム・ログイン名。

uid

userType

文字列、単一

ユーザーのタイプ。この属性は、エンドユーザーにDesign Consoleへのアクセスを提供するために使用します。使用可能な値はtrueとfalseです。

表B-2に、employeeType属性の有効な値を示します。

表B-2 employeeTypeの有効な値

値

意味

Full-Time

フルタイムの従業員

Part-Time

パートタイムの従業員

Temp

派遣社員

Intern

インターン

Consultant

コンサルタント

Contractor

契約者

EMP

従業員

CWK

派遣就業者

NONW

非就業者

OTHER

その他の従業員タイプ

注意:

Oracle Identity Managerによって渡されるのは、「値」列に示すコードのみです。各コードの意味を参考のために記載しています。

B.1.1 カスタム・アイデンティティ属性

Oracle Identity Managerの機能をサポートするためのカスタム属性が用意されています。これらの属性は、Oracle Identity Managerに存在し(ユーザー定義のフィールドを追加した場合など)、PSOには存在しません。

マッピングをエンドツーエンドで機能させるには、カスタム属性名を対応するリクエスト・データセットで指定された属性名と一致させる必要があります。

次に、カスタム属性の例をいくつか紹介します。

...
<data>
<pso:identity>
<pso:attributes>
<pso:attr name="Number Format">
<pso:value>#,##0.##[.,]</pso:value>
</pso:attr>
<pso:attr name="Currency">
<pso:value>USD</pso:value>
</pso:attr>
</attributes>
...

B.2 ロールのPSO属性

表B-3に、Oracle Identity ManagerでのSPML実装でサポートされているロール属性、およびこれらの属性とLDAPオブジェクト/属性のマッピングを示します。

表B-3 ロールのPSO属性

属性名

構文

説明

ID

文字列、読取り専用、必須、単一

ロールを一意に識別するPSO識別子。通常はディレクトリのGUIDです。

commonName

文字列、必須、MLS

ロールの共通名。

description

単一

ロールに関する判読可能な説明。

displayName

文字列、単一、MLS

ロールのエントリを表示するときに使用する優先名。

B.2.1 カスタム・ロール属性

Oracle Identity Managerの機能をサポートするためのカスタム属性が用意されています。これらの属性は、Oracle Identity Managerに存在し、PSOには存在しません。

マッピングをエンドツーエンドで機能させるには、カスタム属性名を対応するリクエスト・データセットで指定された属性名と一致させる必要があります。

次に、カスタム・ロール属性の例を紹介します。

...
<pso:attributes>
<pso:attr name="Role Category Name">
<pso:value>Cat1</pso:value>
</pso:attr>
...

Role Category Nameは特別なカスタム・ロール属性です。これはロールの名前空間です。それぞれのロールがいずれかのロール・カテゴリに属しています。新しいロールの作成時に指定できます。指定しなかった場合は、デフォルトのロール・カテゴリが選択されます。各ロール・カテゴリおよびロール名によってロールが一意に識別されます。

B.3 プリファレンス属性

表B-4に、Oracle Identity ManagerでのSPML実装でサポートされているプリファレンス属性を示します。

表B-4 プリファレンス属性

属性名

構文

説明

LDAPマッピング

数値書式

String

数値の表示書式

orclNumberFormat

値は次のとおりです。

#,##0.##[.,]

#,##0.###[\u00A0,]

#,##0.###

#,##0.###;#,##0.###-

#,##0.###[.,]

#,##0.###;(#,##0.###)[.,]

#,##0.##[\u00A0,]

#,##0.###['.]

#,##0.###[',]

通貨

String

通貨に使用する必要がある記号

orclCurrency

値の例は次のとおりです。

USD

YUN

NZD

INR

日付書式

String

日付の表示書式

orclDateFormat

値は次のとおりです。

MM-dd-yyyy

MM-dd-yy

MM.dd.yyyy

MM.dd.yy

MM/dd/yyyy

MM/dd/yy

M-d-yyyy

M-d-yy

M.d.yyyy

M.d.yy

M/d/yyyy

M/d/yy

dd-MM-yyyydd-MM-yy

d-M-yyyy

d-M-yy

dd.MM.yyyy

dd.MM.yy

d.M.yyyy

d.M.yy

dd/MM/yyyy

dd/MM/yy

d/M/yyyy

d/M/yy

yyyy-MM-dd

yy-MM-dd

yyyy-M-d

yy-M-d

yyyy.MM.dd

yy.MM.dd

yyyy.M.d

yy.M.d

yy. M. d

yyyy/MM/dd

yy/MM/dd

yyyy/M/d

yy/M/d

時間書式

String

時間の表示書式

orclTimeFormat

値は次のとおりです。

HH.mm

HH.mm.ss

HH:mm

HH:mm:ss

H:mm

H:mm:ss

H.mm

H.mm.ss

a hh.mm

a hh.mm.ss

a hh:mm

a hh:mm:ss

ah:mm

ah:mm:ss

hh.mm a

hh.mm.ss a

hh:mm a

hh:mm:ss a

埋込みヘルプ

String

埋込みヘルプを表示するかどうか

orclEmbeddedHelp

値は次のとおりです。

true

false

フォント・サイズ

String

フォントのサイズ

orclFontSize

値は次のとおりです。

LARGE

MEDIUM

色のコントラスト

String

色のコントラスト

orclColorContrast

値は次のとおりです。

STANDARD

HIGH

アクセシビリティ・モード

String

ユーザーのアクセシビリティ・モード

orclAccessibilityMode

値は次のとおりです。

screenReader

inaccessible

default

FA言語

String

デフォルトの優先言語

orclFALanguage

ユーザー名優先言語

String

ユーザーの表示名を示すためだけに使用される優先言語

注意: この属性の設定値はOracle Identity Managerでは使用されません。

orclDisplayNameLanguagePreference

B.4 Oracle Identity Managerの属性における特殊文字制限

この項では、Oracle Identity Managerの属性に適用される文字制限を示します。これらの制限に従わないと、属性を使用して操作を実行したときにエラーが発生します。

- すべての属性で使用可能な文字

- パスワード・フィールドにおける特殊文字

- 一重引用符の使用

- セミコロンの使用

- サポートされていない特殊文字

B.4.1 すべての属性で使用可能な文字

英数字(aからz、AからZ、および0から9)とアンダースコア文字(_)は、すべてのOracle Identity Manager属性で使用できます。

B.4.2 パスワード・フィールドにおける特殊文字

Passwordフィールドでは次の特殊文字を使用できます。

- パーセント記号(%)

- プラス記号(+)

- 等号(=)

- カンマ(,)

- 円記号(\)

- 一重引用符(')

- スラッシュ(/)

- 縦棒(|)

B.4.3 一重引用符の使用

一重引用符(')は、次の属性でのみ使用できます。

- ログイン

- マネージャID

- 名

- 姓

- ミドル・ネーム

- グループ名

- 組織名

- リソース名

B.4.4 セミコロンの使用

セミコロン(;)はアクセス・ポリシー名でのみ使用できます。

B.4.5 サポートされていない特殊文字

次の特殊文字は、Oracle Identity Managerのどの属性でもサポートされていません。

- ピリオド(.)

- シャープ記号(#)

- スラッシュ(/)

- パーセント記号(%)

- 等号(=)

- 縦棒(|)

- プラス記号(+)

- カンマ(,)

- 円記号(\)

- 二重引用符(")

- 小なり記号(<)

- 大なり記号(>)

B.5 操作データ

HCM Fusionアプリケーションなどのリクエスト・アプリケーションは、SPMLリクエスタとして動作します。アプリケーションでは、PSOデータ以外に、いくつかの操作データをSPML Webサービスに渡すことができます。この項では、アプリケーションが操作データを渡す仕組みについて説明します。

- 操作データを渡す場合

- 参照データを渡す場合

B.5.1 操作データを渡す場合

操作ごとにリクエスタIDを渡すことができます。Fusionアプリケーションがリクエストで提示する資格証明は、アプリケーションIDです。監査の目的で、リクエスタIDを渡すこともできます。Oracle Identity Managerでは、操作の実際のリクエスタとして、アプリケーションIDのかわりにこのIDが監査されます。

リクエスタIDと一緒に、リクエストの理由も指定できます。

次に、操作データの例を示します。

...
</pso:identity>
</data>
<capabilityData
capabilityURI="http://xmlns.oracle.com/idm/identity/OperationData"
mustUnderstand="true">
<operationData
xmlns="http://xmlns.oracle.com/idm/identity/OperationData" requestorGUID="1"
justification="i need this account">
</capabilityData>
</addRequest>

B.5.2 参照データを渡す場合

アプリケーションは、なんらかの参照データをSPMLに渡すことで、コールバックを受け取ったときに、コンテキストでそのコールバックに対して参照データによって識別されるようにする必要もあります。これはパススルー・データであり、Oracle Identity Managerでは無視されますが、コールバックには返されます。

次に、<LdapRequestId>を扱った例を示します。

...
...
</pso:identity>
</data>
<capabilityData
capabilityURI="http://xmlns.oracle.com/idm/identity/OperationData"
mustUnderstand="true">
<operationData
xmlns="http://xmlns.oracle.com/idm/identity/OperationData" requestorGUID="1"
justification="i need this account">
<LdapRequestId
xmlns="http://xmlns.oracle.com/apps/hcm/users/ldapRequestService/">102329090340
</operationData>
</capabilityData>
</addRequest>

C SPMLの例

この付録では、次のSPML XSDの例を紹介します。

- SPMLの例 - ユーザーの追加

- SPMLの例 - ユーザーの削除

- SPMLの例 - ユーザーの変更

- SPMLの例 - ユーザーの再開

- SPMLの例 - ユーザー名の提案

- SPMLの例 - ユーザーの一時停止

- SPMLの例 - ユーザー名の検証

- SPMLの例 - ユーザーがアクティブかどうかのチェック

- SPMLの例 - ユーザー名ポリシーの参照

- SPMLの例 - ロール・メンバーシップの割当て

- SPMLの例 – ユーザーの追加とロールの割当て

- SPMLの例 – ロール・メンバーシップの失効

- SPMLの例 - ロールの追加

- SPMLの例 - 親を持つロールの追加

- SPMLの例 - ロールの変更

- SPMLの例 - ロールへの親の追加

- SPMLの例 - ロールの付与

- SPMLの例 - ロールの削除

- SPMLの例 - ステータスのリクエスト

C.1 SPMLの例 - ユーザーの追加

次に、リクエストを示します。

<addRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en" policyURI="http://www.sample.com/string/string" requestID="string" returnData="identifier" targetID="string">
<!--Zero or more repetitions:-->
<data>
<!--You have a CHOICE of the next 3 items at this level-->
<pso:identity>
<!--Optional:-->
<pso:attributes>
<!--Here, My Attribute is a UDF, with 'My Attribute' also added in CreateUserDataset.xml -->
<pso:attr name="My Attribute">
<pso:value>New Value</pso:value>
</pso:attr>
</pso:attributes>
<!--Optional:-->
<pso:activeEndDate>2009-06-12T16:00:00</pso:activeEndDate>
<!--Optional:-->
<pso:activeStartDate>2009-06-11T18:00:00</pso:activeStartDate>
<pso:commonName>
<pso:value>All Optional Values</pso:value>
</pso:commonName>
<!--Optional:-->
<pso:countryName>India</pso:countryName>
<!--Optional:-->
<pso:departmentNumber>
<!--1 or more repetitions:-->
<pso:value>123456</pso:value>
</pso:departmentNumber>
<!--Optional:-->
<pso:description>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>All Optional Fields Profile</pso:value>
</pso:values>
</pso:description>
<!--Optional:-->
<pso:displayName>
<!--1 or more repetitions:-->
<pso:value locale="en">All Optional Values</pso:value>
</pso:displayName>
<!--Optional:-->
<pso:employeeNumber>24073</pso:employeeNumber>
<!--Optional:-->
<pso:employeeType>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>Part-Time</pso:value>
</pso:values>
</pso:employeeType>
<!--Optional:-->
<pso:facsimileTelephoneNumber>
<!--1 or more repetitions:-->
<pso:number>08041085304</pso:number>
</pso:facsimileTelephoneNumber>
<!--Optional:-->
<pso:generationQualifier>
<!--1 or more repetitions:-->
<pso:value>II</pso:value>
</pso:generationQualifier>
<!--Optional:-->
<pso:givenName>
<!--1 or more repetitions:-->
<pso:value>OptionalGivenName</pso:value>
</pso:givenName>
<!--Optional:-->
<pso:hireDate>2009-06-11T16:00:00</pso:hireDate>
<!--Optional:-->
<pso:homePhone>
<!--1 or more repetitions:-->
<pso:number>9999999999</pso:number>
</pso:homePhone>
<!--Optional:-->
<pso:homePostalAddress>
<!--1 or more repetitions:-->
<pso:value>marathahalli</pso:value>
</pso:homePostalAddress>
<!--Optional:-->
<pso:initials>
<!--1 or more repetitions:-->
<pso:value>SJ</pso:value>
</pso:initials>
<!--Optional:-->
<pso:localityName>
<!--1 or more repetitions:-->
<pso:value>Munekolala</pso:value>
</pso:localityName>
<!--Optional:-->
<!--pso:mail>
<pso:value>jdong12@oracle.com</pso:value>
</pso:mail-->
<!--Optional:-->
<pso:middleName>MiddleName</pso:middleName>
<!--Optional:-->
<pso:mobile>
<!--1 or more repetitions:-->
<pso:number>9886078373</pso:number>
</pso:mobile>
<!--Optional:-->
<pso:organization>
<pso:value>2</pso:value>
</pso:organization>
<!--Optional:-->
<pso:organizationUnit>
<pso:value>Marketing</pso:value>
</pso:organizationUnit>
<!--Optional:-->
<pso:pager>
<!--1 or more repetitions:-->
<pso:number>7777</pso:number>
</pso:pager>
<!--Optional:-->
<pso:password>
<!--1 or more repetitions:-->
<pso:value>saijha</pso:value>
</pso:password>
<!--Optional:-->
<pso:postalAddress>
<!--1 or more repetitions:-->
<pso:value>Marathahalli</pso:value>
</pso:postalAddress>
<!--Optional:-->
<pso:postalCode>
<!--1 or more repetitions:-->
<pso:value>560037</pso:value>
</pso:postalCode>
<!--Optional:-->
<pso:postOfficeBox>
<!--1 or more repetitions:-->
<pso:value>999</pso:value>
</pso:postOfficeBox>
<!--Optional:-->
<pso:preferredLanguage>en</pso:preferredLanguage>
<!--Optional:-->
<pso:state>
<!--1 or more repetitions:-->
<pso:value>Karnataka</pso:value>
</pso:state>
<!--Optional:-->
<pso:street>
<!--1 or more repetitions:-->
<pso:value>Satyam Street</pso:value>
</pso:street>
<!--Optional:-->
<pso:surname>
<pso:values>
<!--1 or more repetitions:-->
<pso:value>Jha</pso:value>
</pso:values>
</pso:surname>
<!--Optional:-->
<pso:telephoneNumber>
<!--1 or more repetitions:-->
<pso:number>08041085304</pso:number>
</pso:telephoneNumber>
<!--Optional:-->
<pso:title>
<pso:value>Mr</pso:value>
</pso:title>
<!--Optional:-->
<pso:username>
<!--1 or more repetitions:-->
<pso:value>jsmith</pso:value>
</pso:username>
<pso:manager>5</pso:manager>
</pso:identity>
</data>
</addRequest>

次に、ユーザー・ログインがすでに存在する場合のユーザーの追加レスポンスの例を示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/>
<env:Body>
<ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="failure" error="malformedRequest" extendedError="IAM-3076048">
<ns3:errorMessage>username jsmith already exists.</ns3:errorMessage>
</ns3:addResponse>
</env:Body>
</env:Envelope>

次に、単一値のみを受け入れる属性に対して複数値が渡された場合のユーザーの追加レスポンスの例を示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="5" error="malformedRequest" extendedError="IAM-3071022"><ns3:errorMessage>The attribute commonName is not multi-language enabled in OIM. Only the value John Smith will be saved.</ns3:errorMessage>
<ns3:errorMessage>The attribute organization is not multi-language enabled in OIM. Only the value 1 will be saved.
</ns3:errorMessage>
</ns3:addResponse>
</env:Body>
</env:Envelope>

注意:

- ユーザーの追加リクエストのステータスを調べる方法は、「SPMLの例 - ステータスのリクエスト」を参照してください。

- displayName属性は多言語サポート(MLS)に対応しており、言語値として「en」、「fr」などを指定できます。

C.2 SPMLの例 - ユーザーの削除

次に、リクエストを示します。

<deleteRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="en" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier" targetID="string">
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
</deleteRequest>

次に、レスポンスを示します。

<ns9:ResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="19" status="pending"/>

C.3 SPMLの例 - ユーザーの変更

次に、リクエストを示します。

<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="string" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier">
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true" />
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
<modification modificationMode="add">
<component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" />
<data>
<pso:identity>
<pso:initials>
<!--1 or more repetitions:-->
<pso:value>J S</pso:value>
</pso:initials>
</pso:identity>
</data>
</modification>
<modification modificationMode="replace">
<component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" />
<data>
<pso:identity>
<pso:localityName>
<!--1 or more repetitions:-->
<pso:value>new_locality</pso:value>
</pso:localityName>
<pso:homePhone>
<!--1 or more repetitions:-->
<pso:number>0123456789</pso:number>
</pso:homePhone>
<pso:commonName>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>FR Alice Krug1</pso:value>
</pso:values>
</pso:commonName>
</pso:identity>
</data>
</modification>
<modification modificationMode="delete">
<component path="/identity" namespaceURI="http://www.w3.org/TR/xpath20" />
<data>
<pso:identity>
<pso:pager>
<!--1 or more repetitions:-->
<pso:number>333</pso:number>
</pso:pager>
</pso:identity>
</data>
</modification>
</modifyRequest>

次に、レスポンスを示します。

<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="15" status="pending"/>

C.4 SPMLの例 - ユーザーの再開

次に、リクエストを示します。

<resumeRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend"
requestID="120">
<psoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" />
</resumeRequest>

次に、レスポンスを示します。

<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="120" status="pending"/>

C.5 SPMLの例 - ユーザー名の提案

次に、リクエストを示します。

<ns4:suggestUsernameRequest
xmlns:ns4="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO">
<ns2:identity>
<ns3:givenName>
<ns3:value>testfn</ns3:value>
</ns3:givenName>
<ns3:surname>
<ns3:values>
<ns3:value>testln</ns3:value>
</ns3:values>
</ns3:surname>
</ns2:identity>
</ns4:suggestUsernameRequest>

次に、レスポンスを示します。

<ns9:SuggestUsernameResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns7="urn:names:spml:ws:header"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns9="oasis:names:tc:SPML:2:0" status="success">
<ns3:username>testfn.testln@oracle.com</ns3:username>
</ns9:SuggestUsernameResponseType>

C.6 SPMLの例 - ユーザーの一時停止

次に、リクエストを示します。

<suspendRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend"
requestID="139">
<psoID ID="6C9B96E99FC8DC32E040E50A3D5252F5"/>
</suspendRequest>

次に、レスポンスを示します。

<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="28"
status="pending"/><ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns6="urn:names:spml:ws:header" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="139" status="pending"/>

C.7 SPMLの例 - ユーザー名の検証

次に、リクエストを示します。

<validateUsernameRequest
xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username">
<username>testfn.testln</username>
</validateUsernameRequest>

次に、レスポンスを示します。

<ns9:ValidateUsernameResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns7="urn:names:spml:ws:header"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns9="oasis:names:tc:SPML:2:0" valid="true" status="success"/>

C.8 SPMLの例 - ユーザーがアクティブかどうかのチェック

次に、リクエストを示します。

<activeRequest xmlns="urn:oasis:names:tc:SPML:2:0:suspend" requestID="143">
<psoID ID="5" targetID="string"/>
</activeRequest>

次に、レスポンスを示します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns4="oasis:names:tc:SPML:2:0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns2:ActiveResponseType" active="true" requestID="143"
status="success" />

C.9 SPMLの例 - ユーザー名ポリシーの参照

次に、リクエストを示します。

<lookupUsernamePolicyRequest
xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username">
</lookupUsernamePolicyRequest>

次に、レスポンスを示します。

<ns9:LookupUsernamePolicyResponseType
xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns7="urn:names:spml:ws:header"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns9="oasis:names:tc:SPML:2:0" status="success"
<ns3:description>Generates user name based on email id if it is available, else generate based on first name and last name appended with domain name.</ns3:description>
>

注意:

ポリシーの説明を特定のロケールで表示するには、ペイロードにロケール属性を設定します。このロケールがサポートされていない場合は、デフォルトでは、次に示すようにサーバー・ロケールで表示されます。

<lookupUsernamePolicyRequest locale="th"
xmlns="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username">
</lookupUsernamePolicyRequest>

C.10 SPMLの例 – ユーザーの追加とロールの割当て

次に、ユーザー(アイデンティティ)の作成リクエストを示します。

注意:

- reference要素の下位にはtoPsoID要素を1つだけ含めることができます。複数のロールが存在する場合は、それぞれ個別のreference要素を使用する必要があります。

- GUIDはどのリクエストでも32文字にする必要があります。

<addRequest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
executionMode="asynchronous"
policyURI="create_identity_policy_prc02.xml">
<spml:data xsi:type="spml:PSOType">
<identity
xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO">
<pso:commonName>
<pso:values>
<pso:value>John Doe</pso:value>
</pso:values>
</pso:commonName>
<pso:displayName>
<pso:value>John Doe</pso:value>
</pso:displayName>
<pso:givenName>
<pso:value>John</pso:value>
</pso:givenName>
<pso:mail>
<pso:value>john.doe@acme.com</pso:value>
</pso:mail>
<pso:middleName/>
<pso:organization>
<pso:values>
<pso:value>ACME, Inc.</pso:value>
</pso:values>
</pso:organization>
<pso:password>
<pso:value>qwert</pso:value>
</pso:password>
<pso:surname>
<pso:values>
<pso:value>Doe</pso:value>
</pso:values>
</pso:surname>
<pso:username>
<pso:value>jdoe</pso:value>
</pso:username>
</identity>
</spml:data>
<spml:capabilityData
capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true" >
<reference xmlns="urn:oasis:names:tc:SPML:2:0:reference"
typeOfReference="memberOf">
<toPsoID ID="15"/>
<!--To make the user a member of a default role-->
</reference>

<reference xmlns="urn:oasis:names:tc:SPML:2:0:reference"
typeOfReference="memberOf">
<toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5"/>
</reference>
</spml:capabilityData>
</addRequest>

次に、レスポンスを示します。

<spml:addResponse
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
status="pending"
requestID="10821"/>

次に、一部のロールが無効な場合のユーザーの追加とロールの割当てレスポンスの例を示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="5" error="malformedRequest" extendedError="IAM-3071022">
<ns3:errorMessage>Request contains an invalid Id/Guid identifier - xyzxyzxyz.</ns3:errorMessage>
</ns3:addResponse>
</env:Body>
</env:Envelope>

C.11 SPMLの例 - ロール・メンバーシップの割当て

次に、リクエストの例を示します。

<modifyRequest
xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO"
executionMode="asynchronous"
locale="en"
policyURI="gant_role_01">
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
<modification modificationMode="add">
<capabilityData
capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true">
<reference
xmlns="urn:oasis:names:tc:SPML:2:0:reference"
typeOfReference="memberOf">
<toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" />
</reference>
</capabilityData>
</modification>
</modifyRequest>

次に、レスポンスの例を示します。

<spml:modifyResponse
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
status="pending"
requestID="10822"/>

C.12 SPMLの例 – ロール・メンバーシップの失効

次に、リクエストを示します。

<modifyRequest
xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO"
executionMode="asynchronous"
locale="en"
policyURI="revoke_role_01">
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
<modification modificationMode="delete">
<capabilityData
capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true">
<reference
xmlns="urn:oasis:names:tc:SPML:2:0:reference"
typeOfReference="memberOf">
<toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" />
</reference>
</capabilityData>
</modification>
</modifyRequest>

次に、レスポンスを示します。

<spml:modifyResponse
xmlns:spml="urn:oasis:names:tc:SPML:2:0"
status="pending"
requestID="10826"/>

C.13 SPMLの例 - ロールの追加

次に、リクエストを示します。

<addRequest xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous" locale="en_us" policyURI="Role Creation" requestID="string"  returnData="identifier" targetID="string">
<!--Zero or more repetitions:-->
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"  mustUnderstand="true" />
<data>
<!--You have a CHOICE of the next 3 items at this level-->
<pso:role>
<pso:attributes>
<pso:attr name="Role Category Name">
<!-- pso:value>OIM Roles</pso:value-->
<pso:value>Default</pso:value>
</pso:attr>
</pso:attributes>
<pso:commonName>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>TempAdmin</pso:value>
</pso:values>
</pso:commonName>
<pso:description>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>Temporary Administrator</pso:value>
</pso:values>
</pso:description>
<pso:displayName>
<!--pso:value locale="en">Alice Krug_en_US</pso:value-->
<!--pso:value locale="fr">Alice Kru_fr</pso:value-->
<pso:value locale="base">Alice Kru_base</pso:value>
</pso:displayName>
</pso:role>
</data>
</addRequest>

次に、レスポンスを示します。

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<ns3:addResponse xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0"    xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns9="urn:names:spml:ws:header" status="pending" requestID="21792"/>
</env:Body>
</env:Envelope>

C.14 SPMLの例 - 親を持つロールの追加

次に、リクエストを示します。

<addRequest xmlns="urn:oasis:names:tc:SPML:2:0"                        xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="en" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier" targetID="string">
<data>
<!--You have a CHOICE of the next 3 items at this level-->
<pso:role>
<pso:commonName>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>TempAdmin</pso:value>
</pso:values>
</pso:commonName>
<pso:description>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>Temporary Administrator</pso:value>
</pso:values>
</pso:description>
</pso:role>
</data>
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference" mustUnderstand="true">
<reference typeOfReference="inheritsFrom" xmlns="urn:oasis:names:tc:SPML:2:0:reference">
<toPsoID ID="6C9B96E99F77DC32E040E50A3D5252F5" />
</reference>
</capabilityData>
</addRequest>

次に、レスポンスを示します。

<ns9:AddResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="22" status="pending"/>

C.15 SPMLの例 - ロールの変更

次に、リクエストを示します。

<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="string" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier">
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true" />
<psoID ID="role:6C9B96E99FC8DC32E040E50A3D5252F5" />
<modification modificationMode="replace">
<component path="/role" namespaceURI="http://www.w3.org/TR/xpath20" />
<data>
<pso:role>
<pso:description>
<!--1 or more repetitions:-->
<pso:values>
<pso:value>UK Updated Administrator</pso:value>
</pso:values>
</pso:description>
</pso:role>
</data>
</modification>
</modifyRequest>

次に、レスポンスを示します。

<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="24" status="pending"/>

C.16 SPMLの例 - ロールへの親の追加

次に、リクエストを示します。

<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="string" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier">

<psoID ID="role:26" targetID="target" />
<modification modificationMode="modify">
<component path="/role" namespaceURI="http://www.w3.org/TR/xpath20" />
<data>
<pso:role>
<pso:description>
<!--1 or more repetitions:-->
<pso:values>
<!--1 or more repetitions:-->
<pso:value>UK Updated Administrator</pso:value>
</pso:values>
</pso:description>
</pso:role>
</data>

<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true">
<reference typeOfReference="inheritsFrom"
xmlns="urn:oasis:names:tc:SPML:2:0:reference">
<toPsoID ID="25" />
</reference>
</capabilityData>
</modification>
</modifyRequest>

次に、レスポンスを示します。

<ns9:ModifyResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="25" status="pending"/>

C.17 SPMLの例 - ロールの付与

SPMLペイロードを使用して複数のアイデンティティにロールを割り当てることはできません。複数のアイデンティティを指定した場合、ロールは最後のアイデンティティのみに割り当てられます。残りのアイデンティティはペイロードから削除してください。

次に、リクエストを示します。

<modifyRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="string" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier">
<!--Zero or more repetitions:-->
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true" />
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
<psoID ID="identity:6C9B96E99FC8DC32E040E50A3D5252F5" />
<!--1 or more repetitions:-->
<modification modificationMode="add">
<capabilityData capabilityURI="urn:oasis:names:tc:SPML:2:0:reference"
mustUnderstand="true">
<reference xmlns="urn:oasis:names:tc:SPML:2:0:reference"
typeOfReference="memberOf">
<toPsoID ID="6C9B96E99FC8DC32E040E50A3D5252F5" />
</reference>
</capabilityData>
</modification>
</modifyRequest>

次に、レスポンスを示します。

<ns9:ResponseType xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns5="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns6="urn:names:spml:ws:header"
xmlns:ns7="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns8="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns9="oasis:names:tc:SPML:2:0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="ns4:ActiveResponseType" requestID="143" status="failure"/>

C.18 SPMLの例 - ロールの削除

次に、リクエストを示します。

<deleteRequest xmlns="urn:oasis:names:tc:SPML:2:0"
xmlns:pso="http://xmlns.oracle.com/idm/identity/PSO" executionMode="asynchronous"
locale="en" policyURI="http://www.sample.com/string/string"
requestID="string" returnData="identifier" targetID="string">
<psoID ID="role:6C9B96E99FC8DC32E040E50A3D5252F5" />
</deleteRequest>

次に、レスポンスを示します。

<ns9:ResponseType xmlns="http://xmlns.oracle.com/idm/identity/PSO"
xmlns:ns2="urn:oasis:names:tc:SPML:2:0"
xmlns:ns3="urn:oasis:names:tc:SPML:2:0:reference"
xmlns:ns4="urn:oasis:names:tc:SPML:2:0:password"
xmlns:ns5="urn:oasis:names:tc:SPML:2:0:suspend"
xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username"
xmlns:ns7="urn:names:spml:ws:header" xmlns:ns8="urn:oasis:names:tc:SPML:2:0:async"
xmlns:ns9="oasis:names:tc:SPML:2:0" requestID="18" status="pending"/>

C.19 SPMLの例 - ステータスのリクエスト

次に、リクエストを示します。

<statusRequest xmlns="urn:oasis:names:tc:SPML:2:0:async"
requestID="3456563"
asyncRequestID="75779"/>

次に、レスポンスを示します。

<statusResponse xmlns="urn:oasis:names:tc:SPML:2:0:async"
requestID="3456563" status="success">
<addResponse requestID="75779" status="pending"/>
</statusResponse>

次に、別のリクエストを示します。

<statusRequest xmlns="urn:oasis:names:tc:SPML:2:0:async"    requestID="12" asyncRequestID="1" returnResults="true" />

この場合、returnResults=trueを使用しています。したがって、レスポンスにはリクエストのすべての属性が含まれます。

次に、レスポンスを示します。

<ns9:StatusResponseType xmlns="urn:oasis:names:tc:SPML:2:0" xmlns:ns2="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns3="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns4="urn:oasis:names:tc:SPML:2:0:reference" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:password" xmlns:ns6="urn:oasis:names:tc:SPML:2:0:suspend" xmlns:ns7="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns8="urn:names:spml:ws:header" xmlns:ns9="oasis:names:tc:SPML:2:0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:StatusResponseType" requestID="12" status="success">
<ns2:addResponse requestID="14" status="success">
<pso>
<psoID targetID="Identity"/>
<data>
<ns4:Identity xmlns:ns4="oasis:names:tc:SPML:2:0" xmlns:ns2="http://xmlns.oracle.com/idm/identity/PSO" xmlns:ns3="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns5="urn:oasis:names:tc:SPML:2:0:async" xmlns:ns6="http://xmlns.oracle.com/idm/identity/spmlv2custom/Username" xmlns:ns7="urn:oasis:names:tc:SPML:2:0:suspend">
<ns2:attributes>
<ns2:attr xmlns="" xmlns:ns11="urn:oasis:names:tc:SPML:2:0" name="Organization">
<ns2:value>1</ns2:value>
</ns2:attr>
</ns2:attributes>
<ns2:activeEndDate>2009-12-25T16:00:00.000Z</ns2:activeEndDate>
<ns2:activeStartDate>2009-12-24T18:00:00.000Z</ns2:activeStartDate>
<ns2:commonName>
<ns2:values>
<ns2:value>Alice Krug</ns2:value>
</ns2:values>
</ns2:commonName>
<ns2:countryName>Canada</ns2:countryName>
<ns2:departmentNumber>
<ns2:value>123</ns2:value>
</ns2:departmentNumber>
<ns2:description>
<ns2:values>
<ns2:value>Alice Krugs profile</ns2:value>
</ns2:values>
</ns2:description>
<ns2:displayName>
<ns2:value>Alice Krug</ns2:value>
</ns2:displayName>
<ns2:employeeNumber>333</ns2:employeeNumber>
<ns2:employeeType>
<ns2:values>
<ns2:value>Full-Time</ns2:value>
</ns2:values>
</ns2:employeeType>
<ns2:facsimileTelephoneNumber>
<ns2:number>6506072253</ns2:number>
</ns2:facsimileTelephoneNumber>
<ns2:generationQualifier>
<ns2:value>II</ns2:value>
</ns2:generationQualifier>
<ns2:givenName>
<ns2:value>Alice</ns2:value>
</ns2:givenName>
<ns2:hireDate>1999-12-24T16:00:00.000Z</ns2:hireDate>
<ns2:homePhone>
<ns2:number>8888888888</ns2:number>
</ns2:homePhone>
<ns2:homePostalAddress>
<ns2:value>Baker street</ns2:value>
</ns2:homePostalAddress>
<ns2:initials>
<ns2:value>J S</ns2:value>
</ns2:initials>
<ns2:localityName>
<ns2:value>SFO</ns2:value>
</ns2:localityName>
<ns2:middleName>A</ns2:middleName>
<ns2:mobile>
<ns2:number>4083485309</ns2:number>
</ns2:mobile>
<ns2:organization>
<ns2:values>
<ns2:value>1</ns2:value>
</ns2:values>
</ns2:organization>
<ns2:organizationUnit>
<ns2:values>
<ns2:value>Sales</ns2:value>
</ns2:values>
</ns2:organizationUnit>
<ns2:pager>
<ns2:number>333</ns2:number>
</ns2:pager>
<ns2:postalAddress>
<ns2:value>Baker street 222</ns2:value>
</ns2:postalAddress>
<ns2:postalCode>
<ns2:value>4081</ns2:value>
</ns2:postalCode>
<ns2:postOfficeBox>
<ns2:value>333n</ns2:value>
</ns2:postOfficeBox>
<ns2:preferredLanguage>en</ns2:preferredLanguage>
<ns2:state>
<ns2:value>CA</ns2:value>
</ns2:state>
<ns2:street>
<ns2:value>Baker</ns2:value>
</ns2:street>
<ns2:surname>
<ns2:values>
<ns2:value>Krug</ns2:value>
</ns2:values>
</ns2:surname>
<ns2:telephoneNumber>
<ns2:number>6506072253</ns2:number>
</ns2:telephoneNumber>
<ns2:title>
<ns2:values>
<ns2:value>Mr</ns2:value>
</ns2:values>
</ns2:title>
<ns2:username>
<ns2:value>akrug3478</ns2:value>
</ns2:username>
<ns2:userType>End-User</ns2:userType>
</ns4:Identity>
</data>
</pso>
</ns2:addResponse>
</ns9:StatusResponseType>

D メタデータ列コード

メタデータ列コードは、Oracle Identity Manager APIとのやり取りで情報を取得するために使用します。これらのコードを使用して、多くのAPIにより戻されるtcResultSetオブジェクトの列に関連する値を取得します。

APIにより使用されるメタデータ列コードは、システム・フォームのすべてのユーザー定義フィールド(UD_EXCH_USERIDなど)と、フォーム・デザイナを使用して作成されたユーザー定義フォームのすべてのフィールドで同じ物理列名となります。

物理列名とメタデータ列コード間のマッピングの詳細は、「メタデータ列コードのマッピング情報」を参照してください。

D.1 メタデータ列コードの抽出

最新のメタデータ列コードを抽出するには、次の問合せ文を使用します。

SELECT lku_field, lku_type_string_key FROM lku WHERE lku_type='f' ORDER BY lku_field;

次のような抽出内容が出力されます。

LKU_FIELD
--------------------------------------------------
LKU_TYPE_STRING_KEY
--------------------------------------------------------------------------------
AAD_CREATE
Organizations-Groups.Creation Date

AAD_CREATEBY
Organizations-Groups.Create d By

AAD_DATA_LEVEL
Organizations-Groups.System Level

LKU_FIELD
--------------------------------------------------
LKU_TYPE_STRING_KEY
--------------------------------------------------------------------------------
AAD_DELETE
Organizations-Groups.Delete Permission

AAD_NOTE
Organizations-Groups.Note

AAD_ROWVER
Organizations-Groups.Row Version
...
...
...

D.2 メタデータ列コードのマッピング情報

表D-1に、物理列名とメタデータ列コード間のマッピングを示します。

表D-1 メタデータ列コードのマッピング情報

物理列名

メタデータ列コード

AAD_CREATE

Organizations-Groups.Creation Date

AAD_CREATEBY

Organizations-Groups.Create d By

AAD_DATA_LEVEL

Organizations-Groups.System Level

AAD_DELETE

Organizations-Groups.Delete Permission

AAD_NOTE

Organizations-Groups.Note

AAD_ROWVER

Organizations-Groups.Row Version

AAD_UPDATE

Organizations-Groups.Update Date

AAD_UPDATEBY

Organizations-Groups.Updated By

AAD_WRITE

Organizations-Groups.Write Access

AAP_CREATE

Organizations.Field.Creation Date

AAP_CREATEBY

Organizations.Field.Created By

AAP_DATA_LEVEL

Organizations.Field.System Level

AAP_KEY

Organizations.Field.Key

AAP_NOTE

Organizations.Field.Note

AAP_ROWVER

Organizations.Field.Row Version

AAP_UPDATE

Organizations.Field.Update Date

AAP_UPDATEBY

Organizations.Field.Updated By

AAP_VALUE

Organizations.Field.Parameter Value

ACP_CREATE

Organizations-Resource Objects.Creation Date

ACP_CREATEBY

Organizations-Resource Objects.Created By

ACP_DATA_LEVEL

Organizations-Resource Objects.System Level

ACP_NOTE

Organizations-Resource Objects.Note

ACP_ROWVER

Organizations-Resource Objects.Row Version

ACP_SELF_SERVICABLE

Organizations-Resource Objects.Self Serviceable

ACP_UPDATE

Organizations-Resource Objects.Update Date

ACP_UPDATEBY

Organizations-Resource Objects.Updated By

ACTIVE_SDL_LABEL

Structure Utility.Structure Utility Version Label.Active Version Label

ACT_CREATE

Organizations.Creation Date

ACT_CREATEBY

Organizations.Created By

ACT_CUST_TYPE

Organizations.Type

ACT_DATA_LEVEL

Organizations.System Level

ACT_DISABLED

Organizations.Disabled

ACT_KEY

Organizations.Key

ACT_NAME

Organizations.Organization Name

ACT_NOTE

Organizations.Note

ACT_PARENT

Organizations.Parent Name

ACT_ROWVER

Organizations.Row Version

ACT_STATUS

Organizations.Status

ACT_UPDATE

Organizations.Update Date

ACT_UPDATEBY

Organizations.Updated By

ADJ_PARENT_KEY

Adapter Factory.Adapter Tasks.Parent Key

ADJ_CREATE

Adapter Factory.Adapter Tasks.Creation Date

ADJ_CREATEBY

Adapter Factory.Adapter Tasks.Created By

ADJ_DATA_LEVEL

Adapter Factory.Adapter Tasks.System Level

ADJ_METHOD

Adapter Factory.Adapter Tasks.Method

ADJ_NOTE

Adapter Factory.Adapter Tasks.Note

ADJ_ROWVER

Adapter Factory.Adapter Tasks.Row Version

ADJ_API_NAME

Adapter Factory.Adapter Tasks.API Name

ADJ_CONSTRUCTOR

Adapter Factory.Adapter Tasks.Constructor

ADJ_INST_NAME

Adapter Factory.Adapter Tasks.Instant Name

ADJ_JAR_FILE

Adapter Factory.Adapter Tasks.Jar File

ADJ_METHOD_DISPLAY

Adapter Factory.Adapter Tasks.Method Display

ADJ_PERSIST

Adapter Factory.Adapter Tasks.Persist

ADJ_STATIC

Adapter Factory.Adapter Tasks.static

ADJ_UPDATE

Adapter Factory.Adapter Tasks.Update Date

ADJ_UPDATEBY

Adapter Factory.Adapter Tasks.Updated By

ADP_DATA_LEVEL

Adapter Factory.System Level

ADP_NOTE

Adapter Factory.Note

ADPROWVER

Adapter Factory.Row Version

ADP_BUILD

Adapter Factory.Build

ADP_CLASS

Adapter Factory.Adapter class

ADP_CREATE

Adapter Factory.Creation Date

ADP_CREATEBY

Adapter Factory.Created By

ADP_DISABLED

Adapter Factory.Disabled

ADP_DISCRIPTION

Adapter Factory.Discription

ADP_KEY

Adapter Factory. Key

ADP_NAME

Adapter Factory.Name

ADP_STANDALONE

Adapter Factory.Standalone

ADP_STATUS

Adapter Factory.Status

ADP_STATUS_INFO

Adapter Factory.Status Info

ADP_TYPE

Adapter Factory.Type

ADP_UPDATE

Adapter Factory.Update Date

ADP_UPDATEBY

Adapter Factory.Updated By

ADT_CREATE

Adapter Factory.Adapter Task.Creation Date

ADT_CREATEBY

Adapter Factory.Adapter Task.Created By

ADT_DATA_LEVEL

Adapter Factory.Adapter Task.System Level

ADT_KEY

Adapter Factory.Adapter Task.Key

ADT_NOTE

Adapter Factory.Adapter Task.Note

ADT_ROWVER

Adapter Factory.Adapter Task.Row Version

ADT_UPDATE

Adapter Factory.Adapter Task.Update Date

ADT_UPDATEBY

Adapter Factory.Adapter Task.Updated By

ADT_NAME

Adapter Factory.Adapter Task.Name

ADT_PARENT_KEY

Adapter Factory.Adapter Task.Parent Key

ADT_SEQUENCE

Adapter Factory.Adapter Task.Sequence

ADT_TYPE

Adapter Factory.Adapter Task.Type

ADV_CREATE

Adapter Factory.Adapter Variables.Creation Date

ADV_CREATEBY

Adapter Factory.Adapter Variables.Created By

ADV_DATA_LEVEL

Adapter Factory.Adapter Variables.System Level

ADV_NOTE

Adapter Factory.Adapter Variables.Note

ADV_ROWVER

Adapter Factory.Adapter Variables.Row Version

ADV_UPDATE

Adapter Factory.Adapter Variables.Update Date

ADV_UPDATEBY

Adapter Factory.Adapter Variables.Updated By

ADV_DATA_TYPE

Adapter Factory.Adapter Variables.Type

ADV_DESC

Adapter Factory.Adapter Variables.Description

ADV_DISPLAY_VALUE

Adapter Factory.Adapter Variables.Display Value

ADV_FIELD_LENGTH

Adapter Factory.Adapter Variables.Field Length

ADV_FINAL

Adapter Factory.Adapter Variables.Final

ADV_KEY

Adapter Factory.Adapter Variables.Key

ADV_MAP_QUALIFIER

Adapter Factory.Adapter Variables.Map Qualifier

ADV_MAP_TO

Adapter Factory.Adapter Variables.Map To

ADV_MAP_VALUE

Adapter Factory.Adapter Variables.Map Value

ADV_NAME

Adapter Factory.Adapter Variables.Name

AOA_CREATE

Adapter Factory.Adapter Tasks.Open Adapter.Creation Date

AOA_CREATEBY

Adapter Factory.Adapter Tasks.Open Adapter.Created By

AOA_DATA_LEVEL

Adapter Factory.Adapter Tasks.Open Adapter.System Level

AOA_NOTE

Adapter Factory.Adapter Tasks.Open Adapter.Note

AOA_ROWVER

Adapter Factory.Adapter Tasks.Open Adapter.Row Version

AOA_UPDATE

Adapter Factory.Adapter Tasks.Open Adapter.Update Date

AOA_UPDATEBY

Adapter Factory.Adapter Tasks.Open Adapter.Updated By

AOA_FILE

Adapter Factory.Adapter Tasks.Open Adapter.File

AOA_FILE_NAME

Adapter Factory.Adapter Tasks.Open Adapter.File Name

AOA_KEY

Adapter Factory.Adapter Tasks.Open Adapter.Key

ASSIGNEDTOTYPE

Process Instance.Task Information.Assigned To Type

ASSIGNEE_FIRST_NAME

Process Instance.Task Information.Assignee First Name

ASSIGNEE_LAST_NAME

Process Instance.Task Information.Assignee Last Name

ASSIGNEE_USER_KEY

Process Instance.Task Information.Assignee User Key

ASSIGNEE_USER_LOGIN

Process Instance.Task Information.Assignee User ID

Acs_default

Organizations- IT Resource.Default

Adj_key

Adapter Factory.Adapter Tasks.Key

CHILD_SDK_NAME

Structure Utility.Child Tables.Child Table

CHILD_SVR

IT Resources.Remote Manager Name

DEP_CREATE

Process Definition.Tasks. Task Dependency.Creation Date

DEP_CREATEBY

Process Definition.Tasks. Task Dependency.Created By

DEP_DATA_LEVEL

Process Definition.Tasks. Task Dependency.System Level

DEP_KEY

Process Definition.Tasks. Task Dependency.Key

DEP_NOTE

Process Definition.Tasks. Task Dependency.Note

DEP_ROWVER

Process Definition.Tasks. Task Dependency.Row Version

DEP_UPDATE

Process Definition.Tasks. Task Dependency.Update Date

DEP_UPDATEBY

Process Definition.Tasks. Task Dependency.Updated By

DOB_CREATE

Data Object Manager.Creation Date

DOB_CREATEBY

Data Object Manager.Created By

DOB_DATA_LEVEL

Data Object Manager.System Level

DOB_KEY

Data Object Manager.key

DOB_NAME

Data Object Manager.Data Object

DOB_NOTE

Data Object Manager.Note

DOB_ROWVER

Data Object Manager.Row Version

DOB_UPDATE

Data Object Manager.Update Date

DOB_UPDATEBY

Data Object Manager.Updated By

DVT_CREATE

Data Object Manager-Event Handler Manager.Creation Date

DVT_CREATEBY

Data Object Manager-Event Handler Manager.Created By

DVT_CRITERIA

Data Object Manager-Event handler Manager.Criteria

DVT_DATA_LEVEL

Data Object Manager-Event Handler Manager.System Level

DVT_MAP_STATUS

Data Object Manager-Event Handler Manager.Mapping Status

DVT_NOTE

Data Object Manager-Event Handler Manager.Note

DVT_POST_DELETE_SEQUENCE

Data Object Manager-Event Handler Manager.Post-Delete Seq

DVT_POST_INSERT_SEQUENCE

Data Object Manager-Event Handler Manager.Post-Insert Seq

DVT_POST_UPDATE_SEQUENCE

Data Object Manager-Event Handler Manager.Post-Update Seq

DVT_PRE_DELETE_SEQUENCE

Data Object Manager-Event Handler Manager.Pre-Delete Seq

DVT_PRE_INSERT_SEQUENCE

Data Object Manager-Event Handler Manager.Pre-Insert Seq

DVT_PRE_UPDATE_SEQUENCE

Data Object Manager-Event Handler Manager.Pre-Update Seq

DVT_ROWVER

Data Object Manager-Event Handler Manager.Row Version

DVT_UPDATE

Data Object Manager-Event Handler Manager.Update Date

DVT_UPDATEBY

Data Object Manager-Event Handler Manager.Updated By

EMD_BODY

Email Definition.Body

EMD_CREATE

Email Definition.Creation Date

EMD_CREATEBY

Email Definition.Created By

EMD_DATA_LEVEL

Email Definition.System Level

EMD_FROM_TYPE

Email Definition.From Type

EMD_KEY

Email Definition.Key

EMD_NAME

Email Definition.Name

EMD_NOTE

Email Definition.Note

EMD_ROWVER

Email Definition.Row Version

EMD_STATUS

Email Definition.Status

EMD_SUBJECT

Email Definition.Subject

EMD_TYPE

Email Definition.Type

EMD_UPDATE

Email Definition.Update Date

EMD_UPDATEBY

Email Definition.Updated By

ERR_ACTION

Error Message Definition.Action

ERR_CODE

Error Message Definition.Code

ERR_COUNT

Error Message Definition.Count

ERR_CREATE

Error Message Definition.Creation Date

ERR_CREATEBY

Error Message Definition.Created By

ERR_DATA_LEVEL

Error Message Definition.System Level

ERR_DESC

Error Message Definition.Description

ERR_HELP_URL

Error Message Definition.Help URL

ERR_KEY

Error Message Definition.Key

ERR_LAST_OCCURANCE

Error Message Definition.Last Occurrence

ERR_NOTE

Error Message Definition.Note

ERR_REMEDY

Error Message Definition.Remedy

ERR_ROWVER

Error Message Definition.Row Version

ERR_SEVERITY

Error Message Definition.Severity

ERR_UPDATE

Error Message Definition.Update Date

ERR_UPDATEBY

Error Message Definition.Updated By

EVT_CREATE

Event Handler Manager.Creation Date

EVT_CREATEBY

Event Handler Manager.Created By

EVT_DATA_LEVEL

Event Handler Manager.System Level

EVT_KEY

Event Handler Manager.Key

EVT_NAME

Event Handler Manager.Event Handler Name

EVT_NOTE

Event Handler Manager.Note

EVT_PACKAGE

Event Handler Manager.Package

EVT_POST_DELETE

Event Handler Manager.Post-Delete

EVT_POST_INSERT

Event Handler Manager.Post-Insert

EVT_POST_UPDATE

Event Handler Manager.Post-Update

EVT_PRE_DELETE

Event Handler Manager.Pre-Delete

EVT_PRE_INSERT

Event Handler Manager.Pre-Insert

EVT_PRE_UPDATE

Event Handler Manager.Pre-Update

EVT_ROWVER

Event Handler Manager.Row Version

EVT_UPDATE

Event Handler Manager.Update Date

EVT_UPDATEBY

Event Handler Manager.Updated By

FUG_CREATE

Structure Utility.Administrators.Creation Date

FUG_CREATEBY

Structure Utility.Administrators.Created By

FUG_DATA_LEVEL

Structure Utility.Administrators.System Level

FUG_DELETE

Structure Utility.Administrators.Delete

FUG_NOTE

Structure Utility.Administrators.Note

FUG_ROWVER

Structure Utility.Administrators.Row Version

FUG_UPDATE

Structure Utility.Administrators.Update Date

FUG_UPDATEBY

Structure Utility.Administrators.Updated By

FUG_WRITE

Structure Utility.Administrators.Write

GPG_CREATE

Groups-User Sub Groups.Creation Date

GPG_CREATEBY

Groups-User Sub Groups.Created By

GPG_DATA_LEVEL

Groups-User Sub Groups.System Level

GPG_NOTE

Groups-User Sub Groups.Note

GPG_PRIORITY

Groups-User Sub Groups.Priority

GPG_ROWVER

Groups-User Sub Groups.Row Version

GPG_UPDATE

Groups-User Sub Groups.Update Date

GPG_UPDATEBY

Groups-User Sub Groups.Updated By

GPP_CREATE

Groups-Group Ownership.Creation Date

GPP_CREATEBY

Groups-Group Ownership.Created By

GPP_DATA_LEVEL

Groups-Group Ownership.System Level

GPP_DELETE

Groups-Group Ownership.Delete

GPP_NOTE

Groups-Group Ownership.Note

GPP_ROWVER

Groups-Group Ownership.Row Version

GPP_UPDATE

Groups-Group Ownership.Update Date

GPP_UPDATEBY

Groups-Group Ownership.Updated By

GPP_WRITE

Groups-Group Ownership.Write

GPY_NOTE

System Configuration-Groups.Note

GPY_ROWVER

System Configuration-Groups.Row Version

GPY_CREATE

System Configuration-Groups.Creation Date

GPY_CREATEBY

System Configuration-Groups.Created By

GPY_DATA_LEVEL

System Configuration-Groups.System Level

GPY_UPDATE

System Configuration-Groups.Update Date

GPY_UPDATEBY

System Configuration-Groups.Updated By

LATEST_SDL_LABEL

Structure Utility.Structure Utility Version Label.Latest Version Label

LKU_CREATE

Lookup Definition.Creation Date

LKU_CREATEBY

Lookup Definition.Created By

LKU_DATA_LEVEL

Lookup Definition.System Level

LKU_FIELD

Lookup Definition.Field

LKU_KEY

Lookup Definition.Key

LKU_LOOKUP_KEY

Lookup Definition.Lookup Key

LKU_NOTE

Lookup Definition.Note

LKU_REQUIRED

Lookup Definition.Required

LKU_ROWVER

Lookup Definition.Row Version

LKU_TYPE

Lookup Definition.Type

LKU_TYPE_GROUP

Lookup Definition.Group

LKU_TYPE_STRING_KEY

Lookup Definition.Code

LKU_UPDATE

Lookup Definition.Update Date

LKU_UPDATEBY

Lookup Definition.Updated By

LKV_COUNTRY

Lookup Definition.Lookup Code Information.Country

LKV_CREATE

Lookup Definition.Lookup Code Information.Creation Date

LKV_CREATEBY

Lookup Definition.Lookup Code Information.Created By

LKV_DATA_LEVEL

Lookup Definition.Lookup Code Information.System Level

LKV_DECODED

Lookup Definition.Lookup Code Information.Decode

LKV_DISABLED

Lookup Definition.Lookup Code Information.Disabled

LKV_ENCODED

Lookup Definition.Lookup Code Information.Code Key

LKV_KEY

Lookup Definition.Lookup Code Information.Key

LKV_LANGUAGE

Lookup Definition.Lookup Code Information.Language

LKV_NOTE

Lookup Definition.Lookup Code Information.Note

LKV_ROWVER

Lookup Definition.Lookup Code Information.Row Version

LKV_UPDATE

Lookup Definition.Lookup Code Information.Update Date

LKV_UPDATEBY

Lookup Definition.Lookup Code Information.Updated By

LKV_VARIANT

Lookup Definition.Lookup Code Information.Variant

LOC_ADDRESS_1

Locations.Street/P.O.Box

LOC_ADDRESS_2

Locations.Address 2

LOC_CITY

Locations.City

LOC_COUNTRY

Locations.Country

LOC_CREATE

Locations.Creation Date

LOC_CREATEBY

Locations.Created By

LOC_DATA_LEVEL

Locations.System Level

LOC_INTL_STATE

Locations.Province

LOC_KEY

Locations.Key

LOC_NAME

Locations.Location Name

LOC_NOTE

Locations.Note

LOC_POSTAL_CODE

Locations.Postal Code

LOC_REGION

Locations.Region

LOC_ROWVER

Locations.Row Version

LOC_STATE

Locations.State

LOC_UPDATE

Locations.Update Date

LOC_UPDATEBY

Locations.Updated By

LOC_ZIP

Locations.Zip

LOC_ZIP4

Locations.Zip + 4 Code

MAV_CREATE

Process Definition.Tasks.Integration.Adapter Variables.Creation Date

MAV_CREATEBY

Process Definition.Tasks.Integration.Adapter Variables.Created By

MAV_DATA_LEVEL

Process Definition.Tasks.Integration.Adapter Variables.System Level

MAV_DISPLAY_VALUE

Process Definition.Tasks.Integration.Adapter Variables.Displayed Value

MAV_FIELD_LENGTH

Process Definition.Tasks.Integration.Adapter Variables.Field Length

MAV_MAP_QUALIFIER

Process Definition.Tasks.Integration.Adapter Variables.Qualifier

MAV_MAP_TO

Process Definition.Tasks.Integration.Adapter Variables.Map to

MAV_MAP_VALUE

Process Definition.Tasks.Integration.Adapter Variables.Mapped Value

MAV_NOTE

Process Definition.Tasks.Integration.Adapter Variables.Note

MAV_ROWVER

Process Definition.Tasks.Integration.Adapter Variables.Row Version

MAV_UPDATE

Process Definition.Tasks.Integration.Adapter Variables.Update Date

MAV_UPDATEBY

Process Definition.Tasks.Integration.Adapter Variables.Updated By

MEMBERPRIORITY

Groups.Member Priority

MIL_APP_EFFECT

Process Definition.Tasks.Task Effect

MIL_ASSIGN_TO_MANAGER

Process Definition.Tasks.Assign To User Manager

MIL_CANCEL_WHILE_PENDING

Process Definition.Tasks.Allow Cancellation While Pending

MIL_COMP_ON_REC

Process Definition.Tasks.Complete on Recovery

MIL_CONDITIONAL

Process Definition.Tasks.Conditional

MIL_CONSTANT

Process Definition.Tasks.Constant Duration

MIL_CREATE

Process Definition.Tasks.Creation Date

MIL_CREATE BY

Process Definition.Tasks.Created By

MIL_CREATE_MULTIPLE

Process Definition.Tasks.Allow Multiple Instances

MIL_DATALABEL

Process Definition.Tasks.Milestone Datalabel

MIL_DATA_LEVEL

Process Definition.Tasks.System Level

MIL_DAY

Process Definition.Tasks.Days

MIL_DELETE_FLAG

Process Definition.Tasks.Milestone Delete Flag

MIL_DEPENDENCY

Process Definition.Tasks.Milestone Dependency

MIL_DESCRIPTION

Process Definition.Tasks.Task Description

MIL_DISABLE_MANUAL_INSERT

Process Definition.Tasks.Disable Manual Insert

MIL_HOUR

Process Definition.Tasks.Hours

MIL_KEY

Process Definition.Tasks.Key

MIL_MAP_STATUS

Process Definition.Tasks.Milestone Mapping Status

MIL_MINUTE

Process Definition.Tasks.Minutes

MIL_NAME

Process Definition.Tasks.Task Name

MIL_NOTE

Process Definition.Tasks.Note

MIL_REQUIRED_COMPLETE

Process Definition.Tasks.Required For Completion

MIL_ROWVER

Process Definition.Tasks.Row Version

MIL_SEC

Process Definition.Tasks.Second Duration

MIL_SEQUENCE

Process Definition.Tasks.Milestone Sequence

MIL_SEQ_INTERVAL

Process Definition.Tasks.Milestone Sequence Interval

MIL_UPDATE

Process Definition.Tasks.Update Date

MIL_UPDATEBY

Process Definition.Tasks.Updated By

MSG_CREATE

Status-Groups-Milestone-Process.Creation Date

MSG_CREATEBY

Status-Groups-Milestone-Process.Created By

MSG_DATA_LEVEL

Status-Groups-Milestone-Process.System Level

MSG_NOTE

Status-Groups-Milestones-Process.Note

MSG_ROWVER

Status-Groups-Milestone-Process.Row Version

MSG_UPDATE

Status-Groups-Milestone-Process.Update Date

MSG_UPDATEBY

Status-Groups-Milestone-Process.Updated By

MST_CREATE

Status-Process Definition.Task-Object.Object Status.Creation Date

MST_CREATEBY

Status-Process Definition.Task-Object.Object Status.Created By

MST_DATA_LEVEL

Status-Process Definition.Task-Object.Object Status.System Level

MST_NOTE

Status-Process Definition.Task-Object.Object Status.Note

MST_ROWVER

Status-Process Definition.Task-Object.Object Status.Row Version

MST_UPDATEBY

Status-Process Definition.Task-Object.Object Status.Updated By

MST_UPDATE

Status-Process Definition.Task-Object.Object Status.Update Date

OBA_CREATE

Objects-Ordering Permissions.Creation Date

OBA_CREATEBY

Objects-Ordering Permissions.Created By

OBA_DATA_LEVEL

Objects-Ordering Permissions.System Level

OBA_NOTE

Objects-Ordering Permissions.Note

OBA_PRIORITY

Objects-Ordering Permissions.Priority

OBA_ROWVER

Objects-Ordering Permissions.Row Version

OBA_UPDATE

Objects-Ordering Permissions.Update Date

OBA_UPDATEBY

Objects-Ordering Permissions.Updated By

OBD_CHILD_KEY

Objects.Object Dependencies.Child Key

OBD_CREATE

Objects.Object Dependencies.Creation Date

OBD_CREATEBY

Objects.Object Dependencies.Created By

OBD_DATA_LEVEL

Objects.Object Dependencies.System Level

OBD_NOTE

Objects.Object Dependencies.Note

OBD_PARENT_KEY

Objects.Object Dependencies.Parent Key

OBD_ROWVER

Objects.Object Dependencies.Row Version

OBD_UPDATE

Objects.Object Dependencies.Update Date

OBD_UPDATEBY

Objects.Object Dependencies.Updated By

OBI_CREATE

Object Instance.Creation Date

OBI_CREATEBY

Object Instance.Created By

OBI_DATA_LEVEL

Object Instance.System Level

OBI_DEP_REQUIRED

Object Instance.Dependent Required

OBI_KEY

Object Instance.Key

OBI_NOTE

Object Instance.Note

OBI_ROWVER

Object Instance.Row Version

OBI_STATUS

Object Instance.Status

OBI_UPDATE

Object Instance.Update Date

OBI_UPDATEBY

Object Instance.Updated By

OBJECTFORMCOUNT

Object Instance.Object Form Entries

OBJECTFORMINSTANCEKEY

Objects.Object Instance Key In Form

OBJECTFORMKEY

Objects.Object Form Key

OBJECTFORMNAME

Objects.Object Form Name

OBJ_ALLOWALL

Objects.Allow All

OBJ_ALLOW_MULTIPLE

Objects.Allow Multiple

OBJ_AUTOLAUNCH

Objects.Auto Launch

OBJ_AUTOSAVE

Objects.Auto Save

OBJ_AUTO_PREPOP

Objects.Auto Prepopulate

OBJ_CREATE

Objects.Creation Date

OBJ_CREATEBY

Objects.Created By

OBJ_DATA_LEVEL

Objects.System Level

OBJ_KEY

Objects.Key

OBJ_NAME

Objects.Name

OBJ_NOTE

Objects.Note

OBJ_OBJADMINONLY

Objects.Admin Only

OBJ_ORDER_FOR

Objects.Order For

OBJ_ROWVER

Objects.Row Version

OBJ_SELF_REQUEST_ALLOWED

Objects.Self Request Allowed

OBJ_TYPE

Objects.Type

OBJ_UPDATE

Objects.Update Date

OBJ_UPDATEBY

Objects.Updated By

ODF_CREATE

Process Definition.Data Flow.Creation Date

ODF_CREATEBY

Process Definition.Data Flow.Created By

ODF_DATA_LEVEL

Process Definition.Data Flow.System Level

ODF_NOTE

Process Definition.Data Flow.Note

ODF_ROWVER

Process Definition.Data Flow.Row Version

ODF_UPDATEBY

Process Definition.Data Flow.Updated By

ODF_KEY

Process Definition.Data Flow.Key

ODF_OBJ_SDC_KEY

Process Definition.Data Flow.Object.Form Field

ODF_TOS_SDC_KEY

Process Definition.Data Flow.Process.Form Field

ODF_UPDATE

Process Definition.Data Flow.Update Date

ODV_CREATE

Objects-Events.Creation Date

ODV_CREATEBY

Objects-Events.Created By

ODV_DATA_LEVEL

Objects-Events.System Level

ODV_NOTE

Objects-Events.Note

ODV_ROWVER

Objects-Events.Row Version

ODV_UPDATE

Objects-Events.Update Date

ODV_UPDATEBY

Objects-Events.Updated By

OIO_CREATE

Organization-Object Instance-Process Instance.Creation Date

OIO_CREATEBY

Organization-Object Instance-Process Instance.Created By

OIO_DATA_LEVEL

Organization-Object Instance-Process Instance.System Level

OIO_KEY

Organization-Object Instance-Process Instance.Key

OIO_NOTE

Organization-Object Instance-Process Instance.Note

OIO_ROWVER

Organization-Object Instance-Process Instance.Row Version

OIO_SELECTED

Requests.Organization-Object Instance-Process Instance.Selected Instance

OIO_UPDATE

Organization-Object Instance-Process Instance.Update Date

OIO_UPDATEBY

Organization-Object Instance-Process Instance.Updated By

OIU_CREATE

Users-Object Instance For User.Creation Date

OIU_CREATEBY

Users-Object Instance For User.Created By

OIU_DATA_LEVEL

Users-Object Instance For User.System Level

OIU_KEY

Users-Object Instance For User.Key

OIU_NOTE

Users-Object Instance For User.Note

OIU_ROWVER

Users-Object Instance For User.Row Version

OIU_SELECTED

Requests.Users-Object Instance For User.Selected Instance

OIU_SERVICEACCOUNT

Users-Object Instance For User.Service Account Flag

OIU_UPDATE

Users-Object Instance For User.Update Date

OIU_UPDATEBY

Users-Object Instance For User.Updated By

OOD_CREATE

Organizations.Object Instance For Organization.Dependency.Creation Date

OOD_CREATEBY

Organizations.Object Instance For Organization.Dependency.Created By

OOD_DATA_LEVEL

Organizations.Object Instance For Organization.Dependency.System Level

OOD_NOTE

Organizations.Object Instance For Organization.Dependency.Note

OOD_ROWVER

Organizations.Object Instance For Organization.Dependency.Row Version

OOD_UPDATE

Organizations.Object Instance For Organization.Dependency.Update Date

OOD_UPDATEBY

Organizations.Object Instance For Organization.Dependency.Updated By

ORC_ASSIGNED_TO

Process Instance.Assigned To

ORC_CREATE

Process Instance.Create

ORC_CREATEBY

Process Instance.Created By

ORC_DATA_LEVEL

Process Instance.System Level

ORC_DEPENDS

Process Instance.Depends

ORC_KEY

Process Instance.Key

ORC_NOTE

Process Instance.Note

ORC_ORDERBY_POLICY

Process Instance.Order By Policy

ORC_PACKAGE_INSTANCE_KEY

Process Instance.Package Instance Key

ORC_PARENT_KEY

Process Instance.Parent Key

ORC_REFERENCEKEY

Process Instance.Reference Key

ORC_REQUIRED_COMPLETE

Process Instance.Required Complete

ORC_ROWVER

Process Instance.Row Version

ORC_SERVICEORDER

Process Instance.Service Order

ORC_STATUS

Process Instance.Status

ORC_SUBORDER

Process Instance.Suborder

ORC_SUBTOSKEY

Process Instance.Subprocess Key

ORC_SUPPCODE

Process Instance.Supplementary Code

ORC_TARGET

Process Instance.Target

ORC_TOS_INSTANCE_KEY

Process Instance.Descriptive Data

ORC_UPDATE

Process Instance.Update Date

ORC_UPDATEBY

Process Instance.Updated By

ORD_ASSIGNED_TO

Orders.Assigned To

ORD_BATCH

Orders.Batch

ORD_CANCEL_CODE

Orders.Cancel Code

ORD_CANCEL_DATE

Orders.Cancel Date

ORD_CARRIER_ORDERNO

Orders.Carrier Order No

ORD_CREATE

Orders.Creation Date

ORD_CREATEBY

Orders.Created By

ORD_CUST_ISSUE

Orders.Cust Issue

ORD_CUST_ORDERNO

Orders.Order No

ORD_CUST_REQUEST

Orders.Date Requested

ORD_DATA_LEVEL

Orders.System Level

ORD_EXPEDITE

Orders.Expedite

ORD_INPUT

Orders.Input

ORD_INPUTBY

Orders.Input By

ORD_KEY

Orders.Key

ORD_LATECODE

Orders.Late Code

ORD_NOTE

Orders.Note

ORD_ORDERID

Orders.Order ID

ORD_PROJECT

Orders.Project

ORD_RECEIVE

Orders.Date Received

ORD_RELORDNO

Orders.Relord No

ORD_ROWVER

Orders.Row Version

ORD_SALES_CHANNEL

Orders.Sales Channel

ORD_SERVORD

Orders.Serve Order

ORD_STATUS

Orders.Status

ORD_SUBORD

Orders.Sub Order

ORD_TRACK

Orders.Track

ORD_TYPE

Orders.Type

ORD_UPDATE

Orders.Update Date

ORD_UPDATEBY

Orders.Updated By

ORF_CREATE

Objects.Reconciliation Fields.Creation Date

ORF_CREATEBY

Objects.Reconciliation Fields.Created By

ORF_DATA_LEVEL

Objects.Reconciliation Fields.System Level

ORF_FIELDNAME

Objects.Reconciliation Fields.Name

ORF_KEY

Objects.Reconciliation Fields.Key

ORF_NOTE

Objects.Reconciliation Fields.Note

ORF_NULLABLE

Objects.Reconciliation Fields.Nullable

ORF_ROWVER

Objects.Reconciliation Fields.Row Version

ORF_UPDATE

Objects.Reconciliation Fields.Update Date

ORF_UPDATEBY

Objects.Reconciliation Fields.Updated By

ORR_RULE

Objects.Reconciliation Action Rules.Rules

OSI_ASSIGNED_DATE

Process Instance.Task Information.Assigned Date

OSI_ASSIGNED_TO

Process Instance.Task Information.Assigned To

OSI_ASSIGNED_TO_UGP_KEY

Process Instance.Task Information.Assigned To Group Key

OSI_ASSIGNED_TO_USR_KEY

Process Instance.Task Information.Assigned To User Key

OSI_ASSIGN_TYPE

Process Instance.Task Information.Assign Type

OSI_CREATE

Process Instance.Task Information.Creation Date

OSI_CREATEBY

Process Instance.Task Information.Created By

OSI_DATA_LEVEL

Process Instance.Task Information.System Level

OSI_LOG_KEY

Process Instance.Task Information.Log Key

OSI_NOTE

Process Instance.Task Information.Note

OSI_RECOVERY_FOR

Process Instance.Task Information.Recovery Task

OSI_RETRY_FOR

Process Instance.Task Information.Retry Task

OSI_ROWVER

Process Instance.Task Information.Row Version

OSI_UPDATE

Process Instance.Task Information.Update Date

OSI_UPDATEBY

Process Instance.Task Information.Updated By

OST_CREATE

Objects.Object Status.Creation Date

OST_CREATEBY

Objects.Object Status.Created By

OST_DATA_LEVEL

Objects.Object Status.System Level

OST_KEY

Objects.Object Status.Key

OST_LAUNCH_DEPENDENT

Objects.Object Status.Launch Dependent

OST_NOTE

Objects.Object Status.Note

OST_REMOVED

Objects.Object Status.Removed

OST_ROWVER

Objects.Object Status.Row Version

OST_STATUS

Objects.Object Status.Status

OST_UPDATE

Objects.Object Status.Update Date

OST_UPDATEBY

Objects.Object Status.Updated By

OUD_CREATE

Users.Object Instance For User.Dependency.Creation Date

OUD_CREATEBY

Users.Object Instance For User.Dependency.Created By

OUD_DATA_LEVEL

Users.Object Instance For User.Dependency.System Level

OUD_NOTE

Users.Object Instance For User.Dependency.Note

OUD_ROWVER

Users.Object Instance For User.Dependency.Row Version

OUD_UPDATE

Users.Object Instance For User.Dependency.Update Date

OUD_UPDATEBY

Users.Object Instance For User.Dependency.Updated By

OUG_CREATE

Objects-Groups.Creation Date

OUG_CREATEBY

Objects-Groups.Created By

OUG_DATA_LEVEL

Objects-Groups.System Level

OUG_DELETE

Objects-Groups.Delete

OUG_NOTE

Objects-Groups.Note

OUG_ROWVER

Objects-Groups.Row Version

OUG_UPDATE

Objects-Groups.Update Date

OUG_UPDATEBY

Objects-Groups.Updated By

OUG_WRITE

Objects-Groups.Write

PARENT_KEY

Organizations.Parent Key

PARENT_SDK_NAME

Structure Utility.Child Tables.Parent Table

PCQ_ANSWER

Users.Password Challenge Question.Answer

PCQ_CREATE

Users.Password Challenge Question.Creation Date

PCQ_CREATEBY

Users.Password Challenge Question.Created By

PCQ_DATA_LEVEL

Users.Password Challenge Question.System Level

PCQ_KEY

Users.Password Challenge Question.Key

PCQ_NOTE

Users.Password Challenge Question.Note

PCQ_QUESTION

Users.Password Challenge Question.Question

PCQ_ROWVER

Users.Password Challenge Question.Row Version

PCQ_UPDATE

Users.Password Challenge Question.Update Date

PCQ_UPDATEBY

Users.Password Challenge Question.Updated By

PDF_CREATE

Process Integration.Sub Processes.Set Data Flow.Creation Date

PDF_CREATEBY

Process Integration.Sub Processes.Set Data Flow.Created By

PDF_DATA_LEVEL

Process Integration.Sub Processes.Set Data Flow.System Level

PDF_KEY

Process Integration.Sub Processes.Set Data Flow.Key

PDF_NOTE

Process Integration.Sub Processes.Set Data Flow.Note

PDF_ROWVER

Process Integration.Sub Processes.Set Data Flow.Row Version

PDF_SINK_DOB

Process Integration.Sub Processes.Set Data Flow.Sink Process Data Object

PDF_SINK_FIELD

Process Integration.Sub Processes.Set Data Flow.Target Process Field

PDF_SINK_HIERARCHY

Process Integration.Sub Processes.Set Data Flow.Target Process Hierarchy String

PDF_SINK_PKG_KEY

Process Integration.Sub Processes.Set Data Flow.Target Process Key

PDF_SOURCE_FIELD

Process Integration.Sub Processes.Set Data Flow.Source Process Field

PDF_SOURCE_HIERARCHY

Process Integration.Sub Processes.Set Data Flow.Source Process Hierarchy String

PDF_SOURCE_PKG_KEY

Process Integration.Sub Processes.Set Data Flow.Source Process Key

PDF_SOURCE_TABLE

Process Integration.Sub Processes.Set Data Flow.Source Process Table

PDF_UPDATE

Process Integration.Sub Processes.Set Data Flow.Update Date

PDF_UPDATEBY

Process Integration.Sub Processes.Set Data Flow.Updated By

PGP_CREATE

Groups-Request Permissions.Create Date

PGP_CREATEBY

Groups-Request Permissions.Created By

PGP_DATA_LEVEL

Groups-Request Permissions.System Level

PGP_NOTE

Groups-Request Permissions.Note

PGP_ROWVER

Groups-Request Permissions.Row Version

PGP_UPDATE

Groups-Request Permissions.Update Date

PGP_UPDATEBY

Groups-Request Permissions.Updated By

PHO_ADDRESS

Phones.Number/Address

PHO_COUNTRY_CODE

Phones.Country Code

PHO_CREATE

Phones.Creation Date

PHO_CREATEBY

Phones.Created By

PHO_DATASET_ATTRIBUTE

Phones.Dataset Attribute

PHO_DATA_LEVEL

Phones.System Level

PHO_DESCRIPTION

Phones.Description

PHO_EXT

Phones.Extension

PHO_FREQUENCY

Phones.Frequency

PHO_JOB

Phones.Job

PHO_KEY

Phones.Key

PHO_LABEL

Phones.Label

PHO_NOTE

Phones.Note

PHO_ORIGINATOR

Phones.Originator

PHO_PASSWORD

Phones.Password

PHO_PIN

Phones.PIN

PHO_RECEIVE_FILE

Phones.Receive File

PHO_ROWVER

Phones.Row Version

PHO_TYPE

Phones.Type

PHO_UPDATE

Phones.Update Date

PHO_UPDATEBY

Phones.Updated By

PHO_USERNAME

Phones.Username

PKD_CREATE

Process Integration.Sub Processes.Depends On.Creation Date

PKD_CREATEBY

Process Integration.Sub Processes.Depends On.Created By

PKD_DATA_LEVEL

Process Integration.Sub Processes.Depends On.System Level

PKD_KEY

Process Integration.Sub Processes.Depends On.Key

PKD_NOTE

Process Integration.Sub Processes.Depends On.Note

PKD_PREDECESSOR_PKH_KEY

Process Integration.Sub Processes.Depends On.Parent of Process Hierarchy Key

PKD_ROWVER

Process Integration.Sub Processes.Depends On.Row Version

PKD_UPDATE

Process Integration.Sub Processes.Depends On.Update Date

PKD_UPDATEBY

Process Integration.Sub Processes.Depends On.Updated By

PKG_CREATE

Process Definition.Creation Date

PKG_CREATEBY

Process Definition.Created By

PKG_DATA_LEVEL

Process Definition.System Level

PKG_DESCRIPTION

Process Definition.Process Description

PKG_KEY

Process Definition.Key

PKG_NAME

Process Definition.Name

PKG_NOTE

Process Definition.Note

PKG_OBJ_DEFAULT

Process Definition.Default Process

PKG_PROMO

Process Definition.Process Promo

PKG_ROWVER

Process Definition.Row Version

PKG_SYSTEM

Process Definition.System Process

PKG_TOS_INSTANCE_SRC_FIELD

Process Definition.Pkg Tos Instance Source Field

PKG_TOS_INSTANCE_SRC_HIERARCHY

Process Definition.Pkg Tos Instance Source Hierarchy

PKG_TYPE

Process Definition.Type

PKG_UPDATE

Process Definition.Update Date

PKG_UPDATEBY

Process Definition.Updated By

PKH_CHILD_PKG_KEY

Process Integration.Child Process Key

PKH_CONDITIONAL

Process Integration.Sub Processes.Conditional

PKH_CREATE

Process Integration.Sub Processes.Creation Date

PKH_CREATEBY

Process Integration.Sub Processes.Created By

PKH_DATA_LEVEL

Process Integration.Sub Processes.System Level

PKH_KEY

Process Integration.Key

PKH_NOTE

Process Integration.Sub Processes.Note

PKH_REQUIRED_COMPLETE

Process Integration.Sub Processes.Required Complete

PKH_ROWVER

Process Integration.Sub Processes.Row Version

PKH_SEQUENCE

Process Integration.Sub Processes.Sequence

PKH_UPDATE

Process Integration.Sub Processes.Update Date

PKH_UPDATEBY

Process Integration.Sub Processes.Updated By

POF FIELD_VALUE

Access Policy.Policy Field Definition.Field Value

POF_CREATE

Access Policy.Policy Field Definition.Creation Date

POF_CREATEBY

Access Policy.Policy Field Definition.Created By

POF_KEY

Access Policy.Policy Field Definition.Key

POF_NOTE

Access Policy.Policy Field Definition.Note

POF_ROWVER

Access Policy.Policy Field Definition.Row Version

POF_DATA_LEVEL

Access Policy.Policy Field Definition.System Level

POF_FIELD_NAME

Access Policy.Policy Field Definition.Field Name

POF_UPDATE

Access Policy.Policy Field Definition.Update Date

POF_UPDATEBY

Access Policy.Policy Field Definition.Updated By

POG_CREATE

Access Policy-User Groups.Creation Date

POG_CREATEBY

Access Policy-User Groups.Created By

POG_DATA_LEVEL

Access Policy-User Groups.System Level

POG_NOTE

Access Policy-User Groups.Note

POG_ROWVER

Access Policy-User Groups.Row Version

POG_UPDATE

Access Policy-User Groups.Update Date

POG_UPDATEBY

Access Policy-User Groups.Updated By

POL_CREATE

Access Policies.Creation Date

POL_CREATEBY

Access Policies.Created By

POL_DATA_LEVEL

Access Policies.System Level

POL_DESCRIPTION

Access Policies.Description

POL_KEY

Access Policies.Key

POL_NAME

Access Policies.Name

POL_NOTE

Access Policies.Note

POL_PRIORITY

Access Policies.Priority

POL_REQUEST

Access Policies.By Request

POL_RETROFIT_POLICY

Access Policies.Retrofit Flag

POL_ROWVER

Access Policies.Row Version

POL_UPDATE

Access Policies.Update Date

POL_UPDATEBY

Access Policies.Updated By

POP_CREATE

Access Policy-Resource Objects.Creation Date

POP_CREATEBY

Access Policy-Resource Objects.Created By

POP_DATA_LEVEL

Access Policy-Resource Objects.System Level

POP_DENIAL

Access Policy-Resource Objects.Denial

POP_NOTE

Access Policy-Resource Objects.Note

POP_REVOKE_OBJECT

Access Policy-Resource Objects.Revoke Objects

POP_ROWVER

Access Policy-Resource Objects.Row Version

POP_UPDATE

Access Policy-Resource Objects.Update Date

POP_UPDATEBY

Access Policy-Resource Objects.Updated By

PRF_COLUMNNAME

Process Definition.Reconciliation Fields Mappings.ColumnName

PRF_CREATE

Process Definition.Reconciliation Fields Mappings.Creation Date

PRF_CREATEBY

Process Definition.Reconciliation Fields Mappings.Created By

PRF_DATA_LEVEL

Process Definition.Reconciliation Fields Mappings.System Level

PRF_ISKEY

Process Definition.Reconciliation Fields Mappings.Iskey

PRF_NOTE

Process Definition.Reconciliation Fields Mappings.Note

PRF_ROWVER

Process Definition.Reconciliation Fields Mappings.Row Version

PRF_UPDATE

Process Definition.Reconciliation Fields Mappings.Update Date

PRF_UPDATEBY

Process Definition.Reconciliation Fields Mappings.Updated By

PROCESSFORMCOUNT

Process Instance.Process Form Entries

PROCESSFORMINSTANCEKEY

Process.Process Definition.Process Instance Key In Form

PROCESSFORMKEY

Process.Process Definition.Process Form Key

PROCESSFORMNAME

Process.Process Definition.Process Form Name

PTY_CREATE

System Configuration.Creation Date

PTY_CREATEBY

System Configuration.Created By

PTY_DATA_LEVEL

System Configuration.System Level

PTY_KEY

System Configuration.Key

PTY_KEYWORD

System Configuration.Keyword

PTY_NAME

System Configuration.Name

PTY_NOTE

System Configuration.Note

PTY_ROWVER

System Configuration.Row Version

PTY_RUN_ON

System Configuration.Run On

PTY_SYSTEM

System Configuration.System

PTY_UPDATE

System Configuration.Update Date

PTY_UPDATEBY

System Configuration.Updated By

PTY_VALUE

System Configuration.Value

PUG_CREATE

ProcessDefinition-Groups.Creation Date

PUG_CREATEBY

ProcessDefinition-Groups.Created By

PUG_DATA_LEVEL

ProcessDefinition-Groups.System Level

PUG_DELETE

ProcessDefinition-Groups.Delete

PUG_NOTE

ProcessDefinition-Groups.Note

PUG_ROWVER

ProcessDefinition-Groups.Row Version

PUG_UPDATE

ProcessDefinition-Groups.Update Date

PUG_UPDATEBY

ProcessDefinition-Groups.Updated By

PUG_WRITE

ProcessDefinition-Groups.Write

PWP_CREATE

Password Policies.Policy Process Targets.Creation Date

PWP_CREATEBY

Password Policies.Policy Process Targets.Created By

PWP_DATA_LEVEL

Password Policies.Policy Process Targets.System Level

PWP_NOTE

Password Policies.Policy Process Targets.Note

PWP_ROWVER

Password Policies.Policy Process Targets.Row Version

PWP_UPDATE

Password Policies.Policy Process Targets.Update Date

PWP_UPDATEBY

Password Policies.Policy Process Targets.Updated By

PWR_CREATE

Password Policies.Creation Date

PWR_CREATEBY

Password Policies.Created By

PWR_DATA_LEVEL

Password Policies.System Level

PWR_DESC

Password Policies.Policy Description

PWR_DICTIONARY_DELIMITER

Password Policies.Password File Delimiter

PWR_DICTIONARY_LOCATION

Password Policies.Password File

PWR_DISALLOW_FNAME

Password Policies.Disallow First Name

PWR_DISALLOW_LNAME

Password Policies.Disallow Last Name

PWR_DISALLOW_USERID

Password Policies.Disallow User ID

PWR_EXPIRES_AFTER

Password Policies.Expires After(Days)

PWR_INVALID_CHARS

Password Policies.Characters Not Allowed

PWR_INVALID_STRINGS

Password Policies.Substrings Not Allowed

PWR_KEY

Password Policies.Key

PWR_MAX_LENGTH

Password Policies.Maximum Length

PWR_MAX_REPEATED

Password Policies.Maximum Repeated Characters

PWR_MAX_SPECIALCHAR

Password Policies.Maximum Special Characters

PWR_MIN_ALPHA

Password Policies.Minimum Alphabet Characters

PWR_MIN_ALPHANUM

Password Policies.Minimum Alphanumeric Characters

PWR_MIN_LENGTH

Password Policies.Minimum Length

PWR_MIN_LOWERCASE

Password Policies.Minimum Lowercase Characters

PWR_MIN_NUMBER

Password Policies.Minimum Numeric Characters

PWR_MIN_SPECIALCHAR

Password Policies.Minimum Special Characters

PWR_MIN_UNIQUE

Password Policies.Minimum Unique Characters

PWR_MIN_UPPERCASE

Password Policies.Minimum Uppercase Characters

PWR_NAME

Password Policies.Policy Name

PWR_NOTE

Password Policies.Note

PWR_REQD_CHARS

Password Policies.Characters Required

PWR_ROWVER

Password Policies.Row Version

PWR_STARTS_WITH_CHAR

Password Policies.Start With Character

PWR_UPDATE

Password Policies.Update Date

PWR_UPDATEBY

Password Policies.Updated By

PWR_VALID_CHARS

Password Policies.Characters Allowed

PWR_WARN_AFTER

Password Policies.Warn After(Days)

PWT_CREATE

Password Policies.Policy User Targets.Creation Date

PWT_CREATEBY

Password Policies.Policy User Targets.Created By

PWT_DATA_LEVEL

Password Policies.Policy User Targets.System Level

PWT_EMP_TYPE

Password Policies.Policy User Targets.Employee Type

PWT_KEY

Password Policies.Policy User Targets.Key

PWT_NOTE

Password Policies.Policy User Targets.Note

PWT_ROWVER

Password Policies.Policy User Targets.Row Version

PWT_UPDATE

Password Policies.Policy User Targets.Update Date

PWT_UPDATEBY

Password Policies.Policy User Targets.Updated By

PXD_CREATE

Proxy.Creation Date

PXD_CREATEBY

Proxy.Created By

PXD_DATA_LEVEL

Proxy.System Level

PXD_END_DATE

Proxy.End Date

PXD_KEY

Proxy.Key

PXD_NOTE

Proxy.Note

PXD_ORIG_USR_KEY

Proxy.Original User Key

PXD_PROXY_KEY

Proxy.Proxy User Key

PXD_ROWVER

Proxy.Row Version

PXD_START_DATE

Proxy.Start Date

PXD_UPDATE

Proxy.Update Date

PXD_UPDATEBY

Proxy.Updated By

QUE_CREATE

Queues.Creation Date

QUE_CREATEBY

Queues.Created By

QUE_DATA_LEVEL

Queues.System Level

QUE_DESCRIPTION

Queues.Description

QUE_KEY

Queues.Key

QUE_NAME

Queues.Queue Name

QUE_NOTE

Queues.Note

QUE_PARENT

Queues.Parent Queue Name

QUE_PARENT_KEY

Queues.Parent Queue

QUE_ROWVER

Queues.Row Version

QUE_UPDATE

Queues.Update Date

QUE_UPDATEBY

Queues.Updated By

QUG_CREATE

Queues.Administrators.Creation Date

QUG_CREATEBY

Queues.Administrators.Created By

QUG_DATA_LEVEL

Queues.Administrators.System Level

QUG_DELETE

Queues.Administrators.Delete

QUG_NOTE

Queues.Administrators.Note

QUG_ROWVER

Queues.Administrators.Row Version

QUG_UPDATE

Queues.Administrators.Update Date

QUG_UPDATEBY

Queues.Administrators.Updated By

QUG_WRITE

Queues.Administrators.Write

QUM_CREATE

Queues.Members.Creation Date

QUM_CREATEBY

Queues.Members.Created By

QUM_DATA_LEVEL

Queues.Members.System Level

QUM_DELETE

Queues.Members.Delete

QUM_NOTE

Queues.Members.Note

QUM_ROWVER

Queues.Members.Row Version

QUM_UPDATE

Queues.Members.Update Date

QUM_UPDATEBY

Queues.Members.Updated By

QUM_WRITE

Queues.Members.Write

RCD_CREATE

Reconciliation Manager.Event Data.Creation Date

RCD_CREATEBY

Reconciliation Manager.Event Data.Created By

RCD_DATA_LEVEL

Reconciliation Manager.Event Data.System Level

RCD_NOTE

Reconciliation Manager.Event Data.Note

RCD_ROWVER

Reconciliation Manager.Event Data.Row Version

RCD_UPDATE

Reconciliation Manager.Event Data.Update Date

RCD_UPDATEBY

Reconciliation Manager.Event Data.Updated By

RCD_VALUE

Reconciliation Manager.Event Data.Value

RCE_CREATE

Reconciliation Manager.Creation Date

RCE_CREATEBY

Reconciliation Manager.Created By

RCE_DATA_LEVEL

Reconciliation Manager.System Level

RCE_KEY

Reconciliation Manager.Key

RCE_LAST_ACTION

Reconciliation Manager.Last Action

RCE_NOTE

Reconciliation Manager.Note

RCE_ROWVER

Reconciliation Manager.Row Version

RCE_STATUS

Reconciliation Manager.Status

RCE_UPDATE

Reconciliation Manager.Update Date

RCE_UPDATEBY

Reconciliation Manager.Updated By

RCH_ACTION

Reconciliation Manager.Event Action History.Action

RCH_CREATE

Reconciliation Manager.Event Action History.Creation Date

RCH_CREATEBY

Reconciliation Manager.Event Action History.Created By

RCH_DATA_LEVEL

Reconciliation Manager.Event Action History.System Level

RCH_KEY

Reconciliation Manager.Event Action History.Key

RCH_NOTE

Reconciliation Manager.Event Action History.Note

RCH_ROWVER

Reconciliation Manager.Event Action History.Row Version

RCH_UPDATE

Reconciliation Manager.Event Action History.Update Date

RCH_UPDATEBY

Reconciliation Manager.Event Action History.Updated By

REQUESTADMIN

RequestAdmin.User ID

REQUESTADMIN_FIRST_NAME

RequestAdmin.First Name

REQUESTADMIN_KEY

RequestAdmin.Key

REQUESTADMIN_LAST_NAME

RequestAdmin.Last Name

REQUESTER

Requester.User ID

REQUESTER_FIRST_NAME

Requester.First Name

REQUESTER_LAST_NAME

Requester.Last Name

REQ_CONSOLIDATED_DATA_VALUE

Requests.Consolidated Data Value

REQ_CREATE

Requests.Creation Date

REQ_CREATEBY

Requests.Created By

REQ_DATA_LEVEL

Requests.System Level

REQ_KEY

Requests.Key

REQ_NAME

Requests.Name

REQ_NOTE

Requests.Note

REQ_NUMBER

Requests.Request ID

REQ_OBJ_ACTION

Requests.Object Request Type

REQ_PRIORITY

Requests.Request Priority

REQ_PROV_DATE

Requests.Provisioning Executed Date

REQ_PROV_SCHED_DATE

Requests.Provisioning Scheduled Date

REQ_ROWVER

Requests.Row Version

REQ_SCHED_PROV

Requests.Scheduled Provisioning

REQ_TARGET_TYPE

Requests.Target Type

REQ_TYPE

Requests.Type

REQ_UPDATE

Requests.Update Date

REQ_UPDATEBY

Requests.Updated By

REQ_UPDATEBY_FNAME

Requests.Updated By First Name

REQ_UPDATEBY_LNAME

Requests.Updated By Last Name

REQ_UPDATEBY_LOGIN

Requests.Updated By Login

RGM_CREATE

Tasks-Responses.Creation Date

RGM_CREATEBY

Tasks-Responses.Created By

RGM_DATA_LEVEL

Tasks-Responses.System Level

RGM_NOTE

Tasks-Responses.Note

RGM_ROWVER

Tasks-Responses.Row Version

RGM_UPDATE

Tasks-Responses.Update Date

RGM_UPDATEBY

Tasks-Responses.Updated By

RLO_CREATE

External Jar File Directory.Creation Date

RLO_CREATEBY

External Jar File Directory.Created By

RLO_DESC

External Jar File Directory.Description

RLO_KEY

External Jar File Directory.Key

RLO_NOTE

External Jar File Directory.Note

RLO_ROWVER

External Jar File Directory.Row Version

RLO_TAG

External Jar File Directory.Tag

RLO_URL

External Jar File Directory.URL

RLO_DISABLE_DIR

External Jar File Directory.Disable DIR

RLO_DATA_LEVEL

External Jar File Directory.System Level

RLO_UPDATE

External Jar File Directory.Update Date

RLO_UPDATEBY

External Jar File Directory.Updated By

ROP_CREATE

Rule Designer-Object Definition.Creation Date

ROP_CREATEBY

Rule Designer-Object Definition.Created By

ROP_DATA_LEVEL

Rule Designer-Object Definition.System Level

ROP_NOTE

Rule Designer-Object Definition.Note

ROP_PRIORITY

Rule Designer-Object Definition.Priority

ROP_ROWVER

Rule Designer-Object Definition.Row Version

ROP_TYPE

Rule Designer-Object Definition.Type

ROP_UPDATE

Rule Designer-Object Definition.Update Date

ROP_UPDATEBY

Rule Designer-Object Definition.Updated By

RPW_CREATE

Access Policy-Resource Objects-Rule Designer.Creation Date

RPW_CREATEBY

Access Policy-Resource Objects-Rule Designer.Created By

RPW_DATA_LEVEL

Access Policy-Resource Objects-Rule Designer.System Level

RPW_NOTE

Access Policy-Resource Objects-Rule Designer.Note

RPW_ROWVER

Access Policy-Resource Objects-Rule Designer.Row Version

RPW_UPDATE

Access Policy-Resource Objects-Rule Designer.Update Date

RPW_UPDATEBY

Access Policy-Resource Objects-Rule Designer.Updated By

RPW_PRIORTIY

Access Policy-Resource Objects-Rule Designer.Priority

RQA_CREATE

Requests.Organization Targets.Creation Date

RQA_CREATEBY

Requests.Organization Targets.Created By

RQA_DATA_LEVEL

Requests.Organization Targets.System Level

RQA_NOTE

Requests.Organization Targets.Note

RQA_ROWVER

Requests.Organization Targets.Row Version

RQA_UPDATE

Requests.Organization Targets.Update Date

RQA_UPDATEBY

Requests.Organization Targets.Updated By

RQC_COMMENT

Requests.Comments.Comments

RQC_CREATE

Requests.Comments.Creation Date

RQC_CREATEBY

Requests.Comments.Created By

RQC_CREATEBY_FNAME

Requests.Comments.Created By First Name

RQC_CREATEBY_LNAME

Requests.Comments.Created By Last Name

RQC_CREATEBY_LOGIN

Requests.Comments.Created By Login

RQC_DATA_LEVEL

Requests.Comments.System Level

RQC_KEY

Requests.Comments.Key

RQC_NOTE

Requests.Comments.Note

RQC_ROWVER

Requests.Comments.Row Version

RQC_TYPE

Requests.Comments.Type

RQC_UPDATE

Requests.Comments.Update Date

RQC_UPDATEBY

Requests.Comments.Updated By

RQD_ATTR_NAME

Registration.Attribute Name

RQD_ATTR_VALUE

Registration.Attribute Value

RQD_CREATE

Registration.Create Date

RQD_CREATEBY

Registration.Created By

RQD_DATA_LEVEL

Registration.System Level

RQD_DISPLAY

Registration.Display

RQD_ENCRYPTED

Registration.Encrypted

RQD_NOTE

Registration.Note

RQD_ROWVER

Registration.Row Version

RQD_UPDATE

Registration.Update Date

RQD_UPDATEBY

Registration.Updated By

RQE_CREATE

Request-Queues.Creation Date

RQE_CREATEBY

Request-Queues.Created By

RQE_DATA_LEVEL

Request-Queues.System Level

RQE_NOTE

Request-Queues.Note

RQE_ROWVER

Request-Queues.Row Version

RQE_UPDATE

Request-Queues.Update Date

RQE_UPDATEBY

Request-Queues.Updated By

RQH_CREATE

Request History.Creation Date

RQH_CREATEBY

Request History.Created By

RQH_DATA_LEVEL

Request History.System Level

RQH_KEY

Request History.Key

RQH_NOTE

Request History.Note

RQH_ROWVER

Request History.Row Version

RQH_STATUS

Request History.Status

RQH_UPDATE

Request History.Update Date

RQH_UPDATEBY

Request History.Updated By

RQO_CREATE

Requests.Request Objects.Creation Date

RQO_CREATEBY

Requests.Request Objects.Created By

RQO_DATA_LEVEL

Requests.Request Objects.System Level

RQO_FILL_IN

Requests.Request Objects.Data Provider

RQO_NOTE

Requests.Request Objects.Note

RQO_ROWVER

Requests.Request Objects.Row Version

RQO_SERVICEACCOUNT

Requests.Request Objects.Service Account Flag

RQO_UPDATE

Requests.Request Objects.Update Date

RQO_UPDATEBY

Requests.Request Objects.Updated By

RQR_MGR_FNAME

Requester.Manager First Name

RQR_MGR_KEY

Requester.Manager Key

RQR_MGR_LNAME

Requester.Manager Last Name

RQR_MGR_LOGIN

Requester.Manager User ID

RQU_CREATE

Requests.User Targets.Creation Date

RQU_CREATEBY

Requests.User Targets.Created By

RQU_DATA_LEVEL

Requests.User Targets.System Level

RQU_NOTE

Requests.User Targets.Note

RQU_ROWVER

Requests.User Targets.Row Version

RQU_UPDATE

Requests.User Targets.Update Date

RQU_UPDATEBY

Requests.User Targets.Updated By

RRE_CASESENSITIVE

Reconciliation Rules.Rule Element.Case-sensitive

RRE_CHILD_RRL_KEY

Reconciliation Rules.Rule Element.Reconciliation Child User Matching Rules Key

RRE_CREATE

Reconciliation Rules.Rule Element.Creation Date

RRE_CREATEBY

Reconciliation Rules.Rule Element.Created By

RRE_DATA_LEVEL

Reconciliation Rules.Rule Element.System Level

RRE_FIELDNAME

Reconciliation Rules.Rule Element.Field Name

RRE_KEY

Reconciliation Rules.Rule Element.Key

RRE_NOTE

Reconciliation Rules.Rule Element.Note

RRE_SEQUENCE

Reconciliation Rules.Rule Element.Sequence

RRE_UPDATE

Reconciliation Rules.Rule Element.Update Date

RRE_UPDATEBY

Reconciliation Rules.Rule Element.Updated By

RRE_VALID

Reconciliation Rules.Rule Element.Valid

RRL_ACTIVE

Reconciliation Rules.Active

RRL_CREATE

Reconciliation Rules.Creation Date

RRL_CREATEBY

Reconciliation Rules.Created By

RRL_DATA_LEVEL

Reconciliation Rules.System Level

RRL_KEY

Reconciliation Rules.Key

RRL_NAME

Reconciliation Rules.Name

RRL_NOTE

Reconciliation Rules.Note

RRL_OPERATOR

Reconciliation Rules.Operator

RRL_ROWVER

Reconciliation Rules.Row Version

RRL_UPDATE

Reconciliation Rules.Update Date

RRL_UPDATEBY

Reconciliation Rules.Updated By

RRL_VALID

Reconciliation Rules.Valid

RRT_CREATE

Reconciliation Rules.Property.Creation Date

RRT_CREATEBY

Reconciliation Rules.Property.Created By

RRT_DATA_LEVEL

Reconciliation Rules.Property.System Level

RRT_KEY

Reconciliation Rules.Property.Key

RRT_NAME

Reconciliation Rules.Property.Name

RRT_NOTE

Reconciliation Rules.Property.Note

RRT_ROWVER

Reconciliation Rules.Property.Row Version

RRT_UPDATE

Reconciliation Rules.Property.Update Date

RRT_UPDATEBY

Reconciliation Rules.Property.Updated By

RRT_VALUE

Reconciliation Rules.Property.Value

RSC_UPDATEBY

Process Definition.Tasks.Responses.Updated By

RSC_CREATE

Process Definition.Tasks.Responses.Creation Date

RSC_CREATEBY

Process Definition.Tasks.Responses.Created By

RSC_DATA

Process Definition.Tasks.Responses.Response

RSC_DATA_LEVEL

Process Definition.Tasks.Responses.System Level

RSC_DESC

Process Definition.Tasks.Responses.Description

RSC_KEY

Process Definition.Tasks.Responses.Key

RSC_NOTE

Process Definition.Tasks.Responses.Note

RSC_ROWVER

Process Definition.Tasks.Responses.Row Version

RSC_UPDATE

Process Definition.Tasks.Responses.Update Date

RUE_ATTRIBUTE

Rule Designer.Rule Element.Attribute

RUE_ATTRIBUTE_SOURCE

Rule Designer.Rule Element.Attribute Source

RUE_ATTRIBUTE_SOURCE_SDK_KEY

Rule Designer.Rule Element.User-Defined Form

RUE_CHILD_RUL_KEY

Rule Designer.Rule Element.Child Key

RUE_CREATE

Rule Designer.Rule Element.Creation Date

RUE_CREATEBY

Rule Designer.Rule Element.Created By

RUE_DATA_LEVEL

Rule Designer.Rule Element.System Level

RUE_KEY

Rule Designer.Rule Element.Key

RUE_NOTE

Rule Designer.Rule Element.Note

RUE_OPERATION

Rule Designer.Rule Element.Operation

RUE_ROWVER

Rule Designer.Rule Element.Row Version

RUE_SEQUENCE

Rule Designer.Rule Element.Sequence

RUE_UPDATE

Rule Designer.Rule Element.Update Date

RUE_UPDATEBY

Rule Designer.Rule Element.Updated By

RUE_VALUE

Rule Designer.Rule Element.Attribute Value

RUG_CREATE

Requests-Groups.Creation Date

RUG_CREATEBY

Requests-Groups.Created By

RUG_DATA_LEVEL

Requests-Groups.System Level

RUG_DELETE

Requests-Groups.Delete

RUG_NOTE

Requests-Groups.Note

RUG_ROWVER

Requests-Groups.Row Version

RUG_UPDATE

Requests-Groups.Update Date

RUG_UPDATEBY

Requests-Groups.Updated By

RUG_WRITE

Requests-Groups.Write

RUL_ALL_OBJECTS

Rule Designer.All Objects

RUL_ALL_PROCESSES

Rule Designer.All Processes

RUL_CREATE

Rule Designer.Creation Date

RUL_CREATEBY

Rule Designer.Created By

RUL_DATA_LEVEL

Rule Designer.System Level

RUL_KEY

Rule Designer.Key

RUL_NAME

Rule Designer.Name

RUL_NOTE

Rule Designer.Description

RUL_OPERATOR

Rule Designer.Operator

RUL_ROWVER

Rule Designer.Row Version

RUL_SUBTYPE

Rule Designer.Sub-Type

RUL_TYPE

Rule Designer.Type

RUL_UPDATE

Rule Designer.Last Update Date

RUL_UPDATEBY

Rule Designer.Updated By

RVM_CREATE

Process Definition.Tasks.Recovery Tasks.Creation Date

RVM_CREATEBY

Process Definition.Tasks.Recovery Tasks.Created By

RVM_DATA_LEVEL

Process Definition.Tasks.Recovery Tasks.System Level

RVM_NOTE

Process Definition.Tasks. Recovery Tasks.Note

RVM_ROWVER

Process Definition.Tasks.Recovery Tasks.Row Version

RVM_UPDATE

Process Definition.Tasks.Recovery Tasks.Update Date

RVM_UPDATEBY

Process Definition.Tasks.Recovery Tasks.Updated By

SCH_ACTION

Process Instance.Task Details.Action

SCH_ACTUAL_END

Process Instance.Task Details.Actual End Date

SCH_ACTUAL_START

Process Instance.Task Details.Actual Start Date

SCH_CREATE

Process Instance.Task Details.Creation Date

SCH_CREATEBY

Process Instance.Task Details.Created By

SCH_DATA

Process Instance.Task Details.Data

SCH_DATA_LEVEL

Process Instance.Task Details.System level

SCH_INT_KEY

Process Instance.Task Information.Int Key

SCH_KEY

Process Instance.Task Details.Key

SCH_NOTE

Process Instance.Task Details.Note

SCH_PROJ_END

Process Instance.Task Details.Projected End

SCH_PROJ_START

Process Instance.Task Details.Projected Start

SCH_REASON

Process Instance.Task Details.Reason

SCH_ROWVER

Process Instance.Task Details.Row Version

SCH_STATUS

Process Instance.Task Details.Status

SCH_TYPE

Process Instance.Task Details.Type

SCH_UPDATE

Process Instance.Task Details.Update Date

SCH_UPDATEBY

Process Instance.Task Details.Updated By

SDC_CREATE

Structure Utility.Additional Columns.Creation Date

SDC_CREATEBY

Structure Utility.Additional Columns.Created By

SDC_DATA_LEVEL

Structure Utility.Additional Columns.System Level

SDC_DEFAULT

Structure Utility.Additional Columns.Default

SDC_DEFAULT_VALUE

Structure Utility.Additional Columns.Default Value

SDC_ENCRYPTED

Structure Utility.Additional Columns.Encrypted

SDC_FIELD_TYPE

Structure Utility.Additional Columns.Field Type

SDC_KEY

Structure Utility.Additional Columns.Key

SDC_LABEL

Structure Utility.Additional Columns.Field Label

SDC_NAME

Structure Utility.Additional Columns.Name

SDC_NOTE

Structure Utility.Additional Columns.Note

SDC_ORDER

Structure Utility.Additional Columns.Order

SDC_PROFILE_ENABLED

Structure Utility.Additional Columns.Profile Enabled

SDC_ROWVER

Structure Utility.Additional Columns.Row Version

SDC_SQL_LENGTH

Structure Utility.Additional Columns.Length

SDC_UPDATE

Structure Utility.Additional Columns.Update Date

SDC_UPDATEBY

Structure Utility.Additional Columns.Updated By

SDC_VARIANT_TYPE

Structure Utility.Additional Columns.Variant Type

SDC_VERSION

Structure Utility.Additional Columns.Version

SDH_CHILD_KEY

Structure Utility.Child Tables.Child Key

SDH_CHILD_VERSION

Structure Utility.Child Tables.Child Version

SDH_CREATE

Structure Utility.Child Tables.Creation Date

SDH_CREATEBY

Structure Utility.Child Tables.Created By

SDH_DATA_LEVEL

Structure Utility.Child Tables.System Level

SDH_NOTE

Structure Utility.Child Tables.Note

SDH_PARENT_KEY

Structure Utility.Child Tables.Parent Key

SDH_PARENT_VERSION

Structure Utility.Child Tables.Parent Version

SDH_ROWVER

Structure Utility.Child Tables.Row Version

SDH_UPDATE

Structure Utility.Child Tables.Update Date

SDH_UPDATEBY

Structure Utility.Child Tables.Updated By

SDK_ACTIVE_VERSION

Structure Utility.Active Version

SDK_CREATE

Structure Utility.Creation Date

SDK_CREATEBY

Structure Utility.Created By

SDK_DATA_LEVEL

Structure Utility.System Level

SDK_DESCRIPTION

Structure Utility.Form Description

SDK_FORM_DESCRIPTION

Structure Utility.Description

SDK_KEY

Structure Utility.Key

SDK_LATEST_VERSION

Structure Utility.Latest Version

SDK_NAME

Structure Utility.Table Name

SDK_NOTE

Structure Utility.Note

SDK_ORC

Structure Utility.Request Table

SDK_ROWVER

Structure Utility.Row Version

SDK_SCHEMA

Structure Utility.Schema

SDK_TYPE

Structure Utility.Form Type

SDK_UPDATE

Structure Utility.Update Date

SDK_UPDATEBY

Structure Utility.Updated By

SDL_CHILD_VERSION

Structure Utility.Structure Utility Version Label.Child Label

SDL_CREATE

Structure Utility.Structure Utility Version Label.Creation Date

SDL_CREATEBY

Structure Utility.Structure Utility Version Label.Created By

SDL_DATA_LEVEL

Structure Utility.Structure Utility Version Label.System Level

SDL_KEY

Structure Utility.Structure Utility Version Label.Key

SDL_LABEL

Structure Utility.Structure Utility Version Label.Version Label

SDL_NOTE

Structure Utility.Structure Utility Version Label.Note

SDL_PARENT_VERSION

Structure Utility.Structure Utility Version Label.Parent Label

SDL_ROWVER

Structure Utility.Structure Utility Version Label.Row Version

SDL_UPDATE

Structure Utility.Structure Utility Version Label.Update Date

SDL_UPDATEBY

Structure Utility.Structure Utility Version Label.Updated By

SDP_CREATE

Structure Utility.Additional Columns.Properties.Creation Date

SDP_CREATEBY

Structure Utility.Additional Columns.Properties.Created By

SDP_DATA_LEVEL

Structure Utility.Additional Columns.Properties.System Level

SDP_KEY

Structure Utility.Additional Columns.Properties.Key

SDP_NOTE

Structure Utility.Additional Columns.Properties.Note

SDP_PROPERTY_NAME

Structure Utility.Additional Columns.Properties.Property Name

SDP_PROPERTY_VALUE

Structure Utility.Additional Columns.Properties.Property Value

SDP_ROWVER

Structure Utility.Additional Columns.Properties.Row Version

SDP_UPDATE

Structure Utility.Additional Columns.Properties.Update Date

SDP_UPDATEBY

Structure Utility.Additional Columns.Properties.Updated By

SEL_CREATE

Groups.Object Permissions.Creation Date

SEL_CREATEBY

Groups.Object Permissions.Created By

SEL_DATA_LEVEL

Groups.Object Permissions.System Level

SEL_DELETE_ALLOW

Groups.Object Permissions.Allow Delete

SEL_INSERT_ALLOW

Groups.Object Permissions.Allow Insert

SEL_KEY

Groups.Object Permissions.Key

SEL_NOTE

Groups.Object Permissions.Note

SEL_ROWVER

Groups.Object Permissions.Row Version

SEL_UPDATE

Groups.Object Permissions.Update Date

SEL_UPDATEBY

Groups.Object Permissions.Updated By

SEL_UPDATE_ALLOW

Groups.Object Permissions.Allow Update

SIT_CLLI

Site.CLLI

SIT_CREATE

Site.Creation Date

SIT_CREATEBY

Site.Created By

SIT_DATA_LEVEL

Site.System Level

SIT_EXT_CABLE_TYP

Site.Ext Cable Type

SIT_EXT_DISTANCE

Site.Ext Distance

SIT_EXT_FLOOR

Site.Ext Floor

SIT_EXT_JACK_PROVD

Site.Ext Jack Provider

SIT_EXT_JACK_TYPE

Site.Ext Jack Type

SIT_EXT_ROOM

Site.Ext Room

SIT_EXT_SHIELDING

Site.Ext Shielding

SIT_EXT_WIRE_ORG

Site.Ext Wire Org

SIT_FLOOR

Site.Site Number

SIT_JACK_PROVIDER

Site.Jack Provider

SIT_JACK_TYPE

Site.Jack Type

SIT_KEY

Site.Key

SIT_NOTE

Site.Note

SIT_ROOM

Site.Room

SIT_ROWVER

Site.Row Version

SIT_TYPE

Site.Site Type

SIT_UPDATE

Site.Update Date

SIT_UPDATEBY

Site.Updated By

SPD_CREATE

IT Resource Type Definition.IT Resource Type Parametr.Creation Date

SPD_CREATEBY

IT Resource Type Definition.IT Resource Type Parametr.Created By

SPD_DATA_LEVEL

IT Resource Type Definition.IT Resource Type Parametr.System Level

SPD_KEY

IT Resource Type Definition.IT Resource Type Parametr.Key

SPD_NOTE

IT Resource Type Definition.IT Resource Type Parametr.Note

SPD_ROWVER

IT Resource Type Definition.IT Resource Type Parametr.Row Version

SPD_UPDATE

IT Resource Type Definition.IT Resource Type Parametr.Update Date

SPD_UPDATEBY

IT Resource Type Definition.IT Resource Type Parametr.Updated By

SPD_CREATE

IT Resources Type Parameter.Creation Date

SPD_CREATEBY

IT Resources Type Parameter.Created By

SPD_DATA_LEVEL

IT Resources Type Parameter.System Level

SPD_FIELD_DEFAULT

IT Resource Type Definition.IT Resource Type Parametr.Default Value

SPD_FIELD_DEFAULT

IT Resources Type Parameter.Default

SPD_FIELD_ENCRYPTED

IT Resources Type Parameter.Encrypted

SPD_FIELD_ENCRYPTED

IT Resource Type Definition.IT Resource Type Parametr.Encrypted

SPD_FIELD_NAME

IT Resource Type Definition.IT Resource Type Parametr.Field Name

SPD_FIELD_NAME

IT Resources Type Parameter.Name

SPD_KEY

IT Resources Type Parameter.Key

SPD_NOTE

IT Resources Type Parameter.Note

SPD_ROWVER

IT Resources Type Parameter.Row Version

SPD_UPDATE

IT Resources Type Parameter.Update Date

SPD_UPDATEBY

IT Resources Type Parameter.Updated By

SRS_CREATE

IT Resource.Dependant IT Resource.Creation Date

SRS_CREATEBY

IT Resource.Dependant IT Resource.Created By

SRS_DATA_LEVEL

IT Resource.Dependant IT Resource.System Level

SRS_NOTE

IT Resource.Dependant IT Resource.Note

SRS_ROWVER

IT Resource.Dependant IT Resource.Row Version

SRS_UPDATE

IT Resource.Dependant IT Resource.Update Date

SRS_UPDATEBY

IT Resource.Dependant IT Resource.Updated By

SRS_SVR_KEY

IT Resource.Dependant IT Resource.Value

STA_BUCKET

Status.Category

STA_BUCKET_ORDER

Status.Category Order

STA_CREATE

Status.Creation Date

STA_CREATEBY

Status.Created By

STA_DATA_LEVEL

Status.System Level

STA_KEY

Status.Key

STA_NOTE

Status.Note

STA_ORDER

Status.Order

STA_ROWVER

Status.Row Version

STA_STATUS

Status.Status

STA_SUCCESS

Status.Successful Completion

STA_UPDATE

Status.Update Date

STA_UPDATEBY

Status.Updated By

SUBGROUPKEY

Groups.Subgroup Key

SUBGROUPNAME

Groups.Subgroup Name

SVD_CREATE

IT Resource Type Definition.Creation Date

SVD_CREATEBY

IT Resource Type Definition.Created By

SVD_DATA_LEVEL

IT Resource Type Definition.System Level

SVD_KEY

IT Resource Type Definition.Key

SVD_NOTE

IT Resource Type Definition.Note

SVD_ROWVER

IT Resource Type Definition.Row Version

SVD_UPDATE

IT Resource Type Definition.Update Date

SVD_UPDATEBY

IT Resource Type Definition.Updated By

SVD_LOCATION_BASED

IT Resource Type Definition.Location Bases

SVD_CREATE

IT Resources Type Definition.Creation Date

SVD_CREATEBY

IT Resources Type Definition.Created By

SVD_DATA_LEVEL

IT Resources Type Definition.System Level

SVD_INSERT_MULTIPLE

IT Resource Type Definition.Insert Multiple

SVD_INSERT_MULTIPLE

IT Resources Type Definition.Insert Multiple

SVD_KEY

IT Resources Type Definition.Key

SVD_NOTE

IT Resources Type Definition.Note

SVD_ROWVER

IT Resources Type Definition.Row Version

SVD_SVR_TYPE

IT Resource Type Definition.Server Type

SVD_SVR_TYPE

IT Resources Type Definition.Server Type

SVD_UPDATE

IT Resources Type Definition.Update Date

SVD_UPDATEBY

IT Resources Type Definition.Updated By

SVP_CREATE

IT Resource. Parameter.Creation Date

SVP_CREATEBY

IT Resource. Parameter.Created By

SVP_DATA_LEVEL

IT Resource. Parameter.System Level

SVP_NOTE

IT Resource. Parameter.Note

SVP_ROWVER

IT Resource. Parameter.Row Version

SVP_UPDATE

IT Resource. Parameter.Update Date

SVP_UPDATEBY

IT Resource. Parameter.Updated By

SVP_CREATE

IT Resources Type Parameter Value.Creation Date

SVP_CREATEBY

IT Resources Type Parameter Value.Created By

SVP_DATA_LEVEL

IT Resources Type Parameter Value.System Level

SVP_FIELD_VALUE

IT Resource.Parameter.Value

SVP_FIELD_VALUE

IT Resources Type Parameter Value.Value

SVP_KEY

IT Resource.Parameter.Key

SVP_KEY

IT Resources Type Parameter Value.Key

SVP_NOTE

IT Resources Type Parameter Value.Note

SVP_ROWVER

IT Resources Type Parameter Value.Row Version

SVP_UPDATE

IT Resources Type Parameter Value.Update Date

SVP_UPDATEBY

IT Resources Type Parameter Value.Updated By

SVR_CREATE

IT Resource.Creation Date

SVR_CREATEBY

IT Resource.Created By

SVR_DATA_LEVEL

IT Resource.System Level

SVR_NOTE

IT Resource.Note

SVR_ROWVER

IT Resource.Row Version

SVR_UPDATE

IT Resource.Update Date

SVR_UPDATEBY

IT Resource.Updated By

SVR_CHILD_KEY

IT Resource.Child Key

SVR_CHILD_KEY

IT Resources.Remote Manager Key

SVR_CREATE

IT Resources.Creation Date

SVR_CREATEBY

IT Resources.Created By

SVR_DATA_LEVEL

IT Resources.System Level

SVR_KEY

IT Resource.Key

SVR_KEY

IT Resources.Key

SVR_NAME

IT Resource.Name

SVR_NAME

IT Resources.Name

SVR_NOTE

IT Resources.Note

SVR_ROWVER

IT Resources.Row Version

SVR_UPDATE

IT Resources.Update Date

SVR_UPDATEBY

IT Resources.Updated By

SVS_CREATE

IT Resource-Site.Creation Date

SVS_CREATEBY

IT Resource-Site.Created By

SVS_DATA_LEVEL

IT Resource-Site.System Level

SVS_NOTE

IT Resource-Site.Note

SVS_ROWVER

IT Resource-Site.Row Version

SVS_UPDATE

IT Resource-Site.Update Date

SVS_UPDATEBY

IT Resource-Site.Updated By

TAS_KEY

Task Scheduler.Task Attributes.Key

TDV_CREATE

Process-Data Object Manager-Event Handler Manager.Creation Date

TDV_CREATEBY

Process-Data Object Manager-Event Handler Manager.Created By

TDV_DATA_LEVEL

Process-Data Object Manager-Event Handler Manager.System Level

TDV_NOTE

Process-Data Object Manager-Event Handler Manager.Note

TDV_ROWVER

Process-Data Object Manager-Event Handler Manager.Row Version

TDV_UPDATE

Process-Data Object Manager-Event Handler Manager.Update Date

TDV_UPDATEBY

Process-Data Object Manager-Event Handler Manager.Updated By

TOS.UPDATEBY

Process.Process Definition.Updated By

TOS_AUTOSAVE

Process.Process Definition.Auto Save

TOS_AUTO_PREPOP

Tasks.Auto Prepopulate

TOS_CREATE

Process.Process Definition.Creation Date

TOS_CREATEBY

Process.Process Definition.Created By

TOS_DATA_LEVEL

Process.Process Definition.System Level

TOS_KEY

Process.Process Definition.Process Key

TOS_MATCHNOTFOUND

Process.Process Definition.Match Not Found

TOS_MULTMATCHFOUND

Process.Process Definition.Mult Match Found

TOS_NOTE

Process.Process Definition.Note

TOS_ONEMATCHFOUND

Process.Process Definition.One Match Found

TOS_ROWVER

Process.Process Definition.Row Version

TOS_TYPE

Process.Process Definition.Type

TOS_UPDATE

Process.Process Definition.Update Date

TSA_CREATE

Task Scheduler.Task Attributes.Creation Date

TSA_CREATEBY

Task Scheduler.Task Attributes.Created By

TSA_DATA_LEVEL

Task Scheduler.Task Attributes.System Level

TSA_NOTE

Task Scheduler.Task Attributes.Note

TSA_ROWVER

Task Scheduler.Task Attributes.Row Version

TSA_NAME

Task Scheduler.Task Attributes.Name

TSA_UPDATE

Task Scheduler.Task Attributes.Update Date

TSA_UPDATEBY

Task Scheduler.Task Attributes.Updated By

TSA_VALUE

Task Scheduler.Task Attributes.Value

TSK_CREATE

Task Scheduler.Creation Date

TSK_CREATEBY

Task Scheduler.Created By

TSK_DATA_LEVEL

Task Scheduler.System Level

TSK_NOTE

Task Scheduler.Note

TSK_ROWVER

Task Scheduler.Row Version

TSK_CLASSNAME

Task Scheduler.ClassName

TSK_DISABLE

Task Scheduler.Disable

TSK_FREQTYPE

Task Scheduler.Frequency Type

TSK_INTERVAL

Task Scheduler.Interval

TSK_KEY

Task Scheduler.Key

TSK_LAST_START_TIME

Task Scheduler.Last Start Time

TSK_LAST_STOP_TIME

Task Scheduler.Last Stop Time

TSK_MAX_RETRIES

Task Scheduler.Max Retries

TSK_NAME

Task Scheduler.Name

TSK_NEXT_START_TIME

Task Scheduler.Next Start Time

TSK_RETRY_COUNT

Task Scheduler.Retry Count

TSK_START_TIME

Task Scheduler.Start Time

TSK_STATUS

Task Scheduler.Status

TSK_UPDATE

Task Scheduler.Update Date

TSK_UPDATEBY

Task Scheduler.Updated By

UGP_CREATE

Groups.Creation Date

UGP_CREATEBY

Groups.Created By

UGP_DATA_LEVEL

Groups.System Level

UGP_EMAIL

Groups.E-mail

UGP_KEY

Groups.Key

UGP_NAME

Groups.Group Name

UGP_NOTE

Groups.Note

UGP_ROWVER

Groups.Row Version

UGP_UPDATE

Groups.Update Date

UGP_UPDATEBY

Groups.Updated By

UGP_VIEWSET

Groups.Viewset

ULN_CREATE

Users-Locations.Creation Date

ULN_CREATEBY

Users-Locations.Created By

ULN_DATA_LEVEL

Users-Locations.System Level

ULN_NOTE

Users-Locations.Note

ULN_ROLE

Users-Locations.Role

ULN_ROWVER

Users-Locations.Row Version

ULN_UPDATE

Users-Locations.Update Date

ULN_UPDATEBY

Users-Locations.Updated By

UNM_CREATE

Process Definition.Tasks.Undo Tasks.Creation Date

UNM_CREATEBY

Process Definition.Tasks.Undo Tasks.Created By

UNM_DATA_LEVEL

Process Definition.Tasks.Undo Tasks.Sytem Level

UNM_NOTE

Process Definition.Tasks.Undo Tasks.Note

UNM_ROWVER

Process Definition.Tasks.Undo Tasks.Row Version

UNM_UPDATE

Process Definition.Tasks.Undo Tasks.Update Date

UNM_UPDATEBY

Process Definition.Tasks.Undo Tasks.Updated By

UPDATEBY_FIRST_NAME

Process Instance.Task Information.Updated By First Name

UPDATEBY_LAST_NAME

Process Instance.Task Information.Updated By Last Name

UPDATEBY_USER_KEY

Process Instance.Task Information.Updated By User Key

UPDATEBY_USER_LOGIN

Process Instance.Task Information.Updated By User ID

UPY_NOTE

System Configuration- Users.Note

UPY_ROWVER

System Configuration- Users.Row Version

UPY_CREATE

System Configuration- Users.Creation Date

UPY_CREATE

Users-Client Properties.Creation Date

UPY_CREATEBY

System Configuration- Users.Created By

UPY_CREATEBY

Users-Client Properties.Created By

UPY_DATALEVEL

Users-Client Properties.System Level

UPY_DATA_LEVEL

System Configuration- Users.System Level

UPY_NOTE

Users-Client Properties.Note

UPY_ROWVER

Users-Client Properties.Row Version

UPY_UPDATE

System Configuration-Users.Update Date

UPY_UPDATE

Users-Client Properties.Update Date

UPY_UPDATEBY

System Configuration- Users.Updated By

UPY_UPDATEBY

Users-Client Properties.Updated By

USERMANAGER

Users.Manager Login

USERMANAGERFIRSTNAME

Users.Manager First Name

USERMANAGERLASTNAME

Users.Manager Last Name

USG_CREATE

Groups-Users.Creation Date

USG_CREATEBY

Groups-Users.Created By

USG_DATA_LEVEL

Groups-Users.System Level

USG_NOTE

Groups-Users.Note

USG_PRIORITY

Groups-Users.Priority

USG_ROWVER

Groups-Users.Row Version

USG_UPDATE

Groups-Users.Update Date

USG_UPDATEBY

Groups-Users.Updated By

USR_CREATE

Users.Creation Date

USR_CREATEBY

Users.Created By

USR_DATA_LEVEL

Users.System Level

USR_DEPROVISIONED_DATE

Users.Deprovisioned Date

USR_DEPROVISIONING_DATE

Users.Deprovisioning Date

USR_DISABLED

Users.Disable User

USR_DISABLED_BY_PARENT

Users.Disabled By Parent

USR_EMAIL

Users.Email

USR_EMP_TYPE

Users.Role

USR_END_DATE

Users.End Date

USR_FIRST_NAME

Users.First Name

USR_FSS

Users.Identity

USR_KEY

Users.Key

USR_LAST_NAME

Users.Last Name

USR_LOCKED

Users.Lock User

USR_LOGIN

Users.User ID

USR_MANAGER_KEY

Users.Manager Key

USR_MIDDLE_NAME

Users.Middle Name

USR_NOTE

Users.Note

USR_PASSWORD

Users.Password

USR_PROVISIONED_DATE

Users.Provisioned Date

USR_PROVISIONING_DATE

Users.Provisioning Date

USR_PWD_CANT_CHANGE

Users.Password Cannot Change

USR_PWD_EXPIRE_DATE

Users.Password Expiration Date

USR_PWD_MUST_CHANGE

Users.Password Must Change

USR_PWD_NEVER_EXPIRES

Users.Password Never Expires

USR_PWD_WARN_DATE

Users.Password Warning Date

USR_ROWVER

Users.Row Version

USR_START_DATE

Users.Start Date

USR_STATUS

Users.Status

USR_TYPE

Users.Xellerate Type

USR_UPDATE

Users.Update Date

USR_UPDATEBY

Users.Updated By

USR_UPDATE_AD

Users.AD Reference

UWP_CREATE

Groups-Form Information.Creation Date

UWP_CREATEBY

Groups-Form Information.Created By

UWP_DATA_LEVEL

Groups-Form Information.System Level

UWP_NEST_LEVEL

Groups-Form Information.Nesting Level

UWP_NOTE

Groups-Form Information.Note

UWP_PARENT_KEY

Groups-Form Information.Parent Key

UWP_ROWVER

Groups-Form Information.Row Version

UWP_SEQUENCE

Groups-Form Information.Sequence

UWP_UPDATE

Groups-Form Information.Update Date

UWP_UPDATEBY

Groups-Form Information.Updated By

WIN_CREATE

Form Information.Creation Date

WIN_CREATEBY

Form Information.Created By

WIN_DATA_LEVEL

Form Information.System Level

WIN_DEFAULT_REPORT

Form Information.Default Report

WIN_GRAPHIC_FILENAME

Form Information.Graphic Filename

WIN_GRAPHIC_NAME

Form Information.Graphic Name

WIN_HELP_URL

Form Information.Context Sensitive Help URL

WIN_JSP_HELP_URL

Form Information.JSP Help URL

WIN_JSP_NAME

Form Information.JSP Name

WIN_KEY

Form Information.key

WIN_NOTE

Form Information.Note

WIN_ROWVER

Form Information.Row Version

WIN_UPDATE

Form Information.Update Date

WIN_UPDATEBY

Form Information.Updated By

WIN_WINDOW_DESC

Form Information.Description

WIN_WINDOW_NAME

Form Information.Class Name

WIN_WIZARD_FORM

Form Information.Wizard Form

_ROWVER

Reconciliation Rules.Rule Element.Row Version

acn_role

Organization.Contacts.Role

err_action

Conditions.Action

err_action

Conditions.Severity

lkv_decoded

User Defined Field Definition.DataType

lkv_encoded

Form Information.Type

lkv_encoded

User Defined Field Definition.FormName

obj_type

Objects.Object Type

orf_fieldtype

Objects.Reconciliation Fields.Type

pof_field_name

Policies.PolicyDefinitions.FieldName

req_obj_action

Request.Application Request Type

req_priority

Request.Request Priority

rml_target_type

Task Definition.Assignment Rules.Type

rqc_type

Request Comments.Type

rre_operator

Reconciliation Rules.Rule Element.Operator

rre_transform

Reconciliation Rules.Rule Element.Transform

rul_subtype

RulesDefinition.SubType

rul_type

RulesDefinition.Type

sch_action

Contacts.User Tasks.Action

sdc_field_type

Structure Utility.AdditionalColumns.FieldType

sdc_variant_type

Structure Utility.AdditionalColumns.VariantType

索引

A B C D E F G H I J K L M N O P R S T U V W X

A

アクセス・ポリシー

「リソース管理者」オプション, 11.3

ユーザー・アカウント・ステータスのリコンシリエーション, 18.3.1.2 「アクション」フィールド, 13.2 activeRequest, 32.9 アダプタ, 3.6, 3.6.1

マッピング, 3.6

アダプタ・マッピング情報, 3.6 アダプタ変数, 2.7 アダプタ, 2.4 アダプタ

エンティティ・アダプタ変数マッピング, 3.6.2.4

リテラル, 3.6.1.3

組織定義, 3.6.1.5

事前定義アダプタ変数マッピング, 3.6.2.5

プロセス定義, 3.6.1.6

プロセス・タスク・アダプタ変数マッピング, 3.6.2.2

参照, 3.6.1.4

ルール・ジェネレータ・アダプタ変数マッピング, 3.6.2.4

タスク, 3.6.1

タスク割当てアダプタ変数マッピング, 3.6.2.3

タスク・マッピング, 3.6.1

タスク, 3.6.1.2

ユーザー定義, 3.6.1.7

変数, 3.6.2

変数マッピング, 3.6.2

変数, 3.6.1.1

追加

セルフ・サービスへのカスタムADFタグ, 29

カスタムSoDエンジン, 27.10.2

addRequest, 32.2 管理者グループ

割当て, 11.3.1

権限の更新, 11.3.2

API, 31

よく使用されるサービス, 31.3

Oracle Identity Manager用クライアントの開発, 31.4

従来のAPI, 31.5

OIMclient, 31.1.1

Oracle Identity Managerサービス, 31.1, 31.2

リコンシリエーション, 14.2

tcUtilityFactory, 31.1.2

承認レベル, 23.5.2

操作レベルの承認, 23.5.2.3

リクエスト・レベルの承認, 23.5.2.2

テンプレート・レベルの承認, 23.5.2.1

承認ポリシー

作成, 23.5.3

承認プロセス

開発, 24.3

承認ワークフロー, 23.5.1 「アーカイブ・ディレクトリ」パラメータ, 19.1 アーカイブ・ディレクトリ, 権限, 19.1 イベント・ハンドラまたはアダプタの割当て, 11.9.4.2.4 「割当て」ウィンドウ, 1.4 非同期SoD検証プロセス, 27.8.2 事前移入アダプタのアタッチ, 3.4.1 プロセス・タスク・アダプタのプロセス・タスクへのアタッチ, 3.5.2 タスク割当てアダプタのプロセス・タスクへのアタッチ, 3.3.1 Attribute要素, 23.1.1.4 AttributeReference要素, 23.1.1.3

必須プロパティ, 23.1.1.3

オプション・プロパティ, 23.1.1.3

B

「バッチ・サイズ」パラメータ, 21.2.4.2

バッチ・リコンシリエーション, 18.3.1.4, 21.2.4.2

バルク・ロード・ユーティリティ, 34

クリーンアップ, 34.10

データファイルの作成, 34.3.2

表領域の作成, 34.3.1

入力ソースの作成, 34.5.2

機能, 34.1

例外の修正, 34.5.6

パフォーマンス・データの収集, 34.9

監査スナップショットの生成, 34.11

例外の処理, 34.5.5

入力パラメータ, 34.5.3

インストール, 34.2

アカウント・データのロード, 34.6

OIMユーザー・データのロード, 34.5

ロール、ロール階層、ロール・メンバーシップおよびロール・カテゴリ・データのロード, 34.7

進捗状況の監視, 34.5.4

オプション, 34.2.3

データベースの準備, 34.3

実行, 34.4

スクリプト, 34.2.1

デフォルト・パスワードの設定, 34.5.1

一時表, 34.2.2

結果の検証, 34.5.7

「ビジネス・ルール定義」フォルダ, 1.6.5.1

C

コールバック

定義, 4.1

コールバック・サービス, 4

構成, 4.4

イベント処理, 4.1.2

属性のマッピング, 4.2

概要, 4.1

再試行, 4.1.3

コールバックの送信, 4.3

トラブルシューティング, 4.5

CallbackConfiguration.xml, 4.4 コールバック, 4

コールバック・サービス, 4

イベント処理, 4.1.2

子データ, 23.1.3 子データセット, 18.2.1, 18.2.1, 18.2.2, 18.2.3, 18.2.3, 21.2.4.3.1, 21.2.4.3.4, 21.5.3.1, 22.2.2 閉じる, 1.2.1.3 コード, 13.2 列ヘッダー, 1.2.4.2 列名, 15.3.2.1 コンボ・ボックス, 1.3.4 共通リクエスト・データセット, 23.1.4 連結変換プロバイダ, 19.5.1 構成

コールバック, 4.4

構成

カスタム・リクエスト・ワークフロー, 23

プラグイン, 7.2

レポート, 36.6

Oracle Identity Manager用のレポート, 36.6.1

スケジュール済タスクのplugin.xml, 6.5

スケジュール済タスクXMLファイル, 6.3

BPELベースのレポートのセカンダリ・データソース, 36.6.2

SOAコンポジット

Oracle Identity Manager APIのロード, 26.2

SoDエンジン, 27.5 コネクタ・オブジェクト, 18.4, 21.2.4.5, 21.3.3, 21.5.6 containerIDフィールド, 21.2.4.3 作成, 12.3.1

承認ポリシー, 23.5.3

プロセス定義, 12.3.1

リクエスト・データセット, 23.1

リクエスト・テンプレート, 23.6

スケジュール済タスク, 6.1.1

SOAコンポジット, 25.1

変換レイヤー, 27.10.1.2

リモート・タスクの作成, 2.8.3 レスポンスの作成, 2.12.1 ストアド・プロシージャ・タスクの作成, 2.8.4 ユーティリティ・タスクの作成, 2.8.5 Oracle Identity Manager APIタスクの作成, 2.8.6 ディレクトリ構造の作成

スケジュール済タスク, 6.6

SOAコンポジットの作成, 23.3 Create Userデータセット, 23.1.2 アダプタ・タスクの作成, 2.8 ITリソースの作成, 11.7 CSVファイル, 22.1.2 CSVリコンシリエーション・フォーマット・プロバイダ, 19.2, 20.1.1, 20.3.1 カスタムADFタグ, 29 「カスタム認証資格証明ネームスペース」パラメータ, 19.3.2 「カスタム認証ヘッダー要素」パラメータ, 19.3.2 「パスワードを格納するカスタム要素」パラメータ, 19.3.2 「ユーザー名を格納するカスタム要素」パラメータ, 19.3.2 カスタム・イベント・ハンドラ

例

カスタム検証, 8.2.2.1

カスタム・イベント・ハンドラ, 8.2.2

プラグインの作成, 8.2.2.2

カスタム・イベント

定義, 8.2.2.3

カスタム後処理イベント・ハンドラ, 8.2.2.1 カスタム前処理イベント・ハンドラ, 8.2.2.1 カスタム・プロバイダ, 18.3.2.2, 20, 21.5.5 カスタム・リクエスト・ワークフロー

構成, 23

カスタムSoDエンジン, 27.2 カスタマイズ

インタフェース, 28

リコンシリエーションの処理, 14.1

カスタマイズ

インタフェース, 28

インタフェースのカスタマイズ

拡張管理, 28.1.5

認証されたセルフ・サービス, 28.1.4

ブランド, 28.1

表の列, 28.6

カスタムURL, 28.8

データ・カスタマイズ, 28.7

機能の無効化, 28.5

アイデンティティ管理, 28.1.2

メニューおよびタブ, 28.4

ポップアップ・プロパティ, 28.9

ボタン・ラベルの名前変更, 28.3

スタイルシートの変更, 28.2

認証されていないセルフ・サービス, 28.1.3

ワークフロー・デザイナ, 28.10

D

データ・フィールド, 1.3.1

データ・オブジェクト・マネージャ, 5.1

データセット, 21.2.4.3

子, 18.2.1, 18.2.1, 18.2.2, 18.2.3, 18.2.3, 21.2.4.3.1, 21.2.4.3.4, 21.5.3.1, 22.2.2

フィールド, 追加または編集, 21.2.4.3.1

OIM, 21.2.4.3, 21.2.4.4, 21.5.3.5

OIM - アカウント, 22.2.2, 22.2.2

「OIM - アカウント」データセット, 18.2.3

OIM - ユーザー, 22.2.2

「OIM - ユーザー」データセット, 18.2.3

OIMデータセット, 18.2.3

プロビジョニング・ステージング, 21.2.4.3

「プロビジョニング・ステージング」データセット, 18.2.2

リコンシリエーション・ステージング, 18.2.1, 21.2.4.3, 22.2.2

ソース, 21.2.4.3

「ソース」データセット, 18.2.1

データ型, 15.3.2.1 データ型, 30.1, 30.1 DataSetValidator要素, 23.1.1.2 日付, 1.3.3 日付書式, 18.3.2.4 宣言

プラグイン, 7.3.1

暗黙的な宣言, 7.3.1

デフォルト値, 15.3.2.1 定義

カスタム・イベント, 8.2.2.3

プラグイン, 7.3

リクエスト承認, 23.5

メタデータの定義

スケジュール済タスク, 6.2

ITリソースの定義, 11.9.2.1 レスポンスの削除, 2.12.3 deleteRequest, 32.4 アダプタ・タスクの削除, 2.11 ITリソースの削除, 11.8.3 デプロイ

レポート, 36.5

サービス・コンポーネント, 27.10.2.4

SOAコンポジット, 25.1.2, 25.2.3, 26.2.4

設定のテスト, 26.2.5

変換レイヤー, 27.10.1.3 「説明」フィールド, 13.2 Design Console, 30 Design Consoleの「管理」フォルダ, 1.6.4 設計パラメータ, 21.2.4.2 開発

承認プロセス, 24, 24.3

Oracle Identity Managerのクライアント, 31.4

権限, 37

イベント・ハンドラ, 8

LDAP同期操作, 9

プラグイン, 7, 7.1.3 スケジュール済タスク, 6 スケジュール済タスク, 6.4 SOAコンポジット, 25 開発ツール, 1.6.5 使用禁止化

SOAコンポジット, 25.2.2

SoD, 27.6.2

アダプタの無効化, 2.6

E

「電子メール定義」フォーム, 12.2

電子メール通知, 12.3.3.6.1

割当て, 12.3.3.6.1

使用可能化

SOAコンポジット, 25.2.4

SoD, 27.6.1

ロギングの有効化

SoD関連イベント, 27.13

「暗号化」フィールド, 15.3.2.1 権限, 37

使用可能および割り当てられた, 37.1

子プロセス・フォーム, 37.3

スケジュール済タスクの構成, 37.4

データ取得プロセス, 37.2

フィールドのマーク, 27.9

レポート, 37.6

エンティティ・アダプタ, 2.13 イベント・コールバック

送信, 4.3

イベント・ハンドラ

カスタム・イベント・ハンドラ

プラグインの作成, 8.2.2.2

カスタム検証, 8.2.2.1 開発, 8 LDAP同期操作の開発, 9 後処理, 8.2.2.1 前処理, 8.2.2.1 「イベント・ハンドラ・マネージャ」フォーム, 5.2 イベント・ハンドラ, 11.9.4.2.4

カスタム, 8.2.2

ユーザー管理操作の拡張, 8.2

例外処理, 20.2.5 実行スケジュール, 2.5.2 拡張

リクエスト管理操作

属性の事前移入, 23.7.3

カスタム・コードの実行, 23.7.1

リクエスト・データの検証, 23.7.2

F

リコンシリエーション停止の失敗しきい値, 18.3.1.6

フィールド・サイズ・フィールド, 15.3.2.1

フィールド・タイプ・フィールド 15.3.2.1

「ファイル・エンコーディング」パラメータ, 19.1

「ファイルの接頭辞」パラメータ, 19.1

最初, 1.2.1.3, 1.2.1.3

「固定列幅」パラメータ, 19.1

フォルダ

ビジネス・ルール定義, 1.6.5.1

Design Consoleの「管理」, 1.6.4

開発ツール, 1.6.5

プロセス管理, 1.6.3

リソース管理, 1.6.2

ユーザー管理, 1.6.1

フォーム名, 19.1, 21.2.4.4, 22.2.1 完全リコンシリエーション, 18.3.1.3

G

「一般」タブ, 12.3.3.1

生成

Oracle Identity Managementレポート, 36.7

レポートの生成

サンプル・データソース, 36.7.1

BPELベースのJDBCデータソース, 36.7.3

本番JDBCデータソース, 36.7.2

汎用テクノロジ・コネクタ

コネクタ・オブジェクト, 18.4, 21.2.4.5, 21.3.3

汎用テクノロジ・コネクタ・フレームワーク

機能, 18.3

汎用テクノロジ・コネクタ

ユーザー・アカウント・ステータスのリコンシリエーション, 18.3.1.2

アーキテクチャ, 18.2

バッチ・リコンシリエーション, 18.3.1.4

作成, 21.2

データセット

「データセット」を参照

日付書式, 18.3.2.4 エクスポート, 21.3.2 機能, 18.3 完全リコンシリエーション, 18.3.1.3 機能アーキテクチャ, 18.2 インポート, 21.3.3, 22.2.1 増分リコンシリエーション, 18.3.1.3 管理, 21.3 マッピング, 目的, 18.2 変更, 21.3.1, 21.5.7 必要性, 18.1 プロバイダ

「プロバイダ」を参照

プロビジョニング・モジュール, 18.2.2, 18.2.2 複数値属性データの削除のリコンシリエーション, 18.3.1.5 トラブルシューティング, 22

構成の問題, 22.2

一般的な問題, 22.1

信頼できるソースのリコンシリエーション, 18.3.1.1

H

ヘルプURL, 13.2

プロセス・タスク・アダプタの仕組み, 3.5.1

I

「グループ・メンバーシップ情報を保持している子データセットのID属性」パラメータ, 19.3.2

IDフィールド, 21.2.4.3, 21.2.4.3, 21.2.6

Identity Connector Framework

バンドルJAR, 16.4

Javaコネクタ・サーバー, 16.5.1

.NETコネクタ・サーバー, 16.5.2

サーバー, 16.5

SSL, 16.5.1.5

増分リコンシリエーション, 18.3.1.3 統合, 12.3.3.2 統合

Oracle Identity ManagerおよびOracle SOA, 23.5.1, 24.1

「ITリソース・タイプ定義」フォーム, 11.9.2 ITリソース, 作成, 11.7 ITリソース, 削除, 11.8.3 ITリソース, 管理, 11.8 ITリソース, 変更, 11.8.2 ITリソース, 表示, 11.8.1

J

Javaコネクタ・サーバー, 16.5.1

JDeveloper

SOAコンポジットの変更, 25.2.1

アプリケーション・サーバー接続の設定, 26.2.1

SOAコンポジットの設定, 26.2.2

K

「キー」フィールド, 13.2

L

ラベル・フィールド, 15.3.2.1

最後, 1.2.1.3

LDAP同期操作

イベント・ハンドラの開発, 9

listTargets, 32.6 ロギング, 20.2.5, 20.2.5 「参照定義」フォーム, 15.1, 15.2 参照フィールド, 1.3.2, 21.2.4.3.1 参照問合せ, 30.1 「参照」のショートカット, 1.2.1.5 lookupQuery要素, 23.1.1.3.3 lookupValues要素, 23.1.1.3.2

M

ITリソースの管理, 11.8

マップされた値

アクセス, 7.5.1

マッピング

Identity ManagerおよびSPML属性, 4.2

ルール・ジェネレータ・アダプタ変数のマッピング, 3.1.1 マッピング, 18.3.2.1, 21.2.4.3, 21.2.4.3.1, 21.5.3.4

例, 21.2.4.3

制限事項, 22.2.2

変換マッピング, 22.2.2

権限としてのフィールドのマーク, 27.9 MDSユーティリティ, 33

例, 33.4

propertiesファイル, 33.2

環境の設定, 33.1

weblogicDeleteMetadata, 33, 33.1

weblogicExportMetadata, 33, 33.1

weblogicImportMetadata, 33, 33.1

メニュー項目, 汎用テクノロジ・コネクタの作成, 21.2.3 メタデータ, 21.2.4.3 メタデータ列コード, D

抽出, D.1

マッピング情報, D.2

メタデータの定義

「メタデータの検出」を参照

メタデータの検出, 20.1.1, 21.2.4.2, 21.2.4.3, 21.3.1, 21.5.2, 22.2.4 変更

SoD用の承認ワークフロー, 27.8.1

SoD用のプロビジョニング・ワークフロー, 27.8.2

登録XMLファイル, 27.10.1.4

SoDエンジン用登録XMLファイル, 27.10.2.5

SOAコンポジット, 25.2

JDeveloperでのSOAコンポジット, 25.2.1

スタイルシート, 28.2

レスポンスの変更, 2.12.2 アダプタ変数の変更, 2.7.2 アダプタ・タスクの変更, 2.9 ITリソースの変更, 11.8.2 プロセス・タスクの変更, 12.3.3 modifyRequest, 32.3 多言語サポート, 18.3.2.3, 20.2.7, 22.1.2 複数の信頼できるソースのリコンシリエーション, 11.9.4.3

N

.NETコネクタ・サーバー, 16.5.2

「注意」フィールド, 13.2

「注意」ウィンドウ, 1.3.5

通知

定義, 4.1

「通知」タブ, 12.3.3.6

O

OAACG SILプロバイダ, 27.2, 27.2, 27.2, 27.2

objectClassフィールド, 21.2.4.3

OIA SILプロバイダ, 27.2

「OIM - アカウント」データセット, 18.2.3, 22.2.2, 22.2.2

「OIM - ユーザー」データセット, 18.2.3, 22.2.2

OIMデータセット, 18.2.3

OIMデータセット, 21.2.4.3, 21.2.4.4, 21.5.3.5

OIMユーザー, 18.3.2.5

Oracle Application Access Controls Governor, 27.2, 27.5.1, 27.7.1, 27.10.1, 27.10.1.4, 27.10.1.5.1, 27.10.2, 27.10.2.2, 27.10.2.5

Oracle E-Business Suite, 27.5.1, 27.10.1, 27.10.1.5.1, 27.10.2

Oracle E-Business User Management, 27.2, 27.8, 27.8.2

Oracle Identity Analytics, 27.5.3

Oracle Identity Managementレポート, 36.1

Oracle Identity Manager API, 31

Oracle SOA

接続, 24.5

承認プロセスの開発, 24

Oracle Identity Managerとの統合, 23.5.1, 24.1

組織プロビジョニング, 30.1

P

パスワード・フィールド, 21.5.3.2, 22.1.3

「パスワード・ポリシー」フォーム, 15.1

パスワード型フィールド, 21.5.3.3, 22.1.3

権限, 汎用テクノロジ・コネクタの作成, 21.2.3

プラグイン

構成, 7.2

サンプルplug-in.xml, 7.5

マップされた値

単純なマップされた値, 7.5

プラグイン・フレームワーク, 7.1 プラグイン・ストア

データベース・ストア, 7.1.2.2

ファイル・ストア, 7.1.2.1

プラグイン・ストア, 7.1.2 プラグイン・メタデータ

指定, 7.3.2

プラグイン

アクセス

マップされた値, 7.5.1

カスタム・イベント・ハンドラ, 8.2.2.2 宣言, 7.3.1

暗黙的な宣言, 7.3.1

定義, 7.3 開発, 7, 7.1.3 ディレクトリ構造, 7.3.3 登録, 7.4

APIの使用, 7.4.1

登録ユーティリティの使用, 7.4.2

事前に構成されたSoDコネクタ

Oracle E-Business User Management, 27.2, 27.8, 27.8.2

SAP CUAコネクタ, 27.2

SAP User Managementコネクタ, 27.2, 27.8

事前定義済

SOAコンポジット, 24.2

事前定義済プロバイダ

CSVリコンシリエーション・フォーマット・プロバイダ, 19.2, 20.1.1, 20.3.1

共有ドライブ・リコンシリエーション・トランスポート・プロバイダ, 19.1, 20.3.1, 21.5.2, 21.5.2, 21.5.4

SPMLプロビジョニング・フォーマット・プロバイダ, 19.3, 20.1.1, 20.2.1.2, 20.3.2

変換プロバイダ, 19.5

検証プロバイダ, 19.6

Webサービス・プロビジョニング・トランスポート・プロバイダ, 19.4, 20.2.1.2, 20.3.2

事前定義済のリクエスト・データセット, 23.1 PrePopulationAdapter要素, 23.1.1.3.1 「プロセス定義」フォーム, 12.3 プロセス・フォーム, 19.1, 21.2.4.4, 22.1.2, 22.2.1 「プロセス管理」フォルダ, 1.6.3 プロバイダ

定義, 18.2

パラメータ, 設計, 21.2.4.2

パラメータ, ランタイム, 21.2.4.2

プロビジョニング・フォーマット・プロバイダ, 18.2.2, 20.1.1, 21.2.4.1

プロビジョニング・トランスポート・プロバイダ, 18.2.2, 20.1.1, 21.2.4.1

リコンシリエーション・フォーマット・プロバイダ, 18.2.1, 20.1.1, 20.2.1.1, 21.2.4.1

リコンシリエーション・トランスポート・プロバイダ, 18.2.1, 20.1.1, 20.2.1.1, 21.2.4.1

リソース・バンドル, 20.2.7

再利用, 20.3

ロール, 20.1

選択, 21.2.4.1

変換プロバイダ, 18.2.2

変換プロバイダ, 18.2.1, 21.2.4.3.1

検証プロバイダ, 18.2.1, 21.2.4.3.1

XMLファイル, 20.2.6, 20.2.6

「事前定義済プロバイダ」を参照

Provision Resourceデータセット, 23.1.3 プロビジョニング・フォーマット・プロバイダ, 18.2.2, 20.1.1, 21.2.4.1 プロビジョニング・ステージング, 18.2.2 「プロビジョニング・ステージング」データセット, 21.2.4.3 プロビジョニング・トランスポート・プロバイダ, 18.2.2, 20.1.1, 21.2.4.1 ワークフロー定義の「プロビジョニング」, 11.5.2.1

イベント・タブ, 11.5.2.1

タブ, 11.5.2.1.1

PSO

マッピング関連, 4.2

R

「複数値属性データの削除の調整」パラメータ, 21.2.4.2

リコンシリエーション・フォーマット・プロバイダ, 18.2.1, 20.1.1, 20.2.1.1, 21.2.4.1

複数値属性データの削除のリコンシリエーション, 18.3.1.5

リコンシリエーションの処理

カスタマイズ, 14.1

「リコンシリエーション・ステージング」データセット, 18.2.1, 21.2.4.3, 22.2.2 リコンシリエーション・トランスポート・プロバイダ, 18.2.1, 20.1.1, 20.2.1.1, 21.2.4.1 「リコンシリエーション・タイプ」パラメータ, 21.2.4.2 登録

新規ターゲット・システム, 27.10.1.5

プラグイン, 7.4

APIの使用, 7.4.1

登録ユーティリティの使用, 7.4.2

SILプロバイダ, 27.10.2.6 SOAコンポジット, 23.4, 25.1.4 登録XMLファイル

変更, 27.10.1.4

処置フィールド, 13.2 「Remote Manager」フォーム, 15.1, 15.4 電子メール通知の削除, 12.3.3.6.2 プロセス・タスク・アダプタのプロセス・タスクからの削除, 3.5.3 ルール・ジェネレータのフォーム・フィールドからの削除, 3.1.3 タスク割当てアダプタのプロセス・タスクからの削除, 3.3.2 JDBCベースのJDBCデータソースの名前変更, 36.7.3 レポート, 36.1

構成, 36.6

Oracle Identity Manager用のレポートの構成, 36.6.1

セカンダリ・データソースの構成, 36.6.2

デプロイ, 36.5

生成, 36.7

Oracle BI Publisher, 36.2

リクエスト承認

承認レベル, 23.5.2

承認ワークフロー, 23.5.1

定義, 23.5

リクエスト承認

承認レベル

操作レベルの承認, 23.5.2.3

リクエスト・レベルの承認, 23.5.2.2

テンプレート・レベルの承認, 23.5.2.1

リクエスト・データセット, 23.1

子データ, 23.1.3

共通, 23.1.4

Create User, 23.1.2

作成, 23.1

要素およびプロパティ, 23.1.1

属性, 23.1.1.4

AttributeReference, 23.1.1.3

DataSetValidator, 23.1.1.2

lookupQuery, 23.1.1.3.3

lookupValues, 23.1.1.3.2

PrePopulationAdapter, 23.1.1.3.1

request-data-set, 23.1.1.1

必須プロパティ

ウィジェット, 23.1.1.3

事前定義済, 23.1 リソースのプロビジョニング, 23.1.3 サンプル, 23.1.2, 23.1.3 MDSへのアップロード, 23.2 リクエスト管理操作, 23.7

拡張, 23.7

属性の事前移入, 23.7.3

カスタム・コードの実行, 23.7.1

リクエスト・データの検証, 23.7.2

リクエスト・テンプレート

作成, 23.6

リクエスト・タイプおよび関連付けられているキー, 23.5.2.3 request-data-set要素, 23.1.1.1 カウントのリセット・フィールド, 13.2 リソース管理者, 11.3 リソース・バンドル, 20.2.7 「リソース管理」フォルダ, 1.6.2 「リソース・オブジェクト」フォーム, 11.9.1 リソース, 2.5.3 リソース

管理, 11.1

リソースに関連付けられた組織オプション, 11.2

「リソース認可者」オプション, 11.4

「リソース・ワークフロー」オプション, 11.5

ワークフロー・ビジュアライザ, 11.5.1

ワークフロー, 11.5

レスポンス, 2.5.6 resumeRequest, 32.8 プロバイダの再利用, 20.3 行ヘッダー, 1.2.4.2 「ルール・デザイナ」フォーム, 11.9.1 ルール要素, 30.1, 30.1 ランタイム・パラメータ, 21.2.4.2

S

サンプルXML

スケジュール済タスク, 6.3

SAP CUA, 27.2, 27.8, 27.10.1, 27.10.1.5.1, 27.10.2 SAP GRC, 27.2, 27.5.2, 27.7.2, 27.10.1, 27.10.2 SAP GRC SILプロバイダ, 27.2, 27.2, 27.2 SAP R/3, 27.5.2, 27.10.1.5.1 SAP User Managementコネクタ, 27.2, 27.8 スケジュール済タスク

スケジュール済タスク・クラスの開発, 6.4

スケジュール済タスク

XMLファイルの構成, 6.3

作成, 6.1.1

ディレクトリ構造の作成, 6.6

メタデータの定義, 6.2

開発, 6

サンプルXMLファイル, 6.3

スケジュール済タスクのplugin.xml

構成, 6.5

スケジューラ

構成ファイル, A

ルール・ジェネレータのスケジューリング, 2.13 順序フィールド, 15.3.2.1 サービス・アカウント

管理タスク, 30.2

サービス・アカウント, 30.2, 30.2 サービス・コンポーネント

デプロイ, 27.10.2.4

「重大度」フィールド, 13.2 共有ドライブ・リコンシリエーション・トランスポート・プロバイダ, 19.1, 20.3.1, 21.5.2, 21.5.2, 21.5.4 SIL, 27.2 SILプロバイダ, 27.2

登録, 27.10.2.6

SILプロバイダ, 27.2, 27.4, 27.10.1.4, 27.10.2.5

OAACG, 27.2, 27.2, 27.2

OIA, 27.2

SAP, 27.2, 27.2

SILConfig.xml, 27.10.1.5.1, 27.10.1.5.1, 27.10.1.5.2, 27.10.2.6 SOAコンポジット

アプリケーション・サーバー接続, 26.2.1

作成, 23.3, 25.1

デプロイ, 25.1.2, 25.2.3, 26.2.4

設定のテスト, 26.2.5

開発, 25 無効化, 25.2.2 有効化, 25.2.4 Oracle Identity Manager APIのロード, 26

構成, 26.2

前提条件, 26.1

変更, 25.2 JDeveloperでの変更, 25.2.1 監視, 24.4 事前定義済, 24.2 登録, 23.4, 25.1.4 JDeveloperでの設定, 26.2.2 更新, 26.2.3 SoD, 27

カスタム・ターゲット・システム, 27.10.1

無効化, 27.6.2

有効化, 27.6.1

ロギングの有効化, 27.13

承認ワークフローの変更, 27.8.1

プロビジョニング・ワークフローの変更, 27.8.2

プロビジョニング・ワークフロー, 27.12

アクセス・ポリシーに基づくプロビジョニング, 27.12.8

ダイレクト・プロビジョニング, 27.12.1

リクエスト・プロビジョニング, 27.12.3

承認者専用フィールドによるリクエスト・プロビジョニング, 27.12.6

DefaultSoDApprovalによるリクエスト・プロビジョニング, 27.12.5

プロビジョニング済ワークフローを変更するためのリクエスト, 27.12.4

自分のためのリクエスト, 27.12.7

権限の更新, 27.12.2

アクセス・ポリシーに基づいたプロビジョニングによる権限の更新, 27.12.9

SoD起動ライブラリ, 27.2 トラブルシューティング, 27.14 検証プロセス, 27.1 SoDチェックWebサービス, 27.7.3 SoDエンジン

構成, 27.5

カスタム, 27.10.2

登録XMLファイルの変更, 27.10.2.5

SoDエンジン

Oracle Application Access Controls Governor, 27.2, 27.5.1, 27.7.1, 27.10.1, 27.10.1.4, 27.10.1.5.1, 27.10.2, 27.10.2.2, 27.10.2.5

Oracle Identity Analytics, 27.5.3

SAP GRC, 27.2, 27.5.2, 27.7.2, 27.10.1, 27.10.2

SoDターゲット・システム

Oracle E-Business Suite, 27.5.1, 27.10.1, 27.10.1.5.1, 27.10.2

SAP CUA, 27.8, 27.10.1, 27.10.1.5.1, 27.10.2

SAP R/3, 27.5.2, 27.10.1.5.1

ソース, 18.2.1 「ソース」データセット, 21.2.4.3 「ソース日付書式」パラメータ, 21.2.4.2 「指定されたデリミタ」パラメータ, 19.1 指定

プラグイン・メタデータ, 7.3.2

SPML, 32

activeRequest, 32.9

addRequest, 32.2

属性とLDAPマッピング, B

deleteRequest, 32.4

例, C

listTargets, 32.6

modifyRequest, 32.3

resumeRequest, 32.8

Webサービスの保護, 32.12

statusRequest, 32.5

suggestUsername, 32.11

suspendRequest, 32.7

validateUsername, 32.10

XSD, 32

SPML属性, 4.2 SPML操作, サポート, 19.3 SPMLプロビジョニング・フォーマット・プロバイダ, 19.3, 20.1.1, 20.2.1.2, 20.3.2 「SPML Webサービスのバインディング・スタイル(DOCUMENTまたはRPC)」パラメータ, 19.3.2 「SPML Webサービスの複合データ型」パラメータ, 19.3.2 「SPML Webサービス操作名」パラメータ, 19.3.2 「SPML WebサービスのSOAPメッセージ本文の接頭辞」パラメータ, 19.3.2 「SPML Webサービスのターゲット・ネームスペース」パラメータ, 19.3.2 SSL

Identity Connector Framework, 16.5.1.5

SSL, SoD検証用の構成, 27.10.2.2 SSL, Webサービス用の構成, 19.4.1 「ステージング・ディレクトリ(複数値アイデンティティ・データ)」パラメータ, 19.1 「ステージング・ディレクトリ(親アイデンティティ・データ)」パラメータ, 19.1 ステージング・ディレクトリ, 権限, 19.1 statusRequest, 32.5 「ステップ1 基本情報の指定」ページ, 18.4, 19.2, 21.2.4.1, 21.2.4.5, 21.5.1 「ステップ2 パラメータ値の指定」ページ, 21.2.4.2, 21.2.4.5, 21.5.2, 21.5.2 「ステップ3 コネクタ構成の変更」ページ, 19.1, 21.2.4.3, 21.2.4.5, 21.5.3, 22.1.2, 22.1.2 「ステップ4 コネクタ・フォーム名の検証」ページ, 19.1, 21.2.4.4, 21.2.4.5, 22.1.1 「ステップ5 コネクタ情報の検証」ページ, 21.2.4.5, 22.1.1 「リコンシリエーション停止のしきい値」パラメータ, 21.2.4.2 「停止しきい値最小レコード」パラメータ, 21.2.4.2 suggestUsername, 32.11 suspendRequest, 32.7

T

「タブ区切り」パラメータ, 19.1

「アダプタ・ファクトリ」フォームのタブ, 2.5

「ターゲット日付書式」パラメータ, 21.2.4.2

「ターゲットID」パラメータ, 19.3.1

ターゲット・システム

登録, 27.10.1.5

タスク依存性タブ, 12.3.3.3 「フォーム・デザイナ」フォーム, 13.1 時刻, 1.3.3 変換レイヤー

作成, 27.10.1.2

デプロイ, 27.10.1.3

変換プロバイダ, 18.2.1, 18.2.2, 19.5

連結変換プロバイダ, 19.5.1

翻訳変換プロバイダ, 19.5.2

変換プロバイダ, 21.2.4.3.1 翻訳変換プロバイダ, 19.5.2 トラブルシューティング

コールバック, 4.5

信頼できるソースのリコンシリエーション, 18.3.1.1, 21.2.4.1

U

UDF, 22.1.3

「一意の属性(親データ)」パラメータ, 19.1

更新

SOAコンポジット, 26.2.3

使用状況参照, 2.5.5 ユーザー・アカウントのメニュー項目, 21.2.3 ユーザー・アカウント権限, 21.2.3 ユーザー・アカウント・ステータスのリコンシリエーション, 19.5.2.1, 19.5.2.1, 21.2.4.3.1, 21.2.4.3.1 ユーザー定義列タブ, 15.3.2.1 ユーザー定義フィールドの定義, 15.1 「ユーザー定義フィールドの定義」フォーム, 15.3 「ユーザー管理」フォルダ, 1.6.1 ユーザー管理操作, 8.1

イベント・ハンドラによる拡張, 8.2

ステージ, 8.1

ユーザーが修正可能なメタデータ, 33 ユーザーが修正可能なメタデータ・ファイル, 33.3 「ユーザー名(認証)」パラメータ, 19.3.1 「ユーザー・パスワード(認証)」パラメータ, 19.3.1 ユーティリティ

バルク・ロード, 34

JARの削除, 35.3

リソース・バンドルの削除, 35.6

JARのダウンロード, 35.2

リソース・バンドルのダウンロード, 35.5

MDS, 33

JARのアップロード, 35.1

リソース・バンドルのアップロード, 35.4

V

validateUsername, 32.10

検証プロバイダ, 18.2.1, 21.2.4.3.1

検証プロバイダ, 事前定義, 19.6

値オブジェクト, 20.2.3

変数リスト, 2.5.4

変数, 30.1, 30.1

ITリソースの表示, 11.8.1

W

「WebサービスのSOAPアクション」パラメータ, 19.3.2

「WebサービスURL」パラメータ, 19.4

Webサービス・プロビジョニング・トランスポート・プロバイダ, 19.4, 20.2.1.2, 20.3.2

Webサービス, SSLの構成, 19.4.1

ウィジェット, 23.1.1.3

ワイルドカード, 1.5.2

ワークフロー定義レンダラ, 12.3.1

ワークフロー・デザイナ

カスタマイズ, 28.10

ワークフロー・ビジュアライザ, 11.5.1, 11.5.2

タスク詳細へのアクセス, 11.5.3.3

要素, 11.5.2

展開ノード, 11.5.3.2

開く, 11.5.1

ワークフロー定義の「プロビジョニング」, 11.5.2.1

レスポンスの使用, 2.12 「SPML WebサービスのWSSEが構成されていますか。」パラメータ, 19.3.2

X

XMLファイル

汎用テクノロジ・コネクタ, 21.2.4.5

プロバイダ, 20.2.6

Copyright © 1991, 2011, Oracle and/or its affiliates. All rights reserved.