A partir de VMware Cloud Director 10.3.1, puede generar y emitir tokens de acceso a la API. Se autentica mediante sus respectivas prácticas recomendadas de seguridad, incluido el aprovechamiento de la autorización en dos fases y, con el uso de tokens de acceso a la API, puede otorgar acceso para la automatización de compilación para VMware Cloud Director.

Los tokens de acceso son artefactos que las aplicaciones cliente utilizan para realizar solicitudes de API en nombre de un usuario. Las aplicaciones necesitan tokens de acceso para la autenticación. Cuando un token de acceso caduca, las aplicaciones pueden utilizar tokens de API para obtener tokens de acceso. Los tokens de API no caducan.

Cuando se utilizan tokens de acceso, las aplicaciones no pueden realizar determinadas tareas.

  • Cambiar la contraseña de usuario
  • Realizar tareas de administración de usuarios
  • Crear más tokens
  • Ver o revocar otros tokens

Al acceder a VMware Cloud Director mediante un token de acceso a la API, 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 un token de acceso a la API no tienen los siguientes derechos.
  • Token: Administrar
  • Token: Administrar todos

De forma similar a la generación de un token de API de usuario, puede crear una cuenta de servicio mediante la API de VMware Cloud Director. La solicitud de API para crear una cuenta de servicio 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.

Requisitos previos

La autenticación con un token de API utiliza el estándar "Actualizar un token de acceso" como se especifica en la RFC 6749 Sección 6 de OAuth 2.0 para permitir el acceso a VMware Cloud Director como una aplicación de OAuth. El token de acceso devuelto es el mismo que un token de acceso de VMware Cloud Director y las aplicaciones cliente pueden utilizarlo para realizar llamadas de API posteriores a VMware Cloud Director. Para realizar una solicitud que cumpla con la RFC de OAuth 2.0, familiarícese con la información de la Solicitud de comentarios (RFC) 6749 Sección 6 sobre la actualización de un token de acceso.

Procedimiento

  1. En la esquina superior derecha de la barra de navegación, haga clic en su nombre de usuario y seleccione Preferencias del usuario.
  2. En la sección Tokens de acceso, haga clic en Nuevo.
  3. Escriba un nombre para el token y haga clic en Crear.
    Aparecerá el token de API generado. Debe copiar el token porque solo aparece una vez. Después de hacer clic en Aceptar, no podrá recuperar este token de nuevo, solo podrá revocarlo.
  4. Realice una solicitud que cumpla con la RFC de OAuth 2.0 al endpoint de API https://site.cloud.example.com/oauth/provider/token.
    Clave Valor
    grant_type refresh_token
    refresh_token Generated_refresh_token
    La solicitud devuelve un token de acceso que las aplicaciones pueden utilizar para realizar tareas en VMware Cloud Director. El token es válido incluso después de que el usuario cierre sesión. Cuando un token de acceso caduca, la aplicación puede obtener más tokens de acceso mediante el token de API.

Ejemplo

Solicitud:
POST https://host_name/oauth/provider/token
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 71

grant_type=refresh_token&refresh_token=Generated_API_Token
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/json

{
   "access_token":"Generated_Access_Token",
   "token_type":"Bearer",
   "expires_in":2592000,
   "refresh_token":null
}
Solicitud mediante el token de acceso generado:
GET https://host_name/api/org
Accept: application/*+xml;version=36.1
Authorization: Bearer Generated_Access_Token
Respuesta:
HTTP/1.1 200 OK
Content-Type: application/vnd.vmware.vcloud.orglist+xml;version=36.1
X-VMWARE-VCLOUD-REQUEST-EXECUTION-TIME: 41

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OrgList
    xmlns="http://www.vmware.com/vcloud/v1.5"
    xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
    xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
    xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
    xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common"
    xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
    xmlns:vmw="http://www.vmware.com/schema/ovf"
    xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1"
    xmlns:ns9="http://www.vmware.com/vcloud/versions" href="https://host_name/api/org/" type="application/vnd.vmware.vcloud.orgList+xml">
    <Org href="https://host_name/api/org/a93c9db9-7471-3192-8d09-a8f7eeda85f9" type="application/vnd.vmware.vcloud.org+xml" name="System"/>
</OrgList>

Qué hacer a continuación

  • Si desea que los tenants puedan generar tokens, debe conceder a las funciones de tenant el derecho Administrar el propio token de API del usuario.
  • De forma predeterminada, los tenants solo ven los tokens que crean. Para permitir que los administradores de la organización vean y revoquen los tokens de los otros usuarios tenant de la organización, debe concederles el derecho Administrar los tokens de API de todos los usuarios. Los administradores con el derecho Administrar los tokens de API de todos los usuarios solo pueden ver los nombres de los tokens de otros usuarios, no los tokens en sí.
  • Para revocar cualquiera de los tokens, desplácese hasta la página Preferencias del usuario y haga clic en los puntos suspensivos verticales junto al token.
  • Para revocar los tokens de otros usuarios, en la barra de navegación superior, en Administración, desplácese hasta la configuración de control de acceso para los usuarios. Al seleccionar un usuario específico, también puede ver sus tokens de acceso y revocarlos.
  • Si necesita identificar los eventos activados mediante un token de acceso a la API, en el registro de eventos aparece la siguiente línea en la sección additionalProperties de un evento.
    "currentContext.refreshTokenId": "<UUID_of_the_token_that_performed_the_action>",