Sun Java System Message Queue 4.1 版本說明

JAAS 與 Message Queue

下圖說明 Message Queue 代理程式如何使用 JAAS。該圖說明的 JAAS 模型實作比上圖所示更為複雜。

圖 1–2 Message Queue 使用 JAAS 的方式

該圖說明 JAAS 相容認證如何搭配 Message Queue 使用。圖形之後的文字說明其內容。

如同較簡單的範例所示,此認證服務層與代理程式是分開的。認證服務包含一或多個登入模組 (LoginModule),並視需要包含其他認證模組。執行登入模組的 Java 虛擬機器與執行代理程式的 Java 虛擬機器相同。Message Queue 代理程式被登入模組視為 LogInContext,並藉由屬於代理程式執行階段程式碼的 CallBackHandler 與登入模組通訊。

認證服務也提供 JAAS 配置檔案 (包含登入模組的項目)。配置檔案會指定使用模組的順序,以及某些使用條件。啟動代理程式時,JAAS 會依 Java 系統特性 java.security.auth.login.config 或 Java 安全性特性檔案找出配置檔案。接著會根據代理程式特性 imq.user_repository.jaas.name 的值,選取 JAAS 配置檔案中的項目。此項目會指定認證將使用的登入模組。如圖所示,代理程式可使用多個登入模組。(圖 1–3 說明了配置檔案與登入模組以及代理程式之間的關係。)

Message Queue 用戶端完全不會感受到代理程式使用 JAAS 外掛認證服務。用戶端會如同往常繼續連線至代理程式,並傳遞使用者名稱與密碼。而代理程式會使用回呼處理程式將此資訊傳遞至認證服務,再由服務使用該資訊認證使用者並傳回結果。認證一旦成功,代理程式便會授權連線;如果失敗,用戶端執行階段會傳回用戶端必須處理的 JMS 安全性異常。

Message Queue 用戶端經過認證之後,如果需要進一步的授權,則代理程式會如同往常進行;它會參考存取控制檔案,決定是否授權已認證的用戶端以執行所負責的動作:存取目標、使用訊息、瀏覽佇列等。