Java ES 認證與授權服務由 Access Manager 提供。Access Manager 使用 Directory Server 中的資訊來協調使用者與 Java ES Web 服務或企業中其他網路型服務的互動。
Access Manager 會利用稱為策略代理程式的外部元件。策略代理程式外掛在託管受 Access Manager 保護的服務或資源的 Web 伺服器上。策略代理程式會在使用者請求存取受保護的資源時代表 Access Manager 進行調解。對於某些 Java ES 元件 (像是 Portal Server 與 Communications Express) 而言,策略代理程式的功能由 Access Manager 子元件提供 (請參閱Sun Java System Access Manager 7 2005Q4)。
Access Manager 包含一項認證服務,用於驗證請求 (以 HTTP 或 HTTPS 方式) 存取企業內部 Web 服務的使用者的識別。例如,需要查詢同事電話號碼的公司員工使用瀏覽器進入公司的線上電話簿。登入電話簿服務時,使用者必須輸入使用者 ID 和密碼。
圖 3–2 中顯示了認證順序。策略代理程式對電話簿 (1) 登入請求進行調解,並將該請求傳送給認證服務 (2)。認證服務會將使用者 ID 和密碼與 Directory Server (3) 中儲存的資訊進行核對。如果登入請求有效,使用者就可以通過認證 (4)、(5) 及 (6),而員工 (7) 即可看到公司電話簿。如果登入請求無效,就會產生錯誤,致使認證失敗。
認證服務也支援 HTTPS 上基於憑證的認證。
上述段落所討論的認證方案省略了一個重要步驟。驗證完使用者的認證請求後,Access Manager 的階段作業服務開始工作 (4),如圖 3–2 所示。階段作業服務會產生階段作業記號,其中包含使用者的識別資訊及記號 ID (5)。階段作業記號被傳回策略代理程式 (6),然後策略代理程式再把它 (視為 cookie) 轉送到當初用來請求認證的瀏覽器 (7) 中。
如果通過認證的使用者嘗試存取其他受到保護的服務,瀏覽器就會將階段作業記號傳送到對應的策略代理程式中。策略代理程式向階段作業服務驗證使用者的前一次認證是否仍然有效,如果有效,將授權使用者存取另一服務,而不會要求其再次輸入使用者 ID 和密碼。
因此,使用者只需要登入一次,通過認證後就可以存取多個 Java Enterprise System 提供的網路型服務。單次登入認證的效力可持續到使用者明確地簽出或階段作業過期為止。