Autentisering og autorisering
Implementer strategier for brukerautentisering og autorisering for å sikre edge-API-endepunktene dine.
Autentisering og autorisering er en gratis leksjon i Edge computing med Cloudflare Workers og Deno på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Edge computing med Cloudflare Workers og Deno, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 4 leksjoner.
Sikring av edge-API-er
Velkommen! I denne leksjonen skal vi gå i dybden på autentisering og autorisasjon for edge-API-endepunktene dine.
Dette er viktige konsepter for å beskytte applikasjonene dine og sikre at bare riktige brukere får tilgang til bestemte ressurser.
AuthN kontra AuthZ
La oss avklare to viktige begreper:
- Autentisering (AuthN): Bekrefter hvem du er. Tenk på det som å vise legitimasjon for å bevise identiteten din.
- Autorisasjon (AuthZ): Fastslår hva du kan gjøre. Dette tilsvarer at legitimasjonen din gir deg tilgang til enkelte områder, men ikke andre.
De brukes ofte sammen, men er ulike prosesser.
Vanlige autentiseringsmetoder på kanten
På kanten trenger vi lette og effektive autentiseringsmetoder. Vanlige tilnærminger omfatter:
- API-nøkler: Enkle hemmeligheter som brukes til å identifisere en applikasjon eller bruker.
- JSON Web Tokens (JWT-er): Selvstendige, digitalt signerte token for sikker utveksling av informasjon.
- OAuth/OIDC: Mer komplekse protokoller for delegert autorisasjon, som ofte bygger på JWT-er.
Vi fokuserer på API-nøkler og JWT-er.
Implementering av API-nøkkelautentisering
API-nøkler er enkle å bruke. En klient sender en hemmelig nøkkel, vanligvis i en header, og Workeren validerer den. La oss se på et enkelt eksempel:
export default {
async fetch(request, env, ctx) {
const apiKey = request.headers.get('X-API-Key');
// In a real app, fetch 'MY_API_KEY' from env.MY_API_KEY
if (apiKey !== 'super-secret-key-123') {
return new Response('Unauthorized: Invalid API Key', { status: 401 });
}
return new Response('Access Granted!', { status: 200 });
},
};Forklaring av API-nøkkelautentisering
I eksempelet kontrollerer Workeren X-API-Key-headeren. Hvis den ikke samsvarer med den forventede hemmeligheten vår, nektes tilgangen med statusen 401 Unauthorized.
I produksjon må du alltid lagre API-nøkler på en sikker måte, vanligvis i miljøvariabler for Cloudflare Worker, og ikke direkte i koden.
JSON Web Tokens (JWT-er)
JWT-er er svært nyttige for edge-applikasjoner fordi de er selvstendige. Når en JWT først er utstedt av en identitetsleverandør, kan Worker-en verifisere den uten å måtte kontakte en sentral server hver gang.
En JWT består av tre deler: Header, Payload og Signature, adskilt med punktum.
Verifisere JWT-er på edge
Worker-en mottar en JWT, vanligvis i Authorization: Bearer-hodet. Det kritiske trinnet er å verifisere signaturen for å sikre at den ikke har blitt manipulert.
Full kryptografisk verifisering krever et bibliotek, men her ser De hvor De vanligvis vil hente ut dataene og klargjøre dem for verifisering:
export default {
async fetch(request, env, ctx) {
const authHeader = request.headers.get('Authorization');
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return new Response('Unauthorized: No token', { status: 401 });
}
const token = authHeader.split(' ')[1];
// In a real app, you'd use a crypto library and a secret key
// to verify the token's signature, expiry, and claims.
// e.g., using 'jose' library with `await jwtVerify(token, secretKey)`
if (token) {
// For this example, we'll assume a successful (mock) verification
return new Response('Access Granted with JWT!', { status: 200 });
}
return new Response('Unauthorized: Invalid JWT', { status: 401 });
},
};Rollebasert autorisasjon (RBAC)
Når en bruker er autentisert (for eksempel via en verifisert JWT), må De avgjøre hvilke handlinger brukeren har tilgang til å utføre. Det er her rollebasert tilgangskontroll (RBAC) kommer inn.
RBAC knytter tillatelser til roller (for eksempel «admin», «user» og «guest»), og brukere tildeles én eller flere roller. Deretter kontrollerer Worker-en brukerens rolle før en handling tillates.
Implementere RBAC i Worker
De kan bygge inn brukerroller eller tillatelser direkte i JWT-ens payload som «claims». Når JWT-en er verifisert, kan Worker-en lese disse claimene og håndheve autorisasjonsregler.
export default {
async fetch(request, env, ctx) {
// Assume JWT is already verified and we have the user's role
// In a real app, this 'userRole' would come from the decoded JWT payload.
const userRole = 'editor'; // Example role from a verified token
if (request.url.includes('/admin') && userRole !== 'admin') {
return new Response('Forbidden: Admins only!', { status: 403 });
}
if (request.method === 'POST' && userRole === 'guest') {
return new Response('Forbidden: Guests cannot create!', { status: 403 });
}
return new Response(`Welcome, ${userRole}! Request processed.`, { status: 200 });
},
};Test forståelsen
Hvilke av følgende påstander beskriver riktig forskjellen mellom autentisering og autorisasjon?
Oppsummering: AuthN og AuthZ
Godt jobbet! De har lært det grunnleggende om å sikre edge-API-er.
- Autentisering bekrefter identitet.
- Autorisasjon styrer tilgang.
- API-nøkler tilbyr enkel autentisering.
- JWT-er gir sikker, selvstendig autentisering og kan inneholde autorisasjonsclaims.
- RBAC (rollebasert tilgangskontroll) gjør det enklere å definere tillatelser basert på brukerroller.
Disse strategiene er viktige for å bygge robuste og sikre edge-applikasjoner.
Lær deg Edge computing med Cloudflare Workers og Deno med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 47
Ofte stilte spørsmål
Er leksjonen «Autentisering og autorisering» gratis?
Ja – hele teksten i «Autentisering og autorisering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Edge computing med Cloudflare Workers og Deno-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 4 leksjoner.
Hva lærer jeg i «Autentisering og autorisering»?
Implementer strategier for brukerautentisering og autorisering for å sikre edge-API-endepunktene dine. Du øver på Edge computing med Cloudflare Workers og Deno med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Edge computing med Cloudflare Workers og Deno?
Ingen tidligere erfaring er nødvendig. Edge computing med Cloudflare Workers og Deno på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Autentisering og autorisering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Edge computing med Cloudflare Workers og Deno-leksjonen?
Ja. Alle Edge computing med Cloudflare Workers og Deno-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Autentisering og autorisering
- Begrensning av forespørselsfrekvens og DDoS-beskyttelse
- Sikker håndtering av hemmeligheter
- Rensing av input og forebygging av injeksjoner