VMware vSphere Web Services SDK程式設計指南(八)- 8.6 通過 SessionManager 認證使用者
8.6 通過 SessionManager 認證使用者
本章包括以下主題:
本小節從第6節開始
SessionManager 託管物件控制使用者訪問伺服器,SessionManager 包含登入伺服器、獲取一個 session 和退出的方法。
SessionManager 定義了許多物件的生命週期和可見性。
特定於會話的物件在建立它們的會話之外是不可見的。
注意:每個使用者會話使用系統資源及在伺服器端建立鎖,太多的併發會話會減慢伺服器的速度。預設情況下,vCenter 伺服器在30分鐘後終止一個會話。
當成功認證使用者帳戶,SessionManager 返回一個 UserSession 資料物件給客戶端應用程式,該會話在會話期間與使用者帳戶相關聯。
客戶端應用程式可以將會話本地化儲存到一個安全檔案中,並在稍後重用會話以重新連線到伺服器。
你也可以配置 ESXi 或 vCenter 伺服器系統來支援本地會話,這使得在主機上具有憑證的使用者可以基於這些許可權登入伺服器。
SessionManager 提供如下功能:
■ 登入和退出
基本的操作,登入 ESXi 或 vCenter 伺服器系統、獲取一個 session、退出。
當會話終止時,所有特定於會話的物件被銷燬。
■ 模擬(Impersonation)
一個使用者 session 採用另一個使用者 session 授權級別。
在基於Web的場景中,模擬是常見的,一箇中間層應用程式充當與其他後端伺服器或程序互動的中心帳戶的角色。當代表客戶端訪問資源時,Windows 服務模擬一個客戶端。
SesssionManager 通過它的 ImpersonateUser 方法支援模擬。
■ 代理
一個執行的客戶端應用代表一個本地使用者可用呼叫 SessionManager.AcquireLocalTicket 方法獲取一個用於登入的一次性使用者名稱和密碼。
代理對於在本地控制檯中執行的實用程式(基於主機的)非常有用。
如果與 session 關聯的使用者賬戶沒有執行操作的所需許可權,AuthorizationManager 返回一個 NoPermission 錯誤給客戶端應用程式。
8.6.1 在 vCenter 伺服器會話上使用 VMware 單點登入
vSphere 支援 vCenter 伺服器客戶端認證的單個點進行單點登入。
要使用 VMware 單點登入,你的 vSphere Web Services SDK 客戶端需連線到 VMware SSO 伺服器獲取一個 SSO 令牌。你的客戶端包含一個在 SessionManager.LoginByToken 請求開啟 vSphere session 的令牌。