SAML 2.0 applicatieregistratie

FoxIDs SAML 2.0 applicatieregistratie maakt het mogelijk om een SAML 2.0 gebaseerde applicatie te koppelen.

SAML (Security Assertion Markup Language) 2.0 is een XML-gebaseerde standaard voor authenticatie en autorisatie die veilige single sign-on (SSO) mogelijk maakt tussen een identity provider (IdP) en een service provider (SP). FoxIDs ondersteunt zowel SP-gestuurde als IdP-gestuurde login.

FoxIDs SAML 2.0 application registration

Uw applicatie wordt een SAML 2.0 Relying Party (RP) en FoxIDs fungeert als een SAML 2.0 Identity Provider (IdP).

FoxIDs ondersteunt SAML 2.0 redirect en post bindings.

FoxIDs stuurt ook een login hint door vanuit de URL van het SAML Authn-verzoek via de query-parameter login_hint of LoginHint wanneer het verzoek geen NameID bevat. Daardoor kunnen relying parties zoals Microsoft Entra ID en Okta de gebruikersidentifier vooraf invullen in de FoxIDs login-ervaring.

Een applicatieregistratie publiceert SAML 2.0 metadata, zodat uw applicatie de SAML 2.0 Identity Provider (IdP) kan ontdekken.

FoxIDs ondersteunt login-, logout- en single logout-SAML 2.0 profiles. Het Artifact-profiel wordt niet ondersteund.

Voor single logout gebruikt FoxIDs de NameID, het bijbehorende formaat en de SessionIndex die bij de aanmelding bij de applicatie zijn uitgegeven. Deze waarden worden voor elke applicatie afzonderlijk bewaard. De claimtransformaties van de applicatie worden uitgevoerd wanneer het aanmeldingsantwoord wordt uitgegeven.

De door FoxIDs gegenereerde SAML 2.0 metadata bevatten alleen logout- en single logout-informatie als logout is geconfigureerd in de SAML 2.0 applicatieregistratie.

FoxIDs ondersteunt zowel RSA- als ECDSA-certificaten als SAML signature validation certificates. Signature validation kan meerdere toegestane algoritmen accepteren, zodat relying parties SAML requests kunnen ondertekenen met RSA- of ECDSA-certificaten, terwijl oudere RSA-SHA-1 standaard uitgeschakeld blijft.

Handleidingen:

Configuratie

Zo configureert u uw applicatie als een SAML 2.0 Relying Party (RP).

Metadata-endpoints

  • IdP-metadata: https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/idpmetadata (vervang tenant-x, environment-y en application-saml-pr1 door uw waarden).
  • Alternatief enkel endpoint: het Authn-endpoint retourneert ook de IdP-metadata wanneer het via GET en zonder SAMLRequest wordt aangeroepen. Hiermee kunnen partners die één URL nodig hebben voor zowel metadata-download als Authn-verzoeken hetzelfde adres gebruiken, bijvoorbeeld https://foxids.com/tenant-x/environment-y/application-saml-pr1(*)/saml/authn. Wanneer hetzelfde endpoint een SAML AuthnRequest ontvangt via redirect of post binding, wordt de normale login-flow uitgevoerd.

Een applicatieregistratie kan login via meerdere authenticatiemethoden ondersteunen door de naam van de authenticatiemethode aan de URL toe te voegen.

Bijvoorbeeld, https://foxids.com/tenant-x/environment-y/application-saml-pr1(login)/saml/idpmetadata of /saml/authn richt zich op de loginmethode login. U kunt ook de standaardnotatie * gebruiken om login via alle authenticatiemethoden in te schakelen.

De onderstaande schermafbeelding toont de configuratie van een FoxIDs SAML 2.0 applicatieregistratie in de FoxIDs Control Client. Hier wordt de configuratie gemaakt op basis van de metadata van de applicatie. Uitgegeven claims worden beperkt tot de geconfigureerde set claims en u kunt de notatie * gebruiken om alle claims uit te geven.

Meer configuratieopties worden beschikbaar wanneer u op Show advanced klikt.

Configure SAML 2.0

U kunt de SAML 2.0 claim collection wijzigen en claim tasks implementeren met claim transforms en claim tasks. Als u een nieuwe claim maakt, voeg de claim of * toe aan de lijst Issue claims om de claim aan uw applicatie uit te geven.

Beveiliging en interoperabiliteit

Geavanceerde SAML beveiligingsinstellingen zijn beschikbaar door op Show advanced te klikken in de SAML 2.0 applicatieregistratie.

  • Signature algorithm bepaalt het algoritme dat FoxIDs gebruikt bij het ondertekenen van SAML responses of assertions. RSA-SHA-256 is de standaard.
  • Signature validation algorithms is een allowlist voor inkomende ondertekende SAML requests en logout-berichten van de relying party. De standaard-allowlist bevat de ondersteunde RSA-SHA-256/384/512 en ECDSA-SHA-256/384/512 algoritmen en sluit RSA-SHA-1 uit.
  • SAML signature validation certificates ondersteunen zowel RSA- als ECDSA-certificaten, zodat een relying party beide certificaattypen kan gebruiken bij het ondertekenen van SAML requests en logout-berichten.
  • Encrypt authn response versleutelt de assertion in de SAML authentication response. Wanneer dit is ingeschakeld, moet het relying party encryption certificate worden opgegeven en kunnen, indien nodig voor interoperabiliteit, Encryption algorithm en Key encryption algorithm worden geselecteerd.

Ondersteunde data encryption algoritmen zijn AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-GCM, AES-192-GCM en AES-256-GCM. AES-256-CBC is de standaard.

Ondersteunde key encryption algoritmen zijn RSA 1.5, RSA-OAEP en XML Encryption 1.1 RSA-OAEP. RSA-OAEP is de standaard. Gebruik RSA 1.5 alleen wanneer een oudere relying party dit vereist.

Multi-factor authenticatie (MFA) vereisen

De SAML 2.0 Relying Party (RP) kan MFA vereisen door urn:foxids:mfa op te nemen in RequestedAuthnContext.AuthnContextClassRef. U kunt dit combineren met specifiekere waarden zoals urn:foxids:link. Zie MFA aanvragen vanuit applicaties.

Voorbeeldcode vindt u in AspNetCoreSamlSample en in het bestand SamlController.cs. De eigenschap AuthnContextClassRef kan worden ingesteld in de methode Login in 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();
}

Aanvraagparameters

Configureer Allowed request parameters om geselecteerde waarden uit de authenticatieaanvraag voor SAML beschikbaar te maken als _local:params:{name}-claims. Zie aanvraagparameters voor applicaties voor configuratie, lijsten met spaties als scheidingsteken en limieten.