Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Configurar clusters do serviço de identidade do GKE com LDAP
Este documento é destinado a administradores de cluster ou operadores de aplicativos que querem configurar o serviço de identidade do GKE em clusters individuais, permitindo que desenvolvedores e outros usuários façam login nos clusters com os detalhes de identidade atuais de um provedor de Linguagem de marcação para autorização de segurança (SAML). O guia pressupõe que você leu a visão geral do serviço de identidade do GKE.
As instruções neste documento presumem que o sGKE Identity Service já tenha sido registrado com seu provedor de identidade como um aplicativo cliente.
Verifique se você tem as seguintes ferramentas de linha de comando instaladas:
Use a versão 466.0.0 da CLI do Google Cloud ou uma versão mais recente, que inclui gcloud, a ferramenta de linha de comando para interagir com o Google Cloud. Se você precisar instalar a Google Cloud CLI, consulte o guia de instalação.
kubectl para executar comandos em clusters do Kubernetes. Se precisar instalar kubectl, siga estas instruções.
Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.
Verifique se você inicializou a CLI gcloud para uso com o projeto em que os clusters estão registrados.
Configurar o cluster
O serviço de identidade do GKE usa um tipo de recurso personalizado (CRD) especial do Kubernetes para configurar os clusters chamados ClientConfig, com campos para informações sobre o provedor de identidade e os parâmetros necessários para retornar as informações do usuário.
kubectl
Para editar o ClientConfig padrão, conecte-se ao cluster
por meio do kubectl e execute o seguinte comando:
Substitua KUBECONFIG_PATH pelo caminho para o
arquivo kuneconfig do cluster, por exemplo, $HOME/.kube/config.
Um editor de texto carrega o recurso ClientConfig do cluster. Adicione o objeto saml conforme indicado no snippet.
apiVersion:authentication.gke.io/v2alpha1kind:ClientConfigmetadata:name:defaultnamespace:kube-publicspec:authentication:-name:NAMEsaml:idpEntityID:ENTITY_IDidpSingleSignOnURI:SIGN_ON_URIidpCertificateDataList:IDP_CA_CERTuserAttribute:USER_ATTRIBUTEgroupsAttribute:{'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}userPrefix:USER_PREFIXgroupPrefix:GROUP_PREFIXattributeMapping:ATTRIBUTE_KEY_1 :ATTRIBUTE_CEL_EXPRESSION_1ATTRIBUTE_KEY_2 :ATTRIBUTE_CEL_EXPRESSION_2certificateAuthorityData:CERTIFICATE_STRINGpreferredAuthentication:PREFERRED_AUTHENTICATIONserver:<>
# Rest of the resource is managed by Google. DO NOT MODIFY....
A tabela a seguir descreve os campos do objeto saml do ClientConfig. Os
campos que você precisa adicionar dependem do provedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma ao configurar o provedor para o serviço de identidade do GKE.
Campo
Obrigatório
Descrição
Formato
nome
Sim
O nome que você quer usar para identificar essa configuração, normalmente o nome do provedor de identidade. O nome de configuração precisa começar com uma letra seguida por até 39 letras minúsculas, números ou hifens, mas não pode terminar com um hífen.
String
idpEntityID
Sim
O ID da entidade SAML do provedor de SAML, especificado em um formato de URI. Por exemplo, https://www.idp.com/saml.
String do URL
idpSingleSignOnURI
sim
O endpoint de SSO do provedor SAML, especificado em um formato URI. Por exemplo, https://www.idp.com/saml/sso.
String do URL
idpCertificateDataList
Sim
Corresponde aos certificados do provedor de identidade usados para verificar a resposta SAML.
Esses certificados precisam ser codificados em base64 padrão e formatados no formato PEM. Apenas dois certificados são aceitos para facilitar a rotação de certificados do provedor de identidade.
String
userAttribute
Não
O nome do atributo na resposta SAML que contém o nome de usuário.
String
groupsAttribute
Não
Nome do atributo na resposta SAML que contém as informações sobre o grupo do usuário.
String
userPrefix
Não
O prefixo que você quer adicionar ao início das declarações do usuário para evitar conflitos com
nomes existentes, se não quiser usar o prefixo padrão.
String
groupPrefix
Não
O prefixo que você quer adicione ao início dos nomes dos grupos de segurança para evitar conflitos com nomes existentes nas suas regras de controle de acesso se você tiver configurações para vários provedores de identidade (normalmente o nome do provedor).
String
attributeMapping
Não
O mapeamento de atributos adicionais do usuário.
String
certificateAuthorityData
Não
Se fornecida pelo administrador da plataforma, ela é uma string de certificado codificada em PEM
para o provedor de identidade. Inclua a string resultante em certificateAuthorityData como uma única linha.
String
preferredAuthentication
Não
Nome do método de autenticação preferido configurado no cluster.
String
Depois de concluir o ClientConfig, salve o arquivo, que atualiza o ClientConfig no cluster. Se você cometeu erros de sintaxe, será solicitado que reedite a configuração para corrigi-los.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-11-25 UTC."],[],[],null,["# Set up clusters for GKE Identity Service with SAML\n==================================================\n\nThis document is for **cluster administrators** or application operators who want to set up GKE Identity Service on individual clusters, allowing developers and other users to log in to the clusters using their existing identity details from a [Security Assertion Markup Language (SAML)](https://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html) provider. The guide assumes that you have read the GKE Identity Service [overview](/kubernetes-engine/enterprise/identity).\nThe instructions in this document assume that GKE Identity Service has already been [registered with your identity provider](/kubernetes-engine/enterprise/identity/setup/saml-provider) as a client application.\n\nBefore you begin\n----------------\n\n- Ensure that your platform administrator has given you all the necessary information from [Register GKE Identity Service with your provider](/kubernetes-engine/enterprise/identity/setup/saml-provider) before you start setup.\n- Ensure that you have the following command line tools installed:\n\n - Use the 466.0.0 version of the Google Cloud CLI or higher, which includes `gcloud`, the command line tool for interacting with Google Cloud. If you need to install the Google Cloud CLI, see the [installation guide](/sdk/docs/install).\n - `kubectl` for running commands against Kubernetes clusters. If you need to install `kubectl`, follow these [instructions](/kubernetes-engine/fleet-management/docs/before-you-begin#install-kubectl).\n\n If you are using Cloud Shell as your shell environment for interacting with Google Cloud, these tools are installed for you.\n- Ensure that you have [initialized](/sdk/docs/install-sdk#initializing_the) the gcloud CLI for use with the project where the clusters are registered.\n\nConfigure the cluster\n---------------------\n\nGKE Identity Service uses a special Kubernetes custom resource type (CRD)\nto configure your clusters called ClientConfig, with fields for information about\nthe identity provider and the parameters it needs to return user information. \n\n### kubectl\n\nTo edit your default ClientConfig, make sure you can connect to your cluster\nusing `kubectl`, and run the following command: \n\n kubectl --kubeconfig=\u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e edit ClientConfigs default -n kube-public\n\nReplace \u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e with the path to your\ncluster's kubeconfig file---for example `$HOME/.kube/config`.\n\nA text editor loads your cluster's ClientConfig resource. Add the `saml`\nobject as indicated in the snippet. \n\n apiVersion: authentication.gke.io/v2alpha1\n kind: ClientConfig\n metadata:\n name: default\n namespace: kube-public\n spec:\n authentication:\n - name: \u003cvar name=\"name\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eNAME\u003c/span\u003e\u003c/var\u003e\n saml:\n idpEntityID: \u003cvar name=\"entity id\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENTITY_ID\u003c/span\u003e\u003c/var\u003e\n idpSingleSignOnURI: \u003cvar name=\"sign on uri\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSIGN_ON_URI\u003c/span\u003e\u003c/var\u003e\n idpCertificateDataList: \u003cvar name=\"idp ca cert\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIDP_CA_CERT\u003c/span\u003e\u003c/var\u003e\n userAttribute: \u003cvar name=\"user attribute\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_ATTRIBUTE\u003c/span\u003e\u003c/var\u003e\n groupsAttribute: {'\u003cvar name=\"user attribute\"\u003eGROUPS_ATTRIBUTE\u003c/var\u003e'}}\n userPrefix: \u003cvar name=\"user prefix\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_PREFIX\u003c/span\u003e\u003c/var\u003e\n groupPrefix: \u003cvar name=\"group prefix\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUP_PREFIX\u003c/span\u003e\u003c/var\u003e\n attributeMapping:\n ATTRIBUTE_KEY_1 : \u003cvar name=\"attribute cel expression 1\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eATTRIBUTE_CEL_EXPRESSION_1\u003c/span\u003e\u003c/var\u003e\n ATTRIBUTE_KEY_2 : \u003cvar name=\"attribute cel expression 2\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eATTRIBUTE_CEL_EXPRESSION_2\u003c/span\u003e\u003c/var\u003e\n certificateAuthorityData: \u003cvar name=\"cert string\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCERTIFICATE_STRING\u003c/span\u003e\u003c/var\u003e\n preferredAuthentication: \u003cvar name=\"auth string\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePREFERRED_AUTHENTICATION\u003c/span\u003e\u003c/var\u003e\n server: \u003c\u003e\n\n # Rest of the resource is managed by Google. DO NOT MODIFY.\n ...\n\n| **Tip:** GKE Identity Service lets you configure multiple OIDC, LDAP, and SAML identity provider configurations in a single `ClientConfig` custom resource (CRD) for client authentication. GKE Identity Service attempts authentication with each CRD in the order they are defined, and stops after the first successful authentication.\n\nYou can configure multiple identity providers in your `ClientConfig` according to your requirements. This streamlines management and provides flexibility, letting you configure diverse authentication methods within a unified configuration resource. The following example `ClientConfig` defines multiple identity providers in the required order of authentication precedence. \n\n apiVersion: v1\n items:\n - apiVersion: authentication.gke.io/v2alpha1\n kind: ClientConfig\n ...\n spec:\n authentication:\n - aws:\n region: us-west-2\n name: AWS Login\n - ldap:\n ...\n - saml:\n ...\n - azureAD:\n ...\n - oidc:\n name: Okta OIDC\n ...\n -oidc:\n name: Google OIDC\n ...\n\nThe following table describes the fields of the ClientConfig `saml` object. The\nfields you need to add depend on your identity provider and the setup options\nchosen by your platform administrator when configuring the provider for GKE Identity Service.\n\nAfter you complete your ClientConfig, save the file, which updates the\nClientConfig on your cluster. If you've made any syntax errors, you are\nprompted to re-edit the configuration to fix them.\n\nWhat's next?\n------------\n\nAfter the configuration is applied, continue to [set up user access to clusters](/kubernetes-engine/enterprise/identity/setup/user-access)."]]