A partir da versão 10.4.2, você pode usar o VMware Cloud Director como um servidor proxy do provedor de identidade com reconhecimento de tenant.

Quando o VMware Cloud Director é configurado como um servidor proxy do provedor de identidade usando o padrão OAuth 2.0 OpenID Connect, as partes confiáveis podem usar o VMware Cloud Director para autenticação com reconhecimento de tenant de usuários conhecidos para o VMware Cloud Director. Para obter informações detalhadas sobre o padrão OpenID Connect, consulte OpenID Connect Core 1.0.

Como um servidor proxy do provedor de identidade, o VMware Cloud Director atua como intermediário entre o aplicativo cliente (parte confiável) e o provedor de identidade, e delega a autenticação real ao respectivo mecanismo de autenticação usado pelo provedor ou por tenants.

Um administrador do sistema pode configurar partes confiáveis que se integram ao VMware Cloud Director e, em seguida, habilitar os tenants individuais para permitir que seus usuários usem o VMware Cloud Director como um proxy do provedor de identidade.

Fluxo de Autenticação

A integração com o VMware Cloud Director é implementada por meio do padrão de fluxo de código de autorização OAuth 2.0 OIDC. Para obter informações detalhadas, consulte Autenticação usando o fluxo do código de autorização.

Quando uma parte confiante redireciona um usuário para o VMware Cloud Director, se não houver nenhuma sessão de cliente existente, o usuário será solicitado a fazer login no VMware Cloud Director primeiro identificando o portal da organização ou do provedor no qual deseja fazer login. O usuário autentica por meio do mecanismo de autenticação configurado, o que pode envolver redirecionamentos adicionais para provedores de identidade externos. Se o navegador do usuário detectar uma sessão de usuário existente do VMware Cloud Director, o fluxo de autenticação fornecerá uma experiência de SSO e nenhuma interação do usuário será necessária para uma nova autenticação. Após a conclusão bem-sucedida do processo, o VMware Cloud Director retornará um token de acesso e um token de ID. O código de autorização emitido como parte do fluxo é válido por 5 minutos. O token de acesso é válido por 5 minutos, e o token de ID é válido por uma hora.

Observação:

O VMware Cloud Director não retorna um token de atualização.

Não será possível usar o token de acesso que o VMware Cloud Director retorna após a autenticação bem-sucedida para acessar os portais da UI ou para fazer chamadas regulares de API do VMware Cloud Director.

Detalhes do Token de ID

O token de ID que o VMware Cloud Director retorna contém as seguintes reivindicações padrão do OpenID e reivindicações específicas do VMware Cloud Director.

Reivindicação

Descrição

at_hash

(Reivindicação padrão do OpenID) Valor de hash do token de acesso.

sub

(Reivindicação padrão do OpenID) O userId no VMware Cloud Director no formato UUID.

iss

(Reivindicação padrão do OpenID) Endereço público do VMware Cloud Director.

preferred_username

(Reivindicação padrão do OpenID) Nome de usuário do usuário no VMware Cloud Director

nonce

(Declaração padrão OpenID) Valor da cadeia de caracteres usado para associar uma sessão de cliente a um token de ID e para justigar ataque de repetição. Observe apenas se tiver sido inicialmente incluído na solicitação da parte confiável.

aud

(Reivindicação padrão do OpenID) O público-alvo deste token. O valor é a ID do cliente da parte confiável solicitante.

azp

(Reivindicação padrão do OpenID) Parte autorizada para o token. O valor é a ID do cliente da parte confiável. Seu valor é o mesmo que a reivindicação aud.

name

(Reivindicação padrão do OpenID) Nome completo do usuário, se conhecido para o VMware Cloud Director.

phone_number

(Reivindicação padrão do OpenID) Número de telefone do usuário, se conhecido para VMware Cloud Director.

exp

(Reivindicação padrão do OpenID) Prazo de validade. Tempo após o qual o token de ID não é aceito para processamento.

iat

(Declaração padrão OpenID) Momento em que o token de ID foi emitido.

email

(Reivindicação padrão do OpenID) Endereço de e-mail do usuário, se conhecido para VMware Cloud Director.

roles

(Reivindicação personalizada do VMware Cloud Director) Uma matriz dos nomes das funções que o usuário tem no VMware Cloud Director.

groups

(Reivindicação personalizada do VMware Cloud Director) Uma matriz dos nomes dos grupos nos quais o usuário pertence no VMware Cloud Director.

org_name

(Reivindicação personalizada do VMware Cloud Director) Nome da organização na qual o usuário está conectado.

org_display_name

(Reivindicação personalizada do VMware Cloud Director) Nome para exibição da organização.

org_id

(Reivindicação personalizada do VMware Cloud Director) A ID da organização no formato UUID.

Escopos da Solicitação OpenID

O escopo da solicitação OpenID é usado para especificar os privilégios solicitados para um token de acesso.

Valores de Escopo

Descrição.

openid

Obrigatório. Escopo padrão do OpenID.

profile

Escopo padrão do OpenID. Solicita acesso às reivindicações de perfil padrão do usuário final.

email

Escopo padrão do OpenID. Solicita acesso às declarações de endereço de e-mail do usuário final.

groups

Escopo padrão do OpenID. Solicita acesso aos grupos dos quais o usuário faz parte no VMware Cloud Director.

phone

Escopo padrão do OpenID. Solicita acesso à reivindicação do número de telefone do usuário.

vcd_idp

Escopo específico do VMware Cloud Director. Solicita acesso a reivindicações personalizadas do VMware Cloud Director, como roles, groups, org_name, org_display_name e org_id.

Endpoints
  • Você pode usar o token de acesso retornado pelo VMware Cloud Director para recuperar reivindicações sobre o usuário autenticado no endpoint do nome do host/oidc/UserInfo. Para obter detalhes, consulte Endpoint UserInfo.

  • Você pode recuperar os valores de configuração do provedor, incluindo o endpoint JWKS e as informações sobre outros endpoints e escopos necessários para a configuração de proxy OIDC na URL de configuração conhecida nome de host/oidc/.well-known/openid-configuration. Consulte Visualizar as configurações gerais do proxy OIDC no seu VMware Cloud Director.

Acesso da troca de token ao proxy do provedor de identidade do VMware Cloud Director

A integração programática com a funcionalidade de proxy do provedor de identidade do VMware Cloud Director está disponível por meio do fluxo de troca de token detalhado abaixo. Esse fluxo não envolve a UI do VMware Cloud Director e é adequado para acesso com script, como a CLI.

  1. Obtenha um JWT do VMware Cloud Director fazendo login diretamente ou usando um token de API.

  2. Execute uma solicitação POST.

    POST  hostname/oidc/oauth2/token
    1. Selecione x-www-form-urlencoded para o corpo da solicitação.

    2. Inclua os seguintes parâmetros no corpo da solicitação.

      {
           "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. A resposta retorna um token de ID que inclui as reivindicações OIDC e VMware Cloud Director e um token de acesso que você pode usar para recuperar reivindicações sobre o usuário autenticado no endpoint nome do host/oidc/UserInfo.

Exemplo de token de ID codificado:

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

Exemplo de token de ID decodificado:

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

Exemplo de resposta de Informações do Usuário:

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

Considerações Multissite

Em uma implantação multissite, cada site funciona como um único servidor de provedor de identidade.

Os sites emparelhados não fornecem suporte ao servidor de identidade federada. Isso significa que, se durante o processo de login um tenant que não pertence ao site que funciona como seu proxy de provedor de identidade tentar fazer login nele por meio da seleção da organização de outro site da implantação multissite, o login falhará.