Authentication

O GKE On-Prem é compatível com o OpenID Connect (OIDC) para autenticação em clusters de usuários que estão utilizando a linha de comando. Veja os seguintes tópicos:

Para fazer login por meio do Console do Google Cloud, o GKE On-Prem usa um token do portador da conta de serviço do Kubernetes. Consulte Como fazer login em um cluster no console do Cloud.

Este tópico pressupõe que você conheça o OAuth 2.0 e o OpenID Connect. Também é necessário conhecer escopos e declarações no contexto da autenticação do OpenID.

Visão geral

Use o OIDC para gerenciar o acesso a um cluster do Kubernetes com os procedimentos padrão da organização para criar, ativar e desativar contas de funcionários. Também é possível usar os grupos de segurança da sua organização para configurar o acesso a um cluster do Kubernetes ou a serviços específicos no cluster.

  • Um usuário faz login em um provedor OpenID apresentando um nome de usuário e uma senha.

  • O provedor de OpenID emite um token de ID para o usuário. O token é assinado pelo provedor.

  • Um aplicativo, atuando em nome do usuário, envia uma solicitação HTTPS para o servidor da API Kubernetes. O aplicativo inclui o token de ID do usuário no cabeçalho da solicitação.

  • O servidor da API Kubernetes verifica o token usando o certificado do provedor.

Se sua empresa executa um servidor de Serviços de federação do Active Directory (ADFS, na sigla em inglês). O servidor ADFS pode servir como seu provedor de OpenID. Outra opção é usar um terceiro como seu provedor de OpenID, como Google, Microsoft, Facebook e Twitter, todos provedores de OpenID.

Como usar a CLI gcloud para chamar o servidor da API Kubernetes

Você executa o comando gcloud anthos auth login para autenticar com os clusters e, como resultado, sua solicitação vai para o servidor da API Kubernetes.

Para que isso funcione, seus tokens de ID OIDC precisam ser armazenados no arquivo kubeconfig. O GKE On-Prem usa a CLI gcloud da Google Cloud CLI para solicitar e receber o token de ID e outros valores OIDC no arquivo kubeconfig.

O servidor da API Kubernetes e o token de ID

Após a autenticação com o cluster, é possível interagir usando a kubectl CLI da CLI gcloud. Quando kubectl chama o servidor da API Kubernetes em nome do usuário, o servidor da API verifica o token usando o certificado público do provedor OpenID. Em seguida, o servidor da API analisa o token para saber a identidade do usuário e os grupos de segurança dele.

O servidor da API determina se o usuário está autorizado a fazer essa chamada, comparando os grupos de segurança do usuário com a política de controle de acesso baseado em papéis (RBAC, na sigla em inglês) do cluster.