8 Open Source Authorization/Authentication (OAuth)-løsninger til dit næste projekt

Har du nogensinde logget ind på et websted ved hjælp af Google, Facebook, LinkedIn eller endda Github? Hvad med at uploade filer til et websted direkte fra din sky, såsom din Google Drive-konto?

Nå, begge disse er eksempler på websteder eller applikationer, der får adgang til dine oplysninger, der er gemt på andre websteder eller tjenester. Men hvordan opnås dette uden at kompromittere sikkerheden af ​​dine personlige data, og du giver dine legitimationsoplysninger til en tredjepartsapplikation?

Tag Facebook, for eksempel; Facebook kan bruge de kontakter, der er gemt på din Google-konto, til at finde dine venner på platformen. For at Facebook kan få adgang til dine kontakter og finde dine venner, skal du give det adgang til din Google-konto.

For et par år tilbage blev dette gjort på en meget grov måde, hvor du gav Facebook din Google-e-mailadresse og din Gmail-adgangskode, som den ville bruge til at logge ind på din Google-konto som dig selv og få adgang til dine kontakter. Mange applikationer, og ikke kun Facebook, implementerede autorisation for brugerdata gemt på andre websteder på denne måde.

Med så mange tredjepartsapplikationer, der implementerede autorisation på denne måde, havde brugerne den korte ende, da de var nødt til at kompromittere deres sikkerhed for at få adgang til tjenester. En ondsindet udvikler kan nemt misbruge brugernes legitimationsoplysninger til skade for brugerne. Det var det, der nødvendiggjorde udviklingen af ​​OAuth.

Ifølge Internet Engineering Task Force (IETF) er OAuth en autorisationsramme, der tillader tredjepartsapplikationer at få adgang til en tjeneste på vegne af ressourceejeren. OAuth er det, der giver brugerne mulighed for at give begrænset adgang til tredjepartsapplikationer.

Dette giver applikationerne adgang til deres onlineressourcer, såsom deres profiler eller personlige data gemt i en anden applikation, uden at skulle afsløre deres loginoplysninger til tredjepartsapplikationen, der forsøger at få adgang til ressourcen.

Dette omtales ofte som delegeret adgang, hvor brugere giver tredjepartsapplikationer begrænset adgang til deres ressourcer hostet på en anden tjeneste uden at dele deres brugeres legitimationsoplysninger.

OAuth 2.0 er den mest udbredte version af OAuth-protokollen, og den er en nøglekomponent i webautorisation og -godkendelse.

OAuth bruges i vid udstrækning i mobilapplikationsgodkendelse, sikring af API’er, tillader Single Sign-on til flere applikationer og delegeret adgang for tredjeparter, og det giver også brugere mulighed for at administrere og kontrollere tilladelser givet til tredjepartsapplikationer.

Fordele ved at bruge Open Source OAuth-platforme.

Open source OAuth-platforme henviser til open source-implementeringer af OAuth-standarden. I betragtning af at applikationer er udviklet ved hjælp af en række forskellige programmeringssprog og rammer, tilbyder OAuth-platforme biblioteker og værktøjer, der gør det muligt for udviklere nemt at integrere OAuth-funktionalitet i deres applikationer. Nogle af fordelene ved at bruge Open Source OAuth-platforme inkluderer:

Kodekvalitet og gennemsigtighed

Open source-platforme giver brugerne adgang til deres kode. Dette er fordelagtigt, idet mange udviklere med en bred vifte af færdigheder og erfaring gennemgår koden og kan rejse problemer, som de måske bemærker med koden.

  Sådan sletter du et opslag på OfferUp

Dette er med til at sikre, at koden er af højeste kvalitet uden sårbarheder eller fejl. Virksomheder kan også gennemgå koden for at bestemme, hvor godt den kan imødekomme deres behov, før de forpligter sig til at bruge produktet.

Omkostningseffektivitet

Open source-softwareløsninger er gratis at bruge og kan således være en måde for virksomheder at spare på omkostninger, de ville pådrage sig ved at gå efter ordentlige OAth-platforme. Dette har den fordel, at selv virksomheder uden store budgetter kan sikre, at deres brugeres sikkerhed ikke kompromitteres.

Undgå leverandørlåsning

Når du bruger open source OAuth-udbydere, kan du nemt skifte mellem forskellige OAuth-udbydere uden at skulle redesigne hele din applikationsarkitektur, så den matcher en ny leverandør.

Open source OAuth-løsninger overholder bredt accepterede standarder, hvilket giver dem mulighed for at sikre kompatibilitet og interoperabilitet med andre systemer. Dette gør det nemt at skifte mellem forskellige open source-løsninger.

Fællesskabsstøtte

Open source-løsninger bakkes ofte op af et stort fællesskab af udviklere, der arbejder på at forbedre dem og levere opdateringer til softwaren. Dette sikrer, at softwaren ikke kun fungerer sammen med en masse værktøjer, som udviklere bruger, men også problemer med softwaren kan løses hurtigere, da der helt sikkert er nogen, der kender softwaren, der er klar til at hjælpe.

Nøglekriterier for evaluering af Open Source OAuth-platforme

Nogle af de nøglefaktorer, der skal overvejes, når man evaluerer en open source OAuth-platform inkluderer:

Sikkerheds- og krypteringsforanstaltninger

Det er vigtigt, at den open source OAuth-løsning, du bruger, har solide vandtætte sikkerheds- og krypteringsforanstaltninger på plads.

Dette skyldes, at platformene håndterer følsomme brugerdata og adgangsressourcer. Platformen bør understøtte sikker kommunikation og også give mekanismer til at beskytte adgangstokens.

Nem integration og udviklervenlige API’er

Da OAuth-platforme er integreret i applikationer, er det altafgørende, at OAuth-løsningen tilbyder klare og intuitive API’er, dokumentation og softwareudviklingskit (SDK), der forenkler integrationsprocessen.

Platformens endepunkter bør også være veldokumenterede med kodeeksempler og biblioteker til populære programmeringssprog og rammer.

Samfundsstøtte og aktiv udvikling

Et stærkt aktivt fællesskab af brugere og bidragydere til en open source-ressource indikerer et sundt miljø omkring ressourcerne. I dette tilfælde betyder det, at OAuth’en løbende bliver forbedret og brugt.

Derudover kan et aktivt fællesskab give nyttige ressourcer og support, der kan hjælpe med din forståelse og brug af en open source OAuth-løsning.

Skalerbarhed og ydeevne

Applikationer har ofte en voksende brugerbase, efterhånden som flere mennesker introduceres til applikationen. Derfor er det vigtigt, at enhver OAuth-løsning, du bruger, understøtter skalering, efterhånden som din brugerbase øges, og bør også være i stand til at håndtere et stort antal samtidige anmodninger.

Tilpasnings- og udvidelsesmuligheder

En OAuth-løsning bør være meget tilpasselig for at tilpasse sig de forskellige forretningskrav og logik på tværs af en bred vifte af brugere. For at sige det enkelt, bør virksomheder ikke skulle bygge deres logik op omkring en OAuth-platform.

I stedet skal OAuth-løsningen kunne tilpasses og udvides nok til, at den kan implementeres uden at ændre forretningslogikken. Dette kan opnås ved at tillade tilføjelse af tilpassede godkendelsesflows, krav og brugerattributter.

  7 Bedste Mood Tracker-værktøjer til at forbedre din livskvalitet

Med ovenstående overvejelser i tankerne er her nogle af de bedste open source OAuth-løsninger til brug i dit næste projekt

SuperTokens

SuperTokens er en open source login-udbyder, der kan prale af bred brug blandt startups som HackeRank, Skoot og Food Market Hub og brug af ingeniører, der arbejder i virksomheder som Google, Amazon og Meta, blandt andre.

SuperTokens leverer komponenter, der kan tilpasses, udvides og tilsidesættes, som giver brugerne mulighed for nemt at integrere brugergodkendelse i deres applikation.

Ikke alene er SuperTokens nemme og hurtige at integrere, men det tilbyder også forudbyggede brugergrænseflader til tilmeldingssider og brugergodkendelsesfunktionalitet ud af boksen. Brugere har også friheden til hurtigt at bygge deres eget login ved hjælp af hjælpefunktionerne, der følger med SuperTokens.

Ved at bruge SuperTokens implementerer du login med e-mail-adgangskode, socialt login ved hjælp af OAuth og login uden adgangskode til applikationer. Du kan også bruge socialt login og e-mail-adgangskode-login på den samme login-skærm til dine applikationer.

Cerbos

Cerbos er en open source, sprogagnostisk, skalerbar godkendelsesplatform, der blev anerkendt af Business Wire som den bedste inden for API-sikkerhed i 2022.

Cerbos, som er et autorisationslag til implementering af roller og tilladelser, arbejder med en række forskellige identitetsudbydere, herunder Auth0, Magic, WorkOS, Okta og FusionAuth, blandt andre.

Cerbos giver dig mulighed for centralt at administrere autorisationslogikken på tværs af alle dine applikationer og øjeblikkeligt foretage ændringer i, hvordan dine applikationer håndterer autorisation og autentificering.

Derudover tilbyder Cerbos kontekstbevidste rolledefinitioner og attributter og afslører en sprogagnostisk API, der kan bruges med enhver teknologisk stak.

For at dække det hele er Cerbos både statsløs og selv-hostet og kan hostes på serverløse platforme, enhver offentlig eller privat sky eller endda et privatejet datacenter.

Pas

Passport er en meget populær autentificerings-middleware til Node.js-rammeværket, og den autentificerer indgående anmodninger i applikationer bygget med en Node.js-backend.

Autentificering udføres ved hjælp af plugins kendt som strategier. Passport giver udviklere kroge til at kontrollere de handlinger, der skal udføres, når godkendelse mislykkes eller lykkes.

Passport tilbyder over 500 autentificeringsstrategier og giver mulighed for Single Sign-on med OpenID og OAuth. Det understøtter også vedvarende sessioner, dynamisk omfang og tilladelser, implementering af tilpassede strategier og nem håndtering af succes og fiasko under godkendelse.

Derudover monterer Passport.js ikke ruter i Node.js-applikationer og antager ikke noget bestemt databaseskema og tillader således udvikleren at træffe alle beslutninger på applikationsniveau.

Auth.js

Auth.js er en open source-godkendelsesløsning, der fungerer med en række frontend-frameworks, herunder Next.js, SvelteKit og SolidStart, blandt andre.

Auth.js er designet til at fungere med en række forskellige OAuth-versioner. Det understøtter statsløs godkendelse med enhver backend, e-mail/adgangskodeløs godkendelse og JSON Web Tokens sammen med databasesessioner.

Selvom Auth.js er designet til serverløse arkitekturer, kan den køres hvor som helst, inklusive AWS Lambda, Docker og Heroku, blandt andre.

Auth.js garanterer også brugere kontrol over deres data og kan arbejde uden en database, selvom den har indbygget understøttelse af populære databaser som MySQL, Postgres, MongoDB, SQLite, MariaDB og Microsoft SQL Server.

Auth.js bruger Cross-site Request Forgery (CSRF) Tokens på POST-ruter, krypterer JSON Web Tokens og genererer automatisk symmetriske signerings- og krypteringsnøgler for udviklerens bekvemmelighed.

Nøglekappe

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

  Hvad betyder "GLHF", og hvordan bruger du det?

Da Keycloak er en open source-løsning, er den meget nem at integrere og kommer med funktioner såsom Single-Sign-On, som giver brugerne mulighed for at logge ind på flere applikationer gennem et enkelt login til Keycloak.

Dette gavner også udviklere, fordi de ikke behøver at være dem, der beskæftiger sig med autentificering og lagring af brugere og lave login-formularer i deres applikationer.

Et område, hvor KeyCloak skinner, er dens lette integration med applikationer. KeyCloak giver dig mulighed for nemt at tilføje muligheden for at logge ind på applikationer ved hjælp af sociale netværk uden at skulle ændre din applikation eller kode.

Alt dette gøres gennem en administrationskonsol, hvor du også kan konfigurere yderligere Keycloak-funktioner såsom brugerføderation og identitetsmæglervirksomhed. Gennem administrationskonsollen kan du også oprette og administrere applikationer og tjenester og finjustere autorisationspolitikker.

Apereo CAS

Apereo CAS, er en open source single sign-on løsning og identitetsudbyder. CAS understøtter en bred vifte af godkendelsesprotokoller, inklusive OAuth 2.0, SAML, OpenID, REST og WS-Federation, blandt andre.

CAS kommer med indbygget understøttelse af adgangskodeadministration, meddelelser, vilkår for brug og personefterligning.

CAS understøtter også pluggbar godkendelse, delegeret godkendelse til eksterne identitetsudbydere såsom Facebook, Twitter og OpenID Connect, og multifaktorautentificering gennem udbydere såsom Google Authenticator, Authy, YubiKey, Acceptto og Inwebo, blandt andre.

For at bruge CAS er det bedst at bruge det med dets officielt understøttede klientplatforme, som inkluderer Java, .NET, Apache og PHP.

Ory Kratos

Ory Kratos er et robust og funktionsrigt brugeradministrationssystem, der henvender sig til skyen. Selvom Ory Kratos er skrevet i Go, kommer den med SDK’er til alle programmeringssprog, sammen med tilpasseligt login, registrering og profilstyring.

Derudover kan Ory Kratos arbejde med enhver UI-ramme og kræver minimal kode for at konfigurere den.

Nogle bemærkelsesværdige funktioner, der følger med Ory Kratos, inkluderer multifaktorgodkendelse med en række forskellige udbydere, selvbetjeningslogin og -registrering, socialt netværkslogin, kontobekræftelse og -gendannelse og brugeradministration.

Brugeradministration tillader oprettelse, opdatering og sletning af identiteter og deres data i din brugerbase. Endelig tillader Ory Kratos brugen af ​​tilpassede identitetsmodeller, hvor du kan oprette dine egne grænseflader og definere brugerdefinerede felter såsom navne, adresser eller yndlingskæledyr.

Logto

Ifølge dens dokumentation er Logto et omkostningseffektivt open source-alternativ til Auth0, som er en proprietær godkendelses- og autorisationsløsning. Logto tilbyder alle funktioner, der er nødvendige for sikker godkendelse og godkendelse til mere overkommelige priser.

Logto kommer med en klar-til-brug management API, der kan bruges som en autentificeringsudbyder. Det har også SDK’er, der giver mulighed for nem og hurtig integration af Logto med enhver applikation, du bygger.

OpenID Connect (OIDC), som udvider OAuth 2.0-autorisationsprotokollen, bruges til godkendelse, mens rollebaseret adgangskontrol (RBAC) bruges til godkendelse.

Med LogTo kan dine applikationer implementere socialt login uden adgangskode og være i stand til at håndtere brugere, der har glemt deres loginoplysninger. For at gøre udviklingen endnu nemmere og hurtigere tilbyder LogTo smukke præbyggede UI-komponenter med tilpasselig CSS.

Brugere får også adgang til deres cloud-platform, hvor de kan tilpasse, integrere og forhåndsvise den autentificering, de implementerer i deres applikation.

Konklusion

Når du implementerer godkendelse og autorisation i din applikation, er der en række open source-løsninger, som vil spare dig og din virksomhed for tonsvis af penge. Overvej enhver af de løsninger, der er delt i artiklen, for at sikre din virksomhed og kritiske brugerdata.

Du kan også udforske nogle af de bedste brugergodkendelsesplatforme.