アダプタの資格証明マッピング
アダプタの資格証明マッピングは、以下のプロセスを使用して動作します。
• Windchill は、資格証明マッピングタスクを含めるように事前設定されています。このタスクは、Windchill アダプタによって /wt/federation/MapCredentials.xml に設定される wt.federation.task.mapCredentials プロパティの値を使用して設定されます。このタスクのコンテンツは、動的に生成されます。まず、以下のファイルが生成されます。
<Windchill>/tasks/wt/federation/MapCredentials.xml.template
ここでは、site.xconf 内のプロパティ値が使用されます。
Windchill のユーザーおよびグループ情報への LDAP アクセスは、この資格証明マッピングによって決定され、現在のユーザーが管理者であるか一般ユーザーであるかに基づいてアダプタに資格証明を提供できます。マッピングされた資格証明を変更するには、site.xconf でプロパティを設定できます。詳細については、MapCredentials.xml.template のコンテンツと後述の「資格証明タスクの管理」を参照してください。
|
このタスクをカスタマイズする必要がある場合は、MapCredentials.xml.template ファイルを変更します。また、パッチまたはメンテナンスリリースをインストールすると、カスタマイズした内容が上書きされることがあるため、バックアップコピーを作成することをお勧めします。
|
• Info*Engine 管理者は、.credentialsMapper という名前のコンフィギュレーションプロパティ (マッピングタスクを定義し、資格証明マッピングを有効にする) を設定し、.credentialsTimeToLive および .credentialsFiles プロパティ (情報がキャッシュされる時間とマッピング情報を持つファイルがほかにあるかどうかを示す) をオプションで設定します。
• Info*Engine は、JSP ページまたはアダプタにアクセスするタスクを分析して実行するときに呼び出され、資格証明マッピングタスクが定義されているかどうかをチェックします。定義されていることが判明すると、初めに渡されていた JSP ページまたはタスクの実行前に指定されたタスクを実行します。資格証明マッピングタスクによって生成された出力グループは、Auth-Map という名前のコンテキストグループとして保存されます。
• Info*Engine は、アダプタにルーティングする必要のある Webject を検出すると、その Webject をチェックして、DBUSER および PASSWD パラメータが明確に指定されているかどうかを確認します。パラメータが指定されていない場合は、Webject INSTANCE パラメータの値をキーとして使用し、Auth-Map コンテキストグループ内の DBUSER および PASSWD 値を検索します。値が見つかったら、タスクの著作者によって値を明確に指定したように Webject に追加します。それ以外の場合は、変更されていないアダプタに Webject がルーティングされます。
資格証明マッピングタスクの生成
認証マッピングタスクから出力グループとして生成される Auth-Map コンテキストグループの各要素には、INSTANCE、DBUSER、および PASSWD という 3 つの属性が含まれている必要があります。INSTANCE の値によって、エレメントを適用するアダプタを識別します。明確な DBUSER および PASSWD パラメータが Adapter Webject で指定されていない場合、DBUSER および PASSWD の値によってアダプタに渡される認証情報が指定されます。
資格証明マッピングタスクが実行されると、通常のコンテキスト情報がすべて使用可能になります。たとえば、SERVER コンテキストグループが使用可能になります。ブラウザによって Info*Engine に送信されたリクエストが Web サーバーで認証されると、SERVER グループに Auth-User という属性が含められます。この属性によって、Web サーバーによって認証されたユーザー名が指定されます。資格証明マッピングタスクは、複数のアダプタアクセス可能情報システムからユーザー指定の認証情報を取得するためのキーとしてユーザー名を使用できます。取得した認証情報からは出力グループを作成できます。
以下の資格証明マッピングタスクの例では、対応する DBUSER および PASSWD 値を持つ有効なユーザー名と INSTANCE の組み合わせをすべて含むグループを作成します。このグループから、認証済みのユーザー名を含む要素のみを選択します。次に、これらの要素は Auth-Map グループを構成します。
<%@page language="java" session="false"%>
<%@taglib uri="http://www.ptc.com/infoengine/taglib/core" prefix="ie"%>
<!-- Create a group from specified parameters -->
<ie:webject name="Create-Group" type="GRP">
<ie:param name="GROUP_OUT" data="AuthGroup"/>
<ie:param name="CLASS" data="AuthorizationRecord"/>
<ie:param name="DELIMITER" data=":"/>
<ie:param name="ELEMENT" data="USERNAME=abc:INSTANCE=com.myHost.jdbcScott:
DBUSER=scott:PASSWD=tiger"/>
<ie:param name="ELEMENT" data="USERNAME=abc:INSTANCE=com.myHost.jdbcAdapter:
DBUSER=abc:PASSWD=abc123"/>
<ie:param name="ELEMENT" data="USERNAME=xyz:INSTANCE=com.myHost.myGateway:
DBUSER=xyz:PASSWD=xyz123"/>
<ie:param name="ELEMENT" data="USERNAME=test:INSTANCE=com.myHost.myGateway:
DBUSER=mno:PASSWD=mno123"/>
</ie:webject>
<!-- Select subset for actual Auth-Map group based on authenticated user -->
<ie:webject name="Subset-Group" type="GRP">
<ie:param name="GROUP_IN" data="AuthGroup"/>
<ie:param name="FILTER" data="USERNAME='$(SERVER[]AUTH-USER[0])'"/>
<ie:param name="CASE_IGNORE" data="TRUE"/>
<ie:param name="GROUP_OUT" data="Auth-Map"/>
</ie:webject>
認証済みのユーザーが abc の場合にこのタスクを実行すると、結果として生成される Auth-Map グループ内の要素は以下のようになります。
USERNAME
|
INSTANCE
|
DBUSER
|
PASSWD
|
abc
|
com.myHost.jdbcScott
|
scott
|
tiger
|
abc
|
com.myHost.jdbcAdapter
|
abc
|
abc123
|
次に、Info*Engine は、Webject INSTANCE パラメータを使用して、追加する DBUSER および PASSWD パラメータ値を決定します。
資格証明マッピングファイルの作成
資格証明マッピングファイルによって、各ユーザーの初期 DBUSER および PASSWD パラメータの設定方法が提供されます。各ファイル名はユーザー名となります。特定のユーザーのファイルでは、各ラインが以下のフォーマットである 1 つまたは複数のラインを入力します。
instance:dbuser:passwd
ここで、
instance には、Info*Engine アダプタの名前を指定します。
dbuser には、Webject の DBUSER パラメータに設定されるユーザー名を指定します。
passwd には、ユーザー名に対応するパスワードを指定します。これは、Webject の PASSWD パラメータに設定される値です。
結果として生成されるファイルには、情報システムへのアクセスに使用できるユーザー名とパスワードが含まれます。
資格証明ファイルを含んでいるディレクトリへのパスは、wt.federation.mapCredentials.files の wt.property を使用して設定できます。このプロパティを設定しないと、資格証明マッピングファイルは使用されません。
資格証明マッピングファイルを使用して資格証明マッピングを有効にするには、タスクプロセッサの .secret.text または .secret.text2 プロパティに secret (機密) を設定することにより、要求情報を検証する必要があります。
wt.federation.mapCredentials.files および wt.federation.task.mapCredentials プロパティが両方とも設定されていると、ファイルベースのマッピングが最初に実施され、次に資格証明マッピングタスクが実行されます。これによって、一部のベースまたはデフォルトのマッピング情報がファイルを介して指定され、次にタスクによって補足されるか、オーバーライドされます。
資格証明タスクの管理
特定の Info*Engine アダプタのユーザー名とパスワードを指定するためには、
MapCredentials.xml ファイルが使用されます。このファイルは、xconfmanager を使用して更新および管理されます。これを手動で編集することはできません。手動で編集すると、適用操作が実行されるときに、xconfmanager がこれらの値を
site.xconf ファイルから取得した値で上書きします。詳細については、
xconfmanager ユーティリティについてを参照してください。
ユーザー名およびパスワードの資格証明を設定するために使用されるプロパティには、2 つのバリエーションがあります。Windchill が Windchill 管理者 (管理権限を持つユーザー) に代わってアダプタにアクセスするときには、mapcredentials.admin.adapters プロパティが使用されます。Windchill が管理権限を持たないユーザーに代わってアダプタにアクセスするときには、mapcredentials.nonprivileged.adapters プロパティが使用されます。
xconfmanager ユーティリティを使用すると、以下のようなコマンドを実行して、これらのプロパティを設定できます。
xconfmanager -p -s "mapcredentials.admin.adapters=<adapter name>^
<privileged User>^<privileged user password>"
-t "codebase/WEB-INF/mapCredentials.txt"
Windchill 管理者の資格証明を設定するには、以下のコマンドを使用します。
mapcredentials.admin.adapters=<unique name of the adapter>^<username>^<password>
Windchill の管理権限を持たないユーザーの資格証明を設定するには、以下のコマンドを使用します。
mapcredentials.nonprivileged.adapters=<unique name of the adapter>^<username>^<password>
このプロパティのどちらのバリエーションも複数の値をとり、デフォルトは定義されていません。アダプタ定義を追加するには xconfmanager で -add コマンドを使用し、アダプタ定義を削除するには -set を使用します。
たとえば、インストール中、さまざまな JNDI アダプタの資格証明を定義するには、以下の xconfmanager コマンドが実行されます。
xconfmanager -p --set "mapcredentials.admin.adapters=com.ptc.ptcnet.LDAP^cn=manager,
0=ptc^admin"
-t "codebase/WEB-INF/mapCredentials.txt"
xconfmanager -p --add "mapcredentials.admin.adapters=com.ptc.ptcnet.EnterpriseLdap^
cn=manager^admin"
-t "codebase/WEB-INF/mapCredentials.txt"
xconfmanager -p --add "mapcredentials.admin.adapters=com.ptc.ptcnet.Ldap-Pending^
cn=manager^admin"
-t "codebase/WEB-INF/mapCredentials.txt"
権限のないアダプタを追加するには、以下が実行されます。
xconfmanager -p --set "mapcredentials.nonprivileged.adapters=enterpriseAdapter1^
cn=nonprivuser1,o=ptc^password1"
-t "codebase/WEB-INF/mapCredentials.txt"
アダプタを削除するには、以下が実行されます。
xconfmanager -p --remove "mapcredentials.nonprivileged.adapters=enterpriseAdapter1^
cn=nonprivuser1,o=ptc^encrypted.enterpriseAdapter1.cn=nonprivuser1,o=ptc"
-t "codebase/WEB-INF/mapCredentials.txt"
MapCredentials タスクをリセットして、指定したタイプのすべての定義をクリアするには、以下が実行されます。
xconfmanager -p --reset "mapcredentials.nonprivileged.adapters"
-t "codebase/WEB-INF/mapCredentials.txt"
xconfmanager -p --reset "mapcredentials.admin.adapters"
-t "codebase/WEB-INF/mapCredentials.txt"