Puede automatizar el acceso de aplicaciones de terceros a VMware Cloud Director mediante cuentas de servicio.
Compartir
A partir de VMware Cloud Director 10.4.1, si desea limitar la información de la cuenta de servicio que pueden ver los usuarios, puede conceder a determinadas funciones solo el derecho Vista de cuentas de servicio limitado. Cuando un usuario con el derecho Vista de cuentas de servicio limitado 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.
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.
- Realizar tareas de administración de usuarios
- Crear tokens de API
- Administrar otras cuentas de servicio
- Usuario
- Grupo
- Funciones
- Funciones globales
- Paquetes de 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 consulte Configurar y administrar implementaciones de varios sitios. Si una cuenta de servicio realiza una solicitud a una organización diferente de aquella en la que está autenticada, 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 Service Provider Admin Portal
Puede crear una cuenta para el acceso automatizado a VMware Cloud Director mediante el Service Provider Admin Portal de .
Procedimiento
Resultados
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.
POST /oauth/provider/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:System%20Administrator", "client_uri": "https://www.companyname.com", "software_version": "1.0" }
{ "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:System%20Administrator" }
Qué hacer a continuación
Conceder acceso a una cuenta de servicio mediante el VMware Cloud Director Service Provider Admin 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 de VMware Cloud Director Service Provider Admin Portal.
Created
y deberá volver a iniciar el procedimiento.
Requisitos previos
- Copie el identificador de cliente de los detalles de la cuenta de servicio en el de Service Provider Admin Portal.
- 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/provider/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 de Service Provider Admin Portal 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/provider/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]/provider/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/provider/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/provider/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í.
- Obtenga el código de usuario de la aplicación. Debe introducir el código en el paso 4.
Procedimiento
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 aRequested
. Debe volver a seguir el procedimiento para conceder acceso a la cuenta de servicio para que la cuenta se vuelva a serActive
.