À partir de la version 10.4.2, vous pouvez utiliser VMware Cloud Director comme serveur proxy de fournisseur d'identité prenant en charge les locataires.

Lorsque VMware Cloud Director est configuré en tant que serveur proxy de fournisseur d'identité à l'aide de la norme OAuth 2.0 OpenID Connect, les parties de confiance peuvent utiliser VMware Cloud Director pour l'authentification prenant en charge les locataires des utilisateurs connus de VMware Cloud Director. Pour plus d'informations sur la norme OpenID Connect, reportez-vous à la section OpenID Connect Core 1.0.

En tant que serveur proxy de fournisseur d'identité, VMware Cloud Director est utilisé comme intermédiaire entre l'application cliente (partie de confiance) et le fournisseur d'identité, et délègue l'authentification réelle au mécanisme d'authentification respectif utilisé par le fournisseur ou les locataires.

Un administrateur système peut configurer des parties de confiance qui s'intègrent à VMware Cloud Director, puis permettre à des locataires individuels d'autoriser leurs utilisateurs à utiliser VMware Cloud Director comme proxy de fournisseur d'identité.

Flux d'authentification

L'intégration à VMware Cloud Director est implémentée via la norme de flux de code d'autorisation OIDC OAuth 2.0. Pour obtenir des informations détaillées, reportez-vous à la section Authentication à l'aide du flux de code d'autorisation.

Lorsqu'une partie de confiance redirige un utilisateur vers VMware Cloud Director, s'il n'existe aucune session cliente, l'utilisateur est invité à se connecter à VMware Cloud Director en identifiant d'abord l'organisation ou le portail de fournisseurs auquel il souhaite se connecter. L'utilisateur s'authentifie via le mécanisme d'authentification configuré, ce qui peut impliquer d'autres redirections vers des fournisseurs d'identité externes. Si le navigateur de l'utilisateur détecte une session d'utilisateur VMware Cloud Director existante, le flux d'authentification fournit une expérience SSO et aucune interaction utilisateur n'est requise pour la réauthentification. Une fois le processus terminé, VMware Cloud Director renvoie un jeton d'accès et un jeton d'ID. Le code d'autorisation émis dans le cadre du flux est valide pendant 5 minutes. Le jeton d'accès est valide pendant 5 minutes et le jeton d'ID est valide pendant une heure.

Note :

VMware Cloud Director ne renvoie pas de jeton d'actualisation.

Vous ne pouvez pas utiliser le jeton d'accès que VMware Cloud Director renvoie lors de l'authentification réussie pour accéder aux portails de l'interface utilisateur ou pour effectuer des appels de VMware Cloud Director API réguliers.

Détails du jeton d'ID

Le jeton d'ID que VMware Cloud Director renvoie contient les réclamations standard OpenID et les réclamations VMware Cloud Director spécifiques suivantes.

Réclamation

Description

at_hash

(Réclamation standard OpenID) Valeur de hachage du jeton d'accès.

sub

(Réclamation standard OpenID) userId dans VMware Cloud Director au format UUID.

iss

(Réclamation standard OpenID) Adresse publique de VMware Cloud Director.

preferred_username

(Réclamation standard OpenID) Nom d'utilisateur de l'utilisateur dans VMware Cloud Director

nonce

(Réclamation standard OpenID) Valeur de chaîne utilisée pour associer une session client à un jeton d'ID et pour atténuer les attaques de relecture. Présent uniquement s'il a été initialement inclus dans la demande d'approbation.

aud

(Réclamation standard OpenID) Public de ce jeton. La valeur est l'ID du client de la partie d'approbation demandant.

azp

(Réclamation standard OpenID) Partie autorisée pour le jeton. La valeur est l'ID client de la partie d'approbation. Sa valeur est identique à la réclamation aud.

name

(Réclamation standard OpenID) Nom complet de l'utilisateur, s'il est connu de VMware Cloud Director.

phone_number

(Réclamation standard OpenID) Numéro de téléphone de l'utilisateur, s'il est connu de VMware Cloud Director.

exp

(Réclamation standard OpenID) Délai d'expiration. Durée après laquelle le jeton d'ID n'est pas accepté pour le traitement.

iat

(Réclamation standard OpenID) Heure à laquelle le jeton d'ID a été émis.

email

(Réclamation standard OpenID) Adresse e-mail de l'utilisateur, si elle est connue par VMware Cloud Director.

roles

(Réclamation personnalisée VMware Cloud Director) Tableau des noms des rôles dont dispose l'utilisateur dans VMware Cloud Director.

groups

(Réclamation personnalisée VMware Cloud Director) Tableau des noms des groupes auxquels l'utilisateur appartient dans VMware Cloud Director.

org_name

(Réclamation personnalisée VMware Cloud Director) Nom de l'organisation à laquelle l'utilisateur est connecté.

org_display_name

(Réclamation personnalisée VMware Cloud Director) Nom complet de l'organisation.

org_id

(Réclamation personnalisée) VMware Cloud Director ID d'organisation au format UUID.

Portées de la demande OpenID

L'étendue de la demande OpenID est utilisée pour spécifier les privilèges demandés pour un jeton d'accès.

Valeurs de portée

Description.

openid

Requis. Portée standard OpenID.

profile

Portée standard OpenID. Demande l'accès aux réclamations de profil par défaut de l'utilisateur final.

email

Portée standard OpenID. Demande l'accès aux réclamations d'adresses e-mail de l'e-mail final.

groups

Portée standard OpenID. Demande l'accès aux groupes dont l'utilisateur fait partie dans VMware Cloud Director.

phone

Portée standard OpenID. Demande d'accès à la réclamation du numéro de téléphone de l'utilisateur.

vcd_idp

Portée spécifique de VMware Cloud Director. Demande l'accès aux réclamations personnalisées de VMware Cloud Director, telles que roles, groups, org_name, org_display_name et org_id.

Points de terminaison
  • Vous pouvez utiliser le jeton d'accès renvoyé par VMware Cloud Director pour récupérer les réclamations concernant l'utilisateur authentifié au niveau du point de terminaison hostname/oidc/UserInfo. Pour plus d'informations, reportez-vous à la section Point de terminaison UserInfo.

  • Vous pouvez récupérer les valeurs de configuration du fournisseur, y compris le point de terminaison JWKS et les informations sur les autres points de terminaison et portées nécessaires à la configuration du proxy OIDC à l'URL de configuration connue hostname/oidc/.well-known/openid-configuration. Reportez-vous à Afficher les paramètres généraux du proxy OIDC dans VMware Cloud Director.

Accès à l'échange de jetons pour le proxy de fournisseur d'identité VMware Cloud Director

L'intégration par programmation à la fonctionnalité de proxy de fournisseur d'identité de VMware Cloud Director est disponible via le flux d'échange de jetons détaillé ci-dessous. Ce flux n'implique pas l'interface utilisateur VMware Cloud Director et convient à l'accès scripté, tel que l'interface de ligne de commande.

  1. Obtenez un JWT VMware Cloud Director en vous connectant directement ou en utilisant un jeton d'API.

  2. Exécutez une demande POST.

    POST  hostname/oidc/oauth2/token
    1. Sélectionnez x-www-form-urlencoded pour le corps de la demande.

    2. Incluez les paramètres suivants dans le corps de la demande.

      {
           "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 réponse renvoie un jeton d'ID qui inclut les réclamations OIDC et VMware Cloud Director, ainsi qu'un jeton d'accès que vous pouvez utiliser pour récupérer les réclamations concernant l'utilisateur authentifié sur le point de terminaison hostname/oidc/UserInfo.

Exemple de jeton d'ID codé :

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

Exemple de jeton d'ID décodé :

{
  "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]"
}

Exemple de réponse d'informations utilisateur :

{
    "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"
}

Considérations relatives au multisite

Dans un déploiement multisite, chaque site fonctionne comme un serveur de fournisseur d'identité unique.

Les sites couplés ne fournissent pas la prise en charge du serveur d'identité fédéré. Cela signifie que si, pendant le processus de connexion, un locataire qui n'appartient pas au site qui fonctionne comme son proxy de fournisseur d'identité tente de s'y connecter via la sélection de l'organisation d'un autre site du déploiement multisite, la connexion échoue.