Enregistrement d’application SAML 2.0
L’enregistrement d’application SAML 2.0 FoxIDs vous permet de connecter une application basée sur SAML 2.0.
SAML (Security Assertion Markup Language) 2.0 est un standard d’authentification et d’autorisation basé sur XML qui
permet un Single Sign-On (SSO) sécurisé entre un Identity Provider (IdP) et un Service Provider (SP).
Les deux flux SAML 2.0 : SP-Initiated Login flow et IdP-initiated Login flow sont pris en charge par défaut.
Votre application devient une partie de confiance (RP) SAML 2.0 et FoxIDs agit comme Identity Provider (IdP) SAML 2.0.
FoxIDs prend en charge les redirect et post bindings SAML 2.0.
FoxIDs transmet également un login hint depuis l’URL de requête SAML Authn en utilisant le paramètre de requête login_hint ou LoginHint lorsque la requête n’inclut pas de NameID. Cela permet aux parties de confiance comme Microsoft Entra et Okta de préremplir l’identifiant utilisateur dans l’expérience de connexion FoxIDs.
Un enregistrement d’application expose des métadonnées SAML 2.0 où votre application peut découvrir l’Identity Provider (IdP) SAML 2.0.
Les profils SAML 2.0 de login, logout et single logout sont pris en charge. Le profil Artifact n’est pas pris en charge.
Les métadonnées SAML 2.0 générées par FoxIDs contiennent des informations de logout et single logout uniquement si le logout est configuré dans l’enregistrement d’application SAML 2.0.
Guides pratiques :
- Connecter Amazon IAM Identity Center
- Connecter Context Handler test IdP (courtier d’identité danois)
Configuration
Comment configurer votre application en tant que partie de confiance (RP) SAML 2.0.
Points de terminaison des métadonnées
- Métadonnées IdP :
https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/idpmetadata
(remplaceztenant-x,environment-yetapplication-saml-pr1par vos valeurs). - Point de terminaison unique alternatif : le point de terminaison Authn renvoie également les métadonnées IdP lorsqu’il est appelé avec
GETet sansSAMLRequest. Cela permet aux partenaires qui exigent une seule URL pour le téléchargement des métadonnées et les requêtes Authn d’utiliser la même adresse, par exemplehttps://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/authn. Lorsque le même point de terminaison reçoit une SAML AuthnRequest (via redirect ou post binding), il effectue le flux de connexion normal.
Un enregistrement d’application peut prendre en charge la connexion via plusieurs méthodes d’authentification en ajoutant le nom de la méthode d’authentification à l’URL.
Par exemple, https://foxids.com/tenant-x/environment-y/application-saml-pr1(login)/saml/idpmetadata (ou /saml/authn) cible la méthode login.
Vous pouvez aussi utiliser la notation par défaut * pour activer la connexion avec toutes les méthodes d’authentification.
La capture d’écran suivante montre la configuration d’un enregistrement d’application SAML 2.0 FoxIDs dans FoxIDs Control Client.
Ici, la configuration est créée avec les métadonnées de l’application. Les revendications émises sont limitées à l’ensemble configuré ; toutes les revendications peuvent être émises avec la notation *.
Plus d’options de configuration deviennent disponibles en cliquant sur Show advanced.

Vous pouvez modifier la collecte des revendications SAML 2.0 et effectuer des tâches de revendications avec transformations de revendications et tâches de revendications. Si vous créez une nouvelle revendication, ajoutez la revendication ou
*à la listeIssue claimspour émettre la revendication à votre application.
Exiger l’authentification multifacteur (MFA)
La partie de confiance (RP) SAML 2.0 peut exiger l’authentification multifacteur en spécifiant la valeur urn:foxids:mfa dans la propriété RequestedAuthnContext.AuthnContextClassRef.
Vous pouvez trouver un exemple de code dans les exemples AspNetCoreSamlSample dans le fichier SamlController.cs.
La propriété AuthnContextClassRef peut être définie dans la méthode Login de SamlController.cs :
public IActionResult Login(string returnUrl = null)
{
var binding = new Saml2RedirectBinding();
binding.SetRelayStateQuery(new Dictionary<string, string>
{
{ relayStateReturnUrl, returnUrl ?? Url.Content("~/") }
});
var saml2AuthnRequest = new Saml2AuthnRequest(saml2Config)
{
// To require MFA
RequestedAuthnContext = new RequestedAuthnContext
{
Comparison = AuthnContextComparisonTypes.Exact,
AuthnContextClassRef = new string[] { "urn:foxids:mfa" },
}
};
return binding.Bind(saml2AuthnRequest).ToActionResult();
}