手動タスクサービスドライバは、データイベントが発生したこと、およびユーザ側でアクションが必要かどうかを1人または複数のユーザに通知するために開発されました。従業員のプロビジョニングシナリオでは、データイベントが新しいユーザオブジェクトの作成で、ユーザアクションには、eDirectoryまたはアプリケーションにデータを入力してオフィス番号を割り当てる作業が含まれます。他のシナリオとしては、新しいユーザオブジェクトが作成されたことの管理者への通知、ユーザがオブジェクト上のデータを変更したことの管理者への通知などがあります。
通常、手動タスクサービスドライバの設定には、独立してはいるものの関連性のある2つのサブシステムの設定が含まれます。つまり、購読者チャネルのポリシーと電子メールテンプレート、および発行者チャネルのWebサーバテンプレートとポリシーです。
SMTPサーバ名、Webサーバポート番号などのドライバパラメータも設定する必要があります。
この節では、次の項目について説明します。
インストール: Identity Managerインストールプログラムを使用して[メタディレクトリサーバ]オプションをインストールするときに、手動タスクサービスのドライバが自動的にインストールされます。
プラットフォーム: ドライバは、Identity Managerおよびリモートローダによってサポートされているプラットフォームで実行されます。
アクティベーション: ドライバは、別のアクティベーションを必要としません。メタディレクトリエンジンをアクティブにすると、このドライバもアクティブになります。
この節では、さまざまなドライバ機能に関する情報について説明します。
次の2つの主な操作モードがサポートされています。
データの直接要求: ユーザがeDirectoryにデータを入力することを要求する電子メールメッセージが送信されます(他のアプリケーションによって使用される可能性があります)。メッセージ内のURLをクリックすることにより、電子メールの受信者がメッセージに応答します。URLは、手動タスクサービスドライバの発行者チャネルで実行されているWebサーバを指しています。ユーザは、Webサーバによって生成された動的なWebページと情報をやりとりし、eDirectory™を認証して要求されたデータを入力します。
イベント通知: 発行者チャネルを使用せずに、電子メールメッセージがユーザに送信されます。電子メールメッセージは、単にeDirectoryで何かが発生したことを通知したり、またはNovell iManager、その他のアプリケーション、またはカスタムインタフェースなどの発行者チャネルのWebサーバ以外の方法を介してデータを要求したりするだけの場合があります。
新しい従業員のマネージャが従業員に部屋番号を割り当てるという、従業員のプロビジョニング例のシナリオを次に示します。
次に、資産管理システムで、新しい従業員のマネージャが従業員にコンピュータを割り当てるというシナリオの例を示します。
電子メールメッセージ、HTML Webページ、およびXDSドキュメントは、すべてドキュメントと見なすことができます。手動タスクサービスドライバによって、ドライバに提供された情報に基づいてドキュメントが動的に作成されます。
テンプレートは、動的な部分または置換部分の、構成された最終のドキュメントが表示される場所を示す置換トークンとともに、ボイラープレートまたはドキュメントの固定部分が含まれているXMLドキュメントです。
手動タスクサービスドライバの購読者チャネルおよび発行者チャネルの両方で、ドキュメントを作成するためのテンプレートが使用されます。購読者チャネルにより電子メールメッセージが作成され、発行者チャネルによりWebページおよびXDSドキュメントが作成されます。
ドキュメントの動的な部分は置換データを経由して提供されます。購読者チャネルの置換データは、(コマンド変換ポリシーなどの)購読者チャネルポリシーによって提供されます。発行者チャネルの置換データは、HTTPデータによってWebサーバに提供されます(URLデータとHTTP POSTデータの両方)。手動タスクサービスドライバは、(Webサーバのアドレスなどの)手動タスクサービスドライバにとって既知の特定のデータを自動的に提供します。
XSLTスタイルシートにより、テンプレートが処理されます。これらのテンプレート処理のスタイルシートは、購読者チャネルまたは発行者チャネルでDirXMLポリシーとして使用されるスタイルシートとは分離しています。
置換データはパラメータとしてXSLTスタイルシートに提供されます。スタイルシート処理の出力は、電子メールメッセージの本文、Webページ、または発行者チャネル上のDirXMLへの送信として使用されている、XML、HTML、またはテキストドキュメントです。
置換データは、電子メールメッセージのURLを経由して購読者チャネルから発行者チャネルに渡されます。URLには、置換データ項目が含まれているクエリ部分が含まれています。
手動タスクサービスドライバには、電子メールドキュメント、HTMLドキュメント、およびXDSドキュメントを作成するためにテンプレートを処理するのに十分な、事前定義されたスタイルシートが付属しています。他のカスタムのスタイルシートは、必要に応じて、追加の処理オプションを提供するために記述することができます。
ドキュメントを作成する高度な方法も使用できます。その場合、XSLTスタイルシートおよび置換データのみを使用します。テンプレートは使用しません。しかし、このガイドではテンプレートによる方法を使用することを想定しています。これは、XSLTのプログラミング知識なしで設定および管理するには、テンプレートによる方法がより簡単であるためです。
この節では、手動タスクサービスドライバで使用されるドキュメント作成テンプレートについて説明します。
テンプレートは、出力ドキュメントを生成するために、スタイルシートによって処理されるXMLドキュメントです。出力ドキュメントは、XML、HTML、またはプレーンテキストです(または、XSLTを使用して生成されるその他のドキュメントです)。
購読者チャネル上の電子メールメッセージテキストを生成したり、発行者チャネル上の動的なWebページおよびXDSドキュメントを生成するために、テンプレートが使用されます。
テンプレートには、テキスト、要素、および置換トークンが含まれています。置換トークンは、テンプレートを処理するスタイルシートに提供されたデータによって出力ドキュメントで置換されます。
さまざまな目的のテンプレートの例をいくつか以下に示します。例では、置換トークンは2つの$記号の間にある文字列であり、太字で示しています。
テンプレートには、アクション要素を含めることもできます。アクション要素は、テンプレート処理のスタイルシートによって解釈された制御要素です。アクション要素については、セクション F.0, 手動タスクサービスドライバ:テンプレートのアクション要素についてで説明しています。次の例では、アクション要素も太字で示しています。
次のテンプレートの例は、HTMLの電子メールメッセージ本文を生成するために使用されます。
<html xmlns:form="http://www.novell.com/dirxml/manualtask/form"> <head></head> <body> Dear $manager$,<p/> <p> This message is to inform you that your new employee <b>$given-name$ $surname$</b> has been hired. <p> You need to assign a room number for this individual.Click <a href="$url$">Here</a> to do this. </p> <p> Thank you,<br/> HR Department </p> </body> </html>
次のテンプレートの例は、プレーンテキストの電子メールメッセージ本文を生成するために使用されます。
<form:text xmlns:form="http://www.novell.com/dirxml/manualtask/form"> Dear $manager$, This message is to inform you that your new employee $given-name$ $surname$ has been hired. You need to assign a room number for this individual.Use the following link to do this: $url$ Thank you, The HR Department </form:text>
テンプレートはXMLドキュメントである必要があるため、<form:text>要素は必須です。<form:text>要素はテンプレート処理の一部としてストリップされます。
データの入力用にWebページとして使用されるHTML形式を生成するには、次のテンプレートが使用されます。
<html xmlns:form="http://www.novell.com/dirxml/manualtask/form"> <head> <title>Enter room number for $subject-name$</title> </head> <body> <link href="novdocmain.css" rel="style sheet" type="text/css"/> <br/><br/><br/><br/> <form class="myform" METHOD="POST" ACTION="$url-base$/process_template.xsl"> <table cellpadding="5" cellspacing="10" border="1" align="center"> <tr><td> <input TYPE="hidden" name="template" value="post_form.xml"/> <input TYPE="hidden" name="subject-name" value="$subject-name$"/> <input TYPE="hidden" name="association" value="$association$"/> <input TYPE="hidden" name="response-style sheet" value="process_template.xsl"/> <input TYPE="hidden" name="response-template" value="post_response.xml"/> <input TYPE="hidden" name="auth-style sheet" value="process_template.xsl"/> <input TYPE="hidden" name="auth-template" value="auth_response.xml"/> <input TYPE="hidden" name="protected-data" value="$protected-data$"/> You are:<br/> <form:if-single-item name="responder-dn"> <input TYPE="hidden" name="responder-dn" value="$responder-dn$"/> $responder-dn$ </form:if-single-item> <form:if-multiple-items name="responder-dn"> <form:menu name="responder-dn"/> </form:if-multiple-items> </td></tr> <tr><td> Enter your password:<br/> <input name="password" TYPE="password" SIZE="20" MAXLENGTH="40"/> </td></tr> <tr><td> Enter room number for $subject-name$:<br/> <input TYPE="text" NAME="room-number" SIZE="20" MAXLENGTH="20" value="$query:roomNumber$"/> </td></tr> <tr><td> <input TYPE="submit" value="Submit"/> <input TYPE="reset" value="Clear"/> </td></tr> </table> </form> </body> </html>
XDSドキュメントを生成するには、次のテンプレートを使用します。
<nds> <input> <modify class-name="User" src-dn="not-applicable"> <association>$association$</association> <modify-attr attr-name="roomNumber"> <remove-all-values/> <add-value> <value>$room-number$</value> </add-value> </modify-attr> </modify> </input> </nds>
上記のテンプレートの例では、$で区切られた項目が置換トークンです。たとえば、$manager$は、マネージャの実際の名前に置換されます。
置換トークンは、テキストまたはXML属性値のいずれかで表示できます(上記の最初の例の<a>要素のhref値に注目してください)。
置換データは、テンプレートから生成された出力ドキュメントの置換トークンの場所を占める文字列で構成されます。置換データは、購読者チャネルのデータ、発行者チャネルのHTTPデータによって提供されるか、またはドライバによって自動的に提供されます。置換データの追加のタイプとしては、Identity Managerを経由してeDirectoryから取得されたデータがあります(クエリデータ)。置換データについては、セクション D.0, 手動タスクサービスドライバ:置換データでより詳しく説明しています。
購読者チャネルのデータ: 購読者チャネルの置換データには、次の2つのタイプがあります。最初のタイプは、電子メールメッセージを作成するための、テンプレートでの置換トークンの置換の値として使用されます。2番目のタイプは、URLが発行者のWebサーバに送信されたときにデータが発行者チャネルで使用可能になるように、URLのクエリ部分にあります。
HTTPデータ: URLクエリ文字列データ、HTTP POSTデータ、またはその両方として、発行者チャネルのWebサーバに置換データが提供されます。
自動データ: 手動タスクサービスドライバによって、自動データが提供されます。自動データ項目については、セクション E.0, 手動タスクサービスドライバ:自動置換データ項目で詳しく説明しています。
クエリデータ: query:で始まる置換トークンは、eDirectoryから現在のデータを取得することを要求していると見なされます。query:の後ろのトークンの部分は、eDirectoryオブジェクトの属性の名前です。問い合わせるオブジェクトは、置換データ項目のひとつであるassociation、src-dn、またはsrc-entry-idによって指定されます。項目は、前のセンテンスで表示されている順に考慮されます。
アクション要素は、シンプルなロジック制御、またはHTML形式のHTML要素を作成するために使用されるテンプレートのnamespace-qualified要素です。要素を修飾するために使用されている名前スペースは、http://www.novell.com/dirxml/manualtask/formにあります。このドキュメントおよび手動タスクサービスドライバで提供されているサンプル テンプレートでは、使用されているプレフィクスがフォームにあります。
上記の例で太字で表示されている要素がアクション要素です。
アクション要素については、セクション F.0, 手動タスクサービスドライバ:テンプレートのアクション要素についてで詳しく説明しています。
手動タスクサービスドライバの購読者チャネルは、電子メールメッセージを送信するように設計されています。これを実行するために、ドライバでは<mail>という名前のカスタムXML要素がサポートされています。(ユーザの作成などの)いくつかのeDirectoryイベントが発生すると、購読者チャネルのポリシーによって<mail>要素が構成されます。<mail>要素の例を以下に示します。
<mail src-dn="\PERIN-TAO\novell\Provo\Joe"> <to>JStanley@novell.com</to> <cc>carol@novell.com</cc> <reply-to>HR@novell.com</reply-to> <subject>Room Assignment Needed for:Joe the Intern</subject> <message mime-type="text/html"> <stylesheet>process_template.xsl</stylesheet> <template>html_msg_template.xml</template> <replacement-data> <item name="manager">JStanley</item> <item name="given-name">Joe</item> <item name="surname">The Intern</item> <url-data> <item name="file">process_template.xsl</item> <url-query> <item name="template">form_template.xml</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\phb</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\carol</item> <item name="subject-name">Joe The Intern</item> </url-query> </url-data> </replacement-data> <resource cid="css-1">novdocmain.css</resource> </message> <message mime-type="text/plain"> <stylesheet>process_text_template.xsl</stylesheet> <template>txt_msg_template.xml</template> <replacement-data> <item name="manager">JStanley</item> <item name="given-name">Joe</item> <item name="surname">The Intern</item> <url-data> <item name="file">process_template.xsl</item> <url-query> <item name="template">form_template.xml</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\phb</item> <item name="responder-dn" protect="yes">\PERIN-TAO\big-org\carol</item> <item name="subject-name">Joe The Intern</item> </url-query> </url-data> </replacement-data> </message> <attachment>HR.gif</attachment> </mail>
手動タスクサービスドライバの購読者は、<mail>要素に含まれている情報を使用して、SMTP電子メールメッセージを構成します。URLを構成して電子メールメッセージに挿入できます。それを使用して、電子メールの受信者はその電子メールメッセージに応答できます。URLは、発行者チャネルのWebサーバを指したり、またはいくつかの他のWebサーバを指すこともできます。
<mail>要素およびそのコンテンツについては、セクション G.0, 手動タスクサービスドライバ:<mail>要素についてで詳しく説明しています。
手動タスクサービスドライバの発行者チャネルでは、ユーザがWebブラウザを介してeDirectoryにデータを入力できるように設定されているWebサーバが実行されていますWebサーバは、手動タスクサービスドライバの購読者チャネルから送信された電子メールメッセージと組み合わせて機能するように設計されています。
発行者チャネルのWebサーバは、スタティックファイルおよびダイナミックコンテンツの役割を果たします。スタティックファイルの例としては、.cssスタイルシート、イメージなどがあります。ダイナミックコンテンツの例としては、URLまたはHTTP POSTデータに含まれている置換データに基づいて変更されるWebページがあります。
発行者チャネルのWebサーバは、通常、購読者チャネルによって送信された電子メールに対して、ユーザがeDirectoryにデータを入力できるように設定されます。一般的なユーザのWebサーバとの情報のやりとりは、次のとおりです。
この節では、手動タスクサービスドライバのパラメータおよびテンプレートの設定について説明します。
この節では、ドライバオブジェクトのユーザインタフェースの[ドライバ設定]セクションに表示されているパラメータについて説明します。
これらのパラメータの多くは、実際の発行者チャネルのWebサーバ用です。手動タスクサービスドライバの購読者もこれらにアクセスする必要があるため、これらは[ドライバ設定]エリアに表示されます。
このパラメータは、コンテナオブジェクトのeDirectory DNです。手動タスクサービスドライバは、eDirectoryまたはディスクから(XSLTスタイルシートを含む)XMLドキュメントをロードできます。XMLドキュメントをeDirectoryからロードする必要がある場合、ドキュメントがロードされるルートコンテナがこのパラメータによって識別されます。
eDirectoryからロードされたドキュメントは、eDirectoryオブジェクトの属性値に常駐します。指定しない場合、属性はXmlDataです。ドキュメントが含まれているオブジェクトの名前の#文字の後ろに属性名を追加することにより、属性を指定できます。
たとえば、ドキュメントベースのDNが「novell\Manual Task Documents」に指定されたとします。また、「templates」という名前の「Manual Task Documents」の下にコンテナがあるとします。
「e-mail _template」という名前のDirXML-スタイルシートオブジェクトが「templates」ディレクトリに常駐している場合、XMLドキュメントを参照するために次のリソ-スの識別子を使用できます。“templates/e-mail _template” or “templates/e-mail _template#XmlData”.
置換データ、URLデータ、またはHTTP POSTデータとして、リソ-スの識別子を提供できます。たとえば、次の要素は購読者チャネルの<message>要素の下に表示されます。
<template>templates/e-mail _template#XmlData</template>
このパラメータによって、テンプレート、XSLTスタイルシートなどのリソ-ス、および発行者チャネルのWebサーバによるその他のファイルのリソ-スを配置するために、基本ディレクトリとして使用されるファイルシステムディレクトリが識別されます。値の例は次のとおりです。
このパラメータは、発行者チャネルによってWebサーバを実行されるかどうかを示しています。Webサーバを実行する必要がある場合は、パラメータをtrueに設定します。または、Webサーバを実行する必要がない場合、falseに設定します。
レスポンスURLを持たない電子メール、またはその他のアプリケーションを指すURLを持つ電子メールの送信に、手動タスクサービスドライバのみが使用される場合、システムリソ-スを節約するためにHTTPサーバを実行しないでください。
このパラメータを使用すると、発行者チャネルのWebサーバがHTTP要求をリッスンする複数のローカルIPアドレスを指定できます。
HTTP IPアドレスまたはホスト名のパラメータ値を空白のままにしておくと、発行者チャネルのWebサーバはデフォルトのIPアドレスをリッスンします。単一のIPアドレスを持つサーバの場合は、これで十分です。ドット表記のIPアドレスをパラメータ値として配置すると、発行者チャネルのWebサーバは指定されたアドレスのHTTP要求をリッスンします。
メールコマンド要素でホスト名またはアドレスが指定されていない場合、HTTP IPアドレスまたはホスト名で指定した値は、URLを構成するために購読者チャネルのメールハンドラによって使用されます。[HTTPサーバを使用する(true|false)]のパラメータがfalseに設定されている場合、メールメッセージのURLの構成で使用するために、HTTP IPアドレスまたはホスト名を使用してWebサーバのアドレスまたは名前を指定できます。
このパラメータは整数値であり、着信要求で発行者チャネルのWebサーバがどのTCPポートをリッスンする必要があるのかを示しています。この値が指定されていない場合、Webサーバ接続でSSLが使用されるかどうかに応じて、ポート番号のデフォルトが80または443になります。
手動タスクサービスドライバがIdentity Managerサーバで実行されている場合(つまり、リモートマシン上のリモートローダの下で実行されない場合)、HTTPポートを80または443以外に設定する必要があります。これは、iMonitorまたはその他のプロセスは通常、ポート80および443を使用しているためです。
これが空白でない場合、このパラメータは、発行者チャネルのWebサーバによってSSLに使用されるサーバ証明書およびキーが含まれているDirectoryの暗号化キーオブジェクトの名前になります。
このパラメータを設定すると、発行者チャネルのWebサーバでHTTP要求の実行にSSLが使用されます。
このパラメータは、すべてのJava*キーストアパラメータに優先します(以下を参照)。
eDirectoryパスワードは発行者チャネルWebサーバを使用してHTTP POSTデータに渡されるので、セキュリティ上の理由のためSSLの使用をお勧めします。
このパラメータは、キーストアパスワード、証明書の名前(キーエイリアス)、および証明書パスワード(キーパスワード)と組み合わせて、発行者チャネルのWebサーバによってSSLで使用される証明書およびキーが含まれているJavaキーストアファイルを指定するために使用します。
このパラメータを設定すると、発行者チャネルのWebサーバでHTTP要求の実行にSSLが使用されます。
KMOの名前のパラメータが設定された場合、このパラメータおよび関連付けているパラメータは無視されます。
eDirectoryパスワードは発行者チャネルWebサーバを使用してHTTP POSTデータに渡されるので、セキュリティ上の理由のためSSLの使用をお勧めします。
このパラメータでは、キーストアファイルの名前のパラメータで指定したJavaキーストアファイルのパスワードを指定します。
このパラメータでは、キーストアファイルの名前のパラメータで指定したJavaキーストアファイルで使用するための証明書の名前を指定します。
このパラメータでは、証明書の名前(キーエイリアス)のパラメータを使用して指定した証明書のパスワードを指定します。
購読者チャネルの設定については、この節で説明します。
このパラメータでは、電子メールメッセージを送信するために購読者チャネルで使用されるSMTPサーバの名前を指定します。
SMTPサーバのパラメータを使用して指定したSMTPサーバで認証が必要とされる場合、このパラメータでは、認証に使用するアカウント名を指定します。使用されるパスワードは、ドライバの認証パラメータに関連付けられているアプリケーションのパスワードです。
指定されている場合、これはSMTPで使用される、購読者チャネルによって送信される電子メールメッセージのフィールドの電子メールアドレスです。これが指定されていない場合、購読者に送信された<mail>要素には<from>要素が含まれている必要があります。
購読者に送信された<mail>要素の下の<from>要素は、このパラメータより優先されます。
指定されている場合、これはスペースで区切られたJavaクラス名のリストです。各クラス名は、com.novell.nds.dirxml.driver.manualtask.CommandHandlerインタフェースを実装し、カスタムXDS要素を処理するカスタムクラスです(<mail>のハンドラは組み込みハンドラです)。
カスタムハンドラに関する詳細情報については、セクション I.0, 手動タスクサービスドライバ:購読者チャネルのカスタム要素ハンドラを参照してください。
発行者チャネルの設定については、この節で説明します。
空白でない場合、これはスペースで区切られたJavaクラス名のリストです。各クラス名は、javax.servlet.http.HttpServerを拡張するカスタムクラスです。カスタムサーブレットを使用して発行者チャネルのWebサーバの機能を拡張できます。
カスタムサーブレットに関する詳細情報については、セクション J.0, 手動タスクサービスドライバ:発行者チャネルのカスタムサーブレットを参照してください。
購読者チャネルポリシーの設定は、手動タスクサービスドライバを使用して特定のインストールで何を実行するのかに依存します。しかし、特定のガイドラインが役立ちます。
一般的には、購読者に送信するために<mail>要素を構成するのに最適な場所は、コマンド変換ポリシーです。その理由は、コマンドがコマンド変換ポリシーに到達するまでに、多くのDirXMLエンジン処理が完了しているためです。つまり、追加イベントに対してポリシーの作成が処理されます(たとえば電子メールの構成に必要なすべての属性を持たないオブジェクトに対する追加イベントの拒否の許可)。また、関連付けられていないオブジェクトの変更イベントは、すでに追加イベントに変換されています。
電子メールメッセージを構成するXSLTスタイルシートは、eDirectoryに詳細情報を問い合わせる必要がある場合と、ない場合があります。
たとえば、電子メールメッセージが単なる新しい従業員への歓迎のメッセージである場合、次の必要なすべての情報を追加コマンドに含めることができます。名前、名字、およびインターネットの電子メールアドレス。これは、作成ポリシーで、名前、名字、およびインターネットの電子メールアドレスが必要な属性であることを指定して実行します。これにより、必要な情報が含まれている追加コマンドのみがコマンド変換に到達できます。
しかし、電子メールメッセージが従業員のマネージャに対するメッセージである場合、スタイルシートによってeDirectoryへの問い合わせが実行される必要があります。マネージャDNは、従業員のユーザオブジェクトの追加イベントから取得できますが、その情報はマネージャのユーザオブジェクトの属性であるため、マネージャの電子メールアドレスを取得するためにクエリを行う必要があります。
また、ドライバに関連付けられているオブジェクトの変更コマンドの結果として電子メール通知機能が生成される場合、変更コマンドに含まれていない情報を取得するためにクエリを実行する必要があります。
電子メールメッセージが追加イベント以外のイベントから生成される場合、監視されるオブジェクトに対して、追加イベントが購読者に到達する必要があります。追加イベントを購読者に到達させると、生成された関連付けの値が購読者からIdentity Managerに返されます。
手動タスクサービスドライバポリシーによって監視されるeDirectoryオブジェクトが、手動タスクサービスドライバに関連付けられていることが重要です。関連付けられたオブジェクトのみの削除イベント、名前変更イベント、および移動イベントがドライバにレポートされます。また、関連付けられていないオブジェクトの変更イベントは、購読者チャネルのイベント変換後に追加イベントに変換されます。
その他のすべてのコマンド(変更、移動、名前変更、および削除)は、コマンド変換ポリシーによってブロックされ、購読者に到達しないようにする必要があります。購読者は、<add>コマンドおよび<mail>コマンドのみ処理します。その他のコマンドは、購読者によりエラーが返されます。
電子メールメッセージは、送信される電子メールメッセージを説明する<mail>要素の受信に対して、購読者によって送信されます。<mail>要素およびそのコンテンツの説明については、セクション G.0, 手動タスクサービスドライバ:<mail>要素についてを参照してください。
すべてのIdentity Managerイベント(追加、変更、名前変更、移動、削除)に対して、電子メールメッセージを生成できます。
<mail>要素の<message>要素の子で提供された置換データは、次の2つの主な要因に依存します。
発行者チャネルのWebサーバを指すURLを電子メールメッセージに含める必要があり、ユーザから情報を取得するために使用される場合、置換データに少なくとも1つのresponder-dn項目が含まれている必要があります。responder-dn項目の値は、メッセージが送信されるユーザのユーザオブジェクトのDNである必要があります。
テンプレートでクエリの置換トークン(置換データを参照)が使用されている場合、<message>要素の置換データには、src-dn、src-entry-idという名前の項目が含まれているか、または適切な値に関連付けられている必要があります。問い合わせが実行されるeDirectoryオブジェクトがすでに手動タスクサービスドライバに関連付けられている場合のみ、関連項目を使用できます。関連付けられていないオブジェクトに対して購読者によって生成された関連付けは、クエリが発生したときにeDirectoryオブジェクトに記述されていないため使用できません。
<message>要素で、MIMEタイプのメッセージ本文を指定できます。MIMEタイプを指定したけれども、スタイルシートが指定されていない場合(つまり、<message>の<stylesheet>要素の子がない場合)、2つのデフォルトのスタイルシート名のどちらかが使用されます。MIMEタイプがテキスト/プレーンである場合、デフォルトのスタイルシート名はprocess_text_template.xslです。MIMEタイプがテキスト/プレーン以外である場合、デフォルトのスタイルシート名はprocess_template.xslです。
電子メールテンプレートは、ボイラープレートおよび置換トークンが含まれているXMLドキュメントです。電子メールメッセージ本文のテキストを生成するために、電子メールテンプレートが使用されます。テンプレートに関する一般的な情報については、テンプレートを参照してください。
電子メールテンプレートで使用されている置換トークンによって、<mail>要素を構成する購読者チャネルポリシーによって構成された、<replacement-data>要素の子として提供される必要がある<item>要素が指定されます。たとえば、電子メールテンプレートに置換トークン$employee-name$がある場合、<message>要素の置換データに<item name=“employee-name”>要素がある必要があります。従業員名の項目がない場合、テンプレート内の置換トークンによって占められている場所には、電子メールメッセージ本文のテキストはありません。
プレーンテキスト、HTML、またはXMLであるメッセージ本文を生成するために、電子メールテンプレートを使用できます。
電子メールテンプレートによってプレーンテキストのメッセージが生成された場合、出力タイプとしてプレーンテキストを指定するスタイルシートによって処理される必要があります。スタイルシートで出力タイプとしてプレーンテキストが指定されていない場合、不都合なXMLエスケーピングが発生します。デフォルトの手動タスクサービスドライバのスタイルシートであるprocess_text_template.xslは、通常プレーンテキストのテンプレートの処理に使用されます。
手動タスクサービスドライバの多くの実装では、発行者チャネルのポリシーは必要ありません。これは、WebページおよびXDSテンプレートを構成することが可能であるので、XDSが必要とする結果を得ることができ、XDSがポリシーによってさらに処理される必要がないためです。
ポリシーが必要な場合、インストール固有になります。
Webページテンプレートは、ボイラープレートおよび置換トークンが含まれているXMLドキュメントです。Webページのドキュメント(通常はHTMLドキュメント)を生成するために、Webページテンプレートが使用されます。テンプレートに関する一般的な情報については、テンプレートを参照してください。
Webページテンプレートの置換トークンにより、購読者チャネルのURLクエリデータとしてどの置換データが提供されるのかが指定されます。発行者チャネルの置換データは、HTTP GET要求のURLクエリ文字列、およびHTTP POST要求のURLクエリ文字列とPOSTデータから取得されます。
購読者チャネルから、電子メールメッセージへ、次に発行者チャネルのWebサーバへの置換データのフローの例としては、次のシナリオを考えてみます。
手動タスクサービスドライバは、新しい従業員に部屋番号を割り当てることを新しい従業員のマネージャに依頼するように設定されています。マネージャに対する電子メールのトリガは、購読者チャネルのコマンド変換ポリシーによって処理される、新しいユーザオブジェクトの<add>コマンドです。
マネージャが電子メールメッセージのURLをクリックすると、マネージャのWebブラウザにWebページが表示されます。Webページでは、誰のためにマネージャが部屋番号を入力しているのかを示す必要があります。
これを実行するために、名前で新しいユーザを識別する置換データ項目が購読者チャネルの<url-query>要素に含まれています。
<item name=”subject-name”>Joe the Intern</item>
これにより、URLクエリ文字列には(他の文字列の間に)「subject-name=Joe%20the%20Intern」が含まれます(“%20”はURLエンコードスペースです)。
マネージャが電子メールメッセージのURLをクリックすると、マネージャのWebブラウザによって発行者チャネルのWebサーバにURLが送信されます。Webサーバによって、「subject-name」という名前の置換データ項目が「Joe the Intern」という値とともに構成されます。
URLにも指定されているWebページテンプレートには、置換トークン$subject-name$が含まれます。Webページを構成するためにWebページテンプレートがスタイルシートによって処理されると、置換トークンが「Joe the Intern」に置換されます。これにより、ユーザオブジェクトの作成によって電子メールが送信された従業員のWebページがカスタマイズされます。
購読者チャネルから発行者チャネルへのトランザクションの詳細情報については、セクション H.0, 手動タスクサービスドライバ:新しい従業員のデータフローのシナリオを参照してください。
XDSテンプレートは、ボイラープレートおよび置換トークンが含まれているXMLドキュメントです。XDSテンプレートは、手動タスクサービスドライバの発行者チャネルのIdentity Managerに送信されたXDSドキュメントを生成するために使用されます。テンプレートに関する一般的な情報については、[概要]セクションの[テンプレート]を参照してください。
XDSテンプレートの置換トークンによって、HTTP POST要求のデータとしてWebサーバに提供されたいくつか置換データが指定されます。
たとえば、次のXDSテンプレートについて考えてみます。
<nds> <input> <modify class-name="User" src-dn="not-applicable"> <association>$association$</association> <modify-attr attr-name="roomNumber"> <remove-all-values/> <add-value> <value>$room-number$</value> </add-value> </modify-attr> </modify> </input> </nds>
HTTP POSTデータが関連付けの値およびroom-numberの値を提供する必要があることが、テンプレートの置換トークンによって指定されます。
通常、関連付けの値は購読者チャネルで発生します。購読者チャネルの電子メールには、電子メールメッセージに配置されるURLのクエリ文字列内のassociation=some valueが配置されます。URLがWebサーバに送信されたときにWebページを生成するために使用されるWebページテンプレートでは、通常、非表示のINPUT要素に関連付けの値が配置されます。
<INPUT TYPE="hidden" NAME="association" VALUE="$association$"/>
非表示のINPUT要素に関連付けの値を配置すると、「association=some value」のぺアがHTTP POSTデータの一部として送信されます。
次に似たINPUT要素を使用して、Webページにroom-numberの値が入力されます。
<input TYPE="text" NAME="room-number" SIZE="20" MAXLENGTH="20"/>
マネージャが「1234」と入力して[送信]をクリックした場合、Webブラウザによって「room-number=1234」がHTTP POSTデータの一部として送信されます。
次に、Webサーバによって<item name=“association”>置換データ項目、およびXDSテンプレートを処理するときに使用された<item name=“room-number”>置換データ項目が生成されます。
POSTデータで指定されたスタイルシートを使用してXDSテンプレートを処理することにより、XDSドキュメントが生成されます。次に、手動タスクサービスドライバの発行者チャネルで、Identity ManagerにXDSドキュメントが送信されます。
手動タスクサービスドライバの設定に関する詳細情報については、付録の次の節を参照してください。