Sun Java Enterprise System 5 Update 1 技術摘要

認證及單次登入

Access Manager 提供 Java ES 認證和授權服務。Access Manager 使用 Directory Server 中的資訊來協調使用者與 Java ES Web 服務或企業中其他網路型服務的互動。

Access Manager 會使用稱為策略代理程式的外部元件。策略代理程式外掛在 Web 伺服器中,該伺服器負責託管受到 Access Manager 保護的某項服務或資源。策略代理程式會在使用者請求使用受保護的資源時,代表 Access Manager 來進行調解。對於一些 Java ES 元件 (例如 Portal Server) 而言,策略代理程式的功能是由 Access Manager SDK 子元件提供的。

認證

Access Manager 包含一項認證服務,可驗證請求 (以 HTTP 或 HTTPS 方式) 存取企業內部 Web 服務之使用者的識別。例如,需要查詢同事電話號碼的公司員工可以使用瀏覽器進入公司的線上電話簿。登入電話簿服務時,使用者必須輸入使用者 ID 和密碼。

圖 3–2 中顯示了認證順序。策略代理程式對電話簿登入請求進行調解 (1) ,並將該請求傳給認證服務 (2)。認證服務會將使用者 ID 和密碼與 Directory Server 中儲存的資訊加以核對 (3) 。如果登入請求有效,使用者就可以通過認證 (4)、(5) 及 (6),而員工 (7) 即可看到公司電話簿。如果登入請求無效,就會產生錯誤,致使認證失敗。

認證服務也支援 HTTPS 上基於憑證的認證。

圖 3–2 認證順序

顯示認證順序的示意圖,其中包括 Web 瀏覽器、策略代理程式、認證服務、階段作業服務及 Directory Server。

單次登入

上述段落所討論的認證方案省略了一個重要步驟。驗證完使用者的認證請求後,Access Manager 的階段作業服務開始工作 (4),如圖 3–2 所示。階段作業服務會產生階段作業記號,其中包含使用者的識別資訊及記號 ID (5)。階段作業記號被傳回策略代理程式 (6),然後策略代理程式再將該記號 (視為 cookie) 轉送到當初用來請求認證的瀏覽器中 (7)。

如果通過認證的使用者嘗試存取其他受到保護的服務,瀏覽器就會將階段作業記號傳送到對應的策略代理程式中。策略代理程式向階段作業服務驗證使用者的前一次認證是否仍然有效,如果有效,將授權使用者存取另一服務,而不會要求其再次輸入使用者 ID 和密碼。

因此,使用者只需要登入一次,通過認證之後就可以多次存取 Java ES 所提供之基於 Web 的服務。單次登入認證的效力可持續到使用者明確地簽出或階段作業過期為止。