SAML 2.0 / OpenID Connect bro
Som standard är FoxIDs en bro mellan SAML 2.0 och OpenID Connect / OAuth 2.0 utan extra konfiguration.
Federerad identitetshantering (FIM) fokuserar på att koppla identiteter över domäner, medan single sign-on (SSO) förenklar åtkomst över applikationer. FoxIDs stödjer både FIM och SSO, och bron möjliggör detta över SAML 2.0 och OpenID Connect.
OpenID Connect (OIDC) och SAML 2.0 är båda välkända protokoll för identitetsfederation, single sign on (SSO) och användarautentisering. De är dock grundläggande olika i struktur och design. Ibland behöver du överbrygga eller integrera dessa protokoll, såsom när en applikation som stöder OpenID Connect behöver fungera med en Identity Provider (IdP) som endast stöder SAML 2.0.
Viktiga skillnader mellan de två protokolltyperna:
- OIDC: Bygger ovanpå OAuth 2.0, är ett modernt protokoll för webb och mobila appar med RESTful APIs. Använder JSON Web Tokens (JWT) för identitetstoken och access tokens.
- SAML 2.0: XML baserat och fokuserat på webbläsarbaserade SSO scenarier, ofta använt i enterprise miljöer. Använder XML baserade assertions / tokens.
För att ansluta ett OpenID Connect system till ett SAML 2.0 system behöver du ett protokollöversättnings eller bro lager. Detta kan uppnås med en mellanhand som fungerar både som OpenID Connect Provider (OP) och SAML Service Provider (SP), eller tvärtom.
Om du konfigurerar en SAML 2.0 autentiseringsmetod till en extern Identity Provider (IdP) och kopplar din app som en OpenID Connect applikation där du väljer SAML 2.0 autentiseringsmetoden, så routas en login request från din app som en extern SAML 2.0 login request. SAML 2.0 login responsen mappas därefter till en OpenID Connect respons för din app. SAML 2.0 claims konverteras automatiskt till JWT (OAuth 2.0) claims.
Motsatsen är också möjlig genom att starta login requesten från en SAML 2.0 application registration app och routa till en extern OpenID Provider (OP) konfigurerad som en OpenID Connect autentiseringsmetod. Därefter konverteras responsen till en SAML 2.0 respons.
FoxIDs stödjer att överbrygga både login, logout och single logout mellan SAML 2.0 och OpenID Connect.
En miljö - en Identity Provider
All bro funktionalitet kan kombineras i samma miljö. Det gör att en OpenID Connect app kan stödja login via både en SAML 2.0 eller OpenID Connect autentiseringsmetod samtidigt. OpenID Connect appen kan antingen välja autentiseringsmetod programmatiskt eller låta användaren välja på en home realm discovery (HRD) sida.
Det rekommenderas att ha en applikationsinfrastruktur med OpenID Connect aktiverade klienter och OAuth 2.0 aktiverade APIer. Där alla applikationer (klienter och APIer) litar på samma Identity Provider (IdP) - en IdP är lika med en miljö i FoxIDs. Genom att använda bro funktionen i FoxIDs mappas SAML 2.0 tokens till ID tokens och access tokens som kan användas för att autentisera OpenID Connect appar och anropa befintliga APIer.
Token exchange
Om en användare får tillgång till en SAML 2.0 app efter lyckad login med en extern SAML 2.0 Identity Provider (IdP), får användaren tillgång till SAML 2.0 appen i användarens egen kontext. Med zero trust (aldrig lita, alltid verifiera) behöver du anropa dina APIer i användarens kontext. Det är möjligt med token exchange, där SAML 2.0 token kan bytas till ett access token med slutanvändarens identitet. Därefter kan din OAuth 2.0 aktiverade API anropas i användarens kontext.
Claim mappings
FoxIDs använder JWT claims internt och mappar SAML 2.0 claims till JWT claims. Som standard mappas en uppsättning standard JWT till SAML 2.0 claims, till exempel sub till http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier, email till http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress osv.
Du kan lägga till ytterligare JWT till SAML 2.0 claim mappings.
Om ingen claim mapping finns för en viss claim behålls det långa SAML 2.0 claim namnet från claims mottagna i ett SAML 2.0 token i stället för ett kortare motsvarande JWT claim namn. Detsamma gäller i motsatt riktning.