Wenn Orchestrator mit dem vCenter Single Sign-On-Server konfiguriert und die Standardauthentifizierung deaktiviert ist, benötigen Sie ein Holder-of-key-Token für den Zugriff auf Systemobjekte in Orchestrator mithilfe der Orchestrator-REST-API. Für den Zugriff auf vCenter Server oder Drittanbietersysteme, die vCenter Single Sign-On über den Orchestrator-Server nutzen, benötigen Sie einen Holder-of-key-Delegattoken für Orchestrator sowie Ihren Prinzipaltoken.

Wenn Orchestrator mit dem vCenter Single Sign-On-Server und die Standardauthentifizierung aktiviert ist, benötigen Sie für die Authentifizierung gültige Anmeldedaten, und Orchestrator verwaltet die Holder-of-key-Token.

Zugriff auf Systemobjekte in Orchestrator

Sie können auf Systemobjekte in Orchestrator über die URLs der Bestandsliste oder über die Katalogdienste der REST-API zugreifen.

  • https://Orchestrator_Host:Port/vco/api/inventory/System/

  • https://Orchestrator_Host:Port/vco/api/catalog/System/

Beim Zugriff auf Systemobjekte in Orchestrator übergeben Sie Ihren Holder-of-key-Prinzipaltoken im Authorization-Header der HTTP-Anforderung, die an die Bestandsliste oder den Katalogdienst gestellt wird.

Beispiel: Um alle Systemobjekte vom Typ Workflow abzurufen, stellen Sie eine GET-Anforderung an https://Orchestrator_Host:Port/vco/api/catalog/System/Workflow/. Zur Authentifizierung bei Orchestrator müssen Sie im Authorization-Header der Anforderung Ihren Holder-of-key-Prinzipaltoken übergeben.

Zugriff auf Objekte in Drittanbietersysteme

Zur Durchführung von Vorgängen in Drittanbietersystemen, die über die Orchestrator-REST-API beim vCenter Single Sign-On-Server registriert sind, müssen Sie sich bei Orchestrator und beim Drittanbietersystem authentifizieren. Verwenden Sie bei den HTTP-Anforderungen, die Sie über die Orchestrator-REST-API ausführen, zwei Header.

  • Authorization. In diesem Header übergeben Sie den Holder-of-key-Prinzipaltoken.

  • VCOAuthorization. In diesem Header übergeben Sie den Holder-of-key-Delegattoken für Orchestrator. Den Delegattoken für Orchestrator beziehen Sie vom vCenter Single Sign-On-Server. Orchestrator verwendet den Delegattoken, wenn er für Sie die Authentifizierung beim Drittanbietersystem durchführt.

Beispiel: Um einen Workflow über die Orchestrator-REST-API auszuführen, in dem eine virtuelle Maschine verwendet wird, greifen Sie auf Ressourcen in Orchestrator und in vCenter Server zu. Zur Authentifizierung bei Orchestrator und vCenter Server müssen Sie im Authorization-Header der gestellten Anforderung den Holder-of-key-Prinzipaltoken und im VCOAuthorization-Header den Delegattoken übergeben. Dadurch authentifizieren Sie sich mit dem Prinzipaltoken bei Orchestrator, und Orchestrator authentifiziert Sie mithilfe des Delegattokens bei vCenter Server.

Der vCenter Single Sign-On-Server behandelt Orchestrator als eine Lösung, und jede Lösung ist mithilfe eines eindeutigen Benutzernamens beim vCenter Single Sign-On-Server registriert. Sie fordern einen Delegattoken für Orchestrator an, indem Sie den Orchestrator-Benutzernamen der Lösung und den Holder-of-key-Prinzipaltoken an den vCenter Single Sign-On-Server übergeben. Der vom vCenter Single Sign-On-Server ausgegebene Token ist ein Holder-of-key-Delegattoken für Orchestrator für Ihre Authentifizierung bei Drittanbietersystemen.

Abrufen einer Sitzung im vCenter Single Sign-On-Modus

Mit dem folgenden Beispielcode wird im vCenter Single Sign-On-Modus eine Sitzung abgerufen.

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