Configurer la connexion SAML initiée par IdP aux applications OIDC
Auth0 fournit une méthode pour traduire une réponse SAML initiée par le fournisseur d’identité (IdP) en une réponse OpenID Connect (OIDC) pour une application.
Le protocole OIDC ne prend pas en charge les flux d’authentification initiés par un fournisseur d’identité, mais cette méthode vous permet de simuler un flux d’authentification initié par le fournisseur d’identité à l’aide de Flux implicite avec Form Post.
Si vous souhaitez implémenter cette méthode, vous devez :
ajouter un gestionnaire de route de connexion personnalisé à votre application.
Mettez à jour votre connexion SAML vers :
Accepter les assertions SAML entrantes initiées par le fournisseur d’identité.
Redirection vers une application par défaut qui envoie une demande d’authentification initiée par le fournisseur de services.
Fonctionnement

L’utilisateur accède au point de terminaison de connexion du fournisseur d’identité SAML.
Le fournisseur d’identité SAML renvoie la page de connexion.
L’utilisateur soumet ses identifiants au fournisseur d’identité SAML.
Le fournisseur d’identité SAML crée une session pour l’utilisateur, puis renvoie une page HTML avec Form Post (publication du formulaire) et la réponse SAML.
La page envoie automatiquement la réponse SAML au locataire Auth0 par le biais d’un appel HTTP
POST
.Le locataire Auth0 redirige le navigateur de l’utilisateur vers le gestionnaire de route de connexion personnalisé de l’application OIDC avec le jeton d’ID sous forme de fragment d’URL.
Le navigateur appelle le gestionnaire de route de connexion personnalisé de l’application OIDC avec le paramètre de
connection
et le jeton d’ID.L’application OIDC ignore le jeton d’ID, analyse le paramètre de
connection
, crée un paramètrestate
pour la session, puis redirige le navigateur de l’utilisateur vers le point de terminaison/authorize
du locataire Auth0.Le navigateur appelle le point de terminaison
/authorize
du locataire Auth0 avec les paramètresconnection
etstate
fournis.Le locataire Auth0 génère une demande de connexion SAML, puis redirige le navigateur de l’utilisateur vers le point de terminaison de connexion du fournisseur d’identité SAML.
Le navigateur envoie la demande de connexion SAML au point de terminaison de connexion du fournisseur d’identité SAML.
Le fournisseur d’identité SAML trouve la session de l’utilisateur, puis renvoie une page HTML avec publication de formulaire et la réponse SAML.
La page envoie automatiquement la réponse SAML au locataire Auth0 par le biais d’un appel HTTP
POST
.Le locataire Auth0 redirige le navigateur de l’utilisateur vers le gestionnaire de route de connexion de l’application.
Le navigateur appelle le gestionnaire de route de connexion de l’application avec le paramètre
state
et le jeton d’ID fournis.L’application OIDC vérifie le paramètre
state
, analyse le jeton d’ID et crée une session d’application pour l’utilisateur.
Créer le gestionnaire de route de connexion personnalisé
Le gestionnaire de route de connexion personnalisé appelle la méthode de connexion de votre application. Le gestionnaire doit accepter le paramètre connection
et l’inclure dans la demande d’authentification envoyée à votre locataire Auth0.
Nous vous recommandons d’associer le gestionnaire de route de connexion personnalisé à un point de terminaison différent de celui associé à votre gestionnaire de route de connexion standard. Par exemple, si votre gestionnaire de route de connexion standard est associé au point de terminaison /login
, vous pouvez associer le gestionnaire de route de connexion personnalisé au point de terminaison /startlogin
.
Exemple
Si vous utilisez la trousse SDK pour applications à page unique d’Auth0, vous pouvez ajouter un gestionnaire de route de connexion personnalisé et mettre à jour la méthode de connexion pour prendre en charge le paramètre de connexion comme ceci :
const router = {
"/": () => showContent("content-home"),
"/profile": () =>
requireAuth(() => showContent("content-profile"), "/profile"),
"/login": () => login(),
"/startlogin": () => startlogin()
};
//new method to start login from idp-initiated callback
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);
}
/**
* Starts the authentication flow
*/
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);
}
};
Was this helpful?
Créer la chaîne de requête
La chaîne de requête contient le paramètre redirect_uri
. La valeur du paramètre doit être codée en URL et est composée du :
point de terminaison de l’application associé au gestionnaire de route de connexion personnalisé.
Le paramètre
connection
avec la valeur de votre nom de connexion SAML.
Exemple
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 serait redirect_uri=https%3A%2F%2Fexampleco.com%2Fstartlogin%3Fconnection%3Dmy-saml-connection
.
Configurer l’application
Rendez-vous dans Auth0 Dashboard> Applications > Applications.
Créez une nouvelle Application pour représenter l’application OIDC dans Auth0.
Mettez à jour les URL de rappel autorisées pour inclure le point de terminaison d’application associé à votre gestionnaire de route de connexion personnalisé.
Configurer la connexion
Allez à Auth0 Dashboard> Authentification > Entreprise > SAML.
Créer une nouvelle connexion SAML.
Passez à l’affichage authentification unique initiée par IdP.
Sélectionnez Accepter les requêtes.
Pour Application par défaut, sélectionnez l’application créée précédemment.
Pour Protocole de réponse, sélectionnez OpenID Connect.
Pour Chaîne de requête, entrez la chaîne de requête créée précédemment.