Puede automatizar el acceso de aplicaciones de terceros a VMware Cloud Director mediante cuentas de servicio.

Solo los administradores del sistema y los administrador de organización con los derechos Ver cuentas de servicio y Administrar cuentas de servicio pueden crear cuentas de servicio y administrar el acceso a las cuentas de servicio para VMware Cloud Director.

Compartir

A partir de VMware Cloud Director 10.4.1, si solo tiene el derecho Vista de cuentas de servicio limitado, puede ver información limitada sobre las cuentas de servicio. Con la vista limitada, cuando se realiza una solicitud GET en la cuenta de servicio, en la respuesta, softwareId, softwareVersion, uri y status de la cuenta de servicio se muestran como null.

Implementación

Para proporcionar acceso automatizado a VMware Cloud Director, las cuentas de servicio usan tokens de API. Las cuentas de servicio están destinadas solo al acceso basado en API. Una vez que conceda acceso a una cuenta de servicio, la aplicación cliente autenticada recibirá su token de API, que es un token de actualización de OAuth, y un token de acceso, que representa su primera sesión en VMware Cloud Director, para su uso inmediato. Las aplicaciones necesitan tokens de API para autenticarse con VMware Cloud Director. Los tokens de acceso son tokens de sesión (tokens JWT) de VMware Cloud Director que las aplicaciones utilizan para realizar solicitudes de API mediante la cuenta de servicio. Las cuentas de servicio de las aplicaciones utilizan tokens de API y, por lo tanto, tienen las mismas restricciones que los tokens de API de usuario en VMware Cloud Director.

Se concede acceso a las cuentas de servicio mediante la “Solicitud de autorización de cuenta de servicio”. Esto garantiza que solo la aplicación que debe utilizar el token tenga acceso exclusivo al token y pueda utilizarlo. Ningún otro actor puede acceder al token. Usted, como administrador, administra el acceso a la cuenta de servicio. Sin embargo, ni siquiera los administradores tienen acceso al token real que otorga acceso. VMware Cloud Director da el token solo a la cuenta de servicio. Para ello, VMware Cloud Director cuenta con una norma muy conocida. Para asegurarse de que tanto usted como la aplicación a la que concede el token estén sincronizados mediante la concesión y la transmisión de tokens, solo podrá iniciar el proceso de concesión de tokens de API si conoce el código de usuario de la aplicación.

A diferencia de los tokens de API de usuario, los tokens de API concedidos a las cuentas de servicio rotan en cada uso, según RFC 6749 sección 6. Los tokens de API de la cuenta de servicio que no se utilizan nunca caducan a menos que los revoque.

Las cuentas de servicio solo pueden tener una función. En las API compatibles con OAuth, la función se comunica a través del campo de ámbito como un nombre de recurso uniforme (URN) codificado en la URL con el nombre de la función. El formato URN es urn:vcloud:role:[roleName]. Consulte RFC 8141, donde se describe la codificación URN.

Nota: El endpoint del dispositivo no está autenticado. Considere la posibilidad de configurar reglas de limitación especiales en el equilibrador de carga.
Tabla 1. Estados de cuenta de servicio
Estado Descripción
Fecha de creación La cuenta se encuentra en el estado inicial después de su creación.
Solicitado Hay una o varias solicitudes de acceso pendientes que un solicitante inició mediante una solicitud de autorización de dispositivo.
Concedida Un administrador otorgó una solicitud pendiente y está esperando el sondeo de la cuenta de servicio y la obtención del token de API.
Activo La cuenta de servicio ha obtenido el token de API y puede acceder a VMware Cloud Director usando ese token.

Limitaciones

Debido a que el uso de cuentas de servicio está dirigido a aplicaciones de terceros, las cuentas de servicio tienen algunas limitaciones.

Cuando se utilizan cuentas de servicio, las aplicaciones no pueden realizar ciertas tareas.
  • Realizar tareas de administración de usuarios
  • Crear tokens de API
  • Administrar otras cuentas de servicio
Al acceder a VMware Cloud Director mediante una cuenta de servicio, las aplicaciones solo tienen derechos de visualización para los siguientes recursos.
  • Usuario
  • Grupo
  • Funciones
  • Funciones globales
  • Paquetes de derechos
Las aplicaciones que acceden a VMware Cloud Director mediante una cuenta de servicio no tienen los siguientes derechos.
  • Token: Administrar
  • Token: Administrar todos

Multisitio

A partir de VMware Cloud Director 10.4.1, las cuentas de servicio pueden administrar y supervisar varios grupos de servidores o instalaciones de VMware Cloud Director distribuidas geográficamente y sus organizaciones como entidades únicas mediante la función multisitio. Para obtener más información sobre la función multisitio, consulte Configurar y administrar implementaciones de varios sitios. Si realiza una solicitud a una organización diferente de aquella en la que se ha autenticado, compruebe que la cuenta de servicio existe en la organización asociada y que tiene el mismo nombre y el mismo identificador de software. También debe incluir un encabezado X-VMWARE-VCLOUD-AUTH-CONTEXT que especifica el nombre de la organización que debe satisfacer la solicitud. Consulte la información para configurar y administrar implementaciones de varios sitios en Guía de programación de API de VMware Cloud Director.

Crear una cuenta de servicio mediante el VMware Cloud Director Tenant Portal

Puede crear una cuenta para el acceso automatizado a VMware Cloud Director mediante el de Tenant Portal.

Requisitos previos

Compruebe que ha iniciado sesión como administrador del sistema o como administrador de organización con los derechos Ver cuentas de servicio y Administrar cuentas de servicio.

Procedimiento

  1. En la barra de navegación superior, seleccione Administración.
  2. En el panel izquierdo, en Control de acceso, seleccione Cuentas de servicio.
  3. Haga clic en Nuevo.
  4. Introduzca un nombre para la cuenta de servicio.
  5. En el menú desplegable Asignar función, seleccione una función para la cuenta de servicio.
    La lista de funciones disponibles incluye las funciones de organización del sistema local o, si se trata de una organización de tenants, las funciones globales publicadas en la organización, además de cualquier otra función local del tenant.
  6. Introduzca un identificador de software para la cuenta de servicio o genere uno con el botón Generar ID de software.

    Las cuentas de servicio deben tener identificadores de software que sean identificadores únicos, en formato UUID, que representen el software que se conecta a VMware Cloud Director. Este ID sería el mismo para todas las versiones e instancias de na parte del software.

    Para las soluciones más grandes, con el fin de conservar el control sobre la identidad de las cuentas de servicio, no utilice la opción Generar ID de software y genere su propio identificador de software.

  7. (opcional) Introduzca la versión de software del sistema mediante la cuenta de servicio.
    La versión de software es un elemento informativo opcional, especificado por el proveedor, de metadatos asociados a la cuenta de servicio. Para realizar un seguimiento de cuándo cambia una parte del software, VMware Cloud Director utiliza la versión de software. La versión de software puede ser útil para identificar una cuenta de servicio.
  8. (opcional) Introduzca un URI de cliente.
    El identificador uniforme de recursos (URI) del cliente es una URL de la página web del proveedor y proporciona información sobre el cliente.
  9. Haga clic en Siguiente.
  10. (opcional) Agregue cuotas en los recursos que desea que administre la cuenta de servicio.
    Estas cuotas limitan la capacidad de la cuenta de servicio para consumir recursos informáticos y de almacenamiento.
  11. Revise la información de la cuenta de servicio y haga clic en Finalizar.

Resultados

La cuenta de servicio aparece en la página Cuentas de servicio con el estado Created.

Ejemplo

También puede crear una cuenta de servicio mediante la API de VMware Cloud Director. La solicitud de API utiliza el mismo endpoint de API que la creación de un token de API de usuario, pero la presencia del campo software_id indica la intención de crear una cuenta de servicio.

Solicitud de muestra:
POST /oauth/tenant/tenant_name/register 

Accept:application/json

Content-Type:application/json

Authorization:Bearer eyJhbGciOiJSUzI...7g7rA 

Body: { 

    "client_name": "exampleServiceAccount", 

    "software_id": "bc2528fd-35c4-44e5-a55d-62e5c4bd9c99", 

    "scope": "urn:vcloud:role:Organization%20Administrator", 

    "client_uri": "https://www.company_name.com", 

    "software_version": "1.0" 

} 
Respuesta de muestra:
{ 

"client_name": "exampleServiceAccount", 

"client_id": "734e3845-1573-4f07-9b6c-b493c9042187", 

"grant_types": [ 

"urn:ietf:params:oauth:grant-type:device_code" 

], 

"token_endpoint_auth_method": "none", 

"client_uri": "https://www.company_name.com", 

"software_id": "bc2528fd-35c4-44e5-a55d-62e5c4bd9c99", 

"software_version": "1.0", 

"scope": "urn:vcloud:role:Organization%20Administrator" 

} 

Qué hacer a continuación

Copie el ID de cliente que aparece en los detalles de la cuenta de servicio. Para conceder acceso a la cuenta de servicio, debe utilizar el identificador de cliente.

Conceder acceso a una cuenta de servicio mediante el VMware Cloud Director Tenant Portal

Después de crear una cuenta de servicio y de que la aplicación solicite autorización para recibir un token de acceso, podrá conceder el token a través del VMware Cloud Director Tenant Portal de .

Nota: Si el período de tiempo de espera caduca durante este procedimiento, el estado de la cuenta de servicio en el Tenant Portal de retoma el valor Created y deberá volver a iniciar el procedimiento.

Requisitos previos

  1. Compruebe que ha iniciado sesión como administrador del sistema o como administrador de organización con los derechos Ver cuentas de servicio y Administrar cuentas de servicio.
  2. Copie el identificador de cliente de los detalles de la cuenta de servicio en el Tenant Portal de .
  3. Compruebe que la aplicación que solicita la cuenta realice una solicitud de concesión de autorización de dispositivo que cumpla la RFC de OAuth 2.0 al endpoint de API https://site.cloud.example.com/oauth/tenant/tenant_name/device_authorization. Para obtener más información sobre solicitudes de autorización de dispositivos, consulte RFC 8628 sección 3.1.
    Clave Valor
    client_ID Generated_Client_ID

    Una vez que la aplicación solicita acceso, el estado de la cuenta de servicio en el Tenant Portal de cambiará a Requested. La aplicación recibe el código del dispositivo, el código de usuario y cierta información adicional.

    Solicitud de muestra:

    POST /oauth/tenant/tenant_name/device_authorization
    Accept:application/json 
    Content-Type: application/x-www-form-urlencoded
    Body:
    client_id=734e3845-1573-4f07-9b6c-b493c9042187
    Respuesta de muestra:
    {
    "device_code": "tkhZ0uoUMy5xgjJqRJblIq3-g44xy2Ms6TEpv3Z_fKw",
    "user_code": "3VL8-SQVJ",
    "verification_uri": "https://[VCD]/tenant/tenant_name/administration/access-control/service-accounts",
    "expires_in": 3600,
    "interval": 60
    }

    El dispositivo debe sondear a la frecuencia especificada en la respuesta anterior (en segundos) /oauth/tenant/tenant_name/token según la RFC. El dispositivo debe utilizar el código de dispositivo hasta que reciba los tokens de VMware Cloud Director o se agote el tiempo de espera de la solicitud.

    Solicitud de muestra:

    POST: /oauth/tenant/tenant_name/token
    Accept:application/json 
    Content-Type: application/x-www-form-urlencoded
    Body:
    client_id= 734e3845-1573-4f07-9b6c-b493c9042187&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code&device_code=tkhZ0uoUMy5xgjJqRJblIq3-g44xy2Ms6TEpv3Z_fKw
    Respuesta de ejemplo antes de conceder:
    {
        "error": "authorization_pending",
        "error_description": "Device authorization request pending",
        "error_uri": null,
        "minorErrorCode": "authorization_pending",
        "message": "Device authorization request pending",
        "stackTrace": null
    }
    Respuesta de ejemplo después de conceder:
    {
        "access_token": "eyJhbGciOiJSU…HqJaDud1sVA",
        "token_type": "Bearer",
        "expires_in": 2592000,
        "refresh_token": "SsybukUed8SBP2p1AaFiGJhrntQNWZVX"
    }

    Si no confirma ni deniega una solicitud de acceso, el tiempo de espera del código de usuario se agota. El período de tiempo de espera aparece en la respuesta de la solicitud de autorización del dispositivo.

    VMware Cloud Director otorga un token de API principal a la aplicación solo si la aplicación y el administrador utilizan el código de dispositivo y el código de usuario correspondientes entre sí.

  4. Obtenga el código de usuario de la aplicación. Debe introducir el código en el paso 4.

Procedimiento

  1. En la barra de navegación superior, seleccione Administración.
  2. En el panel izquierdo, en Control de acceso, seleccione Cuentas de servicio.
  3. Haga clic en Revisar solicitudes de acceso.
  4. Introduzca el código de usuario de la aplicación que ha obtenido en el prerrequisito 3, haga clic en Búsqueda y compruebe los detalles de acceso solicitados.
  5. Concede acceso a la aplicación.
    Si deniega el acceso a la aplicación y el estado de la cuenta de servicio en el Tenant Portal de cambia de nuevo a Created.

Resultados

El estado de la solicitud de servicio cambia a Granted. VMware Cloud Director concede a la aplicación vinculada a la cuenta de servicio su token de API principal en forma de token de API. Se incluye en la respuesta según lo requerido por RFC y es un token de acceso de OAuth que representa una sesión de usuario que la cuenta de servicio puede usar inmediatamente. Si la aplicación no utiliza el token de acceso de OAuth inmediatamente, se agota el tiempo de espera de la sesión según establezca el tiempo de espera de sesión inactiva configurado. La cuenta de servicio también puede cerrar sesión de forma explícita, lo cual se recomienda no solo por motivos de seguridad, sino que también porque proporciona una buena ejecución de prueba para que la cuenta de servicio realice una llamada API a VMware Cloud Director. Una vez que la aplicación obtiene el token de la API, el estado cambia a Active.

Qué hacer a continuación

  • Para cambiar la función de la cuenta de servicio asignada, el identificador de software, la versión de software, el URI de cliente o las restricciones de cuota, seleccione una cuenta de servicio y haga clic en Editar una cuenta de servicio. Los cambios se aplican en la siguiente actualización del token.
  • Para revocar el acceso a la cuenta de servicio para que el token de API concedido deje de ser válido, haga clic en Revocar. VMware Cloud Director finaliza todas las sesiones activas. Al revocar un token de API, no se elimina la cuenta de servicio. No obstante, el estado de la cuenta cambia a Created. Si la aplicación ya ha solicitado acceso de nuevo, el estado de la cuenta de servicio cambia a Requested. Debe volver a seguir el procedimiento para conceder acceso a la cuenta de servicio para que la cuenta se vuelva a ser Active.