12 ホーム組織ポリシーの管理
この章の構成は、次のとおりです。
12.1 ホーム組織ポリシーについて
ホーム組織ポリシーを使用して、自己登録ユーザーのホーム組織を決定できます。アイデンティティ・システム管理の「ホーム組織ポリシー」ページでは、ホーム組織ポリシーのルールの表示、作成、削除および変更を行うことができます。
ユーザーが自己登録のリクエストを送信すると、ユーザーのホーム組織がホーム組織のポリシーによって決定されます。送信されたリクエストには、(ホーム組織ポリシーによって決定された)組織名が入力されています。承認者は、リクエストを承認する際に、ユーザーのホーム組織をオーバーライドできます。自己登録時にホーム組織を決定する前処理カスタム・ハンドラが定義されている場合、ホーム組織のポリシーは評価されません。ワークフロー・ポリシーが定義されている場合は、ホーム組織ポリシーに優先します。
ホーム組織ポリシーでは、ユーザー属性に基づいてルールを定義できます。ルールの戻り値は、組織名です。ルールは、最初のルールから最後のルールまで、「ホーム組織ポリシー」ページに表示される順序で評価されます。ルールは、「ホーム組織ポリシー」ページで並替えができます。ルールの評価は最初のルールが一致した時点で停止され、組織名が戻され、残りのルールは評価されません。
Oracle Identity Managerの初期化(デプロイメント)時には、ホーム組織決定ポリシーと呼ばれるデフォルトのホーム組織ポリシー、および単一組織へのすべてのユーザーのデフォルト設定と呼ばれるデフォルトのルールがシードされます(存在していない場合)。カスタマは新しいホーム組織ポリシーを定義できませんが、デフォルトのホーム組織ポリシー下に新しいルールを作成できます。
単一組織へのすべてのユーザーのデフォルト設定ルールは、すべてのユーザーによって満たされます。なんらかの理由により、デフォルト・ルールが削除されたときに、ユーザーが他のいずれかのルールを満たさない場合は、送信されたリクエスト内でこのユーザーのホーム組織が空白のままになります。承認者は、承認する前にホーム組織名を入力できます。これはSOA OFFモードではサポートされていないため、ホーム組織フィールドを空白にすると、リクエストが失敗します。すべてのユーザーが1つ以上のルールを満たし、ホーム組織を割り当てることができるように、ルールを定義することをお薦めします。
ホーム組織ポリシーのルールは、テキスト、数値、チェック・ボックス、および日付タイプのUDFを使用して定義できます。ただし、参照タイプのUDFを自己登録ページに追加することはできません。IF条件を作成するために使用可能な演算子のリストは、UDFの各タイプごとに異なります。
12.2 ホーム組織ポリシーのユースケース
ホーム組織ポリシーでサポートされるユースケースには、デフォルト・ルール、単純ルールまたは複合ルールを使用した自己登録、ルール評価順序のユースケース、およびSOAがオフの場合の自己登録があります。
次の各ユースケースでは、ホーム組織ポリシーの機能を示します。
12.2.1 デフォルト・ルールを使用した自己登録ユースケース
デフォルト・ルールは、単一組織へのすべてのユーザーのデフォルト設定です。このルールは変更できますが、削除することはできません。
定義されている条件は、次のとおりです。
IF user.User Login Equals $(user.User Login) THEN organization equals "Xellerate Users"
デフォルト条件は常にTrueに評価されます。このため、ホーム組織ポリシーに定義されている他のルールが満たされない場合、デフォルト・ルールが確実に満たされ、ホーム組織名を提供します。
たとえば、userLoginがUser1であるユーザーが自己登録リクエストを送信したときに、他のルールが定義されていないか満たされない場合、デフォルト・ルールが評価されます。また、ホーム組織は「Xellerateユーザー」に設定されます。
12.2.2 単純ルールを使用した自己登録ユースケース
単純ルールは、単一のIF条件を使用し、ANDやORなどの他の演算子は使用しないで作成されるルールです。
たとえば、ExampleSimpleRuleと呼ばれるルールが次の条件で定義されたとします。
IF user.Nickname Starts with "Test" THEN organization equals "testOrg2"
この場合、user.NicknameはテキストUDF属性です。
ここで、TestUser2というニックネームを持つユーザーが自己登録リクエストを送信すると、ルール条件が満たされ、ホーム組織はtestOrg2に設定されます。
12.2.3 複合ルールを使用した自己登録ユースケース
複合ルールは、複数のIF条件を使用して作成されたルールで、ANDやOR演算子を使用してルールを形成します。
たとえば、ExampleComplexRuleと呼ばれるルールが次の条件で定義されたとします。
IF user.Nickname Starts with "Test" AND user.Display Name Ends with "User" THEN organization equals "testOrg3"
この場合、user.NicknameはUDF属性であり、user.Display Nameはデフォルト属性です。
ここで、TestUser3というニックネームを持ち、表示名がtestUserであるユーザーが自己登録リクエストを送信すると、ルール条件が満たされ、ホーム組織はtestOrg3に設定されます。
12.2.4 ルール評価順序のユースケース
ユーザーが自己登録すると、ホーム組織のページに表示されるリストのトップ・ルールが最初に評価され、それに続いてその次のルールから最後のルールまでが順に評価されます。
一致するルールが見つかると評価は停止されます。たとえば、図12-1に示すように、ExampleSimpleRuleの後にExampleComplexRuleが作成されます。
この場合、ユーザーが自己登録すると、ユーザー属性値がExampleComplexRuleに対して最初に評価され、一致しない場合は、ExampleSimpleRuleに対する評価に進みます。これも一致しない場合は、デフォルト・ルールである単一組織へのすべてのユーザーのデフォルト設定に対して評価されます。
ExampleSimpleRuleに対する評価が満たされた場合は、ルール内の条件に応じてユーザーのホーム組織が設定されます。
12.2.5 SOAがOFFである場合の自己登録ユースケース
SOAがオフであるときに自己登録リクエストが送信されると、リクエストは自動承認され、リクエストのステータスは完了として表示されます。
SOAサーバーを無効にするステップは、SOAサーバーの無効化を参照してください。
これで、ユーザーが自己登録を送信すると、リクエストが自動承認され、ステータスが完了として表示されるようになります。ホーム組織ルールの評価は、前述の例で説明したものと同じです。
12.3 ホーム組織ポリシーのルールの作成
「ホーム組織ポリシー」ページを使用し、条件ビルダーを使用してルールを作成および構成するか、スクリプトを使用してルール設定操作を実行できます。
ルールを作成するには:
-
Oracle Identity System Administrationにログインします。
-
左側のペインの「システム構成」で、「ホーム組織ポリシー」をクリックして「ホーム組織ポリシー」ページを開きます。
-
ツールバーで「作成」をクリックして、「ホーム組織ポリシー・ルールの追加」ページを開きます。
-
「ルールの作成」セクションで、新しいルールの「名前」、「説明」、「所有者」および「ステータス」を入力します。ルールの「ステータス」を「有効化」または「無効化」に設定します。「ステータス」が「無効化」に設定されている場合、ユーザーが自己登録すると、評価時にこのルールはスキップされます。
-
「条件ビルダー」セクションでルール条件を設定します。たとえば、表示名に「Test」が含まれ、姓に「User」が含まれる場合、組織は「Vision North America」になります。この例では、属性は「Display name」、条件は「Contains」、および値は「Test」です。
ルールは、条件ビルダー(ステップ6)またはスクリプト(ステップ7)を使用して設定できます。
-
条件ビルダーを使用してルールを設定するには:
-
ルールのIF部分で「条件ビルダー」アイコンをクリックして、「条件ビルダー」ウィンドウを開きます。
例として、図12-2に、ルールを設定するために「条件ビルダー」オプションが選択された「ルールの作成」ページを示します。
-
属性リストとしてユーザー属性を選択すると、ユーザーに関連付けられたUDFおよびデフォルト属性のリストが表示されます。
リストから特定の属性を検索するか、フィールドに属性の名前を入力し、「検索」アイコンをクリックします。リストから属性を選択し、「OK」をクリックします。
-
条件リストから条件を選択します。使用可能な条件は、「次と等しい」、「次と等しくない」、「次を含む」、「次を含まない」、「次で始まる」、「次で始まらない」、「次で終わる」、「次で終わらない」です。
ノート:
このリストは、属性のタイプによって異なります。前述のリストはテキスト・タイプ用です。数値型属性の場合、値は「次より大きい」や「次より小さい」などになります。
-
値を入力するには、フィールドに値を入力して「OK」をクリックするか、「値」アイコンをクリックして「条件ビルダー」ウィンドウを開きます。
条件ビルダーでは、「値」または「式」のどちらかを入力できます。
「値」を選択すると、値のリストが表示されます。必要な値を選択するか、フィールドに値を入力して「OK」をクリックします。
「式」を選択すると、条件のリストが表示されます。必要な値を選択し、「OK」をクリックします。
-
ルールの「THEN」部分を入力するには、組織アイコンをクリックします。「条件ビルダー」ウィンドウが表示されます。組織を選択し、「OK」をクリックします。
-
デフォルトでは、条件は「次と等しい」に設定されており、変更できません。
-
組織を選択するには、組織名アイコンをクリックします。「条件ビルダー」ウィンドウが表示されます。リストから組織名を選択し、「OK」をクリックします。
-
複合ルールを設定するには、「条件の追加」をクリックします。「AND」または「OR」条件を選択し、その他のルールを設定します。
-
-
スクリプトを使用してルールを設定するには、次を実行します。
-
「スクリプト」が選択されている場合、既存のスクリプトが表示されます。たとえば、ユーザーの部門番号が構成されている場合は、組織の値を部門番号として設定します。部門番号がOracle、Oracle-HQまたはOracle-IDCの場合、組織の値は部門番号に設定されます。Oracle、Oracle-IDC、Oracle-HQという名前の組織がシステムに存在することを確認してください。
String deptNum= vo.getString("user.Department Number"); if(deptNum) { ValueObject rvo = new ValueObject(); rvo.put("organization",deptNum); return rvo; }
例として、図12-3に、ルールを設定するために「スクリプト」オプションが選択された「ルールの作成」ページを示します。
-
検索する単語を入力し、「検索」アイコンをクリックします。「検索と置換」パネルが表示されます。
-
特定の行にジャンプするには、行番号を入力し、「検索」アイコンをクリックします。
-
-
「作成」をクリックします。
-
定義されているすべてのルールが、「ホーム組織ポリシー」ページに表示されます。定義されたルールは、リスト内で上下に移動してその順序を変更でき、これを行うには、ルールの「順序」列の上矢印または下矢印をクリックします。
12.4 ホーム組織ポリシーのルールの変更
ホーム組織ポリシーの既存のルールを編集するには、ポリシーを開いて、ルールの詳細を変更してから、変更したポリシーを保存します。
ホーム組織ポリシーのルールを変更するには: