Sun Java System Application Server 9.1 管理指南

關於認證與授權

認證與授權是應用程式伺服器安全性的核心概念。以下主題論述了與認證和授權相關的內容:

認證實體

認證是實體 (使用者、應用程式或元件) 用於確定其他實體是否是其宣告的實體的方法。實體使用安全性憑證對其自身進行認證。憑證可以是使用者名稱和密碼、數位證書或其他憑證。

通常,認證表示使用者使用使用者名稱和密碼登入某個應用程式;也可以指 EJB 從伺服器請求資源時,提供安全性憑證。通常,伺服器或應用程式要求使用者端進行認證;另外,使用者端也可以要求伺服器對其自身進行認證。如果認證是雙向的,則稱為相互認證。

當實體嘗試存取受保護的資源時,Application Server 將使用為該資源配置的認證機制來確定是否授予存取權。例如,使用者可以在 Web 瀏覽器中輸入使用者名稱和密碼,如果應用程式順利完成了對這些憑證的驗證,則表示該使用者已通過認證。在此階段作業的剩餘時間內,該使用者將始終與這個經過認證的安全性身份相關聯。

Application Server 支援四種認證類型。應用程式在其部署描述元中指定所使用的認證類型。

表 9–1 Application Server 認證方法

認證方法

通訊協定

說明

使用者憑證加密

BASIC 

HTTP (SSL 選取性) 

使用伺服器的內建快顯式登入對話方塊。 

無,除非使用 SSL。 

FORM 

HTTP (SSL 選取性) 

應用程式提供它自己的自訂登入頁面和錯誤頁面。 

無,除非使用 SSL。 

CLIENT-CERT 

HTTPS (基於 SSL 的 HTTP) 

伺服器使用公開金鑰證書認證使用者端。 

SSL 

驗證單次登入

單次登入可以讓一個虛擬伺服器實例中的多個應用程式共用使用者認證狀態。使用單次登入,登入到一個應用程式的使用者也會隱式登入到需要相同認證資訊的其他應用程式。

單次登入基於群組。其部署描述元定義相同的群組並使用相同認證方法 (BASIC、FORM、CLIENT-CERT) 的所有 Web 應用程式,均共用單次登入。

對於為 Application Server 定義的虛擬伺服器,依預設已啟用單次登入。

對使用者進行授權

使用者通過認證後,授權層級將決定該使用者可以執行哪些作業。使用者獲得的授權以其角色為依據。例如,人力資源應用程式可以授權管理者檢視所有員工的個人資訊,但每個員工僅能檢視自己的個人資訊。如需有關角色的更多資訊,請參閱瞭解使用者、群組、角色和範圍

指定 JACC 提供者

JACC (Java 容器授權合約) 屬於 Java EE 規格,它定義可插接式授權提供者介面。這可以讓管理員設置協力廠商外掛程式模組以執行授權。

依預設,Application Server 提供符合 JACC 規格並基於檔案的簡單授權引擎。還可以指定其他協力廠商 JACC 提供者。

JACC 提供者使用 Java 認證與授權服務 (JAAS) API。JAAS 可以讓服務對使用者進行認證並強制對使用者進行存取控制。JAAS 實作了 Java 技術版本的標準可插接式認證模組 (PAM) 框架。

稽核認證與授權決策

Application Server 可以透過稽核模組提供對所有認證與授權決策的稽核追蹤。Application Server 提供預設的稽核模組,還提供了自訂稽核模組的功能。

配置訊息安全性

訊息安全性可以讓伺服器在訊息層執行 Web 服務呼叫和回應的點對點認證。Application Server 使用 SOAP 層上的訊息安全性提供者實作訊息安全性。訊息安全性提供者提供以下資訊,例如請求訊息和回應訊息所需的認證類型。受支援的認證類型包括:

此發行版本包括兩個訊息安全性提供者。可以為 SOAP 層的認證配置訊息安全性提供者。可以配置的提供者包括 ClientProviderServerProvider

訊息層安全性支援以 (可插接式) 認證模組的形式整合在 Application Server 及其用戶端容器中。依預設,Application Server 中的訊息層安全性處於停用狀態。

您可以為整個 Application Server 或者為特定的應用程式或方法配置訊息層安全性。第 10 章, 配置訊息安全性中論述了如何配置 Application Server 層級的訊息安全性。「開發者指南」討論如何在應用程式層級上配置訊息安全性。