Message Queue 可提供使用者存取控制 (認證與授權) 與加密所需的安全性服務:
身為 Message Queue 管理員,您必須負責設定代理程式進行使用者認證及使用者授權作業時所需的資訊。與安全性服務相關的代理程式特性,列於安全性特性中。布林值特性 imq.accesscontrol.enabled 的角色為主開關,可控制是否要將存取控制套用於整個代理程式;若要進行細部控制,您可置換特定連線服務的此設定,只要設定 imq.serviceName .accesscontrol.enabled 特性即可,其中 serviceName 是連線服務的名稱,如表 4–1 所示:例如 imq.httpjms.accesscontrol.enabled。
圖 4–2 顯示代理程式提供認證與授權服務時所需的元件。這些服務取決於包含訊息傳送系統使用者相關資訊的使用者儲存庫:其名稱、密碼與群組成員身份。此外,若要為使用者或群組的特定作業授權,代理程式必須查詢存取控制特性檔案,因為此檔案指定了使用者或群組可執行的作業。您可以使用配置特性 imq.accesscontrol.file.filename 為整個代理程式指定單一存取控制特性檔案,也可以使用 imq.serviceName. accesscontrol.file.filename,為單一連線服務指定存取控制特性檔案。
如圖 4–2 所示,您可以將使用者資料儲存在隨附於 Message Queue 服務的平面檔案使用者儲存庫中,也可以外掛至預先存在的簡易目錄存取協定 (LDAP) 儲存庫:
若您選擇平面檔案儲存庫,就必須使用 Message Queue 使用者管理員公用程式 (imqusermgr) 管理儲存庫。此為內建選項,使用非常方便。
如果要使用現有的 LDAP 伺服器,可以使用 LDAP 供應商提供的工具來寫入和管理此使用者儲存庫。此外,您必須在代理程式的實例配置檔案中設定特性,讓代理程式能查詢 LDAP 伺服器,以取得使用者和群組的相關資訊。
代理程式的 imq.authentication.basic.user_repository 特性可指定要使用的儲存庫類型。一般而言,如果延展性很重要,或者如果需要不同代理程式共用儲存庫 (例如在使用代理程式叢集的情況下),則使用 LDAP 儲存庫是不錯的選擇。如需設置平面檔案或 LDAP 使用者儲存庫的更多資訊,請參閱使用者認證。
請求連線至代理程式的用戶端必須提供使用者名稱與密碼,供代理程式將其與使用者儲存庫中儲存的資料進行比較。從用戶端傳輸到代理程式的密碼,會以 Base64 編碼 (適用於平面檔案儲存庫) 或訊息摘要 (MD5) 雜湊法 (適用於 LDAP 儲存庫) 進行編碼。選擇哪一種編碼方式,由代理程式的 imq.authentication.type 特性整體控制,或由特定連線服務的 imq.serviceName. authentication.type 控制。imq.authentication.client.response.timeout 特性會設定認證請求的逾時時間間隔。
如密碼檔案所述,您可以選擇將密碼存入密碼檔案中,而不需以互動方式提示您提供密碼。布林值代理程式特性 imq.passfile.enabled 可控制此選項。若此特性為 true,imq.passfile.dirpath 與 imq.passfile.name 特性就會提供密碼檔案的目錄路徑與檔案名稱。imq.imqcmd.password 特性 (可內嵌於密碼檔案中) 可指定管理使用者在使用指令公用程式 (imqcmd) 管理代理程式、連線服務、連線、實體目標、長期訂閱與作業事件所使用的認證密碼。
若您使用 LDAP 型使用者儲存庫,則能使用多種代理程式特性來配置 LDAP 查找的各種設定。LDAP 伺服器本身的位址 (主機名稱與連接埠號) 由 imq.user_repository.ldap.server 所指定。imq.user_repository.ldap.principal 特性會提供連結到 LDAP 儲存庫所需的辨別名稱,而 imq.user_repository.ldap.password 則會提供相關的密碼。其他特性會指定個別使用者與群組搜尋的目錄基底與選用 JNDI 篩選器,以及使用者和群組名稱的提供者專用屬性識別碼等等;請參閱安全性特性以瞭解詳細資訊。
經過認證後,使用者即有權執行各項 Message Queue 的相關活動。身為 Message Queue 管理員,您可以定義使用者群組,並指定其個別的使用者成員身份。預設的存取控制特性檔案僅明確參考一個群組 admin (請參閱群組)。此群組中的使用者具有 admin 連線服務的連線權限,此權限可讓使用者執行管理功能,如建立目標、監視及控制代理程式。依預設,您定義的任何其他群組中的使用者,均無法取得 admin 服務連線。
當使用者嘗試執行作業時,代理程式會檢查使用者名稱和群組成員身份 (從使用者儲存庫),是否與為存取此作業所指定的那些名稱和成員身份 (在存取控制特性檔案中) 相符。存取控制特性檔案可指定以下作業的權限給使用者或群組:
若要加密在用戶端與代理程式之間傳送的訊息,您需要使用基於安全通訊端層 (SSL) 標準的連線服務。透過在已啟用 SSL 的代理程式與用戶端之間建立加密的連線,SSL 可提供連線層級的安全性。
若要使用 SSL 型的 Message Queue 連線服務,您必須使用金鑰工具公用程式 (imqkeytool),產生成對的私密金鑰/公開金鑰。此公用程式會將公開金鑰內嵌於自我簽署的憑證中,並放置在 Message Queue 金鑰庫中。金鑰庫本身受密碼保護;若要解除鎖定,您必須在啟動時提供由 imq.keystore.password 特性所指定的金鑰庫密碼。一旦金鑰庫解除鎖定,代理程式即可將憑證傳送至請求連線的任何用戶端。然後,用戶端即可使用此憑證設定與代理程式的加密連線。
imq.audit.enabled 代理程式特性可控制記錄到 Message Queue 代理程式記錄檔中的稽核記錄;如需更多資訊,請參閱稽核記錄。