この節では、外部リソースデータストアと外部リソースのプロビジョニングツール通知設定プロセスについて説明します。
Identity Manager の外部リソースデータストアは、外部リソースと外部リソースの割り当てに関する情報を保持する単一のデータストアです。このデータストアは、データベースである場合とディレクトリである場合があります。
外部リソースデータストアが「データベース」である場合、そのデータストアは ScriptedJdbcResourceAdapter によって管理されます。
外部リソースデータストアが「ディレクトリ」である場合、そのデータストアは LDAPResourceAdapter によって管理されます。
外部リソースデータストアを設定するには、「External Resource Administrator」機能が必要です。
外部リソースデータストアには、データを必要に応じた属性値で格納でき、それらの値を 1 つまたは複数のテーブルに格納できます。
たとえば、MySQL データベースを使用している場合、外部リソース情報は次のテーブルに格納されます。
extres.accounts テーブルには accountID と resourceID が含まれます。外部リソースデータストアは単一のデータストアであるため、Identity Manager は一意の ID キー、<accountId>@<resourceId> を指定し、その resourceID によってアカウントを一意に識別します。
extres.attributes テーブルには、名前と値のペアの属性の集合が含まれます。外部リソースの作成時にスキーママッピングでこれらの属性を定義します。
データベーステーブルの作成に使用するサンプルスクリプトは、Identity Manager のパッケージの次の場所に同梱されています。
wshome/sample/ScriptedJdbc/External |
Identity Manager では複数のデータベースタイプがサポートされ、タイプごとにサンプルスクリプトが用意されています。これらのスクリプトは、特定の環境に対して必要に応じて変更できます。
外部リソースデータストアでは、LDAPResourceAdapter を使用して LDAP もサポートされます。これにより、データを既存のクラスまたはカスタムクラスで格納できます。LDIF のサンプルスクリプトも、Identity Manager のパッケージの次の場所に同梱されています。
wshome/sample/other/externalResourcePerson.ldif |
このスクリプトは、外部リソースディレクトリデータストアの設定の一環として変更できます。
変更は簡単に行うことができますが、外部リソースデータストアは、通常、一度だけ設定します。設定を変更すると、Identity Manager によって既存の外部リソースが自動的に更新されて、新たに設定したデータストアが使用されます。
データベースタイプのデータストアを設定するには、次の手順に従います。
Identity Manager 管理者インタフェースのメニューバーから、「設定」->「外部リソース」の順に選択します。
「データストアの設定」ページが表示されたら、「データストアのタイプ」メニューから「Database」を選択します。さらにオプションが表示されます。
次の接続および認証情報を指定します。
Identity Manager は、自動的に、「JDBC ドライバ」、「JDBC URL テンプレート」、ポート、および「最大アイドル時間(秒)」フィールドにデフォルト値を取り込みます。これらのデフォルト値は、必要に応じて変更できます。
「JDBC ドライバ」。JDBC ドライバのクラス名を指定します。
「JDBC URL Template」。JDBC ドライバの URL テンプレートを指定します。
「ホスト」。データベースを実行しているホストの名前を入力します。
「TCP ポート」。データベースが待機中のポート番号を入力します。
「データベース」。データストアテーブルが含まれるデータベースサーバーのデータベース名を入力します。
「ユーザー」。データストアテーブルから行を読み込み、更新、および削除するために十分な権限を持つデータベースユーザーの ID を入力します。たとえば、root などです。
「パスワード」。データベースユーザーのパスワードを入力します。
「すべての SQLException を再スローする」。例外エラーコードが 0 の場合に SQL 例外を SQL 文に再スローするには、このボックスをチェックします。
このオプションを有効にしなかった場合、Identity Manager はこれらの例外を取り込み、抑制します。
「Max Idle Time」。プール内で JDBC 接続を未使用のままにしておく最大時間を秒単位で指定します。
指定した時間が経過する前に接続が使用されていない場合、Identity Manager は接続を閉じ、プールから削除します。
デフォルト値は 600 秒です。
値を -1 にすると、接続は期限切れになりません。
データストアへの接続に成功したら、サポートされるリソースアクションごとに、実行するスクリプトを 1 つ以上指定する必要があります。手順については、「アクションスクリプトを設定する」を参照してください。
Identity Manager で特定の要求の状態の取得、作成、更新、削除、有効化、無効化、テストを追跡および実行するために使用する、一連の BeanShell (bsh) スクリプトを指定する必要があります。
次の場所に、サンプルのアクションスクリプトがあります。
wshome/sample/ScriptedJdbc/External/beanshell |
これらのサンプルを変更して、独自のカスタムアクションスクリプトを作成できます。カスタムスクリプトはアクションスクリプト選択ツールに追加され、「利用可能」リストと「選択されたカスタム列」リストの行の下に表示されます。
Identity Manager には、外部リソースに対してサポートされるデータベースタイプのリソースアクションのサンプルスクリプトが用意されています。これらのスクリプトにアクセスするには、次の場所にある ResourceAction スクリプトを使用します。
wshome/sample/ScriptedJdbc/External/beanshell |
デフォルトのデータベース名、ユーザー名、およびパスワードは、すべて extres です。
他のデータベースオプションのいずれかを選択する場合や、別のユーザー名やデータベース名を使用したい場合は、サンプルのデータベース作成スクリプトや ResourceAction スクリプトを別の値に変更する必要があります。
たとえば、MySQL データベースを選択して、既存のデータベース名、ユーザー名、およびパスワードを変更する場合は、デフォルトのデータベース名、ユーザー名、およびパスワードを extres から externalresources、externaladmin、および externalpassword にそれぞれ変更することによって、create_external_tables.mysql スクリプトを更新する必要があります。
次に、ResourceAction スクリプトを、デフォルトの extres.accounts および extres.attributes の値から externalresources.accounts および externalresources.attributes にそれぞれ変更する必要があります。
アクションスクリプトを設定するには、次の手順に従います。
「Data Store Configuration」ページのアクションスクリプト選択ツールを使用して、リソースアクションごとに 1 つ以上のアクションスクリプトを指定します。リソースアクションごとに少なくとも 1 つのスクリプトを選択する必要があります。
リソースアクションに一致するデフォルトのアクションスクリプトを選択する必要があります。たとえば、次を使用します。
GetUser リソースアクションには External-getUser-bsh
GetUser リソースアクションは、検索操作に使用されます。
CreateUser リソースアクションには External-createUser-bsh
DeleteUser リソースアクションには External-deleteUser-bsh
UpdateUser リソースアクションには External-updateUser-bsh
DisableUser リソースアクションには External-disableUser-bsh
EnableUser リソースアクションには External-enableUser-bsh
Test リソースアクションには External-test-bsh
Test リソースアクションは、「テスト接続」ボタンのすべての機能を有効にするために使用されます。
リスト内のサンプルスクリプトから他の bsh スクリプトのいずれかを使用すると、うまくいきません。
メニューから「アクションコンテキストモード」を選択して、属性値をアクションスクリプトに渡す方法を指定します。
「Strings」。属性値を文字列値として渡します。
「Direct」。属性値を com.waveset.object.AttributeValues オブジェクトとして渡します。
ここで、データストア接続設定をテストします。ページの下にある「テスト接続」ボタンをクリックします。
接続が成功したことを確認するメッセージ、またはその設定でのエラーを報告するメッセージが表示されます。
終了したら、「次へ」をクリックして「プロビジョニング担当者への通知設定」ページに進みます。
ディレクトリタイプのデータストアを設定するには、次の手順に従います。
「データストアのタイプ」メニューから「Directory」を選択します。さらにオプションが表示されます。
ディレクトリタイプのデータストアの接続および認証情報を指定する必要があります。
次のオプションを設定します。
「ホスト」。LDAP サーバーが実行されているホストの IP アドレスまたは名前を入力します。
「TCP ポート」。LDAP サーバーとの通信に使用されている TCP/IP ポートを入力します。
SSL を使用している場合、このポートは通常、636 です。
SSL 以外を使用している場合、このポートは通常、389 です。
「SSL」。SSL を使用する LDAP サーバーに接続するには、このオプションをチェックします。
「フェイルオーバーサーバー」。選択されたサーバーに障害が発生した場合にフェイルオーバーに使用されるサーバーをすべて一覧表示します。この情報を次の形式で入力します。これは、RFC 2255 に記載されている LDAP Version 3 の URL に従っています。
ldap://ldap.example.com:389/o=LdapFailover |
URL のホスト、ポート、および識別名 (distinguished name、dn) の部分のみがこの設定に関係します。
選択されたサーバーに障害が発生した場合、JNDI はリスト内の次のサーバーに自動的に接続します。
「ユーザー DN」。更新時に LDAP サーバーに対する認証に使用する dn を入力します。(デフォルトは cn=Directory Manager)
「パスワード」。プリンシパルのパスワードを入力します。
「ベースコンテキスト」。Identity Manager がユーザーの LDAP ツリーを検索するときに使用できる 1 つ以上の開始位置を指定します。(デフォルトは dc=MYDOMAIN,dc=com)
Identity Manager は、LDAP サーバーからユーザーを検出しようとするとき、またはユーザーがメンバーであるグループを探すときに、検索を実行します。
「オブジェクトクラス」。LDAP ツリーで新しいユーザーオブジェクトを作成するときに使用する、1 つ以上のオブジェクトクラスを入力します。(デフォルトは top)
エントリごとに個別の行に入力する必要があります。エントリを区切るのにコンマやスペースは使用しません。
一部の LDAP サーバーでは、クラス階層のオブジェクトクラスをすべて指定する必要があります。たとえば、inetorgperson だけではなく、top、person、organizationalperson、および inetorgperson とすべてを指定する必要がある場合があります。
「アカウント検索用の LDAP フィルタ」。LDAP リソースから返すアカウントを制御する LDAP フィルタを入力します。フィルタを指定しなかった場合、Identity Manager は、指定されたオブジェクトクラスのすべてを含むアカウントをすべて返します。
「検索フィルタ内のすべてのオブジェクトクラスを含む」。すべてのアカウントが指定したすべてのオブジェクトクラスを含み、さらに「アカウント検索用の LDAP フィルタ」フィールドの LDAP フィルタで指定したフィルタに一致するようにするには、このボックスをチェックします。
検索フィルタが指定されていないときは、このオプションを有効にする必要があります。このオプションを無効にした場合は、調整やリソースからの読み込み機能を使用することによって、指定したオブジェクトクラスの一部が含まれないアカウントを Identity Manager に読み込むことができます。
読み込み後にアカウントの objectclass 属性が自動的に更新されることはありません。存在しないオブジェクトクラスの属性が管理者インタフェースを介して公開された場合に、objectclass 属性を修正せずにこの属性の値を指定すると失敗します。この問題を回避するには、「調整」や「リソースから読み込み」フォームの objectclass の値を上書きします。
「ユーザー名属性」。ディレクトリからユーザーを検索する場合に、Identity Manager ユーザー名にマップする LDAP 属性名を入力します。この名前は、多くの場合、uid または cn です。
「表示名属性」。このアカウント名を表示するときに使用されるリソースアカウント属性名を入力します。
「VLV 並べ替え属性」。リソース上の VLV インデックスに使用するソート属性の名前を入力します。
「ブロックを使用」。ブロック内のユーザーを検出したり処理したりするには、このボックスをチェックします。
多数のユーザーに対して操作を実行するときにブロックでユーザーを処理すると、操作で使用されるメモリー容量が減ります。
「ブロック数」。処理のためにブロックにグループ化されるユーザーの最大数を入力します。
「グループメンバー属性」。ユーザーがグループに追加されるときにそのユーザーの識別名 (DN) で更新されるグループメンバー属性の名前を入力します。
属性名は、グループのオブジェクトクラスに依存します。たとえば、Sun JavaTM System Enterprise Edition Directory Server および他の LDAP サーバーでは、groupOfUniqueNames オブジェクトクラス、および uniqueMember 属性を持つグループが使用されます。他の LDAP サーバーでは、groupOfUniqueNames オブジェクトクラスおよびメンバー属性を持つグループが使用されます。
「パスワードハッシュアルゴリズム」。Identity Manager がパスワードのハッシュに使用できるアルゴリズムを入力します。サポートされる値は、次のとおりです。
SSHA
SHA
SMD5
MD5
0 を指定したか、このフィールドを空白のままにした場合、Identity Manager は、パスワードをハッシュせず、LDAP サーバーがハッシュを実行しない限り、LDAP に平文パスワードを格納します。たとえば、Sun Java System Enterprise Edition Directory Server はパスワードをハッシュします。
「名前属性の変更」。一番左側にある相対識別名 (DN) を表すユーザー属性の変更を許可するには、このボックスをチェックします。多くの場合、ネーミング属性は uid または cn に変更されます。
「LDAP アクティブ化メソッド」。
リソースで有効化または無効化アクションへのパスワードの割り当てが使用されるようにする場合は、このフィールドを空白にします。
nsmanageddisabledrole キーワード、nsaccountlock キーワード、またはこのリソースのユーザーに対してアクティブ化アクションを実行するときに使用するクラス名を入力します。
「LDAP アクティブ化パラメータ」。「LDAP アクティブ化メソッド」フィールドで指定した内容に基づいて、値を入力します。
nsmanageddisabledrole キーワードを指定した場合は、次の形式で値を入力する必要があります。
IDMAttribute=CN=nsmanageddisabledrole,baseContext |
nsaccountlock キーワードを指定した場合は、次の形式で値を入力する必要があります。
IDMAttribute=true |
クラス名を指定した場合は、次の形式で値を入力する必要があります。
IDMAttribute |
「LDAP アクティブ化メソッド」および「LDAP アクティブ化パラメータ」については、『Sun Identity Manager 8.1 Resources Reference 』を参照してください。
「Paged Results Control の使用」。調整中にアカウントを繰り返し使用するために、VLV Control の代わりに LDAP Paged Results Control を使用するには、このチェックボックスをチェックします。
リソースが単純なページング制御をサポートしている必要があります。
「LDAP グループメンバーシップの維持」。ユーザーの名前を変更したり、ユーザーを削除したりするときに、アダプタで LDAP グループのメンバーシップを維持するには、このボックスをチェックします。
このオプションを有効にしなかった場合は、LDAP リソースでグループのメンバーシップが維持されます。
「テスト接続」ボタンをクリックして、データストアの接続設定をテストします。
接続が成功したことを確認するメッセージ、またはその設定でのエラーを報告するメッセージが表示されます。
終了したら、「保存」をクリックしてから「次へ」をクリックして「プロビジョニング担当者への通知設定」ページに進みます。
LDAP リソースにユーザーを作成する前に、有効なアカウント属性とアイデンティティーテンプレートを設定する必要があります。
外部リソースのデータストアを設定したあと、プロビジョニングツール通知を設定する必要があります。要求元通知を設定することもできます。この節では、電子メールまたは Remedy を使用して通知を設定するプロセスについて説明します。
電子メールテンプレートについては、「タスクテンプレートの設定」を参照してください。
1 人以上のプロビジョニングツールへの電子メール通知を設定および送信するには、次の手順に従います。
「プロビジョニング担当者への通知設定」ページで、「プロビジョニング担当者への通知のタイプ」メニューから「Email」を選択します。次の図に示すように、さらにオプションが表示されます。
次のオプションを設定します。
「プロビジョニングリクエストテンプレート」。メニューから「Sample External Provisioning Request」を選択します。電子メールテンプレートを使用して、プロビジョニングツールに外部リソース要求を通知するために使用する電子メールを設定します。
「委任に従う」。Identity Manager でプロビジョニングツールに対して定義された委任に従う場合は、このボックスをチェックします。
「プロビジョニング担当者のエスカレーション規則」(省略可能)。指定されたタイムアウト期間の前に現在のプロビジョニングツールが要求に応答しなかった場合に、その要求のエスカレーション先となるプロビジョニングツールの決定規則を選択します。
このメニューで使用可能なサンプル規則がいくつかありますが、「Sample External Provisioner Escalation」規則を選択するか、独自の規則を使用する必要があります。「Sample External Provisioner Escalation」規則では、外部プロビジョニングツールのエスカレーション規則を使用して、エスカレーション先のプロビジョニングツールを決定します。
「エスカレーションタイムアウト」。プロビジョニング要求を次のプロビジョニングツールにエスカレーションするまで待機する最大時間を指定します。
このフィールドを空白のままにした場合や 0 を入力した場合、要求はエスカレーションされません。
タイムアウトを指定したが、「プロビジョニング担当者のエスカレーション規則」を選択していない場合、要求が指定されたタイムアウトを過ぎると、Identity Manager は要求を設定者にエスカレーションします。設定者が存在しない場合、タイムアウトの期限が切れると、要求は「未完了」として分類されます。
「プロビジョニングリクエストフォーム」。外部リソースのプロビジョニングツールがプロビジョニング要求を完了または未完了としてマークするために使用できるフォームを選択します。
「プロビジョニング担当者の規則」。外部リソースがユーザーに割り当てられる場合にプロビジョニング要求の送信先となるプロビジョニングツールを定義する規則を選択する必要があります。
このために、独自のルールを記述することができます。複数のプロビジョニングツールを定義することもできます。いずれかのプロビジョニングツールがタスクを完了すると、そのタスクはすべてのプロビジョニングツールのキューから削除されます。カスタム規則の記述については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。
このメニューで使用可能なサンプルルールがいくつかありますが、「Sample External Provisioner」ルールを選択するか、独自の規則を使用する必要があります。「Sample External Provisioner」ルールでは、設定者がプロビジョニングツールになります。
「リクエストした人への通知」。要求によって発生した事象についての情報が書かれた電子メールを元の要求元に返信するには、このボックスをチェックします。たとえば、プロビジョニング要求が完了であるか、未完了であるか、といった情報が追加情報として必要です。
このオプションを有効にすると、次の追加フィールドが表示されます。
「プロビジョニングリクエストの完了テンプレート」。要求が完了したときに要求元に通知するための「Sample External Provisioning Request Completed」テンプレートを選択します。
「プロビジョニングリクエストの未完了テンプレート」。要求が完了していないときに要求元に通知するための「Sample External Provisioning Request Not Completed」テンプレートを選択します。
「保存」をクリックします。
「設定」ページに、引き続き別の設定タスクを実行できることが示されます。
「リソース」->「リソースのリスト」タブに移動します。これで、この設定に基づいて個々の外部リソースを作成する準備ができました。手順については、「リソースを作成する」を参照してください。
プロビジョニングツールへの Remedy チケットを作成および送信するには、次の手順に従います。
「プロビジョニング担当者への通知のタイプ」メニューから「Remedy」を選択します。次の図に示すように、さらにオプションが表示されます。
次のオプションを設定します。
「プロビジョニングリクエストの Remedy テンプレート」。メニューから「Sample External Remedy Template」を選択します。
Identity Manager には、サンプルの Remedy テンプレートが用意されており、それを使用することも、必要に応じて変更することもできます。
Remedy テンプレートには、Remedy チケットの作成に使用される一連のフィールドが含まれています。Identity Manager では、Remedy のチケット状態に関するクエリーを実行し、タスクが完了したか完了していないかを確認するためにも、このテンプレートが使用されます。
「プロビジョニングリクエストの Remedy 規則」。Remedy の設定を定義するには、このメニューからルールを選択する必要があります。
このメニューで使用可能なサンプルルールがいくつかありますが、「Sample External Remedy Rule」ルールを選択するか、独自のカスタムルールを使用する必要があります。「Sample External Remedy Rule」では、Remedy ルールを使用して、Remedy チケットの現在の状態が完了しているか完了していないかを判断します。
Remedy テンプレートには、Remedy チケットの作成に使用される一連のフィールドが含まれています。Identity Manager では、Remedy のチケット状態に関するクエリーを実行し、タスクが完了したか完了していないかを確認するためにも、このテンプレートが使用されます。
Identity Manager は、このルールを使用して、Remedy チケットの現在の情報に対してクエリーを実行します。チケット状態が完了または未完了の場合、Identity Manager は作業項目をそれぞれ完了または未完了としてマークします。
このために、独自のルールを記述することができます。「Sample External Remedy Rule」というサンプルルールを使用するか、必要に応じて変更することができます。カスタム規則の記述については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。
「委任に従う」。Identity Manager でプロビジョニングツールに対して定義された委任に従う場合は、このボックスをチェックします。
「プロビジョニング担当者のエスカレーション規則」(省略可能)。指定されたタイムアウト期間の前に現在のプロビジョニングツールが要求に応答しなかった場合に、その要求のエスカレーション先となるプロビジョニングツールの決定規則を選択します。
このメニューで使用可能なサンプル規則がいくつかありますが、「Sample External Provisioner Escalation」規則を選択するか、独自の規則を使用する必要があります。「Sample External Provisioner Escalation」規則では、外部プロビジョニングツールのエスカレーション規則を使用して、エスカレーション先のプロビジョニングツールを決定します。
「エスカレーションタイムアウト」。プロビジョニング要求を次のプロビジョニングツールにエスカレーションするまで待機する最大時間を指定します。
このフィールドを空白のままにした場合や 0 を入力した場合、要求はエスカレーションされません。
タイムアウトを指定したが、「プロビジョニング担当者のエスカレーション規則」を選択していない場合、要求が指定されたタイムアウトを過ぎると、Identity Manager は要求を設定者にエスカレーションします。設定者が存在しない場合、タイムアウトの期限が切れると、要求は「未完了」として分類されます。
「プロビジョニングリクエストフォーム」。外部リソースのプロビジョニングツールがプロビジョニング要求を完了または未完了としてマークするために使用できるフォームを選択します。
「プロビジョニング担当者の規則」。この外部リソース要求に対して 1 人以上のプロビジョニングツールを決定するルールを選択します。
このために、独自のルールを記述することができます。複数のプロビジョニングツールを定義することもできます。いずれかのプロビジョニングツールがタスクを完了すると、そのタスクはすべてのプロビジョニングツールのキューから削除されます。カスタム規則の記述については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。
「Sample External Provisioner」。設定者がプロビジョニングツールになります。
「Sample External Provisioner Escalation」。外部プロビジョニングツールのエスカレーションルールを使用して、エスカレーション先のプロビジョニングツールを決定します。
「Sample External Remedy Rule」。Remedy の設定者の設定を定義します。
「リクエストした人への通知」。要求が完了したとき、または完了しないときに、要求元に電子メールを送信する場合は、このボックスをチェックします。このオプションを有効にすると、次の追加フィールドが表示されます。
「プロビジョニングリクエストの完了テンプレート」。要求が完了したときに使用する電子メールテンプレートを選択します。
「プロビジョニングリクエストの未完了テンプレート」。要求が完了しないときに使用する電子メールテンプレートを選択します。
電子メールテンプレートについては、「タスクテンプレートの設定」を参照してください。
「保存」をクリックします。
「設定」ページに、引き続き別の設定タスクを実行できることが示されます。
「リソース」->「リソースのリスト」タブに移動します。これで、この設定に基づいて個々の外部リソースを作成する準備ができました。手順については、「外部リソースの作成」を参照してください。