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

> Découvrez comment configurer une connexion SAML Auth0 pour prendre en charge l’authentification initiée par le fournisseur d’identité d’un fournisseur d’identité SAML pour les applications OIDC.

# Configurer l’authentification SAML initiée par l’IdP pour les applications OIDC

<Auth0Provider />

Auth0 fournit une méthode pour convertir une réponse <Tooltip tip="Fournisseur d’identité (IdP) : service qui stocke et gère les identités numériques." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Identity+Provider">fournisseur d’identité</Tooltip>-initiée (IdP) <Tooltip tip="Fournisseur d’identité (IdP) : service qui stocke et gère les identités numériques." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=SAML">SAML</Tooltip> en réponse <Tooltip tip="Security Assertion Markup Language (SAML) : protocole standardisé permettant à deux parties d’échanger des informations d’authentification sans mot de passe." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=OpenID">OpenID</Tooltip> Connect (OIDC) pour une application.

<Spacer />

Le protocole OIDC ne prend pas en charge les flux d’authentification initiés par l’IdP, mais cette méthode vous permet de simuler un flux d’authentification initié par l’IdP à l’aide du flux [Implicit Flow with Form Post](/docs/fr-ca/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post).

<Warning>
  Nous vous recommandons fortement de démarrer le flux de connexion à partir de l’application OIDC plutôt qu’à partir de l’IdP. Pour en savoir plus, consultez [Configurer l’authentification unique SAML initiée par le fournisseur d’identité](/docs/fr-ca/authenticate/protocols/saml/saml-sso-integrations/identity-provider-initiated-single-sign-on).
</Warning>

<Divider />

Si vous souhaitez mettre en œuvre cette méthode, vous devez :

* Ajouter un gestionnaire de la route de connexion personnalisé à votre application.
* Mettre à jour votre connexion SAML pour :

  1. Accepter les réponses SAML entrantes initiées par l’IdP.
  2. Rediriger vers une application par défaut qui envoie une demande d’authentification initiée par le fournisseur de services.

<div id="how-it-works">
  ## Fonctionnement
</div>

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/5vinAB4pSSwaKDgliTkAhh/0c5822149426b986bbcc851d07666187/idp-provider-init-saml-sign-in0.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=55b326edf37d529dc95471a9415968ab" alt="Diagramme du flux de connexion SAML initiée par le fournisseur d’identité vers des applications OIDC" width="1500" height="2596" data-path="docs/images/cdy7uua7fh8z/5vinAB4pSSwaKDgliTkAhh/0c5822149426b986bbcc851d07666187/idp-provider-init-saml-sign-in0.png" />
</Frame>

1. L’utilisateur accède au point de terminaison de connexion du SAML IdP.
2. Le SAML IdP renvoie la page de connexion.
3. L’utilisateur soumet ses identifiants au SAML IdP.
4. Le SAML IdP crée une session pour l’utilisateur, puis renvoie une page HTML avec Form Post et la réponse SAML.
5. La page envoie automatiquement la réponse SAML au tenant Auth0 au moyen d’une requête HTTP `POST`.
6. Le tenant Auth0 redirige le navigateur de l’utilisateur vers le gestionnaire personnalisé de la route de connexion de l’application OIDC, avec le jeton d’ID dans le fragment d’URL.
7. Le navigateur envoie une requête au gestionnaire personnalisé de la route de connexion de l’application OIDC avec le paramètre `connection` et le jeton d’ID.
8. L’application OIDC ignore le jeton d’ID, lit le paramètre `connection`, crée un paramètre `state` pour la session, puis redirige le navigateur de l’utilisateur vers le point de terminaison `/authorize` du tenant Auth0.
9. Le navigateur envoie une requête au point de terminaison `/authorize` du tenant Auth0 avec les paramètres `connection` et `state` fournis.
10. Le tenant Auth0 génère une requête de connexion SAML, puis redirige le navigateur de l’utilisateur vers le point de terminaison de connexion du SAML IdP.
11. Le navigateur envoie la requête de connexion SAML au point de terminaison de connexion du SAML IdP.
12. Le SAML IdP trouve la session de l’utilisateur, puis renvoie une page HTML avec Form Post et la réponse SAML.
13. La page envoie automatiquement la réponse SAML au tenant Auth0 au moyen d’une requête HTTP `POST`.
14. Le tenant Auth0 redirige le navigateur de l’utilisateur vers le gestionnaire de la route de connexion de l’application.
15. Le navigateur envoie une requête au gestionnaire de la route de connexion de l’application avec le paramètre `state` fourni et le jeton d’ID.
16. L’application OIDC vérifie le paramètre `state`, analyse le jeton d’ID et crée une session d’application pour l’utilisateur.

<div id="create-the-custom-login-route-handler">
  ## Créer le gestionnaire de la route de connexion personnalisé
</div>

Le gestionnaire de la route de connexion personnalisé appelle la méthode de connexion de votre application. Il doit accepter le paramètre `connection` et l’inclure dans la requête d’authentification envoyée à votre tenant Auth0.

Nous vous recommandons d’associer le gestionnaire de la route de connexion personnalisé à un point de terminaison différent de celui utilisé par votre gestionnaire de la route de connexion standard. Par exemple, si votre gestionnaire de la route de connexion standard est associé au point de terminaison `/login`, vous pouvez associer le gestionnaire de la route de connexion personnalisé au point de terminaison `/startlogin`.

<Warning>
  Si vous n’utilisez pas de SDK Auth0 pour gérer l’authentification, vous devez vous assurer que la méthode de connexion de votre application transmet une valeur pour le paramètre `state` au point de terminaison `/authorize` et valide le paramètre `state` dans la réponse du fournisseur d’identité afin de vous protéger contre les attaques CSRF. Pour en savoir plus, consultez [Prévenir les attaques et rediriger les utilisateurs avec les paramètres d’état OAuth 2.0](/docs/fr-ca/secure/attack-protection/state-parameters).
</Warning>

<div id="example">
  ### Exemple
</div>

Si vous utilisez le [Auth0 Single Page App SDK](/docs/fr-ca/libraries/auth0-single-page-app-sdk), vous pouvez ajouter un gestionnaire personnalisé de la route de connexion et mettre à jour la méthode de connexion pour prendre en charge le paramètre `connection`, comme suit :

```javascript lines expandable theme={null}
const router = {
  "/": () => showContent("content-home"),
  "/profile": () =>
    requireAuth(() => showContent("content-profile"), "/profile"),
  "/login": () => login(),
  "/startlogin": () => startlogin()
};

//nouvelle méthode pour démarrer la connexion depuis le rappel initié par l'IdP
const startlogin = async () => {
  console.log(window.location.href)
  let myURL = new URL(window.location.href);
  let conn = myURL.searchParams.get("connection");
  return  login(null, conn);
}

/**
 * Démarre le flux d'authentification
 */
const login = async (targetUrl, connection) => {
  try {
    console.log("Logging in", targetUrl);

    const options = {
      redirect_uri: window.location.origin,
    };

    if (connection) {
      options.connection = connection;
    }

    if (targetUrl) {
      options.appState = { targetUrl };
    }

    await auth0.loginWithRedirect(options);
  } catch (err) {
    console.log("Log in failed", err);
  }
};
```

<div id="create-the-query-string">
  ## Créer la chaîne de requête
</div>

La chaîne de requête contient le paramètre `redirect_uri`. La valeur de ce paramètre doit être encodée dans une URL et se compose de :

1. Du point de terminaison de l’application associé au gestionnaire personnalisé de la route de connexion.
2. Du paramètre `connection`, dont la valeur correspond au nom de votre connexion SAML.

<div id="example">
  ### Exemple
</div>

Si le point de terminaison de votre application est `https://exampleco.com/startlogin` et que le nom de votre connexion SAML est `my-saml-connection`, la chaîne de requête sera `redirect_uri=https%3A%2F%2Fexampleco.com%2Fstartlogin%3Fconnection%3Dmy-saml-connection`.

<div id="configure-the-application">
  ## Configurer l’application
</div>

1. Accédez à [Auth0 Dashboard > Applications > Applications](https://manage.auth0.com/#/applications).
2. Créez une nouvelle Application pour représenter l’application OIDC dans Auth0.
3. Mettez à jour **Allowed Callback URLs** pour inclure le point de terminaison de l’application associé à votre gestionnaire personnalisé de la route de connexion.

<div id="configure-the-connection">
  ## Configurer la connexion
</div>

1. Accédez à [Auth0 Dashboard > Authentication > Enterprise > SAML](https://manage.auth0.com/#/connections/enterprise/samlp).
2. Créez une nouvelle connexion SAML.
3. Passez à la vue **IdP-Initiated SSO**.
4. Sélectionnez **Accept Requests.**
5. Pour **Default Application**, sélectionnez l’application que vous avez créée précédemment.
6. Pour **Response Protocol**, sélectionnez **OpenID Connect**.
7. Pour **Query String**, saisissez la chaîne de requête que vous avez créée précédemment.

<div id="learn-more">
  ## En savoir plus
</div>

* [Connecter votre application à des fournisseurs d’identité SAML](/docs/fr-ca/authenticate/identity-providers/enterprise-identity-providers/saml)
* [Configurer l’authentification unique SAML initiée par le fournisseur d’identité](/docs/fr-ca/authenticate/protocols/saml/saml-sso-integrations/identity-provider-initiated-single-sign-on)
* [Déconnecter les utilisateurs des fournisseurs d’identité SAML](/docs/fr-ca/authenticate/login/logout/log-users-out-of-saml-idps)
