Svenska
  • sso
  • saml
  • oidc

Vad är skillnaderna mellan SAML och OIDC?

I den här artikeln ger vi en översikt över SAML- och OIDC-protokollen, tillsammans med deras typiska autentiseringsflöden. Vi jämför de tydliga skillnaderna, för- och nackdelarna med varje protokoll. Dessutom, baserat på potentiella användarscenarier, erbjuder vi vägledning om hur man väljer mellan dessa två protokoll.

Darcy Ye
Darcy Ye
Developer

OpenID Connect (OIDC) och Security Assertion Markup Language (SAML) är autentiseringsprotokoll som tillåter identitetsleverantörer (IdPs) att implementera användarautentisering och åtkomstkontroll. Varje protokoll definierar sin egen mekanism för att upprätthålla identiteten hos autentiserade användare, vilket sedan används för att bevilja eller neka åtkomst till skyddade program.

Vad är SAML och OIDC?

IdP håller databaser över användarnas identitetsinformation. Tjänsteleverantörer (SP) förlitar sig på denna information för att autentisera användare, ibland möjliggörande att en enda autentisering används över flera applikationer (single sign-on). OIDC och SAML är standarder som definierar hur denna användaridentitetsrelaterade information flödar mellan dessa två parter. Deras yttersta mål är detsamma: användarautentisering. Dock skiljer sig de grundläggande tillvägagångssätten de använder för att uppnå detta mål.

SAML

SAML 2.0, sedan 2005, är den nuvarande versionen av standarden. Det använder XML för att formatera identitetsinformation, förfrågningar och svar. XML är en mogen standard för att formatera dokument på ett sätt som är förståeligt för både människor och datorer. För att överföra eller ta emot XML-kodad information, använder den grundläggande SOAP- eller HTTP-förfrågningar. Definierat av SAML-protokollet, är tjänsten som begär identitetsinformation Tjänsteleverantör (SP).

Innan vi introducerar den typiska SAML-autentiseringsprocessen, behöver vi förstå de element som SAML-autentisering bygger på. Innan IdP och SP kan känna igen varandra och slutföra autentiseringsprocessen, måste de "utbyta" nödvändig information, vanligtvis åstadkommet genom XML-formaterad metadata. Den utbytta informationen inkluderar:

  • Offentliga nycklar, med IdP och SP genererande egna privata och offentliga nyckelpar och utbyta dem för att signera eller kryptera kommunikationer. Med framsteg inom nätverkskommunikationssäkerhet, kräver de flesta scenarier nu endast signering av förfrågningar, utelämnande av krypteringssteget.
  • Slutpunkter, används för att SP ska skicka SAML-autentiseringsförfrågningar till IdP och för SP att ta emot SAML-övertygelser som svar på autentiseringsförfrågningar från IdP.
  • Stöd för XML-attributformat, används för att IdP ska överföra den nödvändiga användarinformationen till SP efter slutförd autentisering.

När IdP och SP är medvetna om den ovan nämnda informationen, kan de fortsätta med auktoriseringsprocessen (ett typiskt SP-initierat autentiseringsflöde):

OIDC

OIDC är ett modernt protokoll som förbättrar OAuth 2.0-ramverket. Det använder JSON-baserade webbtoken (JWT) för att konstruera datapaket. JWTs, en etablerad industrinorm, anger riktlinjer för säker utbyte och representation av påståenden mellan enheter. Dessa påståenden, i grunden krypterade användardata, är avgörande för identitetsverifiering och hantering. OIDC använder främst det allmänt kända HTTPS för datatransmission.

Som allmänt erkännt, stöder OIDC-protokollet en mängd olika flöden, inklusive auktoriseringskodflödet, implicit flöde, och hybridflöde. I följande exempel kommer vi gå igenom det mest säkra och typiska av dessa: auktoriseringskodflödet. Detta är också flödet som används av Logto.

Distinktiva aspekter av OIDC och SAML

  • Givet sin nyare utveckling, är OIDC bättre lämpat för modern applikationsautentisering jämfört med den äldre SAML-standarden.
  • Historiskt sett föregår SAML OIDC och har integrerats i många etablerade företagsystem.
  • Till skillnad från SAMLs större XML-dokument, är OIDCs JWTs kompakta och mer användarvänliga i bearbetning.
  • Det är i allmänhet enklare att konfigurera OIDC än SAML.
  • En nyckelfunktion i OIDC är dess definition av "omfång", vilket tillåter IdPs att hantera en mängd olika behörigheter. Applikationer kan begära specifika behörigheter från IdPs, som beviljas efter användargodkännande. Denna egenskap hos OIDC erbjuder IdPs detaljkontroll över behörigheter.

Hur ska man välja mellan OIDC och SAML?

Både OIDC och SAML är robusta autentiseringssystem, var och en med sina unika styrkor. Valet beror på din organisations specifika krav.

  • För snabb och effektiv driftsättning av identitetsplattform, är OIDC att föredra över SAML. Implementering av OIDC är enklare, undviker den komplexa XML-hantering som SAML kräver för metadata analys, autentiseringsbegäran bearbetning och SAML-övertygelseanalys.
  • OIDC är idealiskt för miljöer med omfattande API-interaktioner och sofistikerade behörighetsmekanismer, vilket erbjuder mer anpassningsbar och effektiv kontroll över behörigheter och en överlägsen utvecklarupplevelse.
  • När du integrerar med etablerade system som är SAML-baserade, säkerställer val av SAML smidigare systeminteroperabilitet och minskar ansträngningen som krävs för att brida olika protokoll.

Finns det bra lösningar tillgängliga på marknaden?

Logto, en populär identitetslösning bland utvecklare, har nyligen introducerat Enterprise SSO-funktionalitet. Det erbjuder stöd för både SAML- och OIDC-protokoll, tillsammans med färdiga integrationer för mainstream IdPs som Google Workspace och Microsoft Entra ID (tidigare Azure AD). Med Logto kan du kringgå komplexiteten i att implementera SSO på egen hand. Några enkla konfigurationssteg möjliggör SSO-stöd i ditt identitetssystem, vilket gör att du kan välja det lämpliga protokollet som uppfyller dina affärsbehov.