Si Orchestrator est configuré avec le serveur vCenter Single Sign-On à l'aide du mode d'authentification vSphere, vous avez besoin d'un jeton de détenteur de clé principal pour accéder aux objets du système Orchestrator via l'API REST d'Orchestrator. Si vous souhaitez accéder à vCenter Server ou à des systèmes tiers utilisant le serveur vCenter Single Sign-On via le serveur Orchestrator, vous avez besoin d'un jeton de détenteur de clé délégué pour Orchestrator et de votre jeton principal.

Si Orchestrator est configuré avec le serveur vCenter Single Sign-On, vous devez vous authentifier à l'aide d'informations d'identification valides. Orchestrator gère le jeton de détenteur de clé.

Accéder à des objets système dans Orchestrator

Vous pouvez accéder à des objets système d'Orchestrator au niveau des URL des services Inventaire et Catalogue de l'API REST.

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

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

Pour accéder à des objets système d'Orchestrator, vous devez transposer votre jeton de détenteur de clé principal dans l'en-tête Authorization des demandes HTTP que vous envoyez au service Inventaire ou Catalogue.

Par exemple, pour récupérer tous les objets système de type Workflow, vous soumettez une demande GET au niveau de https://orchestrator_host:port/vco/api/catalog/System/Workflow/. Pour vous authentifier auprès d'Orchestrator, vous devez transposer votre jeton de détenteur de clé principal dans l'en-tête Authorization de la demande.

Accéder à des objets dans des systèmes tiers

Pour réaliser des opérations dans des systèmes tiers enregistrés auprès du serveur vCenter Single Sign-On via l'API REST d'Orchestrator, vous devez vous authentifier auprès d'Orchestrator et du système tiers. Vous devez insérer deux en-têtes dans les appels HTTP que vous envoyez via l'API REST d'Orchestrator.

  • Authorization. Vous devez transposer votre jeton de détenteur de clé principal dans cet en-tête.

  • VCOAuthorization. Vous devez transposer un jeton de détenteur de clé délégué pour Orchestrator dans cet en-tête. Vous devez obtenir le jeton délégué pour Orchestrator auprès du serveur vCenter Single Sign-On. Orchestrator utilise le jeton délégué pour s'authentifier en votre nom auprès du système tiers.

Par exemple, pour exécuter un workflow qui utilise une machine virtuelle via l'API REST d'Orchestrator, vous accédez aux ressources dans Orchestrator et dans vCenter Server. Pour vous authentifier auprès d'Orchestrator et de vCenter Server, vous devez transposer votre jeton de détenteur de clé principal dans l'en-tête Authorization de la demande que vous soumettez, et le jeton délégué dans l'en-tête VCOAuthorization. De cette façon, vous vous authentifiez auprès d'Orchestrator avec votre jeton principal et Orchestrator s'authentifie en votre nom auprès de vCenter Server avec le jeton délégué.

Le serveur vCenter Single Sign-On considère Orchestrator comme une solution, et chaque solution est enregistrée sous un nom d'utilisateur unique auprès du serveur vCenter Single Sign-On. Vous pouvez demander un jeton délégué pour Orchestrator en transmettant le nom d'utilisateur de la solution Orchestrator et un jeton de détenteur de clé principal au serveur vCenter Single Sign-On. Le jeton émis par le serveur vCenter Single Sign-On est un jeton de détenteur de clé délégué pour qu'Orchestrator puisse s'authentifier en votre nom auprès des systèmes tiers.

Obtenir une session en mode vCenter Single Sign-On

L'exemple de code suivant permet d'obtenir une session en mode 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(URI ssoUri, URI adminUri, VcoSessionFactory vcoSessionFactory, long lifeTimeSeconds);

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

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