若設定 Orchestrator 停用 vCenter Single Sign-On 伺服器和基本驗證,您需要主體金鑰持有者的 Token 才能透過 Orchestrator REST API 存取 Orchestrator 中的系統物件。若要透過 Orchestrator 伺服器存取 vCenter Server 或使用 vCenter Single Sign-On 伺服器的第三方系統,您需委派 Orchestrator 金鑰持有者 Token 與您的主體 Token。

若設定 Orchestrator 啟用 vCenter Single Sign-On 伺服器與基本驗證,您必須使用有效的憑證驗證,Orchestrator 才能管理金鑰持有者 Token。

存取 Orchestrator 中的系統物件

您可在詳細目錄 URL 存取 Orchestrator 中的系統物件,以及 REST API 的目錄服務。

  • https://orchestrator_host:port/vco/api/inventory/System/

  • https://orchestrator_host:port/vco/api/catalog/System/

當您存取 Orchestrator 中的系統物件後,即傳遞您在詳細目錄或目錄服務中提出 Authorization HTTP 要求標頭中的主體金鑰持有者 Token。

例如:若要擷取型別 Workflow 的所有系統物件,您需在 https://orchestrator_host:port/vco/api/catalog/System/Workflow/ 提出 GET 要求。若要驗證 Orchestrator,您需傳遞 Authorization 要求標頭中的主體金鑰持有者 Token。

存取第三方系統中的物件

若要透過 Orchestrator REST API 執行以 vCenter Single Sign-On 伺服器登錄的第三方系統作業,您必須驗證 Orchestrator 及第三方系統。您需在 HTTP 呼叫中加入兩個透過 Orchestrator REST API 提出的標頭。

  • Authorization。您必須通過此標頭中的主體金鑰持有者 Token。

  • VCOAuthorization。您必須傳遞此標頭中 Orchestrator 委派的主體金鑰持有者 Token。您必須取得 vCenter Single Sign-On 伺服器中由 Orchestrator 委派的 Token。Orchestrator 代表您使用委派 Token 驗證第三方系統。

例如,若要透過 Orchestrator REST API 執行使用虛擬機器的工作流程,您需在 Orchestrator 和 vCenter Server 中存取資源。若要驗證 Orchestrator 和 vCenter Server,您必須傳遞您提出 Authorization 標頭中的主體金鑰持有者 Token,以及 VCOAuthorization 標頭中的委派 Token。您可透過此方式利用主體 Token 驗證 Orchestrator,而 Orchestrator 則會代表您利用委派 Token 驗證 vCenter Server

vCenter Single Sign-On 伺服器將 Orchestrator 當成解決方案,而每一個解決方案皆以唯一使用者名稱向 vCenter Single Sign-On 伺服器登錄。您透過傳遞 Orchestrator 解決方案使用者名稱和主體金鑰持有者 Token 至 vCenter Single Sign-On 伺服器,要求 Orchestrator 委派 Token。vCenter Single Sign-On 伺服器發出的 Token 為 Orchestrator 用於代表您驗證第三方系統的委派金鑰持有者 Token。

在 vCenter Single Sign-On 模式中取得工作階段

下列範例代碼將在 vCenter Single Sign-On 模式中取得工作階段

URI uri = URI.create("https://orchestrator-server:8281/vco/api");
VcoSessionFactory sessionFactory = new DefaultVcoSessionFactory(uri);

//provide the address of the vCenter Single Sign-On server
URI ssoUri = URI.create("https://sso-server:7444/ims/STSService?wsdl");

//set the tokens to be valid for an hour
long lifeTimeSeconds = 60 * 60;

//create a factory for vCenter Single Sign-On tokens
SsoAuthenticator sso = new SsoAuthenticator(ssoUri, sessionFactory, lifeTimeSeconds);

//provide vCenter Single Sign-On credentials
SsoAuthentication authentication = sso.createSsoAuthentication("username", "password");

VcoSession session = sessionFactory.newSession(authentication);
//use session here