8 Åpen kildekode-autorisasjons-/autentiseringsløsninger (OAuth) for ditt neste prosjekt

Har du noen gang logget på et nettsted ved hjelp av Google, Facebook, LinkedIn eller til og med Github? Hva med å laste opp filer til et nettsted direkte fra skyen din, for eksempel Google Drive-kontoen din?

Vel, begge disse er eksempler på nettsteder eller applikasjoner som får tilgang til informasjonen din som er lagret på andre nettsteder eller tjenester. Men hvordan oppnås dette uten å kompromittere sikkerheten til dine personlige data og du gir legitimasjonen din til en tredjepartsapplikasjon?

Ta Facebook, for eksempel; Facebook kan bruke kontaktene som er lagret i Google-kontoen din for å finne vennene dine på plattformen. For at Facebook skal få tilgang til kontaktene dine og finne vennene dine, må du gi den tilgang til Google-kontoen din.

For noen år tilbake ble dette gjort på en veldig grov måte, der du ga Facebook din Google-e-postadresse og Gmail-passordet ditt, som det ville bruke til å logge på Google-kontoen din som deg selv og få tilgang til kontaktene dine. Mange applikasjoner, og ikke bare Facebook, implementerte autorisasjon for brukerdata lagret på andre nettsteder på denne måten.

Med så mange tredjepartsapplikasjoner som implementerte autorisasjon på denne måten, hadde brukerne den korte enden av pinnen da de måtte kompromittere sikkerheten for å få tilgang til tjenester. En ondsinnet utvikler kan lett misbruke brukernes legitimasjon til skade for brukerne. Dette var det som nødvendiggjorde utviklingen av OAuth.

I følge Internet Engineering Task Force (IETF) er OAuth et autorisasjonsrammeverk som lar tredjepartsapplikasjoner få tilgang til en tjeneste på vegne av ressurseieren. OAuth er det som lar brukere gi begrenset tilgang til tredjepartsapplikasjoner.

Dette lar applikasjonene få tilgang til sine nettressurser, for eksempel profiler eller personlige data lagret i en annen applikasjon, uten å måtte avsløre påloggingsinformasjonen til tredjepartsapplikasjonen som prøver å få tilgang til ressursen.

Dette blir ofte referert til som delegert tilgang, der brukere gir tredjepartsapplikasjoner begrenset tilgang til ressursene som ligger på en annen tjeneste uten å dele brukernes legitimasjon.

OAuth 2.0 er den mest brukte versjonen av OAuth-protokollen, og den er en nøkkelkomponent i nettautorisasjon og -autentisering.

OAuth er mye brukt i autentisering av mobilapplikasjoner, sikring av APIer, tillater Single Sign-on til flere applikasjoner og delegert tilgang for tredjeparter, og den lar også brukere administrere og kontrollere tillatelser gitt til tredjepartsapplikasjoner.

Fordeler med å bruke OAuth-plattformer med åpen kildekode.

Open-source OAuth-plattformer refererer til åpen kildekode-implementeringer av OAuth-standarden. Med tanke på at applikasjoner er utviklet ved hjelp av en rekke programmeringsspråk og rammeverk, tilbyr OAuth-plattformer biblioteker og verktøy som lar utviklere enkelt integrere OAuth-funksjonalitet i applikasjonene sine. Noen av fordelene med å bruke åpen kildekode OAuth-plattformer inkluderer:

Kodekvalitet og åpenhet

Åpen kildekode-plattformer lar brukere få tilgang til koden deres. Dette er fordelaktig ved at mange utviklere med et bredt spekter av ferdigheter og erfaring går gjennom koden og kan ta opp problemer de kan legge merke til med koden.

  Hvordan optimalisere nettstedet ditt for mobilbrukere?

Dette bidrar til å sikre at koden er av høyeste kvalitet uten sårbarheter eller feil. Bedrifter kan også gå gjennom koden for å finne ut hvor godt den kan dekke deres behov før de forplikter seg til å bruke produktet.

Kostnadseffektivitet

Programvareløsninger med åpen kildekode er gratis å bruke og kan dermed være en måte for bedrifter å spare på kostnader de vil pådra seg ved å gå for proprietære OAth-plattformer. Dette har fordelen av at selv selskaper uten store budsjetter kan sikre at brukernes sikkerhet ikke blir kompromittert.

Unngå leverandørlåsing

Når du bruker åpen kildekode OAuth-leverandører, kan du enkelt bytte mellom ulike OAuth-leverandører uten å måtte redesigne hele applikasjonsarkitekturen for å matche en ny leverandør.

Åpen kildekode OAuth-løsninger overholder allment aksepterte standarder som tillater dem som sikrer kompatibilitet og interoperabilitet med andre systemer. Dette gjør det enkelt å bytte mellom ulike åpen kildekode-løsninger.

Fellesskapsstøtte

Åpen kildekode-løsninger støttes ofte av et stort fellesskap av utviklere som jobber med å forbedre dem og gi oppdateringer til programvaren. Dette sikrer at ikke bare programvaren fungerer med mange verktøy som utviklere bruker, men også problemer med programvaren kan løses raskere ettersom det garantert er noen som er kjent med programvaren som er klare til å hjelpe.

Nøkkelkriterier for evaluering av OAuth-plattformer med åpen kildekode

Noen av nøkkelfaktorene du bør vurdere når du evaluerer en åpen kildekode OAuth-plattform inkluderer:

Sikkerhet og krypteringstiltak

Det er viktig at OAuth-løsningen med åpen kildekode du bruker har solide vanntette sikkerhets- og krypteringstiltak på plass.

Dette er fordi plattformene håndterer sensitive brukerdata og tilgangsressurser. Plattformen skal støtte sikker kommunikasjon og også tilby mekanismer for å beskytte tilgangstokener.

Enkel integrasjon og utviklervennlige APIer

Siden OAuth-plattformer er integrert i applikasjoner, er det avgjørende at OAuth-løsningen tilbyr klare og intuitive APIer, dokumentasjon og programvareutviklingssett (SDK) som forenkler integrasjonsprosessen.

Plattformens endepunkter bør også være godt dokumentert med kodeeksempler og biblioteker for populære programmeringsspråk og rammeverk.

Samfunnsstøtte og aktiv utvikling

Et sterkt aktivt fellesskap av brukere og bidragsytere til en åpen kildekode-ressurs indikerer et sunt miljø rundt ressursene. I dette tilfellet betyr det at OAuth kontinuerlig forbedres og brukes.

I tillegg kan et aktivt fellesskap gi nyttige ressurser og støtte som kan hjelpe deg med å forstå og bruke en åpen kildekode OAuth-løsning.

Skalerbarhet og ytelse

Applikasjoner har ofte en voksende brukerbase ettersom flere blir introdusert for applikasjonen. Derfor er det viktig at enhver OAuth-løsning du bruker støtter skalering ettersom brukerbasen din øker, og bør også kunne håndtere et stort antall samtidige forespørsler.

Tilpasnings- og utvidelsesalternativer

En OAuth-løsning bør være svært tilpassbar for å tilpasse seg ulike forretningskrav og logikk på tvers av et bredt spekter av brukere. For å si det enkelt, bør bedrifter ikke måtte bygge sin logikk rundt en OAuth-plattform.

I stedet bør OAuth-løsningen være tilpassbar og utvidbar nok til at den kan implementeres uten å endre forretningslogikken. Dette kan oppnås ved å tillate tillegg av tilpassede autentiseringsflyter, krav og brukerattributter.

  Hvordan lage et traktdiagram i Excel

Med de ovennevnte hensynene i tankene, her er noen av de beste åpen kildekode OAuth-løsningene du kan bruke i ditt neste prosjekt

SuperTokens

SuperTokens er en åpen kildekode-påloggingsleverandør som kan skryte av bred bruk blant startups som HackeRank, Skoot og Food Market Hub og bruk av ingeniører som jobber i selskaper som Google, Amazon og Meta, blant andre.

SuperTokens gir svært tilpassbare, utvidbare og overstyrbare komponenter som lar brukere enkelt integrere brukerautentisering i applikasjonen deres.

Ikke bare er SuperTokens enkelt og raskt å integrere, men det tilbyr også forhåndsbygde brukergrensesnitt for registreringssider og brukerautentiseringsfunksjonalitet rett ut av esken. Brukere har også friheten til å bygge sin egen pålogging raskt ved å bruke hjelpefunksjonene som følger med SuperTokens.

Ved å bruke SuperTokens implementerer du e-postpassordpålogging, sosial pålogging med OAuth og passordløs pålogging til applikasjoner. Du kan også bruke sosial pålogging og e-postpassord på samme påloggingsskjerm for applikasjonene dine.

Cerbos

Cerbos er en åpen kildekode, språkagnostisk, skalerbar autorisasjonsplattform som ble anerkjent av Business Wire som den beste innen API-sikkerhet i 2022.

Cerbos, som er et autorisasjonslag for implementering av roller og tillatelser, jobber med en rekke identitetsleverandører, inkludert Auth0, Magic, WorkOS, Okta og FusionAuth, blant andre.

Cerbos lar deg administrere autorisasjonslogikken sentralt på tvers av alle applikasjonene dine og umiddelbart gjøre endringer i hvordan applikasjonene håndterer autorisasjon og autentisering.

I tillegg tilbyr Cerbos kontekstbevisste rolledefinisjoner og attributter og avslører et språkagnostisk API som kan brukes med hvilken som helst teknisk stack.

For å dekke det hele er Cerbos både statsløs og selvdrevet og kan hostes på serverløse plattformer, enhver offentlig eller privat sky, eller til og med et privateid datasenter.

Pass

Passport er en veldig populær autentiseringsmellomvare for Node.js-rammeverket, og den autentiserer innkommende forespørsler i applikasjoner bygget med en Node.js-backend.

Autentisering gjøres ved hjelp av plugins kjent som strategier. Passport gir utviklere kroker for å kontrollere handlingene som skal utføres når autentisering mislykkes eller lykkes.

Passport tilbyr over 500 autentiseringsstrategier og gir mulighet for enkel pålogging med OpenID og OAuth. Den støtter også vedvarende økter, dynamisk omfang og tillatelser, implementering av tilpassede strategier og enkel håndtering av suksess og fiasko under autentisering.

I tillegg monterer Passport.js ikke ruter i Node.js-applikasjoner og antar ikke noe spesielt databaseskjema og lar dermed utvikleren 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, blant andre.

Auth.js er designet for å fungere med en rekke OAuth-versjoner. Den støtter statsløs autentisering med hvilken som helst backend, e-post/passordløs autentisering og JSON Web Tokens sammen med databaseøkter.

Selv om Auth.js ble designet for serverløse arkitekturer, kan den kjøres hvor som helst, inkludert AWS Lambda, Docker og Heroku, blant andre.

Auth.js garanterer også brukere kontroll over dataene sine 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 for utviklerens bekvemmelighet.

  12 beste Field Service Management-programvare for å drive virksomhet jevnt

Nøkkelkappe

Keycloak er en veldig populær Open Source Identity and Access Management-løsning. Keycloak er en løsning basert på standardprotokoller og støtter OAuth 2.0, Security Assertion Markup Language (SAML) og OpenID Connect.

Som en åpen kildekode-løsning, er Keycloak veldig enkelt å integrere og kommer med funksjoner som Single-Sign-On, som lar brukere logge på flere applikasjoner gjennom en enkelt pålogging til Keycloak.

Dette kommer også utviklere til gode ved at de ikke trenger å være de som driver med autentisering og lagring av brukere og lager påloggingsskjemaer i applikasjonene sine.

Et område hvor KeyCloak skinner er dens lette integrasjon med applikasjoner. KeyCloak lar deg enkelt legge til muligheten til å logge på applikasjoner ved hjelp av sosiale nettverk uten å måtte endre applikasjonen eller koden.

Alt dette gjøres gjennom en administrasjonskonsoll hvor du også kan konfigurere ytterligere Keycloak-funksjoner som brukerføderasjon og identitetsmegling. Gjennom administrasjonskonsollen kan du 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 et bredt spekter av autentiseringsprotokoller, inkludert OAuth 2.0, SAML, OpenID, REST og WS-Federation, blant andre.

CAS kommer med innebygd støtte for passordadministrasjon, varsler, bruksvilkår og etterligning.

CAS støtter også pluggbar autentisering, delegert autentisering til eksterne identitetsleverandører som Facebook, Twitter og OpenID Connect, og multifaktorautentisering gjennom leverandører som blant annet 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 som er tilpasset skyen. Selv om Ory Kratos er skrevet i Go, kommer den med SDK-er for hvert programmeringsspråk, sammen med tilpassbar pålogging, registrering og profiladministrasjon.

I tillegg kan Ory Kratos fungere med ethvert UI-rammeverk og krever minimalt med kode for å sette det opp.

Noen bemerkelsesverdige funksjoner som følger med Ory Kratos inkluderer multifaktorautentisering med en rekke leverandører, selvbetjent pålogging og registrering, pålogging på sosiale nettverk, kontoverifisering og gjenoppretting og brukeradministrasjon.

Brukeradministrasjon tillater opprettelse, oppdatering og sletting av identiteter og deres data i brukerbasen din. Til slutt tillater Ory Kratos bruk av tilpassbare identitetsmodeller, der du kan lage dine egne grensesnitt og definere tilpassede felt som navn, adresser eller favoritt kjæledyr.

Logg til

I følge dokumentasjonen er Logto et kostnadseffektivt alternativ med åpen kildekode til Auth0, som er en proprietær autentiserings- og autorisasjonsløsning. Logto tilbyr alle funksjoner som trengs for sikker autentisering og autorisasjon til rimeligere priser.

Logto kommer med en klar til bruk administrasjons-API som kan brukes som autentiseringsleverandør. Den har også SDK-er som muliggjør enkel og rask integrering av Logto med alle programmer du bygger.

OpenID Connect (OIDC), som utvider OAuth 2.0-autorisasjonsprotokollen, brukes til autentisering, mens rollebasert tilgangskontroll (RBAC) brukes for autorisasjon.

Med LogTo kan applikasjonene dine implementere sosial pålogging uten passord og være i stand til å håndtere brukere som har glemt påloggingsinformasjonen. For å gjøre utviklingen enda enklere og raskere, tilbyr LogTo vakre forhåndsbygde UI-komponenter med tilpassbar CSS.

Brukere får også tilgang til skyplattformen deres, hvor 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 en rekke åpen kildekode-løsninger som vil spare deg og din bedrift for tonnevis av penger. Vurder noen av løsningene som er delt i artikkelen for å sikre virksomheten din og kritiske brukerdata.

Du kan også utforske noen av de beste brukerautentiseringsplattformene.