Edge computing met Cloudflare Workers en Deno · Les

Authenticatie en autorisatie

Implementeer strategieën voor gebruikersauthenticatie en -autorisatie om uw edge-API-eindpunten te beveiligen.

Les 1 van 411 stappen

Authenticatie en autorisatie is een gratis Edge computing met Cloudflare Workers en Deno-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Edge computing met Cloudflare Workers en Deno. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.

API's aan de edge beveiligen

Welkom! In deze les gaan we dieper in op authenticatie en autorisatie voor je API-eindpunten aan de edge.

Dit zijn essentiële concepten om je applicaties te beschermen en ervoor te zorgen dat alleen de juiste gebruikers toegang hebben tot specifieke bronnen.

AuthN versus AuthZ

Laten we twee belangrijke termen verduidelijken:

  • Authenticatie (AuthN): Verifieert wie je bent. Zie het als het tonen van je identiteitsbewijs om je identiteit te bewijzen.
  • Autorisatie (AuthZ): Bepaalt wat je mag doen. Het is vergelijkbaar met een identiteitsbewijs dat je toegang geeft tot bepaalde gebieden, maar niet tot andere.

Ze werken vaak samen, maar zijn verschillende processen.

Veelgebruikte authenticatiemethoden aan de edge

Aan de edge hebben we lichtgewicht en efficiënte authenticatiemethoden nodig. Veelgebruikte benaderingen zijn:

  • API-sleutels: Eenvoudige geheimen waarmee een applicatie of gebruiker wordt geïdentificeerd.
  • JSON Web Tokens (JWT's): Zelfstandige, digitaal ondertekende tokens voor veilige informatie-uitwisseling.
  • OAuth/OIDC: Complexere protocollen voor gedelegeerde autorisatie, die vaak gebruikmaken van JWT's.

We richten ons op API-sleutels en JWT's.

Authenticatie met een API-sleutel implementeren

API-sleutels zijn eenvoudig. Een client verstuurt een geheime sleutel, meestal in een header, en je Worker valideert deze. Bekijk een eenvoudig voorbeeld:

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 });
  },
};

Authenticatie met een API-sleutel uitgelegd

In het voorbeeld controleert de Worker de X-API-Key-header. Als deze niet overeenkomt met het verwachte geheim, wordt de toegang geweigerd met de status 401 Unauthorized.

Sla API-sleutels voor productie altijd veilig op, meestal in omgevingsvariabelen van Cloudflare Worker, en niet rechtstreeks in je code.

JSON Web Tokens (JWT's)

JWT's zijn krachtig voor edge-toepassingen omdat ze zelfstandig zijn. Zodra een identityprovider een JWT heeft uitgegeven, kan je Worker deze verifiëren zonder telkens contact op te nemen met een centrale server.

Een JWT bestaat uit drie delen: Header, Payload en Signature, gescheiden door punten.

JWT's verifiëren aan de edge

Je Worker ontvangt een JWT, meestal in de header Authorization: Bearer. De belangrijkste stap is het verifiëren van de handtekening om zeker te weten dat er niet mee is geknoeid.

Volledige cryptografische verificatie vereist een bibliotheek. Hier haal je de gegevens doorgaans uit en bereid je ze voor op verificatie:

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 });
  },
};

Op rollen gebaseerde autorisatie (RBAC)

Als een gebruiker is geauthenticeerd (bijvoorbeeld via een geverifieerde JWT), moet je bepalen welke acties diegene mag uitvoeren. Dit is waar op rollen gebaseerd toegangsbeheer (RBAC) van pas komt.

RBAC koppelt machtigingen aan rollen (bijvoorbeeld 'admin', 'user' en 'guest'), en aan gebruikers worden een of meer rollen toegewezen. Je Worker controleert vervolgens de rol van de gebruiker voordat een actie wordt toegestaan.

RBAC implementeren in Worker

Je kunt gebruikersrollen of machtigingen rechtstreeks als 'claims' opnemen in de payload van de JWT. Nadat de JWT is geverifieerd, kan je Worker deze claims uitlezen en autorisatieregels afdwingen.

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 je begrip

Welke van de volgende uitspraken beschrijven correct het verschil tussen authenticatie en autorisatie?

Samenvatting: AuthN en AuthZ

Goed gedaan! Je hebt de basisprincipes geleerd voor het beveiligen van je edge-API's.

  • Authenticatie bevestigt de identiteit.
  • Autorisatie regelt de toegang.
  • API-sleutels bieden eenvoudige authenticatie.
  • JWT's bieden veilige, zelfstandige authenticatie en kunnen autorisatieclaims bevatten.
  • RBAC (op rollen gebaseerd toegangsbeheer) helpt machtigingen te definiëren op basis van gebruikersrollen.

Deze strategieën zijn essentieel voor het bouwen van robuuste en veilige edge-toepassingen.

Gratis beginnen

Leer Edge computing met Cloudflare Workers en Deno met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
47

Veelgestelde vragen

Is de les “Authenticatie en autorisatie” gratis?

Ja — de volledige tekst van “Authenticatie en autorisatie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Edge computing met Cloudflare Workers en Deno wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.

Wat leer ik in “Authenticatie en autorisatie”?

Implementeer strategieën voor gebruikersauthenticatie en -autorisatie om uw edge-API-eindpunten te beveiligen. Je oefent met Edge computing met Cloudflare Workers en Deno door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Edge computing met Cloudflare Workers en Deno te beginnen?

Ervaring vooraf is niet nodig. Edge computing met Cloudflare Workers en Deno op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Authenticatie en autorisatie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Edge computing met Cloudflare Workers en Deno?

Ja. Elke les over Edge computing met Cloudflare Workers en Deno bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Authenticatie en autorisatie
  2. Snelheidsbeperking en DDoS-bescherming
  3. Veilig geheimen beheren
  4. Inputsanitisatie en injectiepreventie
← Terug naar Edge computing met Cloudflare Workers en Deno