Har du noen gang benyttet deg av Google, Facebook, LinkedIn, eller til og med Github for å logge inn på en nettside? Kanskje du har lastet opp filer til en nettside direkte fra din skylagring, for eksempel Google Drive?
Dette er eksempler på nettsteder eller applikasjoner som får tilgang til din informasjon som er lagret andre steder. Men hvordan er dette mulig uten å sette dine personlige data i fare og gi tilgang til dine innloggingsdetaljer til en tredjepart?
La oss se på Facebook som et eksempel. Facebook kan bruke kontaktene som er lagret i din Google-konto for å finne dine venner på plattformen. For at Facebook skal få tilgang til dine kontakter, må du gi dem tillatelse til å se din Google-konto.
Tidligere ble dette ofte gjort på en lite sikker måte. Du måtte gi Facebook din e-postadresse og passord for Google, slik at de kunne logge inn på din Google-konto og hente dine kontakter. Mange applikasjoner brukte denne metoden for å få tilgang til brukerdata.
Med så mange tredjepartsapplikasjoner som krevde direkte tilgang, ble brukere satt i en vanskelig situasjon. De måtte ofte kompromittere sin egen sikkerhet for å bruke tjenester. En ondsinnede utvikler kunne lett misbruke brukernes innloggingsdetaljer. Dette var hovedårsaken til at OAuth ble utviklet.
Ifølge Internet Engineering Task Force (IETF) er OAuth et autorisasjonsrammeverk som tillater tredjepartsapplikasjoner å få tilgang til en tjeneste på vegne av eieren av ressursen. OAuth gir brukere mulighet til å gi begrenset tilgang til tredjepartsapplikasjoner.
Dette betyr at applikasjoner kan få tilgang til nettressurser, som profiler eller personlige data lagret i en annen applikasjon, uten at brukeren trenger å dele innloggingsinformasjonen sin. Dette beskytter brukernes data.
Denne tilnærmingen kalles ofte delegert tilgang. Brukere gir tredjepartsapplikasjoner begrenset tilgang til ressurser på en annen tjeneste, uten å dele selve innloggingsinformasjonen.
OAuth 2.0 er den mest brukte versjonen av OAuth-protokollen og er en viktig del av sikkerheten for nettbaserte tjenester. Den sørger for autorisasjon og autentisering.
OAuth er mye brukt i mobilapplikasjoner, for å sikre API-er, for å tillate enkeltpålogging (Single Sign-on) til flere applikasjoner, og for å gi delegert tilgang til tredjeparter. Den gir også brukerne kontroll over tillatelser som er gitt til tredjepartsapplikasjoner.
Fordeler med å benytte seg av OAuth-plattformer med åpen kildekode
OAuth-plattformer med åpen kildekode refererer til implementeringer av OAuth-standarden som er tilgjengelige for alle. Ettersom applikasjoner er utviklet med en rekke programmeringsspråk og rammeverk, tilbyr disse plattformene biblioteker og verktøy som gjør det lettere for utviklere å legge til OAuth-funksjonalitet i applikasjonene sine. Noen av fordelene med å bruke en slik plattform er:
Kodekvalitet og transparens
Med åpen kildekode får brukere tilgang til koden. Dette er en fordel fordi mange utviklere med forskjellig kompetanse og erfaring kan gjennomgå koden og identifisere eventuelle problemer. Dette bidrar til å sikre at koden holder høy kvalitet og er fri for sårbarheter og feil. Bedrifter kan også studere koden for å avgjøre om den dekker deres behov, før de bestemmer seg for å bruke produktet.
Kostnadseffektivitet
Programvareløsninger med åpen kildekode er gratis å bruke. Dette kan være en god måte for bedrifter å spare penger sammenlignet med proprietære OAuth-plattformer. Det gir også mindre selskaper mulighet til å sikre brukernes sikkerhet uten å sprenge budsjettet.
Unngå leverandørlåsing
Når du bruker en åpen kildekode OAuth-leverandør, kan du enkelt bytte til en annen uten å måtte gjøre store endringer i applikasjonens arkitektur. Siden disse løsningene følger etablerte standarder, er det enkelt å bytte mellom dem og sikre kompatibilitet med andre systemer.
Fellesskapsstøtte
Åpen kildekode-løsninger støttes ofte av et stort fellesskap av utviklere som jobber med å forbedre dem og publisere oppdateringer. Dette sikrer at programvaren ikke bare fungerer med mange verktøy, men også at problemer kan løses raskt. Det finnes alltid noen som kjenner programvaren godt og er klare til å hjelpe.
Viktige kriterier for å evaluere OAuth-plattformer med åpen kildekode
Her er noen viktige faktorer du bør vurdere når du skal velge en åpen kildekode OAuth-plattform:
Sikkerhets- og krypteringstiltak
Det er viktig at den valgte OAuth-løsningen har gode sikkerhets- og krypteringstiltak. Plattformen vil håndtere sensitive brukerdata, og derfor bør den støtte sikker kommunikasjon og beskytte tilgangstokener.
Enkel integrasjon og utviklervennlige API-er
Siden OAuth-plattformer skal integreres med applikasjoner, er det viktig at løsningen har klare og intuitive API-er, god dokumentasjon og SDK-er (Software Development Kits) som forenkler integrasjonsprosessen. Plattformens endepunkter bør være godt dokumentert, med kodeeksempler og biblioteker for populære programmeringsspråk og rammeverk.
Fellesskapsstøtte og aktiv utvikling
Et aktivt fellesskap av brukere og bidragsytere er et tegn på et sunt miljø rundt en åpen kildekode-ressurs. I dette tilfellet betyr det at OAuth-løsningen kontinuerlig blir forbedret. Et aktivt fellesskap kan også gi verdifulle ressurser og hjelp.
Skalerbarhet og ytelse
Applikasjoner har ofte en voksende brukerbase. Det er derfor viktig at OAuth-løsningen kan skalere i takt med brukerbasen og håndtere et stort antall samtidige forespørsler.
Tilpasnings- og utvidelsesmuligheter
En god OAuth-løsning bør være fleksibel og tilpasses ulike forretningsbehov. Bedrifter skal ikke måtte endre sin logikk for å tilpasse seg en OAuth-plattform. Løsningen bør kunne tilpasses med egendefinerte autentiseringsflyter, krav og brukerattributter.
Med disse punktene i bakhodet, her er noen av de beste åpen kildekode OAuth-løsningene du kan bruke i ditt neste prosjekt.
SuperTokens
SuperTokens er en åpen kildekode innloggingsleverandør som brukes av mange oppstartsselskaper som HackeRank, Skoot og Food Market Hub, samt av ingeniører i store selskaper som Google, Amazon og Meta.
SuperTokens tilbyr svært tilpassbare og utvidbare komponenter som gjør det enkelt å integrere brukerautentisering i en applikasjon. Løsningen er både enkel og rask å integrere, og den tilbyr ferdige brukergrensesnitt for registreringssider og autentiseringsfunksjoner. Brukere kan også raskt bygge sin egen innlogging med hjelpefunksjonene som følger med.
Med SuperTokens kan du implementere e-post/passord-innlogging, sosial innlogging med OAuth, og passordløs innlogging. Du kan også bruke sosial innlogging og e-post/passord på samme innloggingsskjerm.
Cerbos
Cerbos er en åpen kildekode, språkagnostisk og skalerbar autorisasjonsplattform som ble kåret til best innen API-sikkerhet i 2022 av Business Wire. Cerbos fungerer som et autorisasjonslag for å implementere roller og tillatelser og samarbeider med en rekke identitetsleverandører som Auth0, Magic, WorkOS, Okta og FusionAuth.
Med Cerbos kan du sentralt administrere autorisasjonslogikken i alle dine applikasjoner og gjøre endringer i hvordan applikasjonene håndterer autorisasjon og autentisering. Løsningen tilbyr også kontekstbevisste rolldefinisjoner og attributter, og den har et språkagnostisk API som kan brukes med enhver teknologi. Cerbos er også statsløs og kan kjøres på serverløse plattformer, i skyen eller i private datasentre.
Passport
Passport er en populær autentiserings-mellomvare for Node.js-rammeverket, som autentiserer innkommende forespørsler i applikasjoner bygget med en Node.js-backend. Autentisering gjøres ved hjelp av plugins som kalles strategier. Passport gir utviklere muligheten til å kontrollere hva som skal skje når autentisering mislykkes eller lykkes.
Passport tilbyr over 500 autentiseringsstrategier og gjør det enkelt å logge inn med OpenID og OAuth. Den støtter også vedvarende økter, dynamisk omfang og tillatelser, tilpassede strategier, og enkel håndtering av feil og suksess under autentisering. Passport.js legger ikke til ruter i Node.js-applikasjoner, og det krever ikke et spesielt databaseskjema, slik at utvikleren kan ta alle avgjørelser på applikasjonsnivå.
Auth.js
Auth.js er en åpen kildekode-autentiseringsløsning som fungerer med en rekke frontend-rammeverk, inkludert Next.js, SvelteKit og SolidStart. Auth.js er utviklet for å fungere med ulike OAuth-versjoner og støtter statsløs autentisering med en hvilken som helst backend, e-post/passordløs autentisering, JSON Web Tokens og databaseøkter. Selv om Auth.js ble utviklet for serverløse arkitekturer, kan den kjøres hvor som helst, inkludert AWS Lambda, Docker og Heroku.
Auth.js gir også brukerne kontroll over sine data og kan fungere uten database, selv om den har innebygd støtte for populære databaser som MySQL, Postgres, MongoDB, SQLite, MariaDB og Microsoft SQL Server. Auth.js bruker Cross-site Request Forgery (CSRF) Tokens på POST-ruter, krypterer JSON Web Tokens og genererer automatisk symmetriske signerings- og krypteringsnøkler.
Keycloak
Keycloak er en populær åpen kildekode Identity and Access Management-løsning. Løsningen er basert på standardprotokoller og støtter OAuth 2.0, Security Assertion Markup Language (SAML) og OpenID Connect. Keycloak er enkel å integrere, og den har funksjoner som Single-Sign-On, som lar brukere logge på flere applikasjoner med én innlogging til Keycloak. Dette gjør utviklere i stand til å unngå å håndtere autentisering, lagring av brukere og lage innloggingsskjemaer i applikasjonene sine.
Keycloak er spesielt god på integrasjon med applikasjoner. Du kan enkelt legge til muligheten til å logge inn med sosiale nettverk uten å måtte endre applikasjonen eller koden. Dette gjøres via en administrasjonskonsoll hvor du også kan konfigurere flere Keycloak-funksjoner som brukerføderasjon og identitetsmegling. Du kan også opprette og administrere applikasjoner og tjenester, og finjustere autorisasjonspolicyer.
Apereo CAS
Apereo CAS er en åpen kildekode single sign-on-løsning og identitetsleverandør. CAS støtter en rekke autentiseringsprotokoller, inkludert OAuth 2.0, SAML, OpenID, REST og WS-Federation. CAS har innebygd støtte for passordadministrasjon, varsler, vilkår for bruk og imitasjon.
CAS støtter også pluggbar autentisering, delegert autentisering til eksterne identitetsleverandører som Facebook, Twitter og OpenID Connect, og multifaktorautentisering gjennom leverandører som Google Authenticator, Authy, YubiKey, Acceptto og Inwebo. For å bruke CAS, er det best å bruke det med de offisielt støttede klientplattformene som inkluderer Java, .NET, Apache og PHP.
Ory Kratos
Ory Kratos er et robust og funksjonsrikt brukeradministrasjonssystem tilpasset for skyen. Selv om Ory Kratos er skrevet i Go, finnes det SDK-er for alle programmeringsspråk, samt tilpassbar innlogging, registrering og profiladministrasjon. Ory Kratos kan fungere med et hvilket som helst UI-rammeverk og krever minimalt med kode for å settes opp. Noen av funksjonene inkluderer multifaktorautentisering med ulike leverandører, selvbetjent innlogging og registrering, innlogging med sosiale nettverk, kontoverifisering og gjenoppretting, samt brukeradministrasjon. Brukeradministrasjon muliggjør opprettelse, oppdatering og sletting av identiteter og deres data. Ory Kratos tillater bruk av tilpassbare identitetsmodeller, hvor du kan lage dine egne grensesnitt og definere egne felt som navn, adresse eller favorittdyr.
Logto
Logto er et kostnadseffektivt alternativ med åpen kildekode til Auth0, som er en proprietær autentiserings- og autorisasjonsløsning. Logto tilbyr alle funksjonene som trengs for sikker autentisering og autorisasjon til en rimeligere pris. Logto har en ferdig administrasjons-API som kan brukes som autentiseringsleverandør, samt SDK-er som gjør det enkelt å integrere Logto med applikasjoner. OpenID Connect (OIDC), som utvider OAuth 2.0-autorisasjonsprotokollen, brukes for autentisering, mens rollebasert tilgangskontroll (RBAC) brukes for autorisasjon. Med Logto kan du implementere sosial innlogging uten passord, og håndtere brukere som har glemt innloggingsinformasjonen sin. Logto tilbyr også fine, ferdigbygde UI-komponenter med tilpassbar CSS. Brukere får tilgang til en skyplattform, der de kan tilpasse, integrere og forhåndsvise autentiseringen de implementerer i applikasjonen.
Konklusjon
Når du implementerer autentisering og autorisasjon i applikasjonen din, finnes det mange gode åpen kildekode-løsninger som kan spare deg og bedriften din for mye penger. Vurder noen av løsningene som er nevnt i artikkelen for å sikre virksomheten din og dine brukeres data.
Du kan også utforske noen av de beste brukerautentiseringsplattformene.