Ce guide explique comment configurer la fédération d'identité de personnel en utilisant Okta en tant que fournisseur d'identité (IdP), et comment gérer les accès et la connexion des utilisateurs pour leur permettre d'accéder aux services Google Cloud compatibles avec la fédération d'identité de personnel.
Avant de commencer
Vous devez disposer d'une organisation Google Cloud déjà configurée.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour la connexion, votre fournisseur d'identité doit fournir des informations d'authentification signées : les fournisseurs d'identité OIDC doivent fournir un jeton JWT, et les réponses du fournisseur d'identité SAML doivent être signées.
Pour recevoir des informations importantes sur les modifications concernant votre organisation ou vos produits Google Cloud, vous devez fournir des contacts essentiels. Pour en savoir plus, consultez la Présentation de la fédération des identités des employés.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer la fédération des identités des employés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur de pools d'employés (roles/iam.workforcePoolAdmin
) sur l'organisation.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle de base IAM "Propriétaire" (roles/owner
) inclut également des autorisations permettant de configurer la fédération d'identité.
Les rôles de base ne doivent pas être attribués dans un environnement de production, mais ils peuvent être attribués dans un environnement de développement ou de test.
Créer un pool d'identités de personnel
Console
Pour créer le pool d'identités de personnel, procédez comme suit :
Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :
Cliquez sur Créer un pool et procédez comme suit :
Dans le champ Nom, saisissez le nom du pool. L'ID du pool est automatiquement dérivé du nom au fur et à mesure de la saisie.
Facultatif : pour mettre à jour l'ID, cliquez sur Modifier.
Facultatif : Dans le champ Description, saisissez une description du pool.
La durée de la session est définie par défaut. Pour saisir une durée de session personnalisée, cliquez sur Modifier. La durée de la session détermine la durée pendant laquelle les jetons d'accès Google Cloud, les sessions de connexion à la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. La durée doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).
Pour créer le pool à l'état "Activé", assurez-vous que le pool activé est activé.
Pour créer le pool d'identités de personnel, cliquez sur Suivant.
gcloud
Pour créer le pool d'identités de personnel, exécutez la commande suivante :
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID que vous choisissez pour représenter votre pool de personnel Google Cloud. Pour plus d'informations sur la mise en forme de l'ID, consultez la section Paramètres de requête dans la documentation de l'API.ORGANIZATION_ID
: ID d'organisation numérique de votre organisation Google Cloud.DESCRIPTION
: description du pool d'identités de personnelSESSION_DURATION
: durée de la session, qui détermine la durée pendant laquelle les jetons d'accès Google Cloud, les sessions de connexion à la console (fédération) et les sessions de connexion à gcloud CLI de ce pool de personnel sont valides. La durée doit être supérieure à 15 minutes (900 s) et inférieure à 12 heures (43 200 s). Si la durée de la session n'est pas définie, elle est définie par défaut sur une durée d'une heure (3 600 s).
Créer une intégration d'application Okta
Cette section décrit la procédure à suivre pour créer une intégration d'application Okta à l'aide de la console d'administration Okta. Pour en savoir plus, consultez Créer des intégrations d'applications personnalisées.
Les pools de personnel sont compatibles avec la fédération avec les protocoles OIDC et SAML.
Pour en savoir plus, consultez le guide d'intégration d'Okta OIDC et SAML. La configuration de base est décrite dans cette section.
OIDC
Pour créer une intégration d'application Okta qui utilise le protocole OIDC, procédez comme suit :
- Connectez-vous à la console d'administration Okta.
- Accédez à Applications > Applications.
Pour commencer à configurer l'intégration de l'application, procédez comme suit :
- Cliquez sur Créer une intégration d'application.
- Dans Méthode de connexion, sélectionnez OIDC – OpenID Connect.
- Dans Type d'application, sélectionnez un type d'application (par exemple, Application Web).
- Pour créer l'application, cliquez sur Suivant.
- Dans Nom de l'intégration d'application, saisissez un nom pour votre application.
- Dans la section Type d'attribution, cochez la case Implicite (hybride).
Dans la section URI de redirection de connexion, saisissez une URL de redirection dans le champ de texte. Vos utilisateurs sont redirigés vers cette URL après s'être connectés. Si vous configurez l'accès à la console (fédéré), utilisez le format d'URL suivant :
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID du pool de nœuds de calcul que vous avez créé précédemment dans ce guide.WORKFORCE_PROVIDER_ID
: ID de fournisseur d'identité de personnel de votre choix Exemple :okta-oidc-provider
. Pour plus d'informations sur la mise en forme de l'ID, consultez la section Paramètres de requête dans la documentation de l'API.
Cochez la case Ignorer l'attribution du groupe pour le moment.
Pour enregistrer l'intégration de l'application, cliquez sur Enregistrer.
Facultatif. Pour ajouter des attributs personnalisés pour un profil utilisateur Okta, procédez comme suit :
- Dans Type de données, sélectionnez
string
. - Dans le champ Nom à afficher, saisissez
Department
. - Dans le champ Nom de la variable, saisissez
department
. - Pour enregistrer le mappage, cliquez sur Enregistrer.
Pour en savoir plus sur l'ajout d'attributs personnalisés, consultez la section Ajouter des attributs personnalisés à un profil utilisateur Okta.
- Dans Type de données, sélectionnez
Facultatif. Pour créer des mappages pour les attributs envoyés dans le jeton OIDC, dans Annuaire, cliquez sur Éditeur de profil, puis procédez comme suit :
- Recherchez l'application OIDC que vous avez créée précédemment dans ce guide.
- Cliquez sur Mappages.
- Sélectionnez l'onglet Utilisateur Okta à l'application.
- Dans l'onglet Profil utilisateur utilisateur Okta, saisissez
department
dans la liste déroulante disponible. Okta se complète automatiquement suruser.department
. - Pour enregistrer les mappages, cliquez sur Enregistrer les mappages. Pour en savoir plus, consultez la section Ajouter un mappage d'attributs.
Pour en savoir plus sur les mappages, consultez Mapper les attributs Okta aux attributs d'application dans l'éditeur de profil.
Facultatif. Pour configurer une revendication de groupe, procédez comme suit :
- Si vous utilisez un serveur d'autorisation d'organisation, procédez comme suit :
- Accédez à Applications > Applications
- Sélectionnez l'application cliente OpenID Connect que vous avez créée précédemment dans cette section.
- Accédez à l'onglet Connexion.
- Dans la section Jeton d'identification OpenID Connect, cliquez sur Modifier.
- Dans la section Type de revendication de groupes, vous pouvez sélectionner l'une des options suivantes :
- Sélectionner l'expression.
- Sélectionnez Correspond à l'expression régulière, puis saisissez
.*
.
- Pour enregistrer la revendication de groupes, cliquez sur Enregistrer.
- Lorsque vous créerez le fournisseur de pools d'identités des employés, plus loin dans ce guide, ajoutez
groups
en tant que champ d'application supplémentaire pour demander que les revendications des groupes passent par Okta pour l'authentification unique Web. Cette étape n'est requise que si vous utilisez un flux de connexion basé sur navigateur, via la console (fédération) ou via gcloud CLI.
- Si vous utilisez un serveur d'autorisation personnalisé, procédez comme suit :
- Dans le menu Sécurité de la console d'administration, sélectionnez API.
- Sélectionnez le serveur d'autorisation personnalisé que vous souhaitez configurer.
- Accédez à l'onglet Revendications, puis cliquez sur Ajouter une revendication.
- Saisissez le nom de la revendication. Pour cet exemple, nommez-le
groups
. - Dans votre revendication, sous Inclure dans le type de jeton, sélectionnez Jeton d'ID, puis Toujours.
- Sélectionnez Groupes pour le champ Type de valeur.
- Dans la liste déroulante "Filtre", sélectionnez Correspond à l'expression régulière, puis saisissez l'expression suivante comme valeur :
.*
- Cliquez sur Créer.
- Si vous utilisez un serveur d'autorisation d'organisation, procédez comme suit :
Pour en savoir plus sur les revendications des groupes, consultez la section Ajouter une revendication Groupes.
SAML
Pour créer une intégration d'application Okta qui utilise le protocole SAML, procédez comme suit :
- Connectez-vous à la console d'administration Okta.
- Accédez à Applications > Applications.
- Cliquez sur Créer une intégration d'application.
- Dans Sign-in method (Méthode de connexion), sélectionnez SAML 2.0, puis cliquez sur Next (Suivant).
- Saisissez un nom pour votre application, puis cliquez sur Suivant pour passer aux options de Configurer SAML.
Dans URL d'authentification unique, saisissez une URL de redirection. Il s'agit de l'URL vers laquelle les utilisateurs sont redirigés après s'être connectés. Si vous configurez l'accès à la console, utilisez le format d'URL suivant.
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Saisissez l'URI d'audience (
SP Entity ID
). L'ID est au format suivant :https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID du pool d'employés que vous avez créé précédemment dans ce guide.WORKFORCE_PROVIDER_ID
: ID de fournisseur d'identité de personnel de votre choix Exemple :okta-saml-provider
Pour plus d'informations sur la mise en forme de l'ID, consultez la section Paramètres de requête dans la documentation de l'API.
Facultatif. Utilisez les instructions d'attribut pour spécifier les attributs personnalisés que vous souhaitez envoyer dans l'assertion SAML. Après la configuration, ces attributs peuvent être utilisés dans Google Cloud pour créer des règles de gestion des accès ou dans attribute_condition. Par exemple, dans ce guide, vous pouvez mapper le service comme suit :
Nom Valeur department
user.department
Facultatif. Pour ajouter la revendication de groupe (utilisée ultérieurement dans ce guide), consultez la section Comment transmettre l'appartenance à un groupe d'un utilisateur dans une assertion SAML.
Terminez la création de l'intégration de l'application Okta.
Créer un fournisseur de pools d'identités de personnel
Cette section explique comment créer un fournisseur de pools d'identités de personnel pour permettre aux utilisateurs de votre fournisseur d'identité d'accéder à Google Cloud. Vous pouvez configurer le fournisseur pour qu'il utilise le protocole OIDC ou SAML.
Créer un fournisseur de pools de personnel OIDC
Pour créer un fournisseur de pools d'identités de personnel pour votre intégration d'application Okta, à l'aide du protocole OIDC, procédez comme suit :
Pour obtenir l'ID client pour l'intégration de votre application Okta, procédez comme suit :
- Accédez à l'intégration de votre application Okta.
- Cliquez sur l'onglet Général.
- Copiez le contenu du champ ID client.
Pour créer un fournisseur de pools d'identités des employés OIDC pour la connexion Web, procédez comme suit :
Console
Flux de code
Dans Okta, procédez comme suit :
Dans Authentification client, sélectionnez Code secret du client.
Dans la table Codes secrets du client, recherchez le code secret et cliquez sur content_copy Copier.
Pour créer un fournisseur OIDC utilisant le flux avec code d'autorisation dans la console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :
Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.
Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.
Dans Sélectionner un protocole, sélectionnez Open ID Connect (OIDC).
Dans Créer un fournisseur de pools, procédez comme suit :
- Dans Nom, saisissez un nom pour le fournisseur.
- Dans le champ Issuer (URL) (Émetteur (URL)), saisissez l'URI de l'émetteur. L'URI d'émetteur OIDC doit être dans un format d'URI valide et commencer par
https
. Exemple :https://example.com/oidc
. - Saisissez l'ID client, qui est l'ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication
aud
du jeton JWT émis par votre fournisseur d'identité. - Pour créer un fournisseur activé, assurez-vous que l'option fournisseur activé est activée.
- Cliquez sur Continuer.
Dans Type de réponse, procédez comme suit : Le type de réponse n'est utilisé que pour un flux d'authentification unique basé sur le Web.
- Dans Type de réponse, sélectionnez Code.
- Dans Code secret du client, saisissez le code secret du client à partir de votre fournisseur d'identité.
Dans le champ Comportement des revendications d'assertion, sélectionnez l'une des options suivantes :
- Informations sur l'utilisateur et jeton d'ID
- Jeton d'ID uniquement
Cliquez sur Continuer.
Dans Configurer le fournisseur, vous pouvez configurer un mappage d'attributs et une condition d'attribut. Pour créer un mappage d'attributs, procédez comme suit : Vous pouvez indiquer le nom du champ du fournisseur d'identité ou une expression au format CEL qui renvoie une chaîne.
- Obligatoire : dans OIDC 1, saisissez l'objet du fournisseur d'identité. Exemple :
assertion.sub
. Facultatif : pour ajouter des mappages d'attributs supplémentaires, procédez comme suit :
- Cliquez sur Ajouter un mappage.
- Dans Google n, où n est un nombre, saisissez l'une des clés compatibles avec Google Cloud.
- Dans le champ OIDC n correspondant, saisissez le nom du champ spécifique au fournisseur d'identité à mapper, au format CEL.
Pour créer une condition d'attribut, procédez comme suit :
- Cliquez sur Ajouter une condition :
- Dans Conditions d'attribut, saisissez une condition au format CEL. Par exemple,
assertion.subject.endsWith('@example.com')
lorsque la valeur desubject
mappée précédemment contient un adresse e-mail se terminant par@example.com
.
- Obligatoire : dans OIDC 1, saisissez l'objet du fournisseur d'identité. Exemple :
Pour créer le fournisseur, cliquez sur Envoyer.
Flux implicite
Dans la console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :
Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.
Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.
Dans Sélectionner un protocole, sélectionnez Open ID Connect (OIDC).
Dans Créer un fournisseur de pools, procédez comme suit :
- Dans Nom, saisissez un nom pour le fournisseur.
- Dans le champ Issuer (URL) (Émetteur (URL)), saisissez l'URI de l'émetteur. L'URI d'émetteur OIDC doit être dans un format d'URI valide et commencer par
https
. Exemple :https://example.com/oidc
. - Saisissez l'ID client, qui est l'ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendication
aud
du jeton JWT émis par votre fournisseur d'identité. - Pour créer un fournisseur activé, assurez-vous que l'option fournisseur activé est activée.
- Cliquez sur Continuer.
Dans Type de réponse, procédez comme suit : Le type de réponse n'est utilisé que pour un flux d'authentification unique basé sur le Web.
- Dans Type de réponse, sélectionnez Jeton d'ID.
- Cliquez sur Continuer.
Dans Configurer le fournisseur, vous pouvez configurer un mappage d'attributs et une condition d'attribut. Pour créer un mappage d'attributs, procédez comme suit : Vous pouvez indiquer le nom du champ du fournisseur d'identité ou une expression au format CEL qui renvoie une chaîne.
Obligatoire : dans OIDC 1, saisissez l'objet du fournisseur d'identité. Exemple :
assertion.sub
.Facultatif : pour ajouter des mappages d'attributs supplémentaires, procédez comme suit :
- Cliquez sur Ajouter un mappage.
- Dans Google n, où n est un nombre, saisissez l'une des clés compatibles avec Google Cloud.
- Dans le champ OIDC n correspondant, saisissez le nom du champ spécifique au fournisseur d'identité à mapper, au format CEL.
Pour créer une condition d'attribut, procédez comme suit :
- Cliquez sur Ajouter une condition :
- Dans Conditions d'attribut, saisissez une condition au format CEL. Par exemple,
assertion.subject.endsWith('@example.com')
lorsque la valeur desubject
mappée précédemment contient un adresse e-mail se terminant par@example.com
.
Pour créer le fournisseur, cliquez sur Envoyer.
gcloud
Flux de code
Dans Okta, procédez comme suit :
Dans Authentification client, sélectionnez Code secret du client.
Dans la table Codes secrets du client, recherchez le code secret et cliquez sur content_copy Copier.
Dans Google Cloud, pour créer un fournisseur OIDC qui utilise le flux avec code d'autorisation pour la connexion Web, exécutez la commande suivante :
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=globalRemplacez les éléments suivants :
PROVIDER_ID
: ID de fournisseur unique. Le préfixegcp-
est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.WORKFORCE_POOL_ID
: ID du pool d'identités des employés auquel connecter votre fournisseur d'identité.DISPLAY_NAME
: nom à afficher convivial et facultatif pour le fournisseur. Par exemple :idp-eu-employees
.DESCRIPTION
: description facultative du fournisseur de personnel. Par exemple :IdP for Partner Example Organization employees
.ISSUER_URI
: URI de l'émetteur OIDC, dans un format d'URI valide, commençant parhttps
. Exemple :https://example.com/oidc
. Remarque : Pour des raisons de sécurité,ISSUER_URI
doit utiliser le schéma HTTPS.OIDC_CLIENT_ID
: ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendicationaud
du JWT émis par votre fournisseur d'identité.OIDC_CLIENT_SECRET
: code secret du client OIDC.WEB_SSO_ADDITIONAL_SCOPES
: champs d'application supplémentaires facultatifs à envoyer au fournisseur d'identité OIDC pour la connexion basée sur le navigateur, via la console (fédération) ou via gcloud CLI ; par exemple,groups
pour demander que les revendications des groupes passent par Okta, si le serveur d'autorisation d'organisation d'Okta est utilisé.ATTRIBUTE_MAPPING
: mappage d'attributs. Par exemple :
Cet exemple mappe les attributs de fournisseur d'identitégoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
etcostcenter
dans l'assertion OIDC avec les attributsgoogle.subject
,google.groups
etattribute.costcenter
, respectivement.ATTRIBUTE_CONDITION
: condition d'attribut. Par exemple :assertion.subject.endsWith('@example.com')
lorsque la valeur desubject
mappée précédemment contient une adresse e-mail se terminant par@example.com
.JWK_JSON_PATH
: chemin d'accès facultatif aux JWK OIDC importées localement. Si ce paramètre n'est pas spécifié, Google Cloud utilise à la place le chemin "/.well-known/openid-configuration" de votre IdP pour obtenir les JWK contenant les clés publiques. Pour en savoir plus sur les JWK OIDC importées localement, consultez la page Gérer les JWK OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.Flux implicite
Pour créer un fournisseur OIDC qui utilise le flux implicite pour la connexion Web, exécutez la commande suivante :
gcloud iam workforce-pools providers create-oidc PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \ --web-sso-response-type="id-token" \ --web-sso-assertion-claims-behavior="only-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --location=global
Remplacez les éléments suivants :
PROVIDER_ID
: ID de fournisseur unique. Le préfixegcp-
est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.WORKFORCE_POOL_ID
: ID du pool d'identités des employés auquel connecter votre fournisseur d'identité.DISPLAY_NAME
: nom à afficher convivial et facultatif pour le fournisseur. Par exemple :idp-eu-employees
.DESCRIPTION
: description facultative du fournisseur de personnel. Par exemple :IdP for Partner Example Organization employees
.ISSUER_URI
: URI de l'émetteur OIDC, dans un format d'URI valide, commençant parhttps
. Exemple :https://example.com/oidc
. Remarque : Pour des raisons de sécurité,ISSUER_URI
doit utiliser le schéma HTTPS.OIDC_CLIENT_ID
: ID client OIDC enregistré auprès de votre fournisseur d'identité OIDC. L'ID doit correspondre à la revendicationaud
du JWT émis par votre fournisseur d'identité.WEB_SSO_ADDITIONAL_SCOPES
: champs d'application supplémentaires facultatifs à envoyer au fournisseur d'identité OIDC pour la connexion basée sur le navigateur, via la console (fédération) ou via gcloud CLI ; par exemple,groups
pour demander que les revendications des groupes passent par Okta, si le serveur d'autorisation d'organisation d'Okta est utilisé.ATTRIBUTE_MAPPING
: mappage d'attributs. Par exemple :
Cet exemple mappe les attributs de fournisseur d'identitégoogle.subject=assertion.sub, google.groups=assertion.group1, attribute.costcenter=assertion.costcenter
subject
,assertion.group1
etcostcenter
dans l'assertion OIDC avec les attributsgoogle.subject
,google.groups
etattribute.costcenter
, respectivement.ATTRIBUTE_CONDITION
: condition d'attribut. Par exemple :assertion.subject.endsWith('@example.com')
lorsque la valeur desubject
mappée précédemment contient une adresse e-mail se terminant par@example.com
.JWK_JSON_PATH
: chemin d'accès facultatif aux JWK OIDC importées localement. Si ce paramètre n'est pas spécifié, Google Cloud utilise à la place le chemin "/.well-known/openid-configuration" de votre IdP pour obtenir les JWK contenant les clés publiques. Pour en savoir plus sur les JWK OIDC importées localement, consultez la page Gérer les JWK OIDC.
locations/global/workforcePools/enterprise-example-organization-employees
.
Créer un fournisseur de pools de personnel SAML
Dans votre fournisseur d'identité SAML, enregistrez une nouvelle application pour la fédération d'identité de personnel Google Cloud.
Définissez la cible des assertions SAML. Il s'agit généralement du champ
SP Entity ID
de la configuration de votre fournisseur d'identité. Vous devez la définir sur l'URL suivante :https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID
Si vous envisagez de configurer l'accès des utilisateurs à la console, dans votre IdP SAML, définissez l'URL de redirection ou le champ d'URL ACS (Assertion Consumer Service) sur l'URL suivante :
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
Pour en savoir plus sur la configuration de la connexion à la console, consultez la section Configurer l'accès utilisateur à la console.
Dans Google Cloud, créez un fournisseur de pools d'identités de personnel SAML en utilisant le document de métadonnées SAML de votre fournisseur d'identité. Vous pouvez télécharger le document XML des métadonnées SAML à partir de votre fournisseur d'identité. Ce document doit au moins inclure les éléments suivants :
- Un ID d'entité SAML pour votre fournisseur d'identité.
- L'URL d'authentification unique de votre fournisseur d'identité.
- Une ou plusieurs clés publiques de signature. Pour plus d'informations sur les clés de signature, consultez la section Exigences relatives aux clés plus loin dans le présent guide.
Console
Pour configurer le fournisseur SAML à l'aide de la console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page Pools d'identités de personnel :
Dans le tableau Pools d'identités de personnel, sélectionnez le pool pour lequel vous souhaitez créer le fournisseur.
Dans le tableau Fournisseurs, cliquez sur Ajouter un fournisseur.
Dans Sélectionner un protocole, sélectionnez SAML.
Dans Créer un fournisseur de pools, procédez comme suit :
Dans Nom, saisissez un nom pour le fournisseur.
Facultatif : Dans le champ Description, saisissez une description du fournisseur.
Dans Fichier de métadonnées IdP (XML), sélectionnez le fichier XML de métadonnées que vous avez généré précédemment dans ce guide.
Assurez-vous que l'option fournisseur activé est activée.
Cliquez sur Continuer.
Dans Configurer le fournisseur, procédez comme suit :
Dans Mappage des attributs, saisissez une expression CEL pour
google.subject
.Facultatif : Pour définir d'autres mappages, cliquez sur Ajouter un mappage et saisissez d'autres mappages. Par exemple :
Cet exemple mappe les attributs IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
etassertion.attributes.costcenter[0]
aux attributs Google Cloudgoogle.subject
,google.groups
etgoogle.costcenter
, respectivement.Facultatif : pour ajouter une condition d'attribut, cliquez sur Ajouter une condition, puis saisissez une expression CEL représentant une condition d'attribut. Par exemple, pour limiter l'attribut
ipaddr
à une certaine plage d'adresses IP, vous pouvez définir la conditionassertion.attributes.ipaddr.startsWith('98.11.12.')
. Cet exemple de condition garantit que seuls les utilisateurs dont l'adresse IP commence par98.11.12.
peuvent se connecter en utilisant ce fournisseur de personnel.Cliquez sur Continuer.
Pour créer le fournisseur, cliquez sur Envoyer.
gcloud
Pour créer un fournisseur de pools d'identités de personnel pour votre intégration d'application Okta, à l'aide du protocole SAML, procédez comme suit :
Pour enregistrer les métadonnées SAML pour votre application Okta, procédez comme suit :
- Accédez à votre application Okta.
- Cliquez sur l'onglet Connexion.
- Dans la section Certificats de signature SAML, cliquez sur Actions > Afficher les métadonnées du fournisseur d'identité pour le certificat actif.
- Dans la nouvelle page qui s'affiche, copiez les métadonnées XML.
- Enregistrez les métadonnées dans un fichier XML local.
Pour créer un fournisseur de services pour votre application Okta, exécutez la commande suivante :
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --idp-metadata-path="XML_METADATA_PATH" \ --location="global"
Remplacez les éléments suivants :
WORKFORCE_PROVIDER_ID
: ID de fournisseur de personnel que vous avez créé précédemment dans ce guide.WORKFORCE_POOL_ID
: ID de pool de personnel que vous avez créé précédemment dans ce guide.ATTRIBUTE_MAPPING
: mappage d'attributs. Par exemple :
Cet exemple mappe les attributs IdPgoogle.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]
assertion.subject
,assertion.attributes['https://example.com/aliases']
etassertion.attributes.costcenter[0]
aux attributs Google Cloudgoogle.subject
,google.groups
etgoogle.costcenter
, respectivement.ATTRIBUTE_CONDITION
: condition d'attribut facultative. Par exemple, pour limiter l'attributipaddr
à une certaine plage d'adresses IP, vous pouvez définir la conditionassertion.attributes.ipaddr.startsWith('98.11.12.')
. Cet exemple de condition garantit que seuls les utilisateurs dont l'adresse IP commence par98.11.12.
peuvent se connecter en utilisant ce fournisseur de personnel.XML_METADATA_PATH
: chemin d'accès au fichier de métadonnées au format XML de l'application Okta que vous avez créée précédemment dans ce guide.
Le préfixe
gcp-
est réservé et ne peut pas être utilisé dans un ID de pool ou de fournisseur.Facultatif : accepter les assertions SAML chiffrées provenant de votre fournisseur d'identité
Pour permettre à votre fournisseur d'identité SAML 2.0 de produire des assertions SAML chiffrées pouvant être acceptées par la fédération des identités des employés, procédez comme suit :
- Dans la fédération des identités des employés, procédez comme suit :
- Créez une paire de clés asymétriques pour votre fournisseur de pools d'identités de personnel.
- Téléchargez un fichier de certificat contenant la clé publique.
- Configurez votre fournisseur d'identité SAML pour qu'il utilise la clé publique pour chiffrer les assertions SAML émises.
- Dans votre fournisseur d'identité, procédez comme suit :
- Activer le chiffrement des assertions, également appelé chiffrement de jeton.
- Importez la clé publique que vous avez créée dans la fédération des identités des employés.
- Vérifiez que votre fournisseur d'identité génère des assertions SAML chiffrées.
Créer des clés de chiffrement d'assertion SAML pour la fédération des identités des employés
Cette section vous guide dans la création d'une paire de clés asymétriques permettant à la fédération des identités des employés d'accepter les assertions SAML chiffrées.
Google Cloud utilise la clé privée pour déchiffrer les assertions SAML émises par votre fournisseur d'identité. Pour créer une paire de clés asymétriques à utiliser avec le chiffrement SAML, exécutez la commande suivante. Pour en savoir plus, consultez la page Algorithmes de chiffrement SAML compatibles.
gcloud iam workforce-pools providers keys create KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Remplacez les éléments suivants :
KEY_ID
: nom de la clé de votre choixWORKFORCE_POOL_ID
: ID du poolPROVIDER_ID
: ID du fournisseur-
KEY_SPECIFICATION
: spécification de clé, qui peut êtrersa-2048
,rsa-3072
oursa-4096
.
Une fois la paire de clés créée, pour télécharger la clé publique dans un fichier de certificat, exécutez la commande suivante. Seule la fédération des identités des employés a accès à la clé privée.
gcloud iam workforce-pools providers keys describe KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Remplacez les éléments suivants :
KEY_ID
: nom de la cléWORKFORCE_POOL_ID
: ID du poolPROVIDER_ID
: ID du fournisseurCERTIFICATE_PATH
: chemin d'accès dans lequel écrire le certificat (par exemple,saml-certificate.cer
ousaml-certificate.pem
)
Configurer votre fournisseur d'identité compatible avec SAML 2.0 pour émettre des assertions SAML chiffrées
Pour configurer Okta afin de chiffrer les assertions SAML, procédez comme suit :
- Accédez à votre tableau de bord Okta et connectez-vous.
- Accédez à Applications>Applications.
- Cliquez sur votre application.
- Dans l'onglet Général, dans la section Paramètres SAML, cliquez sur Modifier.
- Cliquez sur Suivant pour afficher les Paramètres SAML.
- Cliquez sur Afficher les paramètres avancés.
- Dans Paramètres SAML, procédez comme suit :
- Sous Réponse (à privilégier) ou Signature d'assertion, sélectionnez
Signed
. - Dans Algorithme de signature et Algorithme de condensé, sélectionnez une option.
- Définissez les valeurs suivantes :
- Chiffrement d'assertion : chiffré.
- Algorithme de chiffrement : n'importe quel algorithme que vous choisissez.
- Certificat de chiffrement : importez le fichier de certificat que vous avez généré précédemment dans ce guide.
- Pour enregistrer la configuration, cliquez sur Suivant, puis sur Terminer.
Après avoir configuré votre fournisseur d'identité pour chiffrer les assertions SAML, nous vous recommandons de vérifier que les assertions générées sont bien chiffrées. Même si le chiffrement des assertions SAML est configuré, la fédération des identités des employés peut toujours traiter les assertions en texte brut.
Supprimer des clés de chiffrement de fédération des identités des employés
Pour supprimer les clés de chiffrement SAML, exécutez la commande suivante :gcloud iam workforce-pools providers keys delete KEY_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location global
Remplacez les éléments suivants :
KEY_ID
: nom de la cléWORKFORCE_POOL_ID
: ID du poolPROVIDER_ID
: ID du fournisseur
Algorithmes de chiffrement SAML compatibles
La fédération des identités des employés est compatible avec les algorithmes de transport de clés suivants :
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
La fédération des identités des employés est compatible avec les algorithmes de chiffrement de bloc suivants :
Gérer l'accès aux ressources Google Cloud
Cette section fournit un exemple qui montre comment gérer l'accès aux ressources Google Cloud par les utilisateurs de la fédération d'identité de personnel.
Dans cet exemple, vous accordez un rôle IAM (Identity and Access Management) sur un exemple de projet. Les utilisateurs peuvent ensuite se connecter et utiliser ce projet pour accéder aux produits Google Cloud.
Vous pouvez gérer les rôles IAM pour des identités uniques, un groupe d'identités ou un pool entier. Pour en savoir plus, consultez la page Représenter les utilisateurs de pools d'identités de personnel dans les stratégies IAM.
Pour une identité unique
Pour accorder le rôle Administrateur de l'espace de stockage (roles/storage.admin
) à une seule identité pour le projet TEST_PROJECT_ID
, exécutez la commande suivante :
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Remplacez les éléments suivants :
TEST_PROJECT_ID
: ID du projetWORKFORCE_POOL_ID
: ID du pool d'identités de personnelSUBJECT_VALUE
: identité de l'utilisateur
Utiliser l'attribut de service mappé
Pour accorder le rôle Administrateur de l'espace de stockage (roles/storage.admin
) à toutes les identités d'un service spécifique pour le projet TEST_PROJECT_ID
, exécutez la commande suivante :
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"
Remplacez les éléments suivants :
TEST_PROJECT_ID
: ID du projetWORKFORCE_POOL_ID
: ID du pool de personnelDEPARTMENT_VALUE
: valeurattribute.department
mappée
Utiliser des groupes mappés
Pour attribuer le rôle Administrateur de l'espace de stockage (roles/storage.admin
) à toutes les identités d'un groupe spécifique pour le projet TEST_PROJECT_ID
, exécutez la commande suivante :
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Remplacez les éléments suivants :
TEST_PROJECT_ID
: ID du projetWORKFORCE_POOL_ID
: ID du pool de personnelGROUP_ID
: groupe de la revendicationgoogle.groups
mappée.
Se connecter et tester l'accès
Dans cette section, vous vous connectez en tant qu'utilisateur de pool d'identités de personnel et vérifiez que vous avez accès à un produit Google Cloud.
Connexion
Cette section explique comment se connecter en tant qu'utilisateur fédéré et accéder aux ressources Google Cloud.
Connexion à la console (fédéré)
Pour vous connecter à la console de fédération des identités des employés Google Cloud, également appelée console (fédérée), procédez comme suit :
-
Accédez à la page de connexion de la console (fédéré).
-
Saisissez le nom du fournisseur, en respectant le format suivant :
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
- Si vous y êtes invité, saisissez les identifiants de l'utilisateur dans l'intégration de l'application Okta.
Si vous démarrez une connexion initiée par le fournisseur d'identité, utilisez l'URL suivante dans les Paramètres SAML pour le paramètre imbriqué Default RelayState (valeur par défaut de l'état de relais) :
https://console.cloud.google/
.
Connexion à gcloud CLI depuis un navigateur
Pour vous connecter à gcloud CLI à l'aide d'un flux de connexion basé sur un navigateur, procédez comme suit :
Créer un fichier de configuration
Pour créer le fichier de configuration de connexion, exécutez la commande suivante. Vous pouvez éventuellement définir par défaut l'activation du fichier pour gcloud CLI à l'aide de l'option --activate
.
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID du pool de personnelPROVIDER_ID
: ID du fournisseurLOGIN_CONFIG_FILE
: chemin d'accès au fichier de configuration que vous spécifiez, par exemplelogin.json
Le fichier contient les points de terminaison utilisés par gcloud CLI pour activer le flux d'authentification via le navigateur et définir l'audience sur le fournisseur que vous avez créé précédemment dans ce guide. Votre fichier ne contient aucune information confidentielle.
La sortie ressemble à ceci :
{ "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect", }
Se connecter à l'aide d'une authentification basée sur le navigateur
Pour vous authentifier à l'aide de l'authentification de connexion basée sur le navigateur, vous pouvez utiliser l'une des méthodes suivantes :
-
Si vous avez utilisé l'option
--activate
lors de la création du fichier de configuration ou si vous avez activé le fichier de configuration avec la commandegcloud config set auth/LOGIN_CONFIG_FILE
, gcloud CLI va utiliser automatiquement votre fichier de configuration :gcloud auth login
-
Pour vous connecter en spécifiant l'emplacement du fichier de configuration, exécutez la commande suivante :
gcloud auth login --login-config=LOGIN_CONFIG_FILE
-
Pour utiliser une variable d'environnement afin de spécifier l'emplacement du fichier de configuration, définissez
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
sur le chemin d'accès de la configuration.
Désactiver la connexion via le navigateur
Pour arrêter d'utiliser le fichier de configuration de connexion, procédez comme suit :
-
Si vous avez utilisé l'option
--activate
lors de la création du fichier de configuration ou si vous avez activé le fichier de configuration avec la commandegcloud config set auth/LOGIN_CONFIG_FILE
, vous devez exécuter la commande suivante pour le désactiver :gcloud config unset auth/login_config_file
-
Si elle est définie, effacez la variable d'environnement
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
.
Connexion à gcloud CLI sans interface graphique
Pour vous connecter à gcloud CLI à l'aide d'une procédure sans interface graphique, procédez comme suit :
OIDC
Connectez un utilisateur à votre application Okta et obtenez le jeton OIDC de Okta.
Enregistrez le jeton OIDC renvoyé par Okta dans un emplacement sécurisé sur votre ordinateur local.
Générez un fichier de configuration comme indiqué ci-dessous. Exécutez la commande suivante :
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \ --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \ --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \ --output-file="config.json"
Remplacez les éléments suivants :
WORKFORCE_POOL_ID
: ID du pool de personnelPROVIDER_ID
: ID du fournisseurPATH_TO_OIDC_TOKEN
: chemin d'accès au fichier d'identifiants du fournisseur d'identité OIDCWORKFORCE_POOL_USER_PROJECT
: numéro de projet associé au projet utilisateur des pools de personnel
Le compte principal doit disposer de l'autorisation serviceusage.services.use
sur ce projet.
Lorsque vous exécutez la commande, vous obtenez un fichier de configuration IdP OIDC semblable à celui-ci :
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"file": "PATH_TO_OIDC_CREDENTIALS_FILE"
}
}
SAML
Connectez un utilisateur à votre application Okta et obtenez la réponse SAML d'Okta.
Enregistrez la réponse SAML renvoyée par Okta dans un emplacement sécurisé sur votre ordinateur local, puis stockez le chemin d'accès comme suit :
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
Pour générer un fichier de configuration, exécutez la commande suivante :
gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \ --credential-source-file="SAML_ASSERTION_PATH" \ --workforce-pool-user-project="PROJECT_ID" \ --output-file="config.json"
Remplacez les éléments suivants :
WORKFORCE_PROVIDER_ID
: ID du fournisseur de personnel que vous avez créé précédemment dans ce guide.WORKFORCE_POOL_ID
: ID de pool de personnel que vous avez créé précédemment dans ce guide.SAML_ASSERTION_PATH
: chemin d'accès du fichier d'assertion SAML.PROJECT_ID
: ID du projet
Le fichier de configuration généré se présente comme suit :
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "subject_token_type": "urn:ietf:params:oauth:token-type:saml2", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }
Pour vous connecter à gcloud
en utilisant l'échange de jetons, exécutez la commande suivante :
gcloud auth login --cred-file="config.json"
gcloud
échange ensuite de manière transparente vos identifiants Okta contre des jetons d'accès Google Cloud temporaires, ce qui vous permet d'effectuer d'autres appels gcloud
vers Google Cloud.
Vous obtenez un résultat semblable à celui-ci :
Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID
/subject/USER_ID
].
Pour répertorier les comptes avec identifiants et le compte actuellement actif, exécutez la commande suivante :
gcloud auth list
Tester l'accès
Vous avez désormais accès aux services Google Cloud compatibles avec la fédération d'identité de personnel et auxquels on vous a accordé l'accès. Plus tôt dans ce guide, vous avez accordé le rôle Administrateur de l'espace de stockage (roles/storage.admin
) à toutes les identités d'un service spécifique pour le projet TEST_PROJECT_ID
. Vous pouvez désormais tester l'accès en répertoriant les buckets Cloud Storage.
Console (fédéré)
Pour répertorier les buckets Cloud Storage à l'aide de la console (fédéré), procédez comme suit :
- Accédez à la page Cloud Storage.
- Vérifiez que vous pouvez voir la liste des buckets existants pour le
TEST_PROJECT_ID
.
CLI gcloud
Pour répertorier les buckets et les objets Cloud Storage du projet auquel vous avez accès, exécutez la commande suivante :
gcloud alpha storage ls --project="TEST_PROJECT_ID"
Le compte principal doit disposer de l'autorisation serviceusage.services.use
sur le projet spécifié.
Supprimer des comptes utilisateur
La fédération d'identité de personnel crée des métadonnées et des ressources utilisateur pour les identités des utilisateurs fédérées. Si, par exemple, vous choisissez de supprimer des utilisateurs dans votre IdP, vous devez également supprimer explicitement ces ressources dans Google Cloud. Pour ce faire, consultez la page Supprimer des utilisateurs et leurs données de la fédération d'identité de personnel.
Il est possible que les ressources soient toujours associées à un utilisateur supprimé. En effet, la suppression de métadonnées et de ressources utilisateur nécessite une opération de longue durée. Une fois que vous avez lancé la suppression de l'identité d'un utilisateur, les processus lancés par l'utilisateur avant la suppression peuvent continuer à s'exécuter jusqu'à ce que les processus soient terminés ou annulés.
Étapes suivantes
- Supprimer des utilisateurs et leurs données de la fédération d'identité de personnel
- Découvrez les produits Google Cloud compatibles avec la fédération d'identité de personnel.
- Configurer l'accès utilisateur à la console (fédéré)