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:
- 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. - 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.
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.
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.
Acesso ao cluster: o utilizador pode aceder ao cluster através de comandos
kubectl
. O clientekubectl
envia automaticamente o token do ficheiro kubeconfig com cada pedido.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 ficheirokubeconfig
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.
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
.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
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}'