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.

FoxIDs SAML 2.0 application registration

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 :

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
    (remplacez tenant-x, environment-y et application-saml-pr1 par vos valeurs).
  • Point de terminaison unique alternatif : le point de terminaison Authn renvoie également les métadonnées IdP lorsqu’il est appelé avec GET et sans SAMLRequest. 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 exemple https://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.

Configure SAML 2.0

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 liste Issue claims pour é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();
}

Votre confidentialité

Nous utilisons des cookies pour améliorer votre expérience sur nos sites. Cliquez sur « Accepter tous les cookies » pour accepter l'utilisation des cookies. Pour refuser les cookies non essentiels, cliquez sur « Cookies nécessaires uniquement ».

Consultez notre politique de confidentialité pour en savoir plus