Inicie sessão com um nome do domínio totalmente qualificado (FQDN)

O GKE Identity Service permite-lhe iniciar sessão em clusters configurados a partir da linha de comandos através de um nome de utilizador e uma palavra-passe de um fornecedor de identidade de terceiros. Siga as instruções nesta página se o administrador do cluster tiver optado por permitir que se autentique diretamente no servidor do GKE Identity Service com um nome de domínio totalmente qualificado (FQDN). Para fornecedores SAML, o acesso de início de sessão só é suportado através desta abordagem de autenticação.

Esta abordagem de autenticação só é suportada para clusters no local (Google Distributed Cloud) no VMware e em hardware não processado, a partir da versão 1.29. Outros tipos de clusters não são suportados.

A versão da CLI gcloud necessária para iniciar sessão com o FQDN fornecido é, pelo menos, a versão 477.0.0.

Fluxo de trabalho de início de sessão

Seguem-se os passos do fluxo de trabalho quando um utilizador inicia sessão através da abordagem de acesso FQDN:

  1. Iniciar sessão: o utilizador executa o comando gcloud anthos auth login --server APISERVER-URL para iniciar o processo de início de sessão.
  2. Seleção do fornecedor de identidade: é apresentada ao utilizador uma lista de fornecedores de identidade configurados. O utilizador seleciona o fornecedor onde as respetivas credenciais estão armazenadas.
  3. Autenticação com o fornecedor de identidade: o processo de autenticação difere consoante o protocolo do fornecedor de identidade que escolher:

    • OIDC: o utilizador é redirecionado para a página de início de sessão do fornecedor de OIDC. Após um início de sessão bem-sucedido, o fornecedor envia um código de volta para o serviço de identidade do GKE, que o troca por um token de acesso através de uma comunicação de canal secundário.
    • SAML: o utilizador é redirecionado para a página de início de sessão do fornecedor de SAML. Após um início de sessão bem-sucedido, o fornecedor envia diretamente um token (afirmação) de volta para o serviço de identidade do GKE, evitando assim uma chamada de retorno adicional.
    • LDAP: em vez de redirecionar para um fornecedor externo, o GKE Identity Service apresenta uma página de início de sessão onde o utilizador introduz as respetivas credenciais LDAP, que são validadas diretamente com o servidor LDAP.
  4. Validação de tokens e geração de ficheiros kubeconfig: o serviço de identidade do GKE valida o token recebido (ou a afirmação), cria um novo token para o utilizador e envia de volta um ficheiro kubeconfig que contém este token.

  5. Acesso ao cluster: o utilizador pode aceder ao cluster através de comandos kubectl. O cliente kubectl envia automaticamente o token do ficheiro kubeconfig com cada pedido.

  6. Validação de tokens e autorização RBAC: o servidor da API Kubernetes recebe o token, o serviço de identidade do GKE valida este token e obtém as reivindicações do utilizador (nome de utilizador e grupos). Após a validação bem-sucedida, o servidor da API executa verificações de controlo de acesso baseado em funções (RBAC) para determinar os recursos aos quais o utilizador tem autorização de acesso.

Inicie sessão através de certificados SNI fidedignos

Os certificados SNI simplificam o acesso ao cluster através da utilização de certificados fidedignos já presentes em dispositivos corporativos. Os administradores podem especificar este certificado no momento da criação do cluster. Se o seu cluster usar um certificado SNI fidedigno ao nível do cluster, use o comando nesta secção com o FQDN fornecido pelo seu administrador para iniciar sessão no cluster e receber um token de acesso. Também pode usar um ficheiro kubeconfig seguro onde o token é armazenado após a autenticação bem-sucedida.

Execute o seguinte comando para fazer a autenticação no servidor:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE

Substitua o seguinte:

  • APISERVER-URL: FQDN do servidor da API Kubernetes do cluster.
  • OUTPUT_FILE: use esta flag se o seu ficheiro kubeconfig estiver numa localização diferente da predefinição. Se esta flag for omitida, os tokens de autenticação são adicionados ao ficheiro kubeconfig na localização predefinida. Por exemplo: --kubeconfig /path/to/custom.kubeconfig.

Inicie sessão através de certificados emitidos pela AC do cluster

Se não usar um certificado SNI fidedigno ao nível do cluster, o certificado usado pelo serviço de identidade é emitido pela autoridade de certificação (AC) do cluster. Os administradores distribuem este certificado da AC aos utilizadores. Execute o seguinte comando com o certificado da AC do cluster para iniciar sessão no cluster:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --login-config-cert CLUSTER_CA_CERTIFICATE

Autenticação multidispositivos

A autenticação entre dispositivos permite-lhe iniciar sessão em clusters do Google Distributed Cloud (GDC) a partir de dispositivos que não têm um navegador instalado. Pode iniciar o processo de autenticação no seu dispositivo principal (que não tem um navegador instalado) e concluí-lo num dispositivo secundário com um navegador instalado.

Siga estes passos para uma configuração de autenticação em vários dispositivos.

  1. Inicie sessão no seu dispositivo principal

    Execute o seguinte comando para se autenticar no servidor no seu dispositivo principal. Especifique o argumento --no-browser para indicar que o dispositivo a partir do qual precisa de aceder ao cluster não tem um navegador instalado.

    gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser

    O GKE Identity Service devolve um comando que tem de usar quando iniciar sessão a partir do segundo dispositivo. Segue-se um exemplo do aspeto do comando:

    You are authorizing gcloud CLI without access to a web browser. Please run the following command on a machine with a web browser and copy its output back here.
    
    gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"
    
    Enter the output of the above command:
    

    Copie o comando gcloud.

  2. Inicie sessão nos clusters no segundo dispositivo

    Antes de iniciar sessão a partir do segundo dispositivo, verifique se tem o navegador instalado e se tem conetividade de rede com o servidor da API Kubernetes. Execute o comando que copiou do passo anterior no segundo dispositivo.

    gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"
    

    Quando tenta iniciar sessão a partir deste dispositivo, é apresentada uma mensagem de aviso. Siga o processo de autenticação padrão, conforme apresentado no navegador. Após uma autenticação bem-sucedida, recebe um código único. Copie este código.

    WARNING: The following line enables access to your Cluster resources. ONLY COPY IT TO A MACHINE YOU TRUST AND RUN 'gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser' EARLY ON.
    
    Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
    
  3. Conclua o início de sessão no seu dispositivo principal

    Cole o código copiado do passo anterior na mensagem do seu dispositivo principal.

    Enter the code you received on the other device: Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
    

    O seu dispositivo usa este código para gerar uma credencial que é guardada num ficheiro kubeconfig. Este ficheiro permite o acesso ao cluster no seu dispositivo principal. Quando tiver iniciado sessão, é apresentada a seguinte mensagem:

     You are logged in!
     Context is stored under the name '{cluster-name}'