Servigistics InService の導入 > 高度な設定 > ユーザーのエンタープライズ属性のマッピング
  
ユーザーのエンタープライズ属性のマッピング
エンタープライズシステムで定義されているユーザー属性を使用して、ユーザープロビジョニングプロセスの一部を自動化することができます。たとえば、これらのエンタープライズ属性の値に基づいて、ユーザーを特定のプロフィールとサービスグループに自動的に割り当てることができます。
* 
LDAP の属性値ではコンマを区切り記号として使用できません。区切り記号としてはセミコロンを使用してください。
エンタープライズアイデンティティ管理システムの属性を Servigistics InService のエンタープライズ属性にマッピングするには、以下の手順に従います。
* 
このセクションの例では、具体例を示す目的で PTC および Windchill LDAP システムを使用しています。お使いの環境に応じて、コマンドとコードを編集してください。
1. Info*Engine Administration ユーティリティにログインします。ユーザーにマッピングする追加の属性を含んでいる LDAP があるので、この LDAP 用に設定されている JNDI アダプタを選択します。
* 
ここで使用するログインアイデンティティは、Servigistics InService 管理者のアイデンティティと同じである必要はありません。これは内部 LDAP システムへのログインであり、インストール中に設定されています。一般的なログインとパスワードの設定は、cn=Manager/admin です。
外部 LDAP ユーザーを使用するには、外部 LDAP システム用に設定されている外部 JNDI アダプタを選択します。詳細については、外部 LDAP システムを使用するための Servigistics InService の設定を参照してください。
2. JNDI アダプタのプロパティページに移動し、「その他のプロパティ」セクションに次のプロパティを追加します。
<service.name>.windchill.mapping.user.attributes
3. このプロパティの値としてマッピングする属性を (コンマで区切って) 入力します。
4. アダプタを保存します。
5. <InService_ホーム>\InS_SW\SW\Applications\Windchill.ear\codebase.war に移動し、次のファイルを開きます。
LogicalAttributes.xml
6. WTUser クラス名の定義をサーチし、前のステップで作成した属性の定義をこのセクションに追加します。たとえば、属性名が title の場合、その定義は下に示すようになります。LogicalForm タグ内の値が、前のステップで定義した属性と同じであることを確認します。属性は大文字と小文字が区別されます。
<Property>
<LogicalForm>title<LogicalForm>
<ExternalForm>SCA|title.key</ExternalForm>
<Property>
7. カスタマイズのためにサポートされているリソースバンドルに、次のものを追加します。
作成した各属性に対するすべての追加定義
これらの属性を取得するために呼び出す必要がある、対応するすべての Server Calculated Attribute Functions (SCAF)
たとえば、<InService_ホーム>\SW\Applications\Windchill.ear\src\wt\org に移動し、orgModelRB.rbInfo ファイルを修正して次のようなエントリを追加します。
WCTYPE|wt.org.WTUser~SCA|title.key.value=Title
WCTYPE|wt.org.WTUser~SCA|title.key.abbreviatedDisplay=Title
WCTYPE|wt.org.WTUser~SCA|title.key.dataType=java.lang.String
WCTYPE|wt.org.WTUser~SCA|title.key.serverFunction=
com.ptc.core.foundation.org.server.impl.SACFLdapAttributeContainerFunction
WCTYPE|wt.org.WTUser~SCA|title.key.serverFunction.arg1=String{title}
* 
serverFunction の値は、独自の SCAF 関数を作成しない場合は、上記と同じままである必要があります。さらに、属性がブール値として定義されている場合は、key.dataTypejava.lang.Boolean にする必要があります。key.serverFunction でタイプを変更しないでください。これは常に文字列型にする必要があります。
8. コマンドプロンプトで次のコマンドを実行して、対応する .ser ファイルをランタイム場所 (<InService_ホーム>\InS_SW\SW\Applications\Windchill.ear\codebase.war\wt\org など) に生成します。
tools bundle -Dbundle.input=<Servigistics InService_HOME>\InS_SW\SW\
Applications\Windchill.ear\
src\wt\org -Dbundle.recurse=true
9. Core/src/com/ptc/sc/resource/ に移動して、その他の属性エントリを SCEnterpriseAttributesRB.java に追加します。たとえば、属性 "Title" を追加するには、次のように追加します。
@RBEntry("Title")
public static final String TITLE = "title";
10. 次のコマンドを使用して java クラスをコンパイルします。
Javac -d <WT_HOME>/codebase.war/WEB-INF/classes ./SCEnterpriseAttributesRB.java
11. 管理者として Servigistics InService にログインし、「属性」に移動します。「ユーザー」を選択し、上の手順で追加した属性とほぼ同じ名前の新しい属性を追加します。この例では、title にします。「属性を作成」をクリックして、属性を「ユーザー」以下に追加します。Mapping は、LogicalAttributes.xml ファイルの値 ExternalForm と正確に同じにする必要があります。次に例を示します。
Internal Name: title
Data Type: String
Display Name: Title
Description: Job Title
Mapping: SCA|title.key
12. Servigistics InService サーバーを再起動します。