資格証明マッピングタスクの生成
認証マッピングタスクから出力グループとして生成される 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 パラメータ値を決定します。