Inscription d'application SAML 2.0

L'inscription d'application SAML 2.0 de FoxIDs vous permet de connecter une application basée sur SAML 2.0.

SAML (Security Assertion Markup Language) 2.0 est une norme XML d'authentification et d'autorisation qui permet le single sign-on (SSO) sécurisé entre un identity provider (IdP) et un service provider (SP). FoxIDs prend en charge à la fois la connexion initiée par le SP et celle initiée par l'IdP.

FoxIDs SAML 2.0 application registration

Votre application devient une SAML 2.0 Relying Party (RP) et FoxIDs agit comme un SAML 2.0 Identity Provider (IdP).

FoxIDs prend en charge les bindings redirect et post SAML 2.0.

FoxIDs transmet également un login hint depuis l'URL de la requête SAML Authn en utilisant le paramètre de requête login_hint ou LoginHint lorsque la requête ne contient pas de NameID. Cela permet à des relying parties comme Microsoft Entra ID et Okta de préremplir l'identifiant utilisateur dans l'expérience de connexion FoxIDs.

Une inscription d'application expose des metadata SAML 2.0, ce qui permet à votre application de découvrir l'Identity Provider (IdP) SAML 2.0.

FoxIDs prend en charge les profils SAML 2.0 de login, logout et single logout. Le profil Artifact n'est pas pris en charge.

Les metadata SAML 2.0 générées par FoxIDs ne contiennent des informations de logout et de single logout que si le logout est configuré dans l'inscription d'application SAML 2.0.

Guides pratiques :

Configuration

Voici comment configurer votre application comme une SAML 2.0 Relying Party (RP).

Endpoints de metadata

  • Metadata 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).
  • Endpoint unique alternatif : l'endpoint Authn retourne aussi les metadata IdP lorsqu'il est appelé en GET et sans SAMLRequest. Cela permet aux partenaires qui exigent une seule URL pour le téléchargement des metadata 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 ce même endpoint reçoit une SAML AuthnRequest via redirect ou post binding, il exécute le flux de connexion normal.

Une inscription 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 de connexion login. Vous pouvez également utiliser la notation par défaut * pour activer la connexion avec toutes les méthodes d'authentification.

La capture d'écran ci-dessous montre la configuration d'une inscription d'application SAML 2.0 FoxIDs dans le FoxIDs Control Client. Ici, la configuration est créée à partir des metadata de l'application. Les claims émis sont limités à l'ensemble configuré de claims, et vous pouvez utiliser la notation * pour émettre tous les claims.

D'autres options de configuration deviennent disponibles lorsque vous cliquez sur Show advanced.

Configure SAML 2.0

Vous pouvez modifier la claim collection SAML 2.0 et implémenter des claim tasks avec claim transforms et claim tasks. Si vous créez un nouveau claim, ajoutez le claim ou * à la liste Issue claims pour l'émettre à votre application.

Exiger l'authentification multi-facteur (MFA)

La SAML 2.0 Relying Party (RP) peut exiger la MFA en incluant urn:foxids:mfa dans RequestedAuthnContext.AuthnContextClassRef. Vous pouvez le combiner avec des valeurs plus spécifiques comme urn:foxids:link. Voir demander la MFA depuis les applications.

Vous trouverez un exemple de code dans AspNetCoreSamlSample et 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é

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