Back to Gitlabhq

Tutoriel : Configurer l''authentification unique SAML pour les groupes GitLab.com

doc-locale/fr-fr/tutorials/auth/saml_saas.md

19.3.021.7 KB
Original Source

Ce tutoriel vous explique comment configurer l'authentification unique (SSO) SAML pour un groupe GitLab.com à l'aide d'un fournisseur d'identité (IdP) tel qu'Okta ou Microsoft Entra ID. Une fois la configuration terminée, les membres de votre groupe peuvent se connecter à GitLab via l'IdP.

Dans ce tutoriel, vous allez :

  1. Configurer SAML via une application IdP.
  2. Configurer l'authentification unique SAML dans votre groupe GitLab.
  3. Tester la connexion SAML.
  4. Lier un compte utilisateur pour vérifier la configuration.

Avant de commencer {#before-you-begin}

Prérequis :

  • Vous devez avoir le rôle Propriétaire pour un groupe GitLab Premium ou Ultimate sur GitLab.com.
  • Vous devez avoir un accès administrateur à votre IdP.
  • Vous devez disposer d'au moins un compte utilisateur de test dans votre IdP.
  • Vous devez être familiarisé avec les concepts d'authentification unique.

Durée estimée : 20 à 30 minutes

Étape 1 : Collecter les informations GitLab {#step-1-gather-gitlab-information}

Avant de pouvoir configurer quoi que ce soit dans votre IdP, vous devez obtenir certains détails de connexion auprès de GitLab qui indiquent à votre IdP comment communiquer avec votre groupe GitLab.

Pour collecter les informations GitLab :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre groupe.
  2. Dans la barre latérale gauche, sélectionnez Paramètres > Authentification unique SAML.
  3. Notez ces valeurs :
    • Identifiant
    • URL du service consommateur d'assertion
    • URL de l'authentification unique GitLab

Étape 2 : Créer une application IdP {#step-2-create-an-idp-application}

Maintenant que vos informations GitLab sont prêtes, créez une application dans votre IdP. Cette application met en correspondance les informations GitLab avec l'IdP et configure la manière dont les informations utilisateur circulent entre les deux systèmes.

Pour créer une application IdP :

{{< tabs >}}

{{< tab title="Okta" >}}

  1. Connectez-vous à Okta en tant qu'administrateur.
  2. Dans la console d'administration, sélectionnez Applications > Applications.
  3. Sélectionnez Create App Integration.
  4. Dans la section Sign-in method, sélectionnez SAML 2.0.
  5. Sélectionnez Suivant.
  6. Dans l'onglet Paramètres généraux, saisissez un nom pour votre application. Par exemple, GitLab SAML.
  7. Sélectionnez Suivant.
  8. Dans l'onglet Configure SAML, renseignez les champs avec les valeurs de l'étape 1 :
    • Single sign-on URL : Saisissez l'URL du service consommateur d'assertion.
    • Cochez la case Use this for Recipient URL and Destination URL.
    • Audience URI (SP Entity ID) : Saisissez l'Identifiant.
  9. Configurez l'identifiant de nom :
    • Application username (NameID) : Sélectionnez Personnalisé et saisissez user.getInternalProperty("id").
    • Name ID Format : Sélectionnez Persistent.
  10. Dans la section Attribute Statements (optional), ajoutez cet attribut :
    • Nom : email
    • Valeur : user.email
  11. Faites défiler jusqu'aux paramètres Application Login Page :
    • Login page URL : Saisissez l'URL de l'authentification unique GitLab.
  12. Sélectionnez Suivant.
  13. Dans l'onglet Feedback, sélectionnez les options appropriées pour votre cas d'utilisation.
  14. Sélectionnez Finish.

L'application SAML est créée dans Okta.

[!note] Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< tab title="Entra ID" >}}

  1. Connectez-vous au centre d'administration Microsoft Entra.
  2. Sélectionnez Identité > Applications > Enterprise applications.
  3. Sélectionnez New application.
  4. Sélectionnez Create your own application.
  5. Dans la boîte de dialogue, renseignez les champs :
    • Nom : Saisissez un nom pour votre application. Pour ce tutoriel, utilisez GitLab SAML.
    • Sélectionnez Integrate any other application you don't find in the gallery (Non-gallery).
  6. Sélectionnez Créer.

L'application d'entreprise est créée dans Microsoft Entra ID.

  1. Dans votre application d'entreprise, sélectionnez Single sign-on dans la barre latérale gauche.
  2. Sélectionnez SAML comme méthode d'authentification unique.
  3. Dans la section Basic SAML Configuration, sélectionnez Éditer.
  4. Renseignez les champs avec les valeurs de l'étape 1 :
    • Identifier (Entity ID) : Saisissez l'Identifiant.
    • Reply URL (Assertion Consumer Service URL) : Saisissez l'URL du service consommateur d'assertion.
    • Sign on URL : Saisissez l'URL de l'authentification unique GitLab.
  5. Sélectionnez Enregistrer.
  6. Dans la section User Attributes & Claims, sélectionnez Éditer.
  7. Sélectionnez Add new claim et renseignez les champs :
    • Nom : Saisissez email.
    • Source attribute : Sélectionnez user.mail.
  8. Sélectionnez Enregistrer.
  9. Modifiez la revendication Unique User Identifier (Name ID) :
    • Sélectionnez la revendication Unique User Identifier existante.
    • Source attribute : Sélectionnez user.objectid.
    • Name identifier format : Sélectionnez Persistent.
  10. Sélectionnez Enregistrer.

[!note] Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< tab title="Google Workspace" >}}

  1. Connectez-vous à la console d'administration Google.
  2. Sélectionnez Apps > Web and mobile apps.
  3. Sélectionnez Add App > Add custom SAML app.
  4. Dans la page App Details, saisissez un nom pour votre application. Par exemple, GitLab SAML.
  5. Sélectionnez Continuer.
  6. Dans la page Google Identity Provider details, laissez cette page ouverte. Vous aurez besoin de ces valeurs à l'étape 3.
  7. Sélectionnez Continuer.
  8. Dans la page Service provider details, renseignez les champs avec les valeurs de l'étape 1 :
    • ACS URL : Saisissez l'URL du service consommateur d'assertion.
    • ID de l'entité : Saisissez l'Identifiant.
    • Start URL : Saisissez l'URL de l'authentification unique GitLab.
    • Name ID format : Sélectionnez EMAIL.
    • Name ID : Sélectionnez Informations de base > Adresse de courriel principale.
  9. Sélectionnez Continuer.
  10. Dans la page Attribute mapping, ajoutez ces attributs :
    • Google Directory attribute : Primary email, App attribute : email
    • Google Directory attribute : First name, App attribute : first_name
    • Google Directory attribute : Last name, App attribute : last_name
  11. Sélectionnez Finish. L'application SAML est créée dans Google Workspace.
  12. Activez l'application pour vos utilisateurs :
    • Dans la section User access, sélectionnez ON for everyone.
    • Sélectionnez Enregistrer.

Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< tab title="OneLogin" >}}

  1. Connectez-vous à OneLogin en tant qu'administrateur.
  2. Sélectionnez Administration > Applications.
  3. Sélectionnez Add App.
  4. Recherchez SAML Test Connector (Advanced) et sélectionnez-le.
  5. Dans le champ Display Name, saisissez un nom pour votre application. Par exemple, GitLab SAML.
  6. Sélectionnez Enregistrer.
  7. Sélectionnez l'onglet Configuration.
  8. Renseignez les champs avec les valeurs de l'étape 1 :
    • Audience (EntityID) : Saisissez l'Identifiant.
    • Recipient : Saisissez l'URL du service consommateur d'assertion.
    • ACS (Consumer) URL Validator : Saisissez l'URL du service consommateur d'assertion sous forme d'expression régulière. Par exemple, https://gitlab\.com/groups/your-group/-/saml/callback.
    • ACS (Consumer) URL : Saisissez l'URL du service consommateur d'assertion.
    • Login URL : Saisissez l'URL de l'authentification unique GitLab.
  9. Sélectionnez Enregistrer.
  10. Sélectionnez l'onglet Paramètres.
  11. Ajoutez l'attribut requis en sélectionnant Add parameter :
    • Field name : email, Valeur : Email
  12. Pour NameID, sélectionnez OneLogin ID dans le champ de valeur.
  13. Sélectionnez Enregistrer.
  14. Sélectionnez l'onglet Accès pour assigner des utilisateurs ou des rôles à l'application.

L'application SAML est créée dans OneLogin.

Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< tab title="Keycloak" >}}

  1. Connectez-vous à Keycloak en tant qu'administrateur.
  2. Accédez à Clients et sélectionnez Create client.
  3. Dans la page Paramètres généraux, sélectionnez SAML comme Client type.
  4. Renseignez les champs avec les valeurs de l'étape 1 :
    • ID du client : Saisissez l'Identifiant.
    • Valid redirect URIs : Saisissez l'URL du service consommateur d'assertion.
    • Assertion Consumer Service POST Binding URL : Saisissez l'URL du service consommateur d'assertion.
    • Home URL : Saisissez l'URL de l'authentification unique GitLab.
  5. Sélectionnez Enregistrer.
  6. Dans l'onglet Paramètres, dans la section SAML capabilities :
    • Name ID format : Sélectionnez persistent.
    • Activez le bouton bascule Force name ID format.
    • Activez le bouton bascule Force POST binding.
    • Activez le bouton bascule Include AuthnStatement.
  7. Dans la section Signature and Encryption, activez le bouton bascule Sign documents.
  8. Dans l'onglet Clés, assurez-vous que toutes les sections sont désactivées.
  9. Dans l'onglet Client scopes :
    • Sélectionnez la portée du client pour GitLab.
    • Sélectionnez Configure a new mapper, puis sélectionnez User Attribute dans la fenêtre qui s'ouvre.
    • Dans la page Add mapper, définissez les champs Nom, User Attribute et SAML Attribute Name sur email.
    • Sélectionnez Enregistrer.

Le client SAML est créé dans Keycloak.

[!note] Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< tab title="AWS IAM Identity Center" >}}

  1. Connectez-vous à la console AWS IAM Identity Center.

  2. Sélectionnez Applications, puis sélectionnez Add application.

  3. Sélectionnez I have an application I want to set up.

  4. Sélectionnez SAML 2.0 comme type d'application.

  5. Sélectionnez Suivant.

  6. Dans la page Configure application, saisissez un nom d'affichage pour votre application. Par exemple, GitLab SAML.

  7. Renseignez les champs avec les valeurs de l'étape 1 :

    • Application ACS URL : Saisissez l'URL du service consommateur d'assertion.
    • Application SAML audience : Saisissez l'Identifiant.
    • Application start URL : Saisissez l'URL de l'authentification unique GitLab.
  8. Sous Attribute mappings, configurez ces attributs :

    • Objet : ${user:email}, Format : unspecified
    • email : ${user:email}, Format : unspecified
    • first_name : ${user:givenName}, Format : unspecified
    • last_name : ${user:familyName}, Format : unspecified

    [!warning] Pour éviter les erreurs d'authentification pour les utilisateurs GitLab existants, ne définissez pas le format sur persistent ou transient.

  9. Sélectionnez Envoyer. L'application SAML est créée dans AWS IAM Identity Center.

  10. Assignez des utilisateurs à l'application GitLab.

Pour plus d'informations sur les attributs SAML et les options de configuration avancées, consultez la documentation sur l'authentification unique SAML.

[!note] AWS IAM Identity Center utilise par défaut la connexion initiée par l'IdP. Pour lier des comptes GitLab existants, les utilisateurs doivent se connecter depuis l'URL de l'authentification unique GitLab ou l'Application start URL.

{{< /tab >}}

{{< /tabs >}}

Étape 3 : Collecter les détails de connexion {#step-3-gather-the-connection-details}

Récupérez maintenant les informations dont GitLab a besoin pour envoyer des demandes d'authentification à l'IdP.

Pour collecter les détails de connexion :

{{< tabs >}}

{{< tab title="Okta" >}}

  1. Dans votre application SAML Okta, sélectionnez l'onglet Sign On.

  2. Sur le côté droit, sélectionnez View SAML setup instructions.

  3. Notez l'Identity Provider Single Sign-On URL.

  4. Générez une empreinte de certificat :

    1. Dans le champ X.509 Certificate, copiez le texte et enregistrez-le localement.
    2. Ouvrez un terminal et accédez au répertoire où vous avez enregistré le fichier de certificat.
    3. Exécutez cette commande pour générer l'empreinte du certificat :
    shell
       # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
       # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
        openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.crt
    
  5. Copiez la valeur de l'empreinte après SHA256 Fingerprint=. L'empreinte ressemble à A1:B2:C3:D4:E5:F6:....

{{< /tab >}}

{{< tab title="Entra ID" >}}

  1. Dans votre application d'entreprise Entra ID, sélectionnez Single sign-on.
  2. Dans la section Set up GitLab SAML, notez la Login URL. Le nom de cette section est basé sur le nom de votre application d'entreprise.
  3. Dans la section SAML Signing Certificate, notez la valeur Thumbprint. L'empreinte ressemble à A1B2C3D4E5F6....

{{< /tab >}}

{{< tab title="Google Workspace" >}}

  1. Dans votre application SAML Google Workspace, accédez à la page de détails de l'application.
  2. Notez la valeur SSO URL.
  3. Notez la valeur SHA-256 fingerprint affichée pour le certificat. L'empreinte ressemble à A1:B2:C3:D4:E5:F6:....

{{< /tab >}}

{{< tab title="OneLogin" >}}

  1. Dans votre application SAML OneLogin, sélectionnez l'onglet SSO.
  2. Notez l'URL SAML 2.0 Endpoint (HTTP).
  3. Dans la section X.509 Certificate, sélectionnez View Details.
  4. Notez la valeur SHA-256 Fingerprint. L'empreinte ressemble à A1:B2:C3:D4:E5:F6:....

{{< /tab >}}

{{< tab title="Keycloak" >}}

  1. Dans votre client SAML Keycloak, dans la liste déroulante Action, sélectionnez Download adapter config.
  2. Dans la boîte de dialogue Download adapter config, sélectionnez mod-auth-mellon dans la liste déroulante.
  3. Sélectionnez Télécharger.
  4. Extrayez l'archive téléchargée et ouvrez idp-metadata.xml.
  5. Localisez la balise <md:SingleSignOnService> et notez la valeur de l'attribut Location.
  6. Générez une empreinte de certificat :
    1. Localisez la balise <ds:X509Certificate> et copiez la valeur dans un fichier séparé.
    2. Convertissez la valeur au format PEM. Ajoutez -----BEGIN CERTIFICATE----- au début du fichier et -----END CERTIFICATE----- à la fin du fichier sur de nouvelles lignes.

{{< /tab >}}

{{< tab title="AWS IAM Identity Center" >}}

  1. Dans votre application SAML AWS IAM Identity Center, sélectionnez l'application que vous avez créée.

  2. Dans la section IAM Identity Center SAML metadata, notez l'IAM Identity Center sign-in URL.

  3. Téléchargez le certificat.

  4. Générez une empreinte de certificat :

    1. Ouvrez un terminal et accédez au répertoire où vous avez enregistré le fichier de certificat.
    2. Exécutez cette commande pour générer l'empreinte du certificat :
    shell
    # Replace `<certificate_filename>` with the actual filename of your downloaded certificate.
    # You might need to install OpenSSL or use an alternative method to generate the fingerprint.
    openssl x509 -noout -fingerprint -sha256 -in <certificate_filename>.pem
    
  5. Copiez la valeur de l'empreinte après SHA1 Fingerprint=. L'empreinte ressemble à A1:B2:C3:D4:E5:F6:....

[!note] AWS IAM Identity Center nécessite une empreinte SHA1. Pour plus d'informations, consultez la documentation sur l'authentification unique SAML.

{{< /tab >}}

{{< /tabs >}}

Étape 4 : Configurer l'authentification unique SAML dans GitLab {#step-4-configure-saml-sso-in-gitlab}

Vous disposez de tout ce dont vous avez besoin pour finaliser la connexion. Retournez dans GitLab et saisissez les détails de connexion pour activer l'authentification SAML pour votre groupe.

Pour configurer SAML :

  1. Retournez dans votre groupe GitLab.
  2. Sélectionnez Paramètres > Authentification unique SAML.
  3. Dans la section Configuration, renseignez les champs :
    • URL d'authentification unique du fournisseur d'identité : Saisissez l'URL de l'étape 3.
    • Empreinte du certificat : Saisissez l'empreinte de l'étape 3.
  4. Cochez la case Activer l'authentification SAML pour ce groupe.
  5. Dans la liste déroulante Rôle d'adhésion par défaut, sélectionnez Accès minimal.
  6. Sélectionnez Sauvegarder les modifications.

La connexion SAML de base est maintenant configurée.

[!note] Vous pouvez définir le rôle d'adhésion par défaut sur n'importe quel rôle. Tous les nouveaux utilisateurs se voient attribuer ce rôle lors de leur première connexion via SAML. Définir la valeur par défaut sur Accès minimal et promouvoir les utilisateurs ultérieurement réduit le risque que des utilisateurs disposent d'un accès trop étendu.

Étape 5 : Tester la configuration SAML {#step-5-test-the-saml-configuration}

Avant d'inviter votre équipe, vérifiez que la connexion fonctionne correctement.

Pour tester la configuration SAML :

  1. Dans la page Paramètres > Authentification unique SAML, sélectionnez Vérifier la configuration SAML. GitLab vous redirige vers l'IdP.
  2. Connectez-vous avec vos identifiants IdP.
  3. Confirmez que l'IdP vous redirige vers GitLab.

Si vous rencontrez des erreurs, consultez le guide de dépannage.

La configuration semble correcte. Testez maintenant l'expérience du point de vue d'un utilisateur en liant un compte de test, comme le font les membres de votre équipe lorsqu'ils se connectent pour la première fois à GitLab via l'IdP.

Pour tester la liaison d'un compte utilisateur :

  1. Déconnectez-vous de GitLab.
  2. Dans un autre navigateur ou une fenêtre de navigation privée, connectez-vous à votre compte GitLab de test.
  3. Accédez à l'URL d'authentification unique GitLab que vous avez notée à l'étape 1.
  4. Sélectionnez Autoriser.
  5. Lorsque vous y êtes invité, connectez-vous avec vos identifiants IdP.
  6. Vérifiez que vous êtes redirigé vers le groupe GitLab.

Félicitations ! Vous avez correctement lié une identité SAML à un compte GitLab.

Étape 7 : Facultatif : Activer l'application de l'authentification unique {#step-7-optional-turn-on-sso-enforcement}

Votre configuration SAML est opérationnelle. En tant qu'étape finale facultative, vous pouvez activer l'application de l'authentification unique. L'application de l'authentification unique impose à tous les membres du groupe de s'authentifier via l'IdP, ce qui renforce la sécurité. Cependant, elle empêche l'accès via d'autres méthodes d'authentification.

Pour activer l'application de l'authentification unique :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre groupe.
  2. Dans la barre latérale gauche, sélectionnez Paramètres > Authentification unique SAML.
  3. Sélectionnez Mettre en œuvre l'authentification unique SSO pour l'activité Web de ce groupe.
  4. Sélectionnez Sauvegarder les modifications.

Une fois l'application activée, tous les membres du groupe doivent se connecter via l'IdP avant de pouvoir accéder aux ressources du groupe.

Étapes suivantes {#next-steps}

Vous avez correctement configuré l'authentification unique SAML pour votre groupe GitLab ! Voici quelques actions que vous pourriez souhaiter effectuer ensuite :

Dépannage {#troubleshooting}

Si vous rencontrez des problèmes au cours de ce tutoriel, consultez les ressources suivantes :