Sun Java System Message Queue 4.1 版本說明

設定 JAAS 相容認證

設定 JAAS 相容認證的步驟,包含設定代理程式和系統特性以選取此認證類型、指定配置檔案的位置,以及指定將使用的登入模組項目。

本節說明 JAAS 用戶端、登入模組以及 JAAS 配置檔案之間如何相互關聯,接著說明設定 JAAS 相容認證所需的程序。下圖說明配置檔案、登入模組與代理程式之間的關係。

圖 1–3 設定 JAAS 支援

本圖說明 JAAS 相關檔案之間的關係。圖形之後的文字說明其內容。

如圖所示,JAAS 配置檔案 MyJAASCFile.config 包含數個登入模組的參照,共同組成一個進入點。代理程式會藉由查詢 Java 系統特性 java.security.auth.login.config 或 Java 安全性特性檔案,以找出配置檔案。決定要使用的登入模組時須查詢代理程式特性 imq.user_repository.jaas.name,該特性會指定配置檔案中的所需項目。這些模組的類別位於 lib/ext 目錄中。

若要設定 JAAS 對 Message Queue 的支援,您必須完成下列步驟。(在開發環境中,這些步驟可能是由開發人員完成。在生產環境中,管理員會接管部分此類作業。)

  1. 建立可實作認證服務的一或多個登入模組類別。以下列出代理程式支援的 JAAS 回呼類型。

    javax.security.auth.callback.LanguageCallback

    代理程式使用此回呼,將執行代理程式所在的語言環境傳遞給認證服務。此值可用於本土化。

    javax.security.auth.callback.NameCallback

    代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的使用者名稱,傳遞至認證服務。

    javax.security.auth.callback.TextInputCallback

    代理程式使用此回呼,在 TextInputCallback.getPrompt()imq.authentication.type 時,將 imq.authentication.type 的值指定給認證服務。現在此欄位唯一可能的值為 basic。這表示 Base-64 密碼編碼。

    javax.security.auth.callback.PasswordCallback

    代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的密碼,傳遞至認證服務。

    javax.security.auth.callback.TextOutputCallback

    代理程式使用此回呼將文字輸出記錄到代理程式記錄檔,以提供記錄服務給認證服務。回呼的訊息類型 ERRORINFORMATIONWARNING 分別對映至代理程式的記錄層級 ERRORINFOWARNING

  2. 建立包含參照登入模組類別之項目的 JAAS 配置檔案,並將此檔案的位置指定給 Message Queue 管理員。(該檔案可位於遠端,並可由 URL 指定其位置。)

  3. 記下 JAAS 配置檔案中參照登入實作類別的項目名稱。

  4. 將實作登入模組的類別歸檔為 jar 檔案,並將 jar 檔案置於 Message Queue 的 lib/ext 目錄中。

  5. 配置與 JAAS 支援相關的代理程式特性。這些特性說明於表 1–2 中。

  6. 設定下列系統特性,以指定 JAAS 配置檔案的位置。

    java.security.auth.login.config= JAAS_Config_File_Location

    例如,您可以在啟動代理程式時指定配置檔案。

    imqbrokerd -Djava.security.auth.login.config=JAAS_Config_File_Location

    還有其他方法可指定 JAAS 配置檔案的位置。如需其他資訊,請參閱

    http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html

下表列出設定 JAAS 支援所需的代理程式特性。

表 1–2 JAAS 支援的代理程式特性

特性 

說明 

imq.authentication.type

設定為 basic,以表示為 Base-64 密碼編碼。此為 JAAS 認證的唯一允許值。

imq.authentication.basic.user_repository

設定為 jaas,以指定 JAAS 認證。

imq.accesscontrol.type

設定為 file

imq.user_repository.jaas.name

設定為參照需要用做認證機制之登入模組的所需項目 (位於 JAAS 配置檔案中) 名稱。這是您在步驟 3 中記下的名稱。

imq.user_repository.jaas.userPrincipalClass

此特性由 Message Queue 存取控制所使用,會指定登入模組中的 java.security.Principal 實作類別,讓代理程式用來擷取在 Message Queue 存取控制檔案中表示使用者實體的主體名稱。若未指定,則會改用請求連線時從 Message Queue 用戶端傳遞的使用者名稱。

imq.user_repository.jaas.groupPrincipalClass

此特性由 Message Queue 存取控制所使用,會指定登入模組中的 java.security.Principal 實作類別,讓代理程式用來擷取在 Message Queue 存取控制檔案中表示使用者實體的主體名稱。若未指定,則會忽略 Message Queue 存取控制檔案中的群組規則 (若有的話)。