1.1 驅動程式概念

本節包含下列資訊:

1.1.1 資料管理

驅動程式會使用各種網際網路協定和語言,在 Identity Manager 與 Web 服務之間交換資料。

SOAP

SOAP (簡易物件存取協定) 是基於 XML 的協定,用於交換 Identity Manager 中的訊息。 它定義訊息交換,但不定義訊息內容。 此驅動程式支援 SOAP 1.1。

SOAP 文件分成三個元素:

  • 封套: XML 根節點。

  • 標題: 提供網路位置知識,例如異動 ID 與安全性資訊。

  • 本文: 方法特定的資訊。

SOAP 採用 HTTP 申請/回應訊息模式,在 HTTP 申請中提供 SOAP 申請參數,並在 HTTP 回應中提供 SOAP 回應參數。

SPML 和 DSML

SOAP 驅動程式包含下列兩個協定的範例組態: SPML 1.0 和 DSML 2.0。

  • SPML 1.0: 「服務供應標記語言」是基於 XML 的提供申請和回應協定。 用戶端會向伺服器發出 SPML 申請。 該申請描述要在指定服務點上執行的操作。 服務點則會執行必要的操作以實作申請的服務。 操作完成後,服務點會將 SPML 回應傳回至用戶端,詳細描述與該申請相關的任何結果或錯誤。

    驅動程式支援 SPML 1.0。SPML 與 SOAP 1.1 結合,並以 HTTP 和 HTTPS 1.1 做為輸送協定。

  • DSML 2.0: 「目錄服務標記語言」以 XML 文件的形式顯示目錄結構資訊、目錄查詢和更新,以及這些操作的結果。

DSML 與 SOAP 1.1 結合,並以 HTTP 和 HTTPS 1.1 做為輸送協定。

如需驅動程式包含之範例 SPML 和 DSML 組態的相關資訊,請參閱使用範例驅動程式組態

XML

XML (可延伸標記語言) 是「標準通用標記語言 (SGML)」的一般子集,可用於在網際網路上交換結構化資料。

HTTP

HTTP 是一種通訊協定,用於經由網際網路或其他電腦網路申請和傳輸資料。該協定適用於網際網路基礎結構,也可與防火牆搭配使用。

HTTP 是一種無狀態的申請/回應系統,因為通常只有在立即申請的情況下才會保持連接狀態。 用戶端會建立與伺服器的 TCP 連接,並會向伺服器傳送申請指令。 隨後,伺服器會傳回回應。

1.1.2 驅動程式的運作方式

下圖說明 Identity Manager 與 Web 服務之間的資料流程:

Figure 1-1 SOAP 驅動程式資料流程

Identity Manager 引擎使用 XDS (一種特殊格式的 XML) 來表示 Identity Vault 中的事件。 Identity Manager 將 XDS 傳遞至驅動程式規則,該規則由基本規則、DirXML® Script 及 XSLT 樣式表組成。

在「訂閱者」通道上,驅動程式規則會將 XDS 轉譯為 XML (例如 SOAP)。 而在「發行者」通道上,驅動程式規則會將 SOAP 等其他格式的 XML 轉譯為 XDS。

驅動程式 Shim 使用 HTTP 與 Web 服務進行通訊。 通常,在驅動程式 Shim 與應用程式之間進行遞交的是序列化 XML。

例如,假設驅動程式使用 DSML 範例組態與僅設定為「訂閱者」的 DSML 伺服器進行通訊, 當 Identity Vault 中發生事件時,Identity Manager 會建立 XDS 指令來代表該事件。 Identity Manager 會將 XDS 指令傳遞至驅動程式規則。

驅動程式規則會以輸出轉換樣式表轉換 XDS 指令。 XSLT 樣式表會將 XDS 轉換為包含 DSML 的 SOAP 封套。 隨後會將該 SOAP 封套傳遞至驅動程式 Shim。 驅動程式 Shim 會將 SOAP 封套轉換為位元組陣列,建立適當的 HTTP 連接,然後執行 HTTP POST 操作以將資料提交至 Web 服務。

Web 服務或應用程式會處理申請,並將 SOAP 回應傳回至驅動程式 Shim。 Shim 會以位元組陣列形式接收回應,並將該回應轉換為 XML 文件,然後傳回至驅動程式規則。 輸入轉換樣式表會處理回應,將其轉換為回報給 Identity Manager 引擎的適當 XDS 。

1.1.3 了解操作資料

驅動程式 Shim 會根據內嵌於指令中的 XML 元素,對訂閱者指令套用特殊處理,在 Shim 中會顯示為 <operation-data>。 使用 <operation-data> 元素有兩個目的。 首先,可以用來比對指令與指令所產生的回應,這對於建立兩者之間的關聯非常有用。 其次,可以用來置換預設「訂閱者」通道連接屬性。

<operation-data> 元素會從某個「訂閱者」通道規則新增至指令。 驅動程式 Shim 會先從指令中移除 <operation-data> 元素,然後再將其傳送至應用程式,並將 <operation-data> 元素還原到產生的回應中。

依預設,當在回應中還原 <operation-data> 元素時,該元素會附加為根節點的子元素。 也可以為 <operation-data> 元素提供一或多個 parent-node-n 屬性來置換預設,其中,n 是從 1 開始的數字,且每當要提供一個父指定器時,該數字便會遞增。 驅動程式 Shim 會檢查操作資料節點以尋找 parent-node-n 屬性。 如果找到屬性,會依次嘗試每個屬性,如果存在具名節點,則該節點會用做回應上之操作資料的父節點。

若要查看 <operation-data> 元素與樣式表搭配使用的方式,請參閱Section 4.5, 操作資料