SAML
Også kendt som: SAML 2.0
En ældre, udbredt standard, der sender en signeret “denne bruger er logget ind”-besked fra en identitetsudbyder til en app.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En åben standard, hvor en identitetsudbyder efter autentificering sender brugerens browser videre til appen med et signeret dokument, en såkaldt assertion, der angiver, hvem brugeren er, og oplysninger om vedkommende; appen kontrollerer signaturen og stoler på indholdet.
Forklaret enkelt
Som et forseglet anbefalingsbrev fra din arbejdsgiver - hotellet kender ikke dig, men det kender seglet og lukker dig ind.
I praksis
En sygeplejerske på et regionshospital klikker på ikonet for vagtplanlægningssystemet, sendes et øjeblik til regionens loginside og lander igen i vagtplanen som logget ind - SAML-beskeden klarede arbejdet imellem.
Hvorfor det betyder noget
Det lader organisationer koble hundredvis af forretningsapps til ét login og ét sted at lukke konti, og store dele af virksomhedsverdenen kører stadig på det.
Teknisk uddybning
SAML er en OASIS-standard: Version 1.0 blev godkendt i november 2002, og SAML 2.0 i marts 2005, hvor SAML 1.1, Liberty Alliance ID-FF 1.2 og arbejdet fra Shibboleth blev lagt sammen. Specifikationerne i 2.0 er opdelt i Core (assertions og protokoller), Bindings, Profiles, Metadata og konformitetsdokumenter. En assertion er et XML-dokument udstedt af en IdP med et Subject med et NameID (formaterne persistent, transient, emailAddress eller unspecified) og SubjectConfirmation-data, Conditions (NotBefore, NotOnOrAfter, AudienceRestriction) og udsagn: et AuthnStatement med AuthnInstant, SessionIndex og en AuthnContextClassRef, der beskriver, hvordan brugeren blev autentificeret, og som regel et AttributeStatement med attributter som mail, grupper eller medarbejdernummer.
Profilen Web Browser SSO er den, de fleste bruger. I den SP-initierede variant opretter tjenesteudbyderen en AuthnRequest og sender den via HTTP-Redirect-bindingen (DEFLATE-komprimeret, base64-kodet, URL-kodet, med eventuel signatur i query-parametre), mens applikationens tilstand bevares i RelayState. IdP'en autentificerer brugeren og returnerer et Response via HTTP-POST-bindingen som en HTML-formular, der sender sig selv til SP'ens Assertion Consumer Service-URL. Artifact-bindingen sender i stedet en kort reference, som SP'en slår op over en bagkanal med SOAP. IdP-initieret SSO sender et uopfordret Response uden InResponseTo at kontrollere, hvilket svækker beskyttelsen mod genafspilning og login-injektion.
Sikkerheden hviler på XML Signature. Response, Assertion eller begge bærer en enveloped signatur, hvis Reference peger på en ID-attribut og er beregnet over exclusive canonicalization. Den indirekte henvisning muliggør XML Signature Wrapping: Somorovsky m.fl. ("On Breaking SAML", USENIX Security 2012) fandt, at 11 af 14 testede rammeværker var sårbare over for at få indsat en usigneret assertion ved siden af den signerede. I 2018 viste Duo Labs, at XML-kommentarer i et NameID kunne få flere biblioteker til at læse en afkortet identitet. En korrekt SP behandler kun det element, hvis signatur den har verificeret, kontrollerer Destination, Recipient, Audience, gyldighedsvindue med lille tolerance for urskævhed og InResponseTo, fører en cache over brugte assertion-id'er mod genafspilning og slår DTD-behandling fra for at forhindre XXE. EncryptedAssertion med AES-CBC er brudt med chosen-ciphertext-angreb, så AES-GCM foretrækkes. Tyveri af IdP'ens signeringsnøgle muliggør Golden SAML-forfalskning.
Driftsmæssigt konfigureres tilliden ved at udveksle metadata med entitets-id'er, endpoints og certifikater, og certifikatskift er en hyppig årsag til nedbrud. Single Logout findes, men er upålideligt på tværs af mange SP'er. SAML passer til browserbaseret SaaS i virksomheder og er svagt til native mobilapps og API'er, hvor OpenID Connect og OAuth passer bedre. I Danmark styrer OIOSAML-profilerne (aktuelt 3.0.3 ved siden af 2.1.0) integrationen med NemLog-in, og forskningsføderationen WAYF bygger også på SAML.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
Relationer
- Forudsætter
- IdentitetsudbyderDigital signatur
- Implementerer
- IdentitetsføderationSingle sign-on (SSO)
- Alternativ til
- OpenID Connect (OIDC)
Kilder og videre læsning
Standarder og officielle tekster
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…