8.2 手動任務服務驅動程式

「手動任務服務驅動程式」是設計用來通知一或多個使用者已發生的資料事件,以及是否需要使用者採取任何動作。 在員工提供案例中,資料事件可能是建立新的「使用者」物件,且使用者動作可能包含:藉由在 eDirectory 中輸入資料,或在應用程式中輸入資料,來指定辦公室電話號碼。 其他案例包含:通知管理員已建立新的使用者物件,通知管理員使用者已變更物件上的資料等等。

設定「手動任務服務驅動程式」組態通常包括設定兩個獨立但相關之子系統的組態: 「訂閱者」通道規則和電子郵件範本,以及「發行者」通道 Web 伺服器範本和規則。

此外,還必須設定驅動程式參數,例如,SMTP 伺服器名稱、Web 伺服器連接埠號碼等。

本節內容:

8.2.1 安裝

  • 安裝: 使用 Identity Manager 安裝程式安裝「Metadirectory 伺服器」選項時,會自動安裝「手動任務服務的驅動程式」。

  • 平台: 驅動程式在 Identity Manager 和「遠端載入器」支援的平台上執行。

  • 啟用: 驅動程式不需要個別啟用。 啟用 Metadirectory 引擎時,也會啟用此驅動程式。

8.2.2 綜覽

在本節中,您會找到各種驅動程式功能如何運作的相關資訊。

操作模式

支援兩種主要操作模式:

  • 直接申請資料: 系統會傳送電子郵件訊息,要求使用者在 eDirectory 中輸入資料 (可能是供另一個應用程式使用)。 電子郵件收件者按一下訊息中的 URL,即可回應該訊息。 該 URL 指向在「手動任務服務驅動程式」之「發行者」通道中執行的 Web 伺服器。 然後,使用者可與 Web 伺服器產生的動態網頁互動,以進行 eDirectory™ 驗證,並輸入申請的資料。

  • 事件通知: 無需透過「發行者」通道,傳送電子郵件訊息至使用者。 該電子郵件訊息可能只是通知在 eDirectory 中發生了事件,也可能是透過「發行者」通道之 Web 伺服器以外的方法 (例如 Novell iManager、其他應用程式或自定介面) 來申請資料。

範例: 訂閱者通道電子郵件、發行者通道 Web 伺服器回應

在下面的員工提供範例案例中,新員工的管理員會對員工指定房間號碼:

  1. 在 eDirectory 中已建立新的「使用者」物件 (例如,透過公司 HR 系統的 DirXML 驅動程式)。
  2. 「手動任務服務驅動程式訂閱者」將 SMTP 訊息傳送至使用者的管理員和管理員助理。 該 SMTP 訊息包含參考「發行者」通道 Web 伺服器的 URL。 這個 URL 也包含資料項目,用於識別使用者和識別具有提交申請資料權限的人員。
  3. 管理員或管理員助理按一下電子郵件訊息中的 URL,在網頁瀏覽器中顯示 HTML 表單。 然後,管理員或助理進行下列操作:
    • 選取其 eDirectory「使用者」物件的 DN,做為識別回應電子郵件訊息之人員的方法。
    • 輸入其 eDirectory 密碼。
    • 輸入新員工的房間號碼。
    • 按一下「提交」按鈕。
  4. 新員工的房間號碼會透過「手動任務服務驅動程式發行者」通道提交至 eDirectory。

範例: 訂閱者通道電子郵件、無發行者通道回應

在下面的範例案例中,新員工的管理員會在資產管理系統中對員工指定電腦:

  1. 在 eDirectory 中已建立新的「使用者」物件 (例如,透過公司 HR 系統的 DirXML 驅動程式)。
  2. 「手動任務服務驅動程式訂閱者」將 SMTP 訊息傳送至使用者的管理員和管理員助理。 該 SMTP 訊息包含在資產管理系統中輸入資料的指示。
  3. 管理員或助理在資產管理系統中輸入資料。
  4. (選擇性) 電腦識別資料會透過資產管理系統的 DirXML 驅動程式送入 eDirectory 中。

手動任務服務驅動程式建立電子郵件訊息和網頁的方式

電子郵件訊息、HTML 網頁和 XDS 文件均可視為文件。 「手動任務服務驅動程式」會根據提供給驅動程式的資訊,動態地建立文件。

範本是 XML 文件,其包含文件的模板或固定部份,以及指出最終建構文件之動態或取代部份出現位置的取代記號。

「手動任務服務驅動程式」的「訂閱者」通道和「發行者」通道,都會使用範本來建立文件。 「訂閱者」通道會建立電子郵件訊息,而「發行者」通道會建立網頁和 XDS 文件。

透過取代資料,提供文件的動態部份。 「訂閱者」通道上的取代資料由「訂閱者」通道規則 (例如「指令轉換」規則) 提供。 「發行者」通道上的取代資料由 Web 伺服器的 HTTP 資料 (URL 資料和 HTTP POST 資料) 提供。 「手動任務服務驅動程式」可以自動提供「手動任務服務驅動程式」已知的某些資料 (例如 Web 伺服器位址)。

XSLT 樣式表會處理範本。 這些處理範本的樣式表不同於「訂閱者」或「發行者」通道中做為 DirXML 規則的樣式表。

取代資料會做為參數提供給 XSLT 樣式表。 樣式表處理的輸出,是用做電子郵件訊息本文、網頁或提交至「發行者」通道上 DirXML 之內容的 XML、HTML 或文字文件。

取代資料會透過電子郵件訊息中的 URL,從「訂閱者」通道傳遞至「發行者」通道。 該 URL 包含具有取代資料項目的查詢部份。

「手動任務服務驅動程式」隨附足以處理範本的預先定義樣式表,以便建立電子郵件文件、HTML 文件和 XDS 文件。 需要的話,可以寫入其他自定樣式表以提供其他處理選項。

您也可以使用進階方法來建立文件,該方法僅使用 XSLT 樣式表和取代資料。 不涉及任何範本。 不過,因為範本方法易於設定組態和維護,不需要 XSLT 程式設計知識,所以本指南假設使用的是這種方法。

範本

本節描述在「手動任務服務驅動程式」中使用的文件建立範本。

範本是由樣式表處理以產生輸出文件的 XML 文件。 輸出文件可以是 XML、HTML 或純文字 (或可使用 XSLT 產生的任何其他格式)。

範本可用於在「訂閱者」通道上產生電子郵件訊息文字,以及在「發行者」通道上產生動態網頁和 XDS 文件。

範本包含文字、元素和取代記號。 輸出文件中的取代記號會由提供給處理範本之樣式表的資料取代。

以下是數個用於各種用途的範本範例。 在範例中,取代記號是兩個 $ 字元之間的字元字串,並以粗體顯示。

範本也可以包含動作元素。 動作元素是由處理範本之樣式表解釋的控制元素。 動作元素會在節 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. 

p> 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> 元素。

下列範本是用來產生做為網頁的 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, 手動任務服務驅動程式: 取代資料中包含對取代資料更為全面的描述。

訂閱者通道資料: 「訂閱者」通道取代資料有兩個類型。 第一個類型在用於建立電子郵件訊息的範本中用作取代記號的取代值。 第二個類型放置在 URL 的查詢部份,以便在 URL 提交給「發行者」Web 伺服器時,可以在「發行者」通道上使用資料。

HTTP 資料: 取代資料會做為 URL 查詢字串資料、HTTP POST 資料 (或兩者),提供給「發行者」通道 Web 伺服器。

自動資料: 「手動任務服務驅動程式」會提供自動資料。 在節 E.0, 手動任務服務驅動程式: 自動取代資料項目中包含對自動資料項目的描述。

查詢資料: 以 query: 開頭的取代記號會視為從 eDirectory 取得目前資料的申請。 query: 後面的記號部份是 eDirectory 物件屬性的名稱。 要查詢的物件由其中一個取代資料項目指定:associationsrc-dnsrc-entry-id。以項目在之前句子中呈現的順序來考量這些項目。

範本動作元素

動作元素是範本中名稱空間合法的元素,用於簡單邏輯控制,或用於建立 HTML 表單的 HTML 元素。 用來使元素合法的名稱空間為 http://www.novell.com/dirxml/manualtask/form。 在此文件與隨「手動任務服務驅動程式」提供的範例範本中,使用 form 做為字首。

上面範例中以粗體顯示的元素是動作元素。

節 F.0, 手動任務服務驅動程式: 範本動作元素參考中包含對動作元素的詳細描述。

訂閱者通道電子郵件

「手動任務服務驅動程式」的「訂閱者」通道是設計用來傳送電子郵件訊息。 為完成此操作,驅動程式支援名為 <mail> 的自定 XML 元素。 「訂閱者」通道上的規則會建構 <mail> 元素,以回應部份 eDirectory 事件 (例如,建立使用者)。 <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 伺服器。

節 G.0, 手動任務服務驅動程式: <mail> 元素參考中包含對 <mail> 元素及其內容的詳細描述。

發行者通道 Web 伺服器

「手動任務服務驅動程式」的「發行者」通道會執行已設定組態的 Web 伺服器,以便使用者可以透過網頁瀏覽器將資料輸入 eDirectory。 Web 伺服器是設計用來與從「手動任務服務驅動程式」之「訂閱者」通道傳送的電子郵件訊息搭配運作。

「發行者」通道 Web 伺服器可以提供靜態檔案和動態內容。 靜態檔案的範例包含 .css 樣式表、影像等。動態內容的範例是根據 URL 或 HTTP POST 資料中包含之取代資料變更的網頁。

「發行者」通道 Web 伺服器組態通常會設定為允許使用者將資料輸入 eDirectory,以回應「訂閱者」通道傳送的電子郵件。 使用者與 Web 伺服器的一般互動如下所示:

  1. 使用者會使用網頁瀏覽器,從電子郵件訊息提交 URL 至 Web 伺服器。 URL 會指定用來建立動態網頁 (一般包含 HTML 表單) 的樣式表、範本和取代資料。
  2. Web 伺服器會處理含樣式表和取代資料的範本,以建立 HTML 頁面。 HTML 頁面會做為 URL 參考的資源,傳回至使用者的網頁瀏覽器。
  3. 瀏覽器會顯示 HTML 頁面,並且使用者會輸入申請的資訊。
  4. 瀏覽器會傳送包含輸入之資訊,以及來自電子郵件 URL 之其他資訊的 HTTP POST 申請。 回應電子郵件的使用者 DN 和使用者密碼必須位於 POST 資料中。
  5. Web 伺服器會利用使用者 DN 和密碼來驗證使用者。 如果驗證失敗,則包含失敗訊息的網頁會做為 POST 申請的結果傳回。 您可以使用 POST 資料中指定的樣式表和範本來建構失敗訊息。 如果驗證成功,則會繼續處理。
  6. Web 伺服器會使用 POST 資料中指定的樣式表和範本來建構 XDS 文件。 將該 XDS 文件提交至「發行者」通道上的 Identity Manager。
  7. 使用 XDS 文件提交的結果,以及 POST 資料中指定的樣式表和範本,可以建構網頁以對使用者指出資料提交的結果。 此網頁會做為 POST 申請的結果傳送至瀏覽器。

8.2.3 設定組態

本節描述如何設定「手動任務服務驅動程式」參數和範本的組態。

驅動程式設定

本節描述驅動程式物件使用者介面之「驅動程式設定」區段中出現的參數。

這些參數中的許多參數實際上是用於「發行者」通道 Web 伺服器。 因為「手動任務服務驅動程式發行者」也需要存取它們,所以它們會出現在「驅動程式設定」區域下。

文件基礎的 DN

此參數是容器物件的 eDirectory DN。 「手動任務服務驅動程式」可以從 eDirectory 和磁碟下載 XML 文件 (包含 XSLT 樣式表)。 如果應該從 eDirectory下載 XML 文件,則此參數會識別從其中下載文件的根容器。

從 eDirectory 下載的文件位於 eDirectory 物件的屬性值中。 如果沒有指定,則屬性是 XmlData。 藉由將 # 字元和屬性名稱附加至包含文件之物件的名稱,可以指定該屬性。

例如,假設指定文件的基礎 DN 為 “novell\Manual Task Documents”,並且在 “Manual Task Documents” 下方有一個名為 “templates” 的容器。

如果名為 “e-mail _template” 的 DirXML 樣式表物件位於“templates” 目錄下,則下列資源識別碼可以用來參考 XML 文件: “templates/e-mail _template” 或 “templates/e-mail _template#XmlData”。

您可以提供資源識別碼做為取代資料、URL 資料或 HTTP POST 資料。 例如,下列元素可能會出現在「訂閱者」通道上的 <message> 元素下:

<template>templates/e-mail _template#XmlData</template>
文件目錄

此參數會識別做為基礎目錄使用的檔案系統目錄,該基礎目錄用於尋找資源,如範本、XSLT 樣式表和其他由「發行者」通道 Web 伺服器提供服務的檔案資源。 範例值如下:

Windows

c:\Novell\Nds\mt_files

NetWare

SYS:\SYSTEM\mt_files

UNIX

/usr/lib/dirxml/rules/manualtask/mt_files

使用 HTTP 伺服器 (true|false)

此參數指出「發行者」通道是否應該執行 Web 伺服器。 如果 Web 伺服器應該執行,則設定此參數為 true;如果不應該執行,則設定此參數為 false。

如果「手動任務服務驅動程式」僅用來傳送具有無回應 URL 或指向另一個應用程式之 URL 的電子郵件,則不應該執行 HTTP 伺服器,以節省系統資源。

HTTP IP 位址或主機名稱

此參數可讓您指定「發行者」通道 Web 伺服器,將在多個本地 IP 位址中的哪個 IP 位址上監聽 HTTP 申請。

保留 HTTP IP 位址或主機名稱參數值為空白,會導致「發行者」通道 Web 伺服器在預設 IP 位址上監聽。 對於具有單一 IP 位址的伺服器,這已足夠。 將以點標記的 IP 位址做為參數值,會導致「發行者」通道 Web 伺服器在指定的位址上監聽 HTTP 申請。

請注意,如果在郵件指令元素中未指定主機名稱或位址,則「訂閱者」通道郵件處理器會使用指定的 HTTP IP 位址或主機名稱值來建構 URL。 如果「使用 HTTP 伺服器 (true|false)」參數設為 false,則 HTTP IP 位址或主機名稱可用來指定 Web 伺服器的位址或名稱,以在建構郵件訊息的 URL 時使用。

HTTP 連接埠

此參數是整數值,其指出「發行者」通道 Web 伺服器應在哪個 TCP 連接埠上監聽內送申請。 如果未指定此值,則連接埠號碼預設為 80 或 443,視保全插槽層 (SSL) 是否用於 Web 伺服器連接而定。

如果「手動任務服務驅動程式」在 Identity Manager 伺服器上執行 (即未在遠端機器上的「遠端載入器」下執行),則 HTTP 連接埠應該設為 80 或 443 以外的其他號碼。這是因為 iMonitor 或其他程序一般會使用連接埠 80 和 443。

KMO 的名稱

如果不為空白,則此參數是「eDirectory 金鑰材料物件」的名稱,該物件包含「發行者」通道 Web 伺服器用於保全插槽層 (SSL) 的伺服器證書和金鑰。

設定此參數,會導致「發行者」通道 Web 伺服器使用保全插槽層 (SSL) 來回應 HTTP 申請。

此參數會優先於任何 Java* KeyStore 參數 (請參閱下文)。

因為使用「發行者」通道 Web 伺服器時,eDirectory 密碼會在 HTTP POST 資料中傳遞,所以基於安全理由,建議使用保全插槽層 (SSL)。

KeyStore 檔案名稱

此參數與「KeyStore 密碼」、「證書名稱 (金鑰別名)」和「證書密碼 (金鑰密碼)」一起,用來指定包含「發行者」通道 Web 伺服器用於保全插槽層 (SSL) 之證書和金鑰的 Java KeyStore 檔案。

設定此參數,會導致「發行者」通道 Web 伺服器使用保全插槽層 (SSL) 來回應 HTTP 申請。

如果已設定「KMO 的名稱」參數,則會忽略此參數及其相關參數。

因為使用「發行者」通道 Web 伺服器時,eDirectory 密碼會在 HTTP POST 資料中傳遞,所以基於安全理由,建議使用保全插槽層 (SSL)。

KeyStore 密碼

此參數指定以「KeyStore 檔案名稱」參數指定之 Java KeyStore 檔案的密碼。

證書名稱 (金鑰別名)

此參數指定以「KeyStore 檔案名稱」參數指定之 Java KeyStore 檔案中使用的證書名稱。

證書密碼 (金鑰密碼)

此參數指定使用「證書名稱 (金鑰別名)」參數指定之證書的密碼。

訂閱者設定

本節描述「訂閱者」通道的設定。

SMTP 伺服器

此參數指定「訂閱者」通道將用來傳送電子郵件訊息之 SMTP 伺服器的名稱。

SMTP 帳戶名稱

如果使用 SMTP 伺服器參數指定的 SMTP 伺服器需要驗證,則此參數會指定要用於驗證的帳戶名稱。 所使用的密碼是與驅動程式「驗證」參數相關聯的「應用程式」密碼。

預設 “From” 地址

如果指定,則這是「訂閱者」通道傳送之電子郵件 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> 元素子代的取代資料視兩個主要因素而定:

  • 用來產生訊息本文的範本。 電子郵件範本使用的取代項目會顯示為 <replacement-data> 元素的子代。
  • 「發行者」通道上網頁範本所需要的資訊 (如果電子郵件在「發行者」通道上產生回應的話)。 網頁範本使用的取代項目會顯示為 <url-query> 元素的子代,該元素是 <url-data> 的子代,而 <url-data> 又是 <replacement-data> 的子代。

如果電子郵件訊息應該包含指向「發行者」通道 Web 伺服器的 URL,並用來請求使用者的資訊,則取代資料必須至少包含一個 responder-dn 項目。 responder-dn 項目的值必須是要向其傳送訊息之使用者的「使用者」物件 DN。

如果在範本中使用查詢取代記號 (請參閱取代資料),則 <message> 元素的取代資料必須包含名為 src-dn、src-entry-id 或 association 且具有適當值的項目。 關聯項目只能在要查詢的 eDirectory 物件與「手動任務服務驅動程式」建立關聯後使用。 因為查詢發生時,「訂閱者」對未關聯物件產生的關聯尚未寫入 eDirectory 物件,所以無法使用該關聯。

<message> 元素可以指定訊息本文的多用途網際網路郵件延伸標準 (Multipurpose Internet Mail Extensions,MIME) 類型。 如果已指定 MIME 類型,但未指定樣式表 (即沒有 <message> < 的 stylesheet> 元素子代),則會使用兩個預設樣式表名稱的其中一個。 如果 MIME 類型為 text/plain,則預設樣式表名稱為 process_text_template.xsl。 如果 MIME 類型為 text/plain 以外的其他任何類型,則預設樣式表名稱為 process_template.xsl。

訂閱者通道電子郵件範本

電子郵件範本是包含模板和取代記號的 XML 文件。 電子郵件範本是用來產生電子郵件訊息本文文字。 如需範本的一般資訊,請參閱範本

電子郵件範本中使用的取代記號指示必須做為 <replacement-data> 元素子代提供的 <item> 元素,而 <replacement-data> 元素是由建構 <mail> 元素的「訂閱者」通道規則建構而成。 例如,如果電子郵件範本具有取代記號 $employee-name$,則 <message> 元素的取代資料中必須有 <item name=“employee-name”> 元素。 如果員工名稱項目不存在,則所產生之電子郵件訊息本文在範本中取代記號佔用的位置上沒有任何文字。

電子郵件範本可用來產生純文字、HTML 或 XML 格式的訊息本文。

如果電子郵件範本產生純文字訊息,則必須由指定純文字做為其輸出類型的樣式表來進行處理。 如果樣式表未指定純文字做為其輸出類型,則會發生不想要的 XML 逸出。 預設「手動任務服務驅動程式」樣式表 process_text_template.xsl 一般用來處理產生純文字的範本。

發行者通道規則

在大部份「手動任務服務驅動程式」的實作中,不需要「發行者」通道規則。 這是因為可能會建構網頁和 XDS 範本,以便準確地產生所需的 XDS,而且不需要由規則進一步處理 XDS。

如果需要規則,則它們將是專門針對某個安裝。

發行者通道網頁範本

網頁範本是包含模板和取代記號的 XML 文件。 網頁範本是用來產生網頁文件 (通常是 HTML 文件)。 如需範本的一般資訊,請參閱範本

網頁範本中的取代記號指示「訂閱者」通道上做為 URL 查詢資料提供的取代資料。 「發行者」通道上的取代資料會從 HTTP GET 申請的 URL 查詢字串取得,並從 HTTP POST 申請的 URL 查詢字串和 POST 資料取得。

做為從「訂閱者」通道至電子郵件訊息,然後至「發行者」通道 Web 伺服器的取代資料流程範例,請考量下列案例。

設定「手動任務服務驅動程式」的組態,以便請求新員工管理員指定新員工的房間號碼。 對新「使用者」物件的 <add> 指令 (由「訂閱者」通道「指令轉換」規則處理) 是傳送至管理員之電子郵件的觸發。

當管理員按一下電子郵件訊息中的 URL 時,即會在管理員的網頁瀏覽器中顯示網頁。 該網頁必須指出管理員正在為何人輸入房間號碼。

若要完成此項操作,「訂閱者」通道上的 <url-query> 元素會包含依名稱識別新使用者的取代資料項目:

<item name=”subject-name”>Joe the Intern</item>

這會讓 URL 查詢字串除其他內容外,還特別包含了 “subject-name=Joe%20the%20Intern” (其中 “%20” 是 URL 編碼空間)。

當管理員按一下電子郵件訊息中的 URL 時,其網頁瀏覽器會提交 URL 至「發行者」通道 Web 伺服器。 Web 伺服器會建構名為 subject-name 且值為 Joe the Intern 的取代資料項目。

同樣由 URL 指定的網頁範本會包含取代記號 $subject-name$。在樣式表處理網頁範本以建構網頁時,取代記號由 Joe the Intern 取代,其會針對因建立「使用者」物件而導致傳送電子郵件的員工自定網頁。

如需完整「訂閱者」通道至「發行者」通道異動的其他資訊,請參閱節 H.0, 手動任務服務驅動程式: 新員工的資料流程案例

發行者通道 XDS 範本

XDS 範本是包含模板和取代記號的 XML 文件。 XDS 範本是用來產生 XDS 文件,這些文件會提交至「手動任務服務驅動程式」之「發行者」通道上的 Identity Manager。 如需範本的一般資訊,請參閱「綜覽」一節下的「範本」。

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 資料必須提供關聯值和房間號碼值。

關聯值一般會在「訂閱者」通道中產生。 「訂閱者」通道電子郵件會將 association=some 值置於電子郵件訊息中包含之 URL 的查詢字串內。 在將 URL 提交至 Web 伺服器時用來產生網頁的網頁範本,通常會將關聯值置於隱藏的 INPUT 元素中:

<INPUT TYPE="hidden" NAME="association" VALUE="$association$"/>

將關聯值置於隱藏的 INPUT 元素,會導致將 “association=some value” 配對做為 HTTP POST 資料的一部份來進行提交。

使用類似於下列內容的 INPUT 元素,在網頁中輸入 room-number 值:

<input TYPE="text" NAME="room-number" SIZE="20" MAXLENGTH="20"/>

如果管理員輸入 1234,並按一下「提交」,則網頁瀏覽器會將 “room-number=1234” 做為 HTTP POST 資料的一部份來進行傳送。

然後,Web 伺服器會產生 <item name=“association”> 取代資料項目和 <item name=“room-number”> 取代資料項目,以供在處理 XDS 範本時使用。

使用 POST 資料中指定的樣式表處理 XDS 範本,以產生 XDS 文件。 然後將 XDS 文件提交至「手動任務服務驅動程式」之「發行者」通道上的 Identity Manager。

追蹤設定

「手動任務服務驅動程式」會輸出各種追蹤層級的訊息:

層級

追蹤訊息描述

0

無追蹤訊息

1

追蹤基本操作的單行訊息

2

無其他訊息 (「DirXML 引擎」會追蹤此層級和更高層級的 XML 文件)

3

無其他訊息

4

與使用範本和樣式表建構之文件相關的訊息

5

追蹤的取代資料文件

8.2.4 其他資訊

如需「手動任務服務驅動程式」設定的其他資訊,請參閱下列附錄部份: