I den moderne, digitale tidsalderen er det essensielt å strømlinjeforme håndteringen av passord. Ettersom bedrifter akselererer sin digitale transformasjon, er ansatte i økende grad avhengige av samarbeids-, meldings- og lagringsverktøy.
Dette skaper en utfordring for utviklere: hvordan kan man sikre at ansatte har sikker tilgang til interne applikasjoner og data lagret i skyen? For mange er SAML-autentisering den ideelle løsningen!
Hva er SAML?
Security Assertion Markup Language, eller SAML, er en åpen standard som forenkler autentiseringsprosesser. Den er basert på XML (Extensible Markup Language), som standardiserer kommunikasjonen mellom autentiseringsenheter og nettjenester eller applikasjoner. Med andre ord, SAML muliggjør bruk av en enkelt pålogging for tilgang til flere ulike applikasjoner.
På den ene siden krever en tjenesteleverandør autentisering fra en identitetsleverandør (IdP) for å gi brukeren tilgang. For eksempel er Salesforce en tjenesteleverandør som er avhengig av en identitetsleverandør for å autentisere brukerne.
På den annen side verifiserer en identitetsleverandør at sluttbrukeren er den de utgir seg for å være, og overfører denne informasjonen til tjenesteleverandøren sammen med brukerens tilgangsrettigheter til tjenesten. Et eksempel på en ledende identitetsløsningsleverandør er Auth0.
Hva med SAML Single Sign-On?
En av SAMLs primære funksjoner er å muliggjøre Single Sign-On (SSO). Før SAML var SSO mulig, men dette var avhengig av informasjonskapsler og kun praktisk innenfor samme domene.
SAML muliggjør SSO ved at brukere kan få tilgang til flere applikasjoner med en enkel pålogging og et sett med legitimasjon. Selv om SAML ikke er en ny teknologi – den har eksistert siden 2002 – bruker mange moderne applikasjoner og SaaS-selskaper SAML for SSO. Den nyeste versjonen, SAML 2.0, muliggjør nettbasert SSO på tvers av domener og er standard for ressursautorisasjon.
Hva er fordelene med SAML-autentisering?
SAML tilbyr mange fordeler for sikkerhet, brukere og tjenesteleverandører (SP).
Enkelhet: Brukere logger inn på IdP bare én gang og får deretter sømløs og sikker tilgang til alle applikasjoner.
Forbedret sikkerhet: Mange SP-er mangler tid eller ressurser til å implementere og håndheve sikker brukerautentisering ved pålogging. IdP-er er generelt bedre rustet til å autentisere brukeridentiteter. Ved å delegere autentisering til IdP, muliggjør SAML sikker autentisering som kan bruke flere sikkerhetslag, for eksempel MFA.
Forbedret brukeropplevelse: Med SAML slipper brukerne å huske mange brukernavn og passord.
Reduserte administrasjonskostnader: Tjenesteleverandører kan forbedre plattformsikkerheten uten å lagre passord. Det er ikke lenger nødvendig å håndtere problemer knyttet til glemte passord. Helpdesk reduserer kostnadene og frigjør tekniske team til å håndtere andre presserende forespørsler.
Hva er Auth0, og hvordan er det knyttet til SAML-autentisering?
Auth0 er en plattform som leverer tjenester for brukerautentisering og autorisasjon. Den kan fungere både som IdP og SP. Auth0 tilbyr universell pålogging som kan integreres med SAML. Utviklere bruker ofte Auth0 med SAML for å spre risikoen ved å benytte flere IdP-er.
Auth0 kan benyttes med nesten alle ledende programmeringsspråk og API-er. Den kan også integreres med sosiale medier, databaser og LDAP-kataloger.
SAML SSO-flyt
En av SAMLs hovedfunksjoner er som nevnt å muliggjøre enkel pålogging. Før SAML var SSO gjennomførbart, men avhengig av informasjonskapsler og kun praktisk innenfor samme domene.
SAML aktiverer SSO ved at brukere får tilgang til flere applikasjoner med en enkelt pålogging og legitimasjon. SAML er ikke nytt; det har eksistert siden 2002, og mange moderne applikasjoner og SaaS-selskaper benytter SAML for SSO. Den nyeste versjonen, SAML 2.0, muliggjør nettbasert SSO på tvers av domener og er standarden for ressursautorisasjon.
Konkret betyr dette at brukeren bare må autentisere seg én gang, selv om de bruker forskjellige applikasjoner. Et eksempel er Google-autentisering, som deles mellom tjenester som Gmail, YouTube, Google Apps og andre.
I denne driftsmodellen er Google identitetsleverandøren (IdP) for sine tjenester. Disse tjenestene kalles «tjenesteleverandører» (SP).
Godkjenning
Når en ukjent bruker prøver å koble seg til en ekstern applikasjon, sendes brukeren til bedriftens IdP. Denne IdP-en er en nettjeneste som er tilgjengelig via HTTPS. Den kan være internt eller eksternt hostet.
Intern autentisering
Brukeren beviser deretter sin identitet overfor IdP. Denne prosessen kan gjennomføres ved eksplisitt autentisering (brukernavn/passord) eller ved å bruke et eksisterende token.
Generering av påstanden
IdP vil deretter generere et «token», et slags brukeridentitetskort, som kun er gyldig for den forespurte tjenesten og for en bestemt tidsperiode. Dette tokenet inneholder:
- Brukerens identitet: brukernavn, e-post eller andre felter.
- Valgfrie tilleggsattributter: etternavn, fornavn, språk osv.
- En gyldighetsperiode for tokenet.
- En signatur av tokenet fra IdP.
Overføring fra IdP til SP
I praksis sendes ikke påstanden direkte fra IdP til SP, men via brukeren selv. Gjennom en HTTP-viderekoblingsmekanisme gir IdP klientens nettleser tokenet for å overføre det til tjenesteleverandøren. Dette kan sammenlignes med et identitetskort som vises for relevante myndigheter.
Forbruk av token av SP
Tjenesteleverandøren mottar tokenet fra brukeren. SP har tillit til denne IdP-en. Den validerer signaturen og integriteten til tokenet, samt gyldighetsperioden. Hvis testene er vellykkede, åpner SP en økt for brukeren.
Kilde: Wikipedia
SAML-autentisering vs. Brukerautorisasjon
SAML-autentisering forveksles ofte med autorisasjon. For å klargjøre er det viktig å skille mellom autentisering og autorisasjon.
Autentisering: Dette er valideringen av brukerens identitet; det vil si at det verifiseres om de er den de hevder å være. Et eksempel er å bruke e-post og passord for å få tilgang til et system – en enkel økt eller pålogging for andre plattformer.
Autorisasjon: Dette er tillatelsene brukeren gir til et tredjepartsverktøy for å få tilgang til ressurser på sin konto. Med brukerens samtykke utveksler autorisasjonsprotokollen tokens uten å få tilgang til legitimasjonen. Dette skjer vanligvis når du gir en plattform (som Facebook) tilgang til informasjon fra din Google-konto.
Viktige SAML-terminologier
SAML-påstand
SAML-påstander overføres vanligvis fra identitetsleverandører til tjenesteleverandører. Påstander inneholder uttalelser som tjenesteleverandører bruker for å ta beslutninger om tilgangskontroll. Det finnes tre typer erklæringer i SAML:
- Autentiseringserklæringer bekrefter at tjenesteleverandøren ble autentisert med identitetsleverandøren på et bestemt tidspunkt og med en bestemt autentiseringsmetode.
- Attributterklæringer bekrefter at en enhet er assosiert med visse attributter. Et attributt er ganske enkelt et navn-verdi-par. Tjenesteleverandører bruker attributtene til å ta avgjørelser om tilgangskontroll.
- Autoriserte beslutningserklæringer bekrefter at et subjekt har tillatelse til å agere på en ressurs ved å fremvise bevis for det. Uttrykket av autorisasjonsbeslutningene i SAML er bevisst begrenset.
Påstand forbrukertjeneste
Assertion Consumer Service, eller ACS, er punktet der identitetsleverandøren omdirigerer etter brukerautentiseringssvaret. Punktet som identitetsleverandøren omdirigerer til er et HTTPS-endepunkt som overfører personlig informasjon.
Standard relétilstand
Dette er standard URL som brukeren omdirigeres til etter at SAML-meldingen er autentisert. Standard relétilstand brukes til å koordinere meldinger mellom IdP-er og SP-er.
SAML er en mye brukt protokoll, og det er ofte nødvendig å dekode SAML-påstander. Her er noen av de beste SAML-verktøyene for å kode, dekode og formatere SAML-meldinger og påstander:
#1. SAMLtool
SAMLtool fra OneDesign er en samling av online SAML-verktøy og -sett. Disse inkluderer ulike verktøy for koding og dekoding av SAML-meldinger, kryptering og dekryptering av påstander, samt signering og validering av SAML-meldinger og påstander. SAMLtool tilbyr også flere plugins for å integrere disse verktøyene med ulike CMS.
#2. Samtool.io
Tilbudt av Auth0, samltool.io er et nettbasert verktøy som lar deg dekode, inspisere og verifisere SAML-meldinger og påstander ved å lime inn rå XML eller URL-er som inneholder forespørsler.
#3. SAM-dekoder
SAM-dekoder er et enkelt nettbasert verktøy for dekoding av SAML som tilbys av PingIdentity. SAM-dekoder kan brukes til å dekode, dekomprimere og formatere SAML-meldinger, påstander og metadata.
Avsluttende ord
SAML-standarden er svært nyttig for implementering av en sentral autentiseringsløsning basert på markup-språk. En av dens betydelige fordeler er at den tilbyr høy effektivitet og en høy sikkerhetsstandard.
Antallet mulige sikkerhetsbrudd er spesielt minimert siden individuelle applikasjoner ikke trenger å lagre eller synkronisere brukerdata. Dermed oppnås et av hovedmålene, som er å forene høy grad av sikkerhet med best mulig brukervennlighet.
Du kan også se nærmere på noen av de beste plattformene for brukerautentisering.