A partire dalla versione 10.4.2, è possibile utilizzare VMware Cloud Director come server proxy del provider di identità con supporto del tenant.

Quando VMware Cloud Director è configurato come server proxy del provider di identità tramite lo standard OpenID Connect di OAuth 2.0, le relying party possono utilizzare VMware Cloud Director per l'autenticazione con supporto del tenant degli utenti noti a VMware Cloud Director. Per informazioni dettagliate sullo standard OpenID Connect, vedere OpenID Connect Core 1.0.

In qualità di server proxy del provider di identità, VMware Cloud Director funge da intermediario tra l'applicazione client (relying party) e il provider di identità e delega l'autenticazione effettiva al rispettivo meccanismo di autenticazione utilizzato dal provider o dai tenant.

Un amministratore di sistema può configurare le relying party che si integrano con VMware Cloud Director e quindi consentire ai singoli tenant di permettere ai propri utenti di utilizzare VMware Cloud Director come proxy del provider di identità.

Flusso di autenticazione

L'integrazione con VMware Cloud Director viene implementata tramite lo standard del flusso del codice di autorizzazione OIDC OAuth 2.0. Per informazioni dettagliate, vedere Autenticazione con il flusso del codice di autorizzazione.

Quando una relying party reindirizza un utente a VMware Cloud Director se non è presente alcuna sessione client, all'utente viene chiesto di accedere a VMware Cloud Director identificando innanzitutto il portale dell'organizzazione o del provider a cui desidera accedere. L'utente esegue l'autenticazione tramite il meccanismo di autenticazione configurato che potrebbe richiedere ulteriori reindirizzamenti a provider di identità esterni. Se il browser dell'utente rileva una sessione utente di VMware Cloud Director esistente, il flusso di autenticazione fornisce un'esperienza SSO e non è necessaria alcuna interazione dell'utente per la riautenticazione. Una volta completato correttamente il processo, VMware Cloud Director restituisce un token di accesso e un token ID. Il codice di autorizzazione emesso come parte del flusso è valido per 5 minuti. Il token di accesso è valido per 5 minuti e il token ID è valido per un'ora.

Nota:

VMware Cloud Director non restituisce un token di aggiornamento.

Non è possibile utilizzare il token di accesso restituito da VMware Cloud Director dopo la corretta autenticazione per accedere ai portali dell'interfaccia utente o per effettuare chiamate API di VMware Cloud Director regolari.

Dettagli del token ID

Il token ID restituito da VMware Cloud Director contiene le seguenti attestazioni standard di OpenID e le attestazioni specifiche di VMware Cloud Director.

Attestazione

Descrizione

at_hash

(Attestazione standard OpenID) Valore hash del token di accesso.

sub

(Attestazione standard OpenID) userId nel formato UUID di VMware Cloud Director.

iss

(Attestazione standard OpenID) Indirizzo pubblico di VMware Cloud Director.

preferred_username

(Attestazione standard OpenID) Nome utente dell'utente in VMware Cloud Director

nonce

(Attestazione standard OpenID) Valore stringa utilizzato per associare una sessione client a un token ID e ridurre gli attacchi di riproduzione. È presente solo se è stato inizialmente incluso nella richiesta della relying party.

aud

(Attestazione standard OpenID) Il destinatario di questo token. Il valore è l'ID client della relying party richiedente.

azp

(Attestazione standard OpenID) Parte autorizzata per il token. Il valore è l'ID client della relying party. Il suo valore è uguale all'attestazione aud.

name

(Attestazione standard OpenID) Nome completo dell'utente, se è noto a VMware Cloud Director.

phone_number

(Attestazione standard OpenID) Numero di telefono dell'utente, se è noto a VMware Cloud Director.

exp

(Attestazione standard OpenID) Ora di scadenza. Orario dopo il quale il token ID non viene accettato per l'elaborazione.

iat

(Attestazione standard OpenID) Ora in cui il token ID è stato emesso.

email

(Attestazione standard OpenID) Indirizzo e-mail dell'utente, se è noto a VMware Cloud Director.

roles

(Attestazione personalizzata di VMware Cloud Director) Array dei nomi dei ruoli di cui l'utente dispone in VMware Cloud Director.

groups

(Attestazione personalizzata di VMware Cloud Director) Array dei nomi dei gruppi a cui l'utente appartiene in VMware Cloud Director.

org_name

(Attestazione personalizzata di VMware Cloud Director) Nome dell'organizzazione in cui l'utente ha effettuato l'accesso.

org_display_name

(Attestazione personalizzata di VMware Cloud Director) Nome visualizzato dell'organizzazione.

org_id

(Attestazione personalizzata di VMware Cloud Director) ID dell'organizzazione in formato UUID.

Ambiti della richiesta OpenID

L'ambito della richiesta di OpenID viene utilizzato per specificare i privilegi richiesti per un token di accesso.

Valori dell'ambito

Descrizione.

openid

Obbligatorio. Ambito standard OpenID.

profile

Ambito standard OpenID. Richiede l'accesso alle attestazioni del profilo predefinito dell'utente finale.

email

Ambito standard OpenID. Richiede l'accesso alle attestazioni dell'indirizzo e-mail dell'utente finale.

groups

Ambito standard OpenID. Richiede l'accesso ai gruppi di cui l'utente fa parte in VMware Cloud Director.

phone

Ambito standard OpenID. Richiede l'accesso all'attestazione del numero di telefono dell'utente.

vcd_idp

Ambito specifico di VMware Cloud Director. Richiede l'accesso alle attestazioni personalizzate di VMware Cloud Director, ad esempio roles, groups, org_name, org_display_name e org_id.

Endpoint
  • È possibile utilizzare il token di accesso restituito da VMware Cloud Director per recuperare le attestazioni relative all'utente autenticato nell'endpoint hostname/oidc/UserInfo. Per informazioni dettagliate, vedere Endpoint UserInfo.

  • È possibile recuperare i valori di configurazione del provider, incluso l'endpoint JWKS e le informazioni su altri endpoint e ambiti necessari per la configurazione del proxy OIDC a livello di hostname/oidc/.well-known/openid-configuration dell'URL di configurazione noto. Vedere Visualizzazione delle impostazioni generali del proxy OIDC.

Accesso tramite scambio di token al proxy del provider di identità di VMware Cloud Director

L'integrazione a livello programmatico con la funzionalità del proxy del provider di identità di VMware Cloud Director è disponibile tramite il flusso di scambio di token descritto di seguito. Questo flusso non coinvolge l'interfaccia utente di VMware Cloud Director ed è adatto per l'accesso controllato da script, ad esempio la CLI.

  1. Ottenere un JWT di VMware Cloud Director accedendo direttamente o utilizzando un token API.

  2. Eseguire una richiesta POST.

    POST  hostname/oidc/oauth2/token
    1. Selezionare x-www-form-urlencoded per il corpo della richiesta.

    2. Includere i seguenti parametri nel corpo della richiesta.

      {
           "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
           "assertion": "VMware_Cloud_Director JWT",
           "client_id": "Relying_party_ID",
           "scope": "openid profile email phone groups vcd_idp",
         }
  3. La risposta restituisce sia un token ID che include le attestazioni OIDC e VMware Cloud Director sia un token di accesso che è possibile utilizzare per recuperare le attestazioni relative all'utente autenticato a livello dell'endpoint hostname/oidc/UserInfo.

Esempio di token ID codificato:

eyJhbGciOiJSUzI1NiIsInR5NDg4SI6I................4dHnbU1RQ6Y9Yohgw

Esempio di token ID decodificato:

{
  "at_hash": "1AA1aAA1AAAAAAaAA1A11a",
  "sub": "111111111-1111-1111-1111-11111111",
  "roles": [
    "Organization Administrator"
  ],
  "iss": "https://hostname/oidc",
  "groups": [
    "ALL USERS"
  ],
  "preferred_username": "testuser@vcd-ms1",
  "nonce": "ab123acab",
  "aud": "33333333-3333-3333-3333-33333333333",
  "azp": "22222222-2222-2222-2222-22222222",
  "org_id": "12345678-1234-1234-1234-123456789abc",
  "org_display_name": "oidcorg",
  "name": "test user",
  "phone_number": " ",
  "exp": 1111111111,
  "org_name": "oidcorg",
  "iat": 1111111111,
  "email": "[email protected]"
}

Esempio di risposta delle informazioni utente:

{
    "sub": "111111111-1111-1111-1111-11111111",
    "preferred_username": "administrator",
    "name": "administrator user",
    "email": "[email protected]",
    "phone_number": "0 (111) 222-3333",
    "roles": [ "system administrator" ],
    "groups": [],
    "org_name": "system",
    "org_display_name": "System Organization",
    "org_id": "12345678-1234-1234-1234-123456789abc"
}

Considerazioni multisito

In una distribuzione multisito, ogni sito funziona come un singolo server provider di identità.

I siti associati non forniscono il supporto per i server di identità federati. Questo significa che se durante il processo di accesso, un tenant che non appartiene al sito che funge da proxy del provider di identità tenta di accedere a tale sito tramite la selezione dell'organizzazione di un altro sito della distribuzione multisito, l'accesso non riesce.