設定 JAAS 相容認證的步驟,包含設定代理程式和系統特性以選取此認證類型、指定配置檔案的位置,以及指定將使用的登入模組項目。
本節說明 JAAS 用戶端、登入模組以及 JAAS 配置檔案之間如何相互關聯,接著說明設定 JAAS 相容認證所需的程序。下圖說明配置檔案、登入模組與代理程式之間的關係。
如圖所示,JAAS 配置檔案 MyJAASCFile.config 包含數個登入模組的參照,共同組成一個進入點。代理程式會藉由查詢 Java 系統特性 java.security.auth.login.config 或 Java 安全性特性檔案,以找出配置檔案。決定要使用的登入模組時須查詢代理程式特性 imq.user_repository.jaas.name,該特性會指定配置檔案中的所需項目。這些模組的類別位於 lib/ext 目錄中。
若要設定 JAAS 對 Message Queue 的支援,您必須完成下列步驟。(在開發環境中,這些步驟可能是由開發人員完成。在生產環境中,管理員會接管部分此類作業。)
建立可實作認證服務的一或多個登入模組類別。以下列出代理程式支援的 JAAS 回呼類型。
代理程式使用此回呼,將執行代理程式所在的語言環境傳遞給認證服務。此值可用於本土化。
代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的使用者名稱,傳遞至認證服務。
代理程式使用此回呼,在 TextInputCallback.getPrompt() 為 imq.authentication.type 時,將 imq.authentication.type 的值指定給認證服務。現在此欄位唯一可能的值為 basic。這表示 Base-64 密碼編碼。
代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的密碼,傳遞至認證服務。
代理程式使用此回呼將文字輸出記錄到代理程式記錄檔,以提供記錄服務給認證服務。回呼的訊息類型 ERROR、INFORMATION 和 WARNING 分別對映至代理程式的記錄層級 ERROR、INFO 和 WARNING。
建立包含參照登入模組類別之項目的 JAAS 配置檔案,並將此檔案的位置指定給 Message Queue 管理員。(該檔案可位於遠端,並可由 URL 指定其位置。)
記下 JAAS 配置檔案中參照登入實作類別的項目名稱。
將實作登入模組的類別歸檔為 jar 檔案,並將 jar 檔案置於 Message Queue 的 lib/ext 目錄中。
配置與 JAAS 支援相關的代理程式特性。這些特性說明於表 1–2 中。
設定下列系統特性,以指定 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 存取控制檔案中的群組規則 (若有的話)。 |