Alternativer for autentisering

IdentityServer blir en betalt løsning. Her ser vi nærmere på gode alternativer for autentisering.

Hva er autentisering?

Sikkerhet er et høyaktuelt tema, og valg av teknisk løsning for sikkerhet er en viktig og vanskelig beslutning. Med lang fartstid i bransjen har vi som konsulenter i Novanet sett mange forskjellige løsninger implementert i prosjektene vi har deltatt i.

Det strekker fra enkel passordsjekk til avanserte skyløsninger. Fellestrekkene er at det råder en del usikkerhet rundt løsningene, og det er tidkrevende å holde disse ved like slik at sikkerheten alltid er ivaretatt.

Heldigvis finnes det flere gode alternativer for sikkerhet, som vi vurderer i denne artikkelen.

Her går vi gjennom løsninger for innlogging eller autorisasjon; Det å autentisere at brukeren er den han/hun sier at den er. Sikkerhet dreier seg om mye mer enn bare dette, alt fra fysisk sikkerhet til penetrasjonstesting, men det vil ikke denne artikkelen gå inn på.

En av de autentiseringsløsningene som er mest brukt i våre prosjekter er IdentityServer, blant annet fordi at IdentityServer har vært gratis og Open Source.

Men nå blir det endringer, da utviklerne av IdentityServer nå vil kreve lisens for bruk av fremtidige utgaver av IdentityServer. Det er selvfølgelig synd, men helt forståelig at et såpass godt produkt vil kreve betaling.

Sky eller lokalt

En viktig vurdering når man skal velge løsning for autentisering, er om man skal velge en skyleverandør eller om man skal drifte løsningen selv.

Hos noen kunder har man krav om at en slik løsning må driftes i lokalt miljø, og ikke kan settes bort til andre f.eks. av hensyn til personvern. Når man har slike krav, må man velge en autentiseringsløsning som kan driftes på egne servere. Det finnes flere alternativer for dette. En slik løsning gir ofte bedre kontroll på data og kildekode som er tilknyttet løsningen, men fører også med seg mer vedlikehold og større sannsynlighet for svakheter i sikkerheten. Man tar på seg ansvaret for at løsningen alltid har de siste oppdateringene (f.eks. "security patches"), og for at man ikke gjør endringer i data eller kode som gir uvedkommende tilgang de ikke skal ha.

Alternativt kan man velge en skyleverandør. Da vil skyleverandøren i større grad på seg ansvaret for at løsningen er sikker og oppdatert. Men man mister som regel direkte tilgang til kildekode og data som ligger i løsningen. Egne tilpasninger er vanskeligere å få til, enn i en løsning hvor man har kildekode og dataene tilgjengelig. Til gjengjeld får man som regel gode brukergrensesnitt for å administrere brukere og tilganger, og tilgang til support og SLA-avtaler når man trenger hjelp (hvis man betaler for det).

Andre vurderinger

Det er også flere andre vurderingen man bør gjøre for en løsning for autentisering. Når vi i Novanet tok en gjennomgang av slike løsninger valgte vi å se på:

- Hvem som står bak

- Støttede protokoller

- Integrasjoner

- Brukergrensesnitt

- Hvor enkelt er det å konfigurere autentisering for en klient

- Hvor enkelt er det å konfigurere autentisering for et API

- Prising

Under følger et sammendrag fra gjennomgang av fem løsninger for autentisering, som vi mener er aktuelle å vurdere. Hvis du trenger mer informasjon om en av løsningene er det bare å kontakte oss, så skal vi sette deg i kontakt med vår spesialist på løsningen.

IdentityServer

Identity Server leveres i dag av Dominic Baier og Brook Allen som Open Source, men blir fra neste versjon en betalt løsning levert av Duende Software.

IdentityServer kan driftes i eget miljø, og støtter de vanligste protokollene, som OAuth og OpenID Connect.

I utgangspunktet er IdentityServer bare noen Nuget-pakker som du legger inn i en .NET-løsning. Resten gjør du selv. For eksempel må du lage brukergrensesnitt og brukerdatabase for håndtering av brukere og klienter selv. Til gjengjeld så får du full kontroll og mulighet til tilpasninger, men også ansvar for at løsningen blir satt opp riktig og sikkert.

I og med at man har tilgang til kildekoden, kan man gjøre de integrasjonene man ønsker.

IdentityServer er gratis nå, men bli betalt fra neste versjon. De tar i hovedsak betalt basert på antall klienter, og man ender fort opp på Enterprise avtalen deres til $12000 i året (mer enn 15 klienter).

Auth0

Auth0 er et selskap startet i 2013 med kontorer rundt om i verden. De har kunder som Siemens, O'Reilly og Riks TV, og har totalt over 9000 betalende kunder.

Auth0 er en skyløsning, som støtter alle de vanligste protokollene, som OAuth, OpenID Connect og SAML.

Auth0 integrerer mot alle "Social IDs" samt f.eks. LDAP, ADFS, Google G Suite, Azure AD osv. I tillegg har de støtte for norsk BankID.

Auth0 har et svært godt brukergrensesnitt og svært god dokumentasjon på alt som gjelder Auth0, men også på autentisering generelt.

Auth0 tilbyr en gratis avtale som gir 7000 aktive brukere gratis. Dette dekker veldig mange scenario. Utover det har de dynamisk prising som kan testes på nettsidene deres. Kommer man over $1500 i måneden så må man ta kontakt med selger, og det blir raskt dyrt. Spesielt machine-to-machine autentisering oppleves som dyrt.

Okta

Okta er et børsnotert selskap fra San Francisco, som ble startet i 2009. De har 8950 betalende kunder på verdensbasis med mange store kunder som Fedex, HP og T-Mobile. Okta kom best ut i Gartner sin vurdering av Identity Providers ("Magic Quadrant") i 2020.

Okta er en skyløsning, som støtter alle de vanlige protokollene som OAuth, OpenID Connect og SAML.

En av Oktas sterkeste kort er alle de eksisterende integrasjonene (6500 stk.) de støtter mot tredjeparts applikasjoner, som gjør at man kan få "single sign-on" mot disse. Blant annet har de integrasjoner mot Office365, GSuite, Zoom, Salesforce, AWS osv.

Okta har et avansert, men oversiktlig brukergrensesnitt. Samt god dokumentasjon for både API'et deres og hvordan man tar i bruk Okta i diverse klienter.

Okta oppleves som relativt dyrt, med minimum 2$ for hver aktiv bruker.

ASP.NET Identity + OpenIddict

Det er ikke alle prosjekter som krever en avansert autentiseringsløsning. I noen prosjekter trenger man bare enkel beskyttelse av nettsider og API'er. Ved å benytte ASP.NET Identity og OpenIddict kan man oppnå dette.

ASP.NET Identity er en del av ASP.NET Core fra Microsoft. OpenIddict leveres av Kevin Chalet (samt noen contributors til Github-repoet hans). Man bør kanskje være forsiktig med å bygge større autentiseringsløsninger på et rammeverk levert av én enkelt person.

Denne løsningen kan driftes i eget miljø, og støtter OpenID Connect (OAuth) i tillegg til flere "Social IDs" (Facebook, Google osv.).

ASP.NET Identity gir deg et enkelt brukergrensesnitt for å administrere brukere. Utover dette krever løsningen at man konfigurere og koder en del selv, til gjengjeld får man full kontroll på løsningen.

ASP.NET Identity og OpenIddict er gratis og Open Source.

Azure AD B2C

Azure AD B2C leveres av Microsoft som en del av Azure.

Alle de vanligste protokollene er støttet, og Azure B2C har ferdige integrasjoner for pålogging med de fleste "Social IDs" (dvs. Facebook, Google, Apple ID osv.).

Azure AD B2C bruker samme brukergrensesnitt for håndtering av brukere og klienter som Azure AD. Dette oppleves som godt, og er kjent for mange fra før for håndtering av interne brukere og klienter.

50 000 aktive brukere gratis! Dette gjør det til et svært godt alternativ. Utover de 50 000 koster det $0.00325 per aktiv bruker, som også er en god pris.

Trenger du hjelp med autentisering?

Ta kontakt med
Lars Alexander Jakobsen

laj@novanet.no
414 71 717