Si Orchestrator se configura con el servidor de vCenter Single Sign-On y se desactiva la autenticación básica, necesita un token poseedor de la clave principal para acceder a los objetos del sistema en Orchestrator a través de la API de REST de Orchestrator. Para acceder a vCenter Server o a sistemas de terceros que utilicen el servidor de vCenter Single Sign-On a través del servidor de Orchestrator, necesita un token poseedor de la clave delegado para Orchestrator y su token principal.

Si Orchestrator se configura con el servidor de vCenter Single Sign-On y la autenticación básica está activada, debe autenticar mediante credenciales válidas y Orchestrator administrará el token poseedor de la clave.

Acceder a objetos del sistema en Orchestrator

Puede acceder a los objetos del sistema en Orchestrator en las direcciones URL de los servicios de catálogo e inventario de la API de REST.

  • https://host_orchestrator:puerto/vco/api/inventory/System/

  • https://host_orchestrator:puerto/vco/api/catalog/System/

Cuando accede a objetos del sistema en Orchestrator, transfiere su token poseedor de la clave principal en el encabezado de Authorization de las solicitudes HTTP que realiza al servicio de catálogo o inventario.

Por ejemplo, para recuperar todos los objetos del sistema de tipo Workflow, realiza una solicitud GET en https://host_orchestrator:puerto/vco/api/catalog/System/Workflow/. Para autenticarse en Orchestrator, debe transferir su token poseedor de la clave principal en el encabezado Authorization de la solicitud.

Acceder a objetos en sistemas de terceros

Para realizar operaciones en sistemas de otros proveedores registrados con el servidor de vCenter Single Sign-On a través de la API de REST de Orchestrator, debe autenticarse en Orchestrator y en el sistema de terceros. Es necesario incluir dos encabezados en las llamadas HTTP que realice a través de la API de REST de Orchestrator.

  • Authorization. Debe transferir el token poseedor de la clave principal en este encabezado.

  • VCOAuthorization. Debe transferir un token poseedor de la clave delegado para Orchestrator en este encabezado. Es necesario obtener el token delegado del servidor de vCenter Single Sign-On Server para Orchestrator. Orchestrator utiliza el token delegado para autenticarse en el sistema de terceros en su nombre.

Por ejemplo, para ejecutar un flujo de trabajo que utiliza una máquina virtual a través de la API de REST de Orchestrator, acceda a los recursos de Orchestrator y de vCenter Server. Para autenticarse en Orchestrator y en vCenter Server, debe transferir su token poseedor de la clave principal en el encabezado de Authorization de la solicitud realizada y el token delegado en el encabezado de VCOAuthorization. De este modo, se autentica en Orchestrator con su token principal y Orchestrator se autentica en su nombre en vCenter Server con el token delegado.

El servidor de vCenter Single Sign-On trata a Orchestrator como una solución y cada solución queda registrada con un nombre de usuario exclusivo en el servidor de vCenter Single Sign-On. Para solicitar un token delegado para Orchestrator, transfiera el nombre de usuario de la solución de Orchestrator y un token poseedor de la clave principal al servidor de vCenter Single Sign-On. El token que emite el servidor de vCenter Single Sign-On Server es un token poseedor de la clave delegado para que Orchestrator se autentique en su nombre en los sistemas de terceros.

Obtener una sesión en modo vCenter Single Sign-On

Con el código de ejemplo siguiente se obtiene una sesión en modo 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