Configurar provedores OIDC do GKE Identity Service

Este documento é destinado a administradores de plataforma ou a quem gerencia a configuração de identidade na organização. Ele explica como configurar o provedor de identidade OpenID Connect (OIDC) escolhido para o GKE Identity Service.

Registrar o GKE Identity Service com seu provedor

A configuração do GKE Identity Service requer um ID do cliente e uma chave secreta do seu provedor de identidade. Esse ID e secret são usados pelo GKE Identity Service ao se conectar ao provedor como parte do fluxo de autenticação dos usuários. Para obtê-los, é preciso registrar o serviço de identidade do GKE com seu provedor como um aplicativo cliente, seguindo o procedimento de costume do provedor selecionado. Veja alguns detalhes de registro específicos de provedores conhecidos na próxima seção.

Para URLs de redirecionamento, especifique os seguintes valores:

  • https://console.cloud.google.com/kubernetes/oidc é o URL de redirecionamento do console do Google Cloud.
  • http://localhost:PORT/callback é o URL de redirecionamento da CLI gcloud. É possível especificar qualquer número de porta maior que 1024.
  • APISERVER-URL:11001/finish-login é o URL de redirecionamento se você escolher autenticar usando o acesso FQDN. Substitua APISERVER-URL pelo FQDN do servidor da API Kubernetes do cluster. Por exemplo, se APISERVER-URL for https://apiserver.company.com, redirect_uri será https://apiserver.company.com:11001/finish-login.

Salve o ID e o Secret do cliente recebidos na etapa de registro. Compartilhe esses detalhes com administradores do cluster que precisam configurar o serviço de identidade do GKE.

Informações de configuração do provedor de identidade

Nesta seção, fornecemos outras informações específicas do provedor para registrar o GKE Identity Service. Se o provedor estiver listado aqui, registre o GKE Identity Service com ele como um aplicativo cliente seguindo as instruções abaixo.

Microsoft AD FS

Use um conjunto de assistentes de gerenciamento do AD FS para configurar o servidor do AD FS e o banco de dados de usuários do AD.

  1. Abra o painel de gerenciamento do AD FS.

  2. Selecione Grupos de aplicativos, > Ações > Adicionar um grupo de aplicativos.

  3. Selecione Aplicativo do servidor. Insira um nome e uma descrição de sua escolha. Clique em Next.

  4. Insira os dois URLs de redirecionamento, conforme especificado acima. Você recebe um ID de cliente. É assim que o servidor AD FS identifica o GKE Identity Service. Salve o ID do cliente para uso posterior.

  5. Selecione Gerar um secret compartilhado. O GKE Identity Service usa esse secret para autenticar no servidor AD FS. Guarde o secret para mais tarde.

Como configurar grupos de segurança (opcional)

  1. No gerenciamento do AD FS, selecione Confiança de terceira parte confiável > Adicionar uma nova confiança de terceira parte confiável.

  2. Selecione Reconhecimento de declarações e clique em Iniciar.

  3. Selecione Inserir dados sobre terceiros confiáveis manualmente.

  4. Insira um nome de exibição.

  5. Pule os próximos dois passos.

  6. Insira um identificador de confiança da parte confiável. Sugestão: token-groups-claim.

  7. Em Política de controle de acesso, selecione Permitir todos. Isso significa que todos os usuários compartilham as respectivas informações de grupo de segurança com a CLI gcloud e o console do Google Cloud.

  8. Clique em Concluir.

Como mapear atributos LDAP para nomes de declaração

  1. No gerenciamento do AD FS, selecione Confiança de terceira parte confiável > Editar política de emissão de declarações.

  2. Selecione Enviar atributos LDAP como declarações e clique em Próximo.

  3. Em Nome da regra de declaração, insira groups.

  4. Em Armazenamento de atributos, selecione Active Directory.

  5. Na tabela, em Atributo LDAP, selecione:

    • AD FS versão 5.0 e mais recentes: Grupos de token qualificados pelo nome de domínio
    • Versões do AD FS anteriores à 5.0: Nomes qualificados de grupos de token
  6. Em Tipo de declaração de saída, selecione:

    • AD FS versão 5.0 e mais recentes: Grupo
    • Versões do AD FS anteriores à 5.0: grupos
  7. Clique em Concluir e em Aplicar.

Como registrar o GKE Identity Service com o AD FS

Abra uma janela do PowerShell no modo de administrador e digite este comando:

Grant-AD FSApplicationPermission `
  -ClientRoleIdentifier "[CLIENT_ID]" `
 -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] `
  -ScopeName "allatclaims", "openid"

Substitua:

  • [CLIENT_ID] é o ID do cliente que você recebeu anteriormente;

  • [SERVER_ROLE_IDENTIFIER] é o identificador de declaração inserido anteriormente. Lembre-se de que o identificador sugerido foi token-groups-claim.

Azure AD

Registrar um cliente OAuth no Azure

Para registrar um cliente OAuth com o Azure, conclua as etapas nos seguintes links:

  1. Se você ainda não tiver feito isso, configure um locatário no Azure Active Directory.

  2. Registre um aplicativo com a plataforma de identidade da Microsoft.

  3. Abra a página Registros de aplicativos no Portal do Azure e selecione seu aplicativo por nome.

  4. Crie uma chave secreta do cliente.

    1. Clique em Adicionar um certificado ou secret em Fundamentos. Uma lista de certificados e uma lista de secrets são exibidas.

    2. Clique em New client secret. Nomeie a chave secreta e clique em Adicionar.

    3. Salve o valor* do secret em um local seguro. Não será possível recuperá-la depois de fechar ou atualizar a página.

  5. Adicione URIs de redirecionamento.

    1. Volte para a página do aplicativo.

    2. Selecione Adicionar um URI de redirecionamento em Essentials. A página Autenticação é exibida.

    3. Escolha Adicionar uma plataforma e o painel chamado Configurar plataformas será exibido à direita.

    4. Selecione Web. Em URIs de redirecionamento, insira http://localhost:PORT/callback no fluxo de login da CLI gcloud. Escolha um PORT maior que 1.024. Clique no botão Configurar.

    5. Clique no botão Adicionar URI para adicionar outro URI, https://console.cloud.google.com/kubernetes/oidc, para o login do console do Google Cloud.

    6. Clique no botão Salvar na parte superior.

Seu registro de cliente foi concluído. Você precisa ter as seguintes informações para compartilhar com o administrador do cluster:

  • Emissor de URI: https://login.microsoftonline.com/TENANT_ID/v2.0. O ID do locatário é exibido como Directory (tenant) ID na página do aplicativo no portal do Azure.

  • ID do cliente: o ID do cliente é exibido como Application (client) ID na página do aplicativo no portal do Azure.

  • Chave secreta do cliente: você recebeu estas informações na última etapa. Não será possível recuperá-la se você fechar a página após a criação do secret. Salve o valor em um local seguro (ou gere uma nova chave secreta, se você perder o controle da anterior).

Configuração avançada do Azure AD

Considere usar essa configuração avançada apenas quando quiser configurar clusters com políticas de autorização baseadas em grupo do Azure AD em que os usuários dos clusters pertencem a mais de 200 grupos do Azure AD. A configuração avançada do Azure AD é compatível com as seguintes plataformas:

  • Clusters do GKE no local (VMware e bare metal): a partir da versão 1.14 do GKE Enterprise
  • Clusters do Anthos na AWS: a partir da versão 1.14 do GKE Enterprise (versão 1.25 ou mais recente do Kubernetes)
  • Clusters do Anthos no Azure: a partir da versão 1.14 do GKE Enterprise (versão 1.25 ou mais recente do Kubernetes)
  • Clusters do Anthos na AWS (geração anterior): a partir da versão 1.14 do GKE Enterprise

Antes de começar, verifique se cada usuário tem um endereço de e-mail associado configurado como identificador no Azure AD. O GKE Identity Service usa o e-mail do usuário para declarar a identidade do usuário e autenticar a solicitação.

É preciso garantir que o cliente registrado na seção anterior tenha delegado permissões para acessar informações de usuários e grupos da API Microsoft Graph. Essas permissões permitem que o plug-in do GKE Identity Service acesse os endpoints da API Microsoft Graph de onde se busca as informações do grupo. Sem essa etapa, o GKE Identity Service não pode listar os grupos do usuário, e as políticas de autorização do RBAC com base em grupos não funcionarão como esperado.

Você precisa ter permissões de administrador global ou da organização para realizar esta etapa de configuração.

  1. Faça login no portal do Azure.
  2. Se você tiver acesso a vários locatários, use o filtro "Diretório + assinatura" no menu superior para selecionar o locatário que contém o registro do aplicativo cliente.
  3. Selecione Azure Active Directory - Registros de aplicativo e, em seguida, selecione o aplicativo cliente.
  4. Selecione Permissões da API - Adicionar uma permissão - Microsoft Graph - Permissões delegadas.
  5. Na guia Grupo, marque Group.Read.All. Na guia Usuário, marque User.Read.All.
  6. Clique em Adicionar permissões para concluir o processo.
  7. Conceda consentimento em nome de todos os usuários clicando no botão Conceder consentimento para administradores de.... Veja mais informações sobre como conceder o consentimento de administrador em Mais informações sobre as permissões e o consentimento do administrador.

Compartilhar os detalhes do provedor de identidade

Compartilhe as seguintes informações do provedor com o administrador do cluster para a configuração:

  • O URI do emissor do provedor.
  • A chave secreta do cliente
  • O ID do cliente
  • O URI de redirecionamento e a porta especificados para a CLI gcloud
  • O campo de nome de usuário (declaração) que seu provedor usa para identificar usuários nos tokens (o padrão presumido ao configurar clusters é sub)
  • O campo de nome do grupo (reivindicação) usado pelo seu provedor para retornar grupos de segurança, se houver.
  • Outros escopos ou parâmetros específicos do seu provedor, conforme descrito na seção anterior. Por exemplo, se o servidor de autorização solicitar o consentimento para autenticação com o Microsoft Azure e o Okta, o administrador do cluster precisará especificar prompt=consent como parâmetro. Se você configurou o ADFS para fornecer informações do grupo de segurança, o parâmetro adicional relevante é resource=token-groups-claim (ou o que você escolheu como identificador de confiança da parte confiável).
  • (Opcional) Se o provedor não estiver usando um certificado assinado por uma autoridade de certificação pública (por exemplo, se você estiver usando certificados autoassinados), será necessário um certificado (ou cadeia de certificados) do provedor de identidade. O certificado (ou cadeia de certificados) precisa conter, no mínimo, o certificado raiz. As cadeias parciais são aceitas, desde que a cadeia seja contígua ao certificado raiz. Ao fornecer esse valor em ClientConfig, ele precisa ser formatado como uma string codificada em base64. Para criar a string, concatene os certificados codificados em PEM completos em uma única string e codifique-a em base64.

Confira uma lista completa dos parâmetros de configuração do GKE Identity Service em Configurar clusters.

A seguir

O administrador do cluster pode configurar o serviço de identidade do GKE para clusters individuais ou para uma frota.