A partire da VMware Cloud Director 10.3.1, è possibile generare ed emettere token di accesso API. Si viene autenticati utilizzando le rispettive procedure consigliate di sicurezza, incluso l'utilizzo dell'autorizzazione a due fattori, utilizzando i token di accesso API è possibile concedere l'accesso per la building automation rispetto a VMware Cloud Director.

I token di accesso sono elementi che le applicazioni client utilizzano per effettuare richieste API per conto di un utente. Le applicazioni necessitano di token di accesso per l'autenticazione. Quando un token di accesso scade, per ottenere i token di accesso, le applicazioni possono utilizzare i token API. I token API non scadono.

Quando utilizzano i token di accesso, le applicazioni non possono eseguire determinate attività.

  • Modificare la password dell'utente
  • Eseguire attività di gestione degli utenti
  • Crea altri token
  • Visualizzare o revocare altri token

Quando accedono a VMware Cloud Director utilizzando un token di accesso API, le applicazioni dispongono solo dei diritti di visualizzazione per le seguenti risorse.

  • Utente
  • Gruppo
  • Ruoli
  • Ruoli globali
  • Bundle di diritti
Le applicazioni che accedono a VMware Cloud Director utilizzando un token di accesso API non dispongono dei diritti seguenti.
  • Token: Gestisci
  • Token: Gestisci tutto

In modo simile alla generazione di un token API dell'utente, è possibile creare un account di servizio utilizzando l'API di VMware Cloud Director. La richiesta API per la creazione di un account di servizio utilizza lo stesso endpoint dell'API di creazione di un token API dell'utente, ma la presenza del campo software_id indica lo scopo di creare un account di servizio.

Prerequisiti

L'autenticazione con un token API utilizza lo standard di "aggiornamento di un token di accesso" specificato nella sezione 6 di OAuth 2.0 RFC 6749 per consentire l'accesso a VMware Cloud Director come applicazione OAuth. Il token di accesso restituito coincide con un token di accesso di VMware Cloud Director e le applicazioni client possono utilizzarlo per effettuare chiamate API successive a VMware Cloud Director. Per creare una richiesta conforme a RFC OAuth 2.0, è necessario conoscere le informazioni contenute nella sezione 6 dell'RFC 6749 in merito all'aggiornamento di un token di accesso.

Procedura

  1. Nell'angolo superiore destro della barra di navigazione, fare clic sul nome utente e selezionare Preferenze utente.
  2. Nella sezione Token di accesso, fare clic su Nuovo.
  3. Immettere un nome per il token e fare clic su Crea.
    Viene visualizzato il token API generato. È necessario copiare il token perché viene visualizzato una sola volta. Dopo aver fatto clic su OK, non sarà più possibile recuperare questo token, ma si potrà solo revocarlo.
  4. Effettuare una richiesta conforme a OAuth 2.0 per l'endpoint dell'API https://site.cloud.example.com/oauth/provider/token.
    Chiave Valore
    grant_type refresh_token
    refresh_token Generated_refresh_token
    La richiesta restituisce un token di accesso che le applicazioni possono utilizzare per eseguire attività in VMware Cloud Director. Il token è valido anche dopo la disconnessione dell'utente. Quando un token di accesso scade, l'applicazione può ottenere altri token di accesso utilizzando il token API.

Esempio

Richiesta:
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
Risposta:
HTTP/1.1 200 OK
Content-Type: application/json

{
   "access_token":"Generated_Access_Token",
   "token_type":"Bearer",
   "expires_in":2592000,
   "refresh_token":null
}
Richiesta utilizzando il token di accesso generato:
GET https://host_name/api/org
Accept: application/*+xml;version=36.1
Authorization: Bearer Generated_Access_Token
Risposta:
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>

Operazioni successive

  • Se si desidera che i tenant possano generare token, è necessario assegnare ai ruoli tenant il diritto Gestisci token API personale dell'utente.
  • Per impostazione predefinita, i tenant visualizzano solo i token che creano. Per consentire agli amministratori dell'organizzazione di visualizzare e revocare i token degli altri utenti tenant dell'organizzazione, è necessario concedere loro il diritto Gestisci token API di tutti gli utenti. Gli amministratori con il diritto Gestisci token API di tutti gli utenti possono visualizzare solo i nomi dei token degli altri utenti, non i token stessi.
  • Per revocare uno qualsiasi dei token, passare alla pagina Preferenze utente e fare clic sui puntini verticali accanto al token.
  • Per revocare i token di altri utenti, nella barra di navigazione superiore, in Amministrazione, accedere alle impostazioni di controllo degli accessi per gli utenti. Quando si seleziona un utente specifico, è possibile anche visualizzarne i token di accesso e revocarli.
  • Se è necessario identificare gli eventi attivati utilizzando un token di accesso API, nel registro eventi viene visualizzata la riga seguente nella sezione additionalProperties di un evento.
    "currentContext.refreshTokenId": "<UUID_of_the_token_that_performed_the_action>",