Sun Identity Manager 8.1 リソースリファレンス

第 8 章 BridgeStream SmartRoles

BridgeStream SmartRoles アダプタは、ユーザーを SmartRoles にプロビジョニングします。このアダプタは、これらのユーザーを SmartRoles 内で適切な組織に配置することで、これらのユーザーが持つべきビジネスロールを SmartRoles によって決定できるようにします。

アダプタの詳細

SmartRoles からユーザーを検出するときに、アダプタはユーザーのビジネスロールを検出します。これらのビジネスロールは、ユーザーに割り当てる必要のある Identity Manager のロール、リソース、属性、およびアクセスを決定するために、Identity Manager 内で使用できます。

さらに、SmartRoles を、Active Sync を使用するユーザー変更のソースにすることもできます。SmartRoles ユーザーを Identity Manager にロードして、それらを調整できます。

BridgeStream SmartRoles リソースアダプタは、com.waveset.adapter.SmartRolesResourceAdapter クラスで定義されます。

リソースを設定する際の注意事項

なし

Identity Manager のインストールに関する注意事項

SmartRoles アダプタは、カスタムアダプタです。インストールプロセスを完了するには、次の手順を実行してください。

ProcedureSmartRules アダプタをインストールする

  1. SmartRoles リソースを Identity Manager のリソースリストに追加するには、「管理するリソースの設定」ページの「カスタムリソース」セクションに次の値を追加する必要があります。


    com.waveset.adapter.SmartRolesResourceAdapter
  2. 次の JAR ファイルを、SmartRoles インストールディレクトリ (SR_install_dir/Foundation/lib) から $WSHOME/WEB-INF/lib にコピーします。

    • bridgestream-common.jar

      • jgroups-all.jar

      • log4j-1.2.8.jar

      • rowset.jar

      • fxrm.jar

      • jmxri.jar

      • ojdbc14.jar

      • jcert.jar

      • jmxtools.jar

      • ojdbc14_g.jar

  3. 次のファイルを、SR_install_dir /Foundation/config ディレクトリから $WSHOME/WEB-INF/classes ディレクトリにコピーします。

    • bridgestream_jaas.config

      • log4j.properties

      • foundation_config.xml

      • foundation_config.dtd

  4. log4j.properties ファイルを編集して、log4j.appender.debuglog.File および log4j.appender.logfile.File プロパティーファイル内のログファイルへのパスを指定します。これらのプロパティーは両方とも同じファイルを指定できます。

  5. Identity Manager を実行している JVM に、次の Java システムプロパティーを設定します。

    システムプロパティー  

    値  

    java.security.auth.login.config

    bridgestream_jaas.config ファイルへのパス

    brLoggingConfig

    log4j.properties ファイルへのパス

    brfConfig

    foundation_config.xml および foundation_config.dtd ファイルへのパス


    注 –

    これらのプロパティーを JVM のコマンド行に指定する必要がある場合は、-D オプションを使用して、次のようにプロパティーを設定します。



    -Djava.security.auth.login.config=PathToBridgestream_jaas.config
    -DbrLoggingConfig=PathTolog4j.properties
    -DbrfConfig=PathTofoundation_config.xml and  foundation_config.dtd files

使用上の注意

ここでは、SmartRoles リソースアダプタの使用に関連する情報を提供します。説明する内容は次のとおりです。

全般的な注意事項

このリソースに関する全般的な注意事項は次のとおりです。

Complex 属性のサポート

Identity Manager では新しい complex 属性タイプが導入され、これによって SmartRoles アダプタが複雑な属性をサポートできるようになりました。この complex 属性タイプは、属性値が単一の値や値のリストよりも複雑な場合に使用されます。この新しい complex タイプは、次の属性とともに使用されます。

Complex 属性の属性値は、新しい com.waveset.object.GenericAttribute クラスのインスタンスです。GenericAttribute インスタンスは、実際の属性値情報を格納している GenericObject インスタンスをラップします。GenericObject は、パス表現を使用して設定および取得できる階層内に、属性と値を格納します。

ResourceAction のサポート

このアダプタは before および after アクションをサポートしていませんが、runResourceAction プロビジョニングワークフローサービスを使用して、実行中のアクションをサポートしています。SmartRoles アクションは JavaScript または BeanShell で作成でき、作成されたアクションは SmartRoles API を呼び出してワークフローの一部としてカスタム動作を実行できます。アクションスクリプトへの入力は、actionContext という名前のマップオブジェクトに格納されます。actionContext マップに格納される内容は次のとおりです。

キー  

値  

action

実行しているアクションのタイプを説明する文字列。現在、このアクションをrun 以外にすることはできません。

adapter

com.waveset.adapter.SmartRolesResourceAdapter インスタンスへの参照を格納します。

additionalArgs

runResourceAction プロビジョニングワークフローサービスの呼び出しに渡される追加の引数を格納するマップです。

result

runResourceAction プロビジョニングワークフローサービスの呼び出しから返される WavesetResult への参照。

session

SmartRoles の IOMSession インスタンスへの参照。セッションは、SmartRoles リソースで定義される管理者とパスワードを使用して作成されます。

trace

com.waveset.adapter.SmartRolesResourceAdapter クラスに関連付けられた com.sun.idm.logging.trace.Trace インスタンスへの参照。これを使用して、アクションスクリプトのデバッグに使用するためのトレースメッセージを出力できます。

次に示す ResourceAction XML は、BeanShell アクションの例です。JavaScript アクションの場合は actionType を JAVASCRIPT に設定します。このアクションは、additionalArgs マップから取得された user という名前の引数を使用し、SmartRoles リポジトリを検索して、user 引数の値と一致する LOGON_ID を持つ 1 つ以上の Person オブジェクトを見つけます。すると、一致したそれぞれの Person の文字列表現は、ACTION_RC ResultItem 内の WavesetResult に返されます。

<?xml version=’1.0’ encoding=’UTF-8’?>
<!DOCTYPE ResourceAction PUBLIC ’waveset.dtd’ ’waveset.dtd’>
<!--  MemberObjectGroups="#ID#Top"-->
<ResourceAction createDate=’1148443502593’>
   <ResTypeAction restype=’SmartRoles’ timeout=’0’ actionType=’BEANSHELL’>
      <act>
         import bridgestream.core.*;
         import bridgestream.util.*;
         import bridgestream.temporal.person.*;
         import java.util.*;
         import com.waveset.object.*;
         IOMSession session = actionContext.get("session");
         OMEngine engine = OMEngine.getInstance(session);
         String user = actionContext.get("additionalArgs").get("user");
         UTNameValuePair[] criteria = new UTNameValuePair[] { new UTNameValuePair
            ("LOGON_ID", user) };
         UTTimestamp time = UTTimestamp.getSystemTimestamp();
         List list = session.search("PERSON", criteria, time, null, null);
         Iterator iter = list.iterator();
         StringBuffer buf = new StringBuffer();
         while (iter.hasNext()) {
            ENPerson person = (ENPerson)iter.next();
            buf.append(person.toString());
            buf.append("\n\n");
         }
         WavesetResult result = actionContext.get("result");
         result.addResult("ACTION_RC", buf.toString());
      </act>
   </ResTypeAction>
   <MemberObjectGroups>
      <ObjectRef type=’ObjectGroup’ id=’#ID#Top’ name=’Top’/>
   </MemberObjectGroups>
</ResourceAction>

制限事項

現在、このアダプタには次のような制限があります。

セキュリティーに関する注意事項

ここでは、サポートされる接続と特権の要件について説明します。

サポートされる接続

SmartRoles アダプタは、SmartRoles インストールからコピーされた設定ファイルの指定どおりに、SmartRoles リポジトリと通信します。この接続設定の詳細については、SmartRoles 製品のマニュアルを参照してください。

必要な管理特権

アダプタが SmartRoles に接続するために使用するユーザーには、SmartRoles ユーザーを管理できるロール (SmartRoles 管理者ロールなど) を割り当ててください。

プロビジョニングに関する注意事項

次の表に、このアダプタのプロビジョニング機能の概要を示します。

機能  

サポート状況  

アカウントの有効化/無効化 

あり 

アカウントを無効にすると、アカウントは SmartRoles にログインできなくなります。 

アカウントの名前の変更 

あり 

パススルー認証 

なし 

前アクションと後アクション 

なし 

runResourceAction プロビジョニングワークフローサービスを使用して、ワークフローからアクションを実行できます。詳細については、「ResourceAction のサポート」の節を参照してください。

データ読み込みメソッド 

  • リソースからインポート

  • Active Sync

  • 調整

アカウント属性

SmartRoles アダプタでは、次のアイデンティティーシステムユーザー属性を使用できます。

ユーザー属性  

データ型  

説明  

sr_allRoles

String 

許可されて派生したロールのリスト (読み取り専用) 

sr_departments

String 

ユーザーがメンバーになっている部署のリスト (読み取り専用) 

sr_derivedRoles

String 

規則またはポリシーに基づいて割り当てられたロール (読み取り専用) 

sr_financialGroups

String 

ユーザーがメンバーになっている FinancialGroup のリスト (読み取り専用) 

sr_financialTeams

String 

ユーザーがメンバーになっている FinancialTeam のリスト (読み取り専用) 

sr_grantedRoles

String 

Person に直接許可されたロール (読み取り専用) 

sr_grantedRolesSphere

complex 

許可されたロールと各ロールの制御範囲を規定する complex 属性。制御範囲によって、アカウントのロールの対象となる組織を指定します。 

GenericAttribute 内の GenericObject のスキーマは次のとおりです。

  • roles[*] - アカウントに許可されたロールのリスト。

  • roles[index].roleName - 許可されたロールの名前。

  • roles[index].organizations - アカウントがロールを持つ組織のリスト。

    注: このリストで組織を指定すると、子の組織もすべて指定されます。このリスト内で明示的に子の組織も指定すると、エラーが発生します。

sr_groups

String 

ユーザーがメンバーになっているグループのリスト (読み取り専用) 

sr_organizations

complex 

直接または従業員を経由して組織のメンバーシップを規定する complex 属性。組織のメンバーシップは、部署、グループ、チームを含むすべての組織タイプに適用されます。(読み取り/書き込み) 

GenericAttribute 内の GenericObject のスキーマは次のとおりです。

  • organizations[*] - アカウントがメンバーになっている組織のリスト。

  • organizations[index ].orgName - 組織名 (必須)。

  • organizations[index ].duties - 組織内のアカウントの責任を記述した文字列 (省略可能)。

  • organizations[index ].memberRoles - アカウントと組織との関係を説明するメンバーシップロールのリスト。有効な値は、HEADPRIMARYSECONDARYLIAISONCONTRIBUTORTEAM ADMINISTRATOR、および TEAM MEMBER です (省略可能ですが指定してください)。

    organizations[index].viaWorker - 組織のメンバーシップを、そのアカウントに関連付けられた従業員 (Person) に割り当てられたアカウントに直接割り当てるかどうかを示すブール値。

sr_positions

complex 

position を使用して役職名や組織のメンバーシップを規定する complex 属性。組織のメンバーシップは、部署、グループ、チームを含むすべての組織タイプに適用されます。(読み取り/書き込み) 

GenericAttribute 内の GenericObject のスキーマは次のとおりです。

  • positions[*] - アカウントが割り当てられている役職名のリスト。

  • positions[index].title - 役職名 (必須)。

  • positions[index].jobCode - 役職名に関連付けられたジョブコード (省略可能)。

  • positions[index].duties - 役職の責任を記述した文字列 (省略可能)。

  • positions[index].organizations[*] - その役職名がメンバーになっている組織のリスト。各組織の属性は、sr_organizations 属性に記述されます。ただし、viaWorker 属性のみは例外で、このコンテキストでは無効です。

sr_teams

String 

ユーザーがメンバーになっているチームのリスト (読み取り専用) 

属性の名前空間を使用して、関連するオブジェクトや配下のオブジェクトの属性を総称的に指定します。次のように「ドットの付いた」構文を使用します。

namespace.attribute_name

リソースオブジェクトの管理

SmartRoles アダプタは、オブジェクトの表示のみをサポートしており、次のオブジェクトタイプをサポートします。

オブジェクトを表示するときには、option マップに次のオプションを指定できます。

オプション名  

説明  

searchContext

(ResourceAdapter.RA_SEARCH_CONTEXT)

どのコンテキストで検索を実行するかを決定します。subTree 以外の searchScope を使用して組織を表示する場合のみ、このオプションを使用します。

このオプションを指定しない場合、最上位レベルの組織が表示されます。それ以外の場合は、検索を開始する組織の名前を使用してください。 

searchScope

(ResourceAdapter.RA_SEARCH_SCOPE)

現在のオブジェクトを、指定した searchContext のコンテキスト内のみから検索するのか、指定した searchContext 内のすべてのサブコンテキストから検索するのかを指定します。

有効な値は次のとおりです。 

  • object

  • oneLevel

  • subTree (デフォルト)

    このオプションは、organization 以外のすべてのオブジェクトタイプで無視されます。

searchFilter

(ResourceAdapter.RA_SEARCH_FILTER)

返されるオブジェクトのリストをフィルタするために使用するキーと値のペアのセットを含むマップを指定します。これらのオブジェクトは、マップ内の対応する値と一致する値の属性を持つようになります。 

このオプションを指定しない場合、指定したタイプのすべてのオブジェクトがアダプタによって返されます。 

searchAttrsToGet

(ResourceAdapter.RA_SEARCH_ATTRS_TO_GET)

オブジェクトごとに取得する objectType 固有の属性名のリストを指定します。 

アイデンティティーテンプレート

$Logon ID$

サンプルフォーム

SmartRoles リソースアダプタには、次のサンプルフォームが用意されています。

組み込みのフォーム

なし

その他の利用可能なフォーム

SmartRolesUserForm.xml

トラブルシューティング

Identity Manager のデバッグページを使用して、com.waveset.adapter.SmartRolesResourceAdapter クラスでトレースオプションを設定します。

JVM のシステムプロパティー内で設定した log4j.properties ファイルを編集することで、SmartRoles API の DEBUG ロギングを有効にすることもできます。

ProcedureSmartRoles API の DEBUG ロギングを有効にする

  1. log4j.appender.debuglog.File および log4j.appender.logfile.File properties が有効なファイルパスに設定されていることを確認します。

  2. 次のように、log4j.logger.bridgestream プロパティーを DEBUG に設定します。


    log4j.logger.bridgestream=DEBUG
  3. これらのログ設定を有効にするために、サーバーを再起動します。