Aller au contenu principal

Keycloak

  1. Naviguez vers « Realm Settings » sous l'onglet « General » dans Keycloak, et copiez les « SAML 2.0 Identity Provider Metadata ». Par exemple : https://$YOUR_KEYCLOAK_DOMAIN/realms/master/protocol/saml/descriptor.

    keycloak realm endpoint

  2. Allez dans l'onglet « Keys » et cliquez sur le bouton « Certificate » à côté de l'algorithme RS256. Copiez le certificat affiché.

    keycloak realm certificate

  3. Pour configurer le fournisseur d'identité dans le tableau de bord GitGuardian, utilisez les valeurs suivantes :

    • Le champ Entity Id doit être rempli avec l'URL des SAML 2.0 Identity Provider Metadata de Keycloak, en excluant /protocol/saml/descriptor à la fin. Exemple : https://$YOUR_KEYCLOAK_DOMAIN/realms/master.
    • Le champ Single Sign-On URL doit inclure l'URL SAML 2.0 Identity Provider de Keycloak, en excluant /descriptor à la fin. Exemple : https://$YOUR_KEYCLOAK_DOMAIN/realms/master/protocol/saml.
    • Dans le champ X509 Cert, collez le certificat copié à l'étape précédente.
    • Assurez-vous que la case I have mapped the attributes first_name and last_name in my IdP est cochée.
  4. Pour configurer le « Client » (fournisseur de service) dans Keycloak :

    • Naviguez vers le menu Clients et cliquez sur « Create client ». Utilisez les valeurs suivantes :
      • Définissez le champ Client type sur SAML.
      • Remplissez le champ Client ID avec le SP Entity ID du tableau de bord GitGuardian.
    • Cliquez sur « Next », puis :
      • Remplissez le champ Home URL avec l'URL de votre tableau de bord GitGuardian. Par exemple : https://dashboard.gitguardian.com (SaaS) ou https://gitguardian.mycorp.local (Self-Hosted).
      • Remplissez les champs Valid Redirect URIs et Master SAML Processing URL avec l'ACS URL.
  5. Cliquez sur « Save », puis configurez ces paramètres sur le client nouvellement créé :

    • Dans « SAML capabilities », définissez le Name ID Format sur email.
    • Définissez Force POST Binding et Include AuthnStatement sur ON.
    • Dans « Signature and Encryption », définissez les champs Sign documents et Sign assertions sur ON.
    • Signature algorithm doit être RSA_SHA256.
    • Définissez SAML signature key name sur NONE.
    • Dans « Logout settings », définissez Front Channel Logout sur ON.
    • Cliquez sur « Save ».
    • Dans l'onglet « Keys », définissez Client signature required sur OFF.

    keycloak clients

  6. Toujours dans le même client, sous l'onglet « Client scopes », modifiez le « Dedicated scope and mappers for this client » et configurez un nouveau mapper pour le prénom :

    • Choisissez User Property comme Mapper Type.
    • Le champ Name doit être firstName.
    • Le champ Property doit être firstName.
    • Définissez le SAML Attribute Name sur first_name et le SAML Attribute NameFormat sur Basic.
  7. Pour le nom de famille, créez un deuxième mapper :

    • Encore une fois, sélectionnez User Property comme Mapper Type.
    • Le champ Name doit être lastName.
    • Le champ Property doit être lastName.
    • Définissez le SAML Attribute Name sur last_name et le SAML Attribute NameFormat sur Basic.

    keycloak mappers

  8. Dans l'onglet « Client Scopes », notez les « Assigned Default Client Scopes ». Par exemple, role_list.

    keycloak client scopes

  9. Modifiez le ou les client scopes listés à l'étape précédente en naviguant vers le menu « Client Scopes ». Allez dans l'onglet « Mappers », modifiez le mapper Role list et assurez-vous que le champ Single Role Attribute est défini sur ON.

    keycloak client scopes Single Role Attribute

  10. Finalisez votre configuration en testant l'authentification SSO en utilisant le Login URL fourni dans la page de configuration SAML du tableau de bord GitGuardian.

  11. Important : N'oubliez pas de réserver votre domaine email pour activer la découverte automatique du SSO.