SmartRoles からユーザーを検出するときに、アダプタはユーザーのビジネスロールを検出します。これらのビジネスロールは、ユーザーに割り当てる必要のある Identity Manager のロール、リソース、属性、およびアクセスを決定するために、Identity Manager 内で使用できます。
さらに、SmartRoles を、Active Sync を使用するユーザー変更のソースにすることもできます。SmartRoles ユーザーを Identity Manager にロードして、それらを調整できます。
BridgeStream SmartRoles リソースアダプタは、com.waveset.adapter.SmartRolesResourceAdapter クラスで定義されます。
なし
SmartRoles アダプタは、カスタムアダプタです。インストールプロセスを完了するには、次の手順を実行してください。
SmartRoles リソースを Identity Manager のリソースリストに追加するには、「管理するリソースの設定」ページの「カスタムリソース」セクションに次の値を追加する必要があります。
com.waveset.adapter.SmartRolesResourceAdapter |
次の JAR ファイルを、SmartRoles インストールディレクトリ (SR_install_dir/Foundation/lib) から $WSHOME/WEB-INF/lib にコピーします。
次のファイルを、SR_install_dir /Foundation/config ディレクトリから $WSHOME/WEB-INF/classes ディレクトリにコピーします。
log4j.properties ファイルを編集して、log4j.appender.debuglog.File および log4j.appender.logfile.File プロパティーファイル内のログファイルへのパスを指定します。これらのプロパティーは両方とも同じファイルを指定できます。
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 属性のサポート
制限事項
このリソースに関する全般的な注意事項は次のとおりです。
SmartRoles アダプタは SmartRoles リポジトリと直接通信するため、このアダプタを動作させるために Relationship Manager アプリケーションを実行する必要はありません。
このアダプタは汎用 ID を生成し、設定ファイル内に接続情報を格納できます。
SmartRoles アダプタを設定するときに、SmartRoles で新しいアカウントの汎用 ID を生成するか、アダプタで汎用 ID を提供するかを選択できます。アダプタで ID を提供する場合は、アイデンティティーテンプレートで生成された値が使用されます。
Identity Manager では新しい complex 属性タイプが導入され、これによって SmartRoles アダプタが複雑な属性をサポートできるようになりました。この complex 属性タイプは、属性値が単一の値や値のリストよりも複雑な場合に使用されます。この新しい complex タイプは、次の属性とともに使用されます。
sr_positions
sr_grantedRolesSphere
sr_organizations
Complex 属性の属性値は、新しい com.waveset.object.GenericAttribute クラスのインスタンスです。GenericAttribute インスタンスは、実際の属性値情報を格納している GenericObject インスタンスをラップします。GenericObject は、パス表現を使用して設定および取得できる階層内に、属性と値を格納します。
このアダプタは 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 の person オブジェクトにのみ許可されます。position オブジェクトにロールを許可することはできません。
Identity Manager では、1 つの SmartRoles インストールとの通信のみ設定できます。
許可されたロール範囲の制御を割り当てる場合、その範囲の制御内の組織には、直接割り当てられた組織だけでなく、それらの組織のすべての子孫も含まれます。割り当て済みの組織の子孫を割り当てようとすると、エラーが発生します。
アダプタは SmartRoles の組織を名前で参照するため、SmartRoles 内の組織名は一意にしてください。
SmartRoles の person オブジェクトを position に割り当てるときに、アダプタは使用可能な position を見つけようとはしません。代わりに、アダプタは常に新しい position オブジェクトを作成し、person オブジェクトをその新しい position に割り当てます。
ここでは、サポートされる接続と特権の要件について説明します。
SmartRoles アダプタは、SmartRoles インストールからコピーされた設定ファイルの指定どおりに、SmartRoles リポジトリと通信します。この接続設定の詳細については、SmartRoles 製品のマニュアルを参照してください。
アダプタが SmartRoles に接続するために使用するユーザーには、SmartRoles ユーザーを管理できるロール (SmartRoles 管理者ロールなど) を割り当ててください。
次の表に、このアダプタのプロビジョニング機能の概要を示します。
SmartRoles アダプタでは、次のアイデンティティーシステムユーザー属性を使用できます。
属性の名前空間を使用して、関連するオブジェクトや配下のオブジェクトの属性を総称的に指定します。次のように「ドットの付いた」構文を使用します。
namespace.attribute_name
Worker 属性には、WORKER を使用します (例: WORKER.WORKER_TYPE)
Person オブジェクトに対する追加の属性を含む情報オブジェクトには、X500_PERSON および AUTHENTICATION_INFO 名前空間を使用します。
X500_PERSON には、POSTAL_ADDRESS、SECRETARY などの属性が含まれます
AUTHENTICATION_INFO には、LOGON_ATTEMPTS、PASSWORD_CHANGED (日付) などの属性が含まれます
SmartRoles アダプタは、オブジェクトの表示のみをサポートしており、次のオブジェクトタイプをサポートします。
組織
ロール
オブジェクトを表示するときには、option マップに次のオプションを指定できます。
SmartRoles リソースアダプタには、次のサンプルフォームが用意されています。
なし
SmartRolesUserForm.xml
Identity Manager のデバッグページを使用して、com.waveset.adapter.SmartRolesResourceAdapter クラスでトレースオプションを設定します。
JVM のシステムプロパティー内で設定した log4j.properties ファイルを編集することで、SmartRoles API の DEBUG ロギングを有効にすることもできます。