Configurer des clusters pour GKE Identity Service avec SAML
Ce document est destiné aux administrateurs de cluster ou aux opérateurs d'application qui souhaitent configurer GKE Identity Service sur des clusters individuels, ce qui permet aux développeurs et à d'autres utilisateurs de se connecter aux clusters à l'aide de leurs informations d'identité existantes issues d'un fournisseur Security Assertion Markup Language (SAML). Dans ce guide, nous partons du principe que vous avez lu la présentation de GKE Identity Service. Les instructions de ce document partent du principe que GKE Identity Service a déjà été enregistré auprès de votre fournisseur d'identité en tant qu'application cliente.
Avant de commencer
- Assurez-vous que l'administrateur de votre plate-forme vous a fourni toutes les informations nécessaires de la page Enregistrer GKE Identity Service auprès de votre fournisseur avant de commencer la configuration.
Assurez-vous que les outils de ligne de commande suivants sont installés :
- Utilisez la version 466.0.0 de Google Cloud CLI ou une version ultérieure, qui inclut
gcloud
, l'outil de ligne de commande permettant d'interagir avec Google Cloud. Si vous devez installer Google Cloud CLI, consultez le guide d'installation. kubectl
pour exécuter des commandes sur les clusters Kubernetes. Si vous devez installerkubectl
, suivez ces instructions.
Si vous utilisez Cloud Shell comme environnement shell pour interagir avec Google Cloud, ces outils sont installés pour vous.
- Utilisez la version 466.0.0 de Google Cloud CLI ou une version ultérieure, qui inclut
Assurez-vous d'avoir initialisé gcloud CLI à utiliser avec le projet dans lequel les clusters sont enregistrés.
Configurer le cluster
GKE Identity Service utilise un type de ressource personnalisée (CRD) Kubernetes spécial pour configurer vos clusters appelés , avec des champs pour les informations sur le fournisseur d'identité et les paramètres nécessaires pour renvoyer des informations utilisateur.
kubectl
Pour modifier votre ClientConfig par défaut, assurez-vous de pouvoir vous connecter à votre cluster via kubectl
, puis exécutez la commande suivante :
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
Remplacez KUBECONFIG_PATH
par le chemin d'accès au fichier kubeconfig de votre cluster, par exemple $HOME/.kube/config
.
Un éditeur de texte charge la ressource ClientConfig de votre cluster. Ajoutez l'objet saml
comme indiqué dans l'extrait.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Le tableau suivant décrit les champs de l'objet saml
ClientConfig. Les champs que vous devez ajouter dépendent de votre fournisseur d'identité et des options de configuration choisies par l'administrateur de votre plate-forme lors de la configuration du fournisseur pour GKE Identity Service.
Champ | Obligatoire | Description | Format |
---|---|---|---|
nom | Oui | Nom que vous souhaitez utiliser pour identifier cette configuration, généralement le nom du fournisseur d'identité. Le nom d'une configuration doit commencer par une lettre suivie de 1 à 39 lettres minuscules, chiffres ou traits d'union, et ne peut pas se terminer par un trait d'union. | Chaîne |
idpEntityID | Oui | ID d'entité SAML pour le fournisseur SAML, spécifié au format URI. Exemple : https://www.idp.com/saml . |
Chaîne d'URL |
idpSingleSignOnURI | oui | Point de terminaison SSO du fournisseur SAML, spécifié au format URI. Exemple : https://www.idp.com/saml/sso . |
Chaîne d'URL |
idpCertificateDataList | Oui | Correspond aux certificats du fournisseur d'identité utilisés pour vérifier la réponse SAML. Ces certificats doivent être encodés en base64 standard et au format PEM. Un maximum de deux certificats est accepté pour faciliter la rotation des certificats du fournisseur d'identité. | Chaîne |
userAttribute | Non | Nom de l'attribut dans la réponse SAML contenant le nom d'utilisateur. | Chaîne |
groupsAttribute | Non | Nom de l'attribut dans la réponse SAML contenant les informations relatives au groupe de l'utilisateur. | Chaîne |
userPrefix | Non | Le préfixe que vous souhaitez ajouter aux revendications de l'utilisateur pour éviter les conflits avec les noms existants, si vous ne souhaitez pas utiliser le préfixe par défaut. | Chaîne |
groupPrefix | Non | Le préfixe que vous souhaitez ajouter aux noms de groupe de sécurité pour éviter les conflits avec les noms existants dans vos règles de contrôle d'accès si vous avez des configurations pour plusieurs fournisseurs d'identité (généralement le nom du fournisseur). | Chaîne |
attributeMapping | Non | Mappage d'attributs utilisateur supplémentaires. | Chaîne |
certificateAuthorityData | Non | Si fournie par votre administrateur de plate-forme, il s'agit d'une chaîne de certificat encodée au format PEM pour le fournisseur d'identité. Incluez la chaîne obtenue dans certificateAuthorityData en tant que ligne unique. |
Chaîne |
preferredAuthentication | Non | Nom de la méthode d'authentification préférée configurée dans le cluster. | Chaîne |
Une fois la ClientConfig terminée, enregistrez le fichier. Cela va entraîner la mise à jour de la ressource ClientConfig sur votre cluster. Si vous avez commis des erreurs de syntaxe, vous êtes invité à modifier la configuration pour les corriger.
Étape suivante
Une fois la configuration appliquée, découvrez comment configurer l'accès des utilisateurs aux clusters.