SAML 2.0 authenticatiemethode

FoxIDs SAML 2.0 authenticatiemethode die een externe SAML 2.0 Identity Provider (IdP) vertrouwt.

SAML (Security Assertion Markup Language) 2.0 is een open standaard voor het uitwisselen van authenticatie- en autorisatiegegevens tussen een Identity Provider (IdP) en een Service Provider (SP). Het maakt Single Sign-On (SSO) mogelijk, waardoor gebruikers één keer kunnen inloggen en toegang krijgen tot meerdere applicaties zonder opnieuw te hoeven authenticeren. De twee SAML 2.0 flows worden ondersteund. De SP-Initiated Login flow, die standaard, meest gebruikt en aanbevolen is, en de IdP-initiated Login flow.

SAML 2.0 wordt veel gebruikt in enterprise-omgevingen en maakt veilige identiteitsfederatie mogelijk tussen organisaties en applicaties.

FoxIDs SAML 2.0 authentication method

Door een SAML 2.0 authenticatiemethode en een OpenID Connect applicatieregistratie te configureren wordt FoxIDs een bridge tussen SAML 2.0 en OpenID Connect. FoxIDs behandelt dan de SAML 2.0 verbinding als een Relying Party (RP) / Service Provider (SP) en je hoeft in je applicatie alleen OpenID Connect te gebruiken.

Het is mogelijk om meerdere SAML 2.0 authenticatiemethoden te configureren die vervolgens kunnen worden geselecteerd door OpenID Connect applicatieregistraties en SAML 2.0 applicatieregistraties.

Configureer IdP-Initiated Login en stuur de login door naar SAML 2.0 en OpenID Connect applicaties.

FoxIDs ondersteunt SAML 2.0 redirect and post bindings. Zowel login, logout en single logout SAML 2.0 profiles worden ondersteund. Het Artifact profile wordt niet ondersteund.

Een authenticatiemethode exposeert SAML 2.0 metadata en kan worden geconfigureerd met SAML 2.0 metadata of door de configuratiedetails handmatig toe te voegen.

De door FoxIDs gegenereerde SAML 2.0 metadata bevat alleen logout en single logout informatie als logout is geconfigureerd in de SAML 2.0 authenticatiemethode.

FoxIDs ondersteunt alle SAML 2.0 identity providers (IdP's) en is getest tegen een breed scala aan IdP's.

FoxIDs ondersteunt zowel RSA- als ECDSA-certificaten als SAML signature validation certificates voor een externe IdP. Signature validation kan meerdere toegestane algoritmen accepteren, zodat identity providers SAML responses kunnen ondertekenen met RSA- of ECDSA-certificaten, terwijl oudere RSA-SHA-1 standaard uitgeschakeld blijft.

Handleidingen:

FoxIDs omgevingen koppelen

Configuration

Zo configureer je een externe SAML 2.0 Identity Provider (IdP).

Het FoxIDs SAML 2.0 authenticatiemethode metadata endpoint is https://foxids.com/tenant-x/environment-y/(some_external_idp)/saml/spmetadata. Als de IdP is geconfigureerd in tenant tenant-x en environment environment-y met de authenticatiemethode naam some_external_idp.

De volgende screenshot toont de configuratie van een SAML 2.0 authenticatiemethode in FoxIDs Control Client. Hier is de configuratie gemaakt met de metadata van de externe IdP. De doorgestuurde claims zijn beperkt tot de geconfigureerde set; standaard worden alle claims doorgestuurd met de * notatie.

Meer configuratieopties worden beschikbaar door op Show advanced te klikken.

Configure SAML 2.0

Je kunt claims wijzigen en claim tasks uitvoeren met claim transforms en claim tasks.

Handmatige configuratie wordt beschikbaar door Automatic update uit te schakelen. Op deze manier hoeft de IdP geen metadata-bestand te exposen of te sturen; je kunt alles handmatig configureren.

Manual SAML 2.0 configuration

Als je een nieuw claim aanmaakt, voeg het claim of * (default) toe aan de lijst Forward claims om het claim door te sturen naar de applicatieregistratie.

Beveiliging en interoperabiliteit

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

  • Signature algorithm bepaalt het algoritme dat FoxIDs gebruikt bij het ondertekenen van SAML AuthnRequests en logout-berichten. RSA-SHA-256 is de standaard.
  • Signature validation algorithms is een allowlist voor inkomende ondertekende SAML responses en logout-berichten van de externe IdP. De standaard-allowlist bevat de ondersteunde RSA-SHA-256/384/512 en ECDSA-SHA-256/384/512 algoritmen en sluit RSA-SHA-1 uit.
  • Signing certificates van externe IdP's kunnen RSA- of ECDSA-certificaten zijn. FoxIDs ondersteunt beide certificaattypen als SAML signature validation certificates voor ondertekende SAML responses en logout-berichten.
  • XML canonicalisation method bepaalt de canonicalisation-methode die FoxIDs gebruikt bij het ondertekenen van SAML-berichten. FoxIDs valideert inkomende SAML-handtekeningen ook met ondersteunde exclusive XML canonicalisation methods om interoperabiliteit met IdP's met andere canonicalisation-instellingen te verbeteren.

Schakel RSA-SHA-1 alleen in wanneer een oudere SAML identity provider dit vereist.

IdP-Initiated Login

SAML 2.0 IdP-Initiated Login is een Single Sign-On (SSO) authenticatieflow waarbij het proces start bij de Identity Provider (IdP) in plaats van de Service Provider (SP). Deze methode wordt vaak gebruikt in enterprise-omgevingen om gebruikers toegang te geven tot meerdere applicaties met één authenticatie.

In tegenstelling tot SP-Initiated Login vraagt de SP geen authenticatie aan bij de IdP. De IdP stuurt uit eigen initiatief een unsolicited SAML assertion. Dit belangrijke verschil maakt de IdP-Initiated Login flow minder veilig dan de SP-Initiated Login flow, en daarom is IdP-Initiated Login standaard uitgeschakeld in FoxIDs.

Schakel IdP-Initiated Login in.

  1. Open de SAML 2.0 authenticatiemethode in FoxIDs Control Client
  2. Klik Show advanced
  3. Scroll naar de onderkant van de configuratiesectie
  4. Schakel IdP-Initiated login in
  5. Optioneel wijzig IdP-Initiated Login - OpenID Connect grant lifetime
  6. Klik Update

Configure SAML 2.0

Configureer de SAML 2.0 authenticatiemethode zodat deze de IdP vertrouwt op dezelfde manier als bij SP-initiated login.

IdP Relay State

De externe IdP moet een relay state sturen die aangeeft naar welke applicatie de authenticatie moet worden doorgestuurd. De relay state moet altijd de applicatienaam app_name en het applicatietype app_type bevatten en in sommige gevallen een applicatie redirect URL app_redirect.

De elementen hebben elk een naam en een waarde en worden gescheiden door &. Redirect URL-waarden moeten URL-encoded zijn. De applicatie typewaarde kan saml2 of oidc zijn.

De SAML 2.0 identity provider (IdP) .NET sample AspNetCoreSamlIdPSample laat zien hoe je een IdP-Initiated Login met een relay state maakt.

FoxIDs SAML 2.0 authentication method

SAML 2.0 applicatie

Als je de authenticatie wilt doorsturen naar de SAML 2.0 applicatie met de naam my-saml2-app, is de relay state:

app_name=my-saml2-app&app_type=saml2

Dit stuurt de authenticatie call door naar het eerste Assertion Consumer Service (ACS) endpoint dat voor de applicatie is geconfigureerd.

Als je de authenticatie wilt doorsturen naar een ander geconfigureerd ACS endpoint https://my-domain.com/auth/acs2, is de relay state:

app_name=my-saml2-app&app_type=saml2&app_redirect=https%3A%2F%2Fmy-domain.com%2Fauth%2Facs2

De authenticatie call wordt doorgestuurd naar de SAML 2.0 applicatie als een IdP-Initiated Login met een unsolicited SAML 2.0 authn response.

OpenID Connect applicatie

OpenID Connect ondersteunt geen IdP-Initiated Login. Daarom wordt de IdP-Initiated Login geverifieerd in de authenticatiemethode en doorgestuurd naar de OpenID Connect applicatie door de applicatie aan te roepen met redirect URL app_redirect die de login flow moet starten (OpenID Connect standard: Initiating Login from a Third Party). Je hebt een pagina nodig in de OpenID Connect applicatie die vereist dat de gebruiker is geauthenticeerd en daardoor de login flow start wanneer deze wordt aangeroepen. Een issuer iss parameter wordt meegegeven in de query die je optioneel kunt valideren. De OpenID Connect applicatie kan een algemene login request doen met *, FoxIDs weet waar de login request naartoe moet.

Daarna roept de OpenID Connect applicatie FoxIDs aan, dat de IdP-Initiated Login grant leest. Alternatief, zonder IdP-Initiated Login grant wordt de externe IdP aangeroepen met een SP-Initiated Login flow. De externe IdP gebruikt de Single Sign-On (SSO) context en antwoordt aan FoxIDs.

Het wordt aanbevolen om de IdP-Initiated Login grant functionaliteit te gebruiken om een extra round-trip naar de externe IdP te vermijden.

De SAML 2.0 IdP-Initiated Login wordt vervolgens vertaald naar OpenID Connect en stuurt de authenticatie door naar de OpenID Connect applicatie.

Als je de authenticatie wilt doorsturen naar de OpenID Connect applicatie met de naam my-oidc-app met login initiating URL https://my-domain.com/secure-page, is de relay state:

app_name=my-oidc-app&app_type=oidc&app_redirect=https%3A%2F%2Fmy-domain.com%2Fsecure-page

De applicatie redirect URL moet een geldige/geconfigureerde URL zijn voor de OpenID Connect applicatie.