> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurer Keycloak avec Auth0 B2B Connect

> Configurez Keycloak pour le fédérer à Auth0 B2B Connect en tant que fournisseur d'identité OIDC ou SAML pour l'authentification unique en entreprise.

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "bêta",
    "ea": "Accès anticipé"
  };
  const stageText = stageTextMap[stage] || "une phase de lancement du produit";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>Cette fonctionnalité est offerte avec les forfaits {linkify(`${plans}`, "https://auth0.com/pricing")}. </>}
            {contact && "Pour y participer, communiquez avec " + contact + ". "}
            {terms && <>En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le {linkify("Master Subscription Agreement", "https://www.okta.com/legal")} d’Okta.</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>La fonctionnalité {feature} est en {linkify(stageText, prsLink)}.</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="B2B Connect - Enterprise" stage="ea" contact="votre équipe technique de compte ou le soutien Auth0" terms="true" />

[Keycloak](https://keycloak.org) est une plateforme à code source ouvert de gestion des identités et des accès qui assure l'authentification, l'autorisation et la fédération des utilisateurs pour les applications. Configurez Keycloak pour le fédérer à Auth0 B2B Connect à titre de <Tooltip tip="OpenID : norme ouverte d'authentification qui permet aux applications de vérifier l'identité des utilisateurs sans recueillir ni stocker les renseignements de connexion." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=OpenID">OpenID Connect (OIDC)</Tooltip> ou <Tooltip tip="Security Assertion Markup Language (SAML) : protocole normalisé permettant à deux parties d'échanger des renseignements d'authentification sans mot de passe." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=SAML">SAML</Tooltip> <Tooltip tip="Fournisseur d'identité (IdP) : service qui stocke et gère les identités numériques." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=identity+provider">fournisseur d'identité</Tooltip> afin d'ajouter l'<Tooltip tip="Authentification unique (SSO) : service qui, une fois l'utilisateur connecté à une application, le connecte automatiquement aux autres applications." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=SSO">authentification unique d'entreprise (SSO)</Tooltip> à votre pile d'authentification Keycloak existante.

<h2 id="how-authentication-works">
  Fonctionnement de l'authentification
</h2>

```mermaid theme={null}
sequenceDiagram
    participant User
    participant Application as Your Application
    participant Keycloak as Keycloak
    participant Auth0 as Auth0 B2B Connect
    participant EnterpriseIdP as Enterprise IdP

    Note over User,Keycloak: Login initiation
    User->>Application: Initiates login
    Application->>Keycloak: Sends authentication request

    Note over Keycloak,Auth0: Route to Auth0
    Keycloak->>Keycloak: Identifies user as enterprise user
    Keycloak->>Auth0: Routes authentication request

    Note over Auth0,EnterpriseIdP: Enterprise IdP federation
    Auth0->>EnterpriseIdP: Sends authentication request (SAML or OIDC)
    User->>EnterpriseIdP: Authenticates with corporate credentials
    EnterpriseIdP-->>Auth0: Returns SAML assertion or OIDC token

    Note over Keycloak,Application: Token issuance and session
    activate Keycloak
    Auth0-->>Keycloak: Returns federation result
    Keycloak-->>Application: Issues token
    deactivate Keycloak
    Application->>Application: Validates token, bootstraps session
    Application-->>User: Grants access
```

1. L'utilisateur amorce la connexion dans votre application.
2. L'application envoie une demande d'authentification à Keycloak.
3. Keycloak reconnaît l'utilisateur comme un utilisateur d'entreprise et achemine la demande vers Auth0 B2B Connect.
4. Auth0 B2B Connect envoie une demande d'authentification au fournisseur d'identité d'entreprise de l'utilisateur (par exemple, Okta ou Microsoft Entra ID) au moyen de SAML ou d'OpenID Connect (OIDC).
5. L'utilisateur s'authentifie auprès du fournisseur d'identité d'entreprise à l'aide de ses informations d'identification d'entreprise.
6. Le fournisseur d'identité d'entreprise renvoie une assertion SAML ou un jeton OIDC à Auth0 B2B Connect.
7. Auth0 B2B Connect effectue la découverte de domaine et transmet le résultat de la fédération à Keycloak.
8. Keycloak émet un jeton à l'application.
9. L'application valide le jeton, amorce sa session et accorde l'accès à l'utilisateur.

<h2 id="prerequisites">
  Informations requises
</h2>

* Un locataire Auth0 avec [B2B Connect - Enterprise](/docs/fr-ca/get-started/b2b-connect-enterprise) activé
* Une [Auth0 Organization](/docs/fr-ca/manage-users/organizations) dont la découverte de domaine est activée vers une [connexion d’entreprise](/docs/fr-ca/authenticate/enterprise-connections) (par exemple, Okta). Pour en savoir plus, consultez [Créer des domaines d’Organization](/docs/fr-ca/manage-users/organizations/configure-organizations/create-org-domains).
* Un serveur Keycloak [avec accès administrateur](https://www.keycloak.org/docs/latest/server_admin/index.html#using-the-admin-console)
* Un domaine configuré dans Keycloak pour votre application
* Des [mappeurs de fournisseur d'identité](https://www.keycloak.org/docs/latest/server_admin/#_mappers) configurés selon les besoins de votre application

<h2 id="configure-auth0-b2b-connect">
  Configurer Auth0 B2B Connect
</h2>

Pour créer une nouvelle intégration B2B Connect :

1. Accédez à [**Auth0 Dashboard > Applications > B2B Connect**](https://manage.auth0.com/dashboard/#/b2b-integrations), puis sélectionnez **+Create Integration** pour lancer l'assistant B2B Connect.
2. Saisissez un **Integration Name** (par exemple, « Keycloak Production »).
3. Sous **Integration Type**, sélectionnez **Third-party Managed Authorization Server**.
4. Sélectionnez **Save And Continue**.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/dashboard/b2b-connect-wizard-keycloak.png" alt="Assistant B2B Connect Entreprise dans le Auth0 Dashboard, nom de l'intégration" />
</Frame>

<h3 id="select-and-configure-the-authentication-protocol">
  Sélectionner et configurer le protocole d'authentification
</h3>

Dans l'assistant, vous avez le choix entre OIDC et SAML. Sélectionnez votre protocole d'authentification, puis suivez les étapes de configuration.

<Tabs>
  <Tab title="OIDC">
    1. Saisissez l'**URL de rappel de l'application**. Il s'agit du terminal de votre courtier Keycloak, selon le format suivant :

       ```text theme={null}
       https://YOUR_KEYCLOAK_DOMAIN/realms/YOUR_REALM_NAME/broker/YOUR_ALIAS/endpoint
       ```

           <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
             Remplacez `YOUR_ALIAS` par l'alias du fournisseur d'identité que vous souhaitez utiliser dans Keycloak (par exemple, « oidc »).
           </Callout>

    2. Sélectionnez **Save And Continue**.

    3. À l'écran de confirmation, sélectionnez **Done** pour terminer l'assistant.

    <h3 id="copy-credentials-from-the-settings-tab">
      Copier les informations d'identification depuis l'onglet Settings
    </h3>

    Une fois l'assistant de configuration terminé, allez à l'onglet **Settings** de la page d'intégration. Copiez les valeurs suivantes, qui vous serviront lors de la configuration de Keycloak :

    * Client ID
    * Client Secret
    * URL d’émetteur
  </Tab>

  <Tab title="SAML">
    1. Saisissez l'**URL de rappel de l'application**. Il s'agit du terminal de votre courtier Keycloak, selon le format suivant :

       ```text theme={null}
       https://YOUR_KEYCLOAK_DOMAIN/realms/YOUR_REALM_NAME/broker/YOUR_ALIAS/endpoint
       ```

           <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
             Remplacez `YOUR_ALIAS` par l'alias du fournisseur d'identité que vous souhaitez utiliser dans Keycloak (par exemple, « saml »).
           </Callout>

    2. Sélectionnez **Save And Continue**.

    3. À l'écran de confirmation, sélectionnez **Done** pour terminer l'assistant.

    <h3 id="download-idp-metadata">
      Télécharger les métadonnées de l'IdP
    </h3>

    Une fois l'assistant de configuration terminé, allez à l'onglet **Settings** de la page d'intégration. Sous **Authentication**, téléchargez le fichier **IdP Metadata**. Vous le téléverserez dans Keycloak à la section suivante.
  </Tab>
</Tabs>

<h2 id="configure-keycloak">
  Configurer Keycloak
</h2>

<h3 id="add-an-identity-provider">
  Ajouter un fournisseur d'identité
</h3>

Dans la console d'administration Keycloak, sélectionnez votre domaine (realm), puis rendez-vous à **Identity providers** dans la barre latérale de gauche.

Sous **User-defined**, sélectionnez :

* OpenID Connect v1.0
* SAML v2.0

<Tabs>
  <Tab title="OIDC">
    1. Attribuez à **Alias** la valeur que vous avez utilisée dans l'**URL de rappel de l'application** dans Auth0 (par exemple, « oidc »). Le **Redirect URI** en haut du formulaire est généré automatiquement à partir de cet alias.
    2. Définissez un **Display name** (par exemple, « Se connecter avec l'authentification unique »).
    3. Dans le champ **Discovery endpoint**, entrez votre **URL d'émetteur** tirée de l'onglet Paramètres de B2B Connect, suivie de `.well-known/openid-configuration` (par exemple, `https://YOUR_TENANT.auth0.com/.well-known/openid-configuration`).
    4. Entrez le Client ID tiré de l'onglet Paramètres de B2B Connect.
    5. Entrez le Client Secret tiré de l'onglet Paramètres de B2B Connect.
    6. Laissez Client authentication à sa valeur par défaut. Le Client Secret est envoyé dans le corps de la requête.
    7. Sélectionnez **Add**.
    8. Dans la page des paramètres du fournisseur, faites défiler jusqu'à **OpenID Connect settings**, puis déployez la section **Advanced**.
    9. Activez **Pass login\_hint**.
  </Tab>

  <Tab title="SAML">
    1. Attribuez à **Alias** la valeur que vous avez utilisée dans l'**URL de rappel de l'application** dans Auth0 (par exemple, « saml »). Le **Redirect URI** en haut du formulaire est généré automatiquement à partir de cet alias.
    2. Définissez un **Display name** (par exemple, « Se connecter avec l'authentification unique »).
    3. Laissez **Service provider entity ID** à sa valeur par défaut (l'URL de votre domaine).
    4. Désactivez **Use entity descriptor**.
    5. Sous **Import config from file**, téléversez le fichier XML de métadonnées de l'IdP que vous avez téléchargé depuis l'onglet Paramètres de B2B Connect. Keycloak remplira automatiquement les champs **Identity provider entity ID**, **Single Sign-On service URL** et **Validating X509 certificates**.
    6. Sélectionnez **Add**.
  </Tab>
</Tabs>

<h3 id="set-up-home-realm-discovery">
  Configurer la découverte du domaine d'origine (Home Realm Discovery)
</h3>

Auth0 recommande de configurer la [découverte du domaine d'origine (HRD)](/docs/fr-ca/authenticate/login/auth0-universal-login/identifier-first) au moyen des [Keycloak Organizations](https://www.keycloak.org/docs/latest/server_admin/#_managing_organizations) afin d'acheminer automatiquement les utilisateurs d'entreprise vers Auth0 en fonction de leur domaine de courriel.

<h4 id="route-users-with-hrd-example">
  Exemple d'acheminement des utilisateurs avec la HRD
</h4>

Pour acheminer vers Auth0 B2B Connect tous les utilisateurs dont le courriel se termine par `@acme.com` :

1. Allez à **Configure > Realm settings** et activez le bouton bascule **Organizations**.
2. Sélectionnez **Save**.
3. Dans la barre latérale de gauche, allez à **Organizations** et sélectionnez **Create organization**.
4. Saisissez un **Name** (par exemple, « AcmeCorp »), réglez le **Domain** à `acme.com`, puis sélectionnez **Save**.
5. Allez à l'onglet **Identity providers** et sélectionnez **Link identity provider**.
6. Sélectionnez le fournisseur d'identité Auth0 dans la liste déroulante.
7. Sous **Domain**, sélectionnez le domaine que vous avez ajouté (par exemple, `acme.com`).
8. Activez **Redirect when email domain matches**.
9. Sélectionnez **Save**.

Lorsqu'un utilisateur ayant un courriel `@acme.com` se connecte, Keycloak le redirige automatiquement vers Auth0 B2B Connect pour l'authentification.

<h3 id="verify-the-identity-provider">
  Vérifier le fournisseur d'identité
</h3>

1. Ouvrez la page de connexion de votre application.
2. Vérifiez que le bouton du fournisseur d'identité s'affiche avec le nom d'affichage que vous avez configuré.
3. Sélectionnez-le et confirmez que vous êtes bien redirigé vers la page de connexion de votre fournisseur d'identité.
