Serverløs backend med AWS Lambda & API Gateway · leksjon

API Gateway-autoriseringsmekanismer

Implementer ulike autoriseringsmekanismer i API Gateway, inkludert egendefinerte Lambda-autoriseringsmekanismer og JWT-autoriseringsmekanismer, for robust autentisering.

Leksjon 2 av 411 trinn

API Gateway-autoriseringsmekanismer er en gratis leksjon i Serverløs backend med AWS Lambda & API Gateway på CoddyKit. Dette er leksjon 2 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 Serverløs backend med AWS Lambda & API Gateway, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Introduksjon til API Gateway Authorizers

Velkommen! I denne leksjonen skal De lære hvordan De sikrer serverløse API-er ved hjelp av API Gateway Authorizers. Disse er avgjørende for å kontrollere hvem som får tilgang til backend-tjenestene Deres.

Tenk på en authorizer som en sikkerhetsvakt ved inngangen til API-et. Før en forespørsel når Lambda-funksjonen eller en annen backend-tjeneste, kontrollerer authorizeren forespørselens legitimasjon.

Hvorfor bruke API Gateway Authorizers?

Authorizers sørger for robust autentisering og autorisasjon av API-ene Deres. Her er grunnen til at de er viktige:

  • Beskytt backend-ressurser: Forhindre uautorisert tilgang til Lambda-funksjonene og andre tjenester.
  • Skill ut autentiseringslogikken: Skill autentiseringslogikken fra hovedlogikken i applikasjonen, slik at funksjonene forblir ryddigere.
  • Finkornet tilgang: Kontroller tilgangen til bestemte API-metoder eller ressurser basert på brukeridentitet eller roller.

Typer authorizers

API Gateway tilbyr flere typer authorizers. I dag fokuserer vi på de to mest fleksible og mest brukte:

  • Lambda Custom Authorizers: En Lambda-funksjon De skriver for å utføre egendefinert autentisering.
  • JWT Authorizers: API Gateways innebygde støtte for validering av JSON Web Tokens (JWT-er).

Det finnes også IAM Authorizers, som bruker AWS IAM-roller og -policyer, men her fokuserer vi på de egendefinerte authorizerne og JWT-authorizerne.

Forklaring av Lambda Custom Authorizers

En Lambda Custom Authorizer er en Lambda-funksjon som De leverer. API Gateway kaller denne funksjonen med autorisasjonstokenet fra den innkommende forespørselen (for eksempel fra Authorization-headeren).

Lambda-funksjonen Deres behandler deretter dette tokenet, utfører den egendefinerte autentiseringslogikken (for eksempel kontrollerer en database eller kaller en identitetsleverandør) og returnerer en IAM-policy.

Autorisasjonspolicyen

Det viktigste resultatet fra Lambda-authorizeren Deres er et IAM-policy-dokument. Denne policyen forteller API Gateway om forespørselen til det aktuelle API-endepunktet skal Allow eller Deny.

Den inneholder en principalId (identifikatoren til den autentiserte brukeren) og et policyDocument som angir tillatelsene. Hvis resultatet er Allow, fortsetter forespørselen. Hvis resultatet er Deny, avvises den med feilen 401 Unauthorized.

Kodeeksempel på Lambda-authorizer

Her er en enkel Python-Lambda-funksjon som fungerer som en authorizer. Den kontrollerer et bestemt token og returnerer en «Allow»- eller «Deny»-policy basert på dette.

Prøv å endre token i testhendelsen for å se ulike resultater!

def lambda_handler(event, context):
    token = event.get('authorizationToken')
    method_arn = event.get('methodArn')

    if token == "my-secret-token-123":
        # Allow access
        return {
            "principalId": "user123",
            "policyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Action": "execute-api:Invoke",
                        "Effect": "Allow",
                        "Resource": method_arn
                    }
                ]
            }
        }
    else:
        # Deny access
        return {
            "principalId": "anonymous",
            "policyDocument": {
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Action": "execute-api:Invoke",
                        "Effect": "Deny",
                        "Resource": method_arn
                    }
                ]
            }
        }

# --- Local Test (for demonstration) ---
if __name__ == "__main__":
    print("Testing with 'my-secret-token-123':")
    event_allow = {
        "authorizationToken": "my-secret-token-123",
        "methodArn": "arn:aws:execute-api:us-east-1:123456789012:/test/GET/items"
    }
    print(lambda_handler(event_allow, None))

    print("\nTesting with 'invalid-token':")
    event_deny = {
        "authorizationToken": "invalid-token",
        "methodArn": "arn:aws:execute-api:us-east-1:123456789012:/test/GET/items"
    }
    print(lambda_handler(event_deny, None))

Forklaring av JWT Authorizers

JWT (JSON Web Token) Authorizers gjør det mulig for API Gateway å validere JWT-er innebygd. I stedet for å skrive en Lambda-funksjon konfigurerer De API Gateway med opplysninger om JWT-utstederen.

Når en forespørsel med en JWT kommer inn, utfører API Gateway automatisk valideringstrinn som:

  • Verifisering av signaturen
  • Kontroll av utløp
  • Validering av målgruppe og utsteder

Konfigurere en JWT-authorizer

For å konfigurere en JWT-authorizer oppgir De vanligvis følgende til API Gateway:

  • Issuer URL: URL-en til identitetsleverandøren (for eksempel https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXX for Cognito).
  • Audience(s): En liste over gyldige målgrupper for tokenet, slik at De sikrer at tokenet er ment for API-et Deres.
  • Identity Source: Headeren der JWT-en forventes (for eksempel $request.header.Authorization).

API Gateway bruker deretter disse opplysningene til å hente offentlige nøkler og validere innkommende JWT-er.

Når bør De bruke hvilken authorizer?

Valget mellom Lambda- og JWT-authorizers avhenger av behovene Deres:

  • Lambda Authorizer: Brukes for svært egendefinert autentiseringslogikk, integrasjon med eldre systemer eller identitetsleverandører som ikke støtter standardene OIDC/OAuth2. Gir maksimal fleksibilitet.
  • JWT Authorizer: Ideell ved bruk av standardiserte identitetsleverandører som AWS Cognito User Pools, Auth0, Okta og lignende. Den er enklere å konfigurere og krever mindre administrasjon.

For de fleste moderne applikasjoner som bruker standardiserte identitetsleverandører, er JWT-authorizers ofte det foretrukne valget.

Hurtigsjekk av authorizers

Det er tid for en rask sjekk av det De har lært om API Gateway Authorizers!

Oppsummering: Sikring med authorizers

De har nå lært om API Gateway Authorizers, en viktig komponent for å sikre serverløse API-er!

  • Authorizers fungerer som en sikkerhetskontroll ved inngangen til API-endepunktene Deres.
  • Lambda Custom Authorizers gir maksimal fleksibilitet for egendefinert autentiseringslogikk.
  • JWT Authorizers tilbyr innebygd og enkelt konfigurerbar validering av standardiserte JSON Web Tokens.

Ved å implementere authorizers sørger De for at bare legitime forespørsler får tilgang til backend-tjenestene Deres, noe som styrker sikkerheten i applikasjonene.

Gratis å komme i gang

Lær deg Serverløs backend med AWS Lambda & API Gateway 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
48

Ofte stilte spørsmål

Er leksjonen «API Gateway-autoriseringsmekanismer» gratis?

Ja – hele teksten i «API Gateway-autoriseringsmekanismer» 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 Serverløs backend med AWS Lambda & API Gateway-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Hva lærer jeg i «API Gateway-autoriseringsmekanismer»?

Implementer ulike autoriseringsmekanismer i API Gateway, inkludert egendefinerte Lambda-autoriseringsmekanismer og JWT-autoriseringsmekanismer, for robust autentisering. Du øver på Serverløs backend med AWS Lambda & API Gateway 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 Serverløs backend med AWS Lambda & API Gateway?

Ingen tidligere erfaring er nødvendig. Serverløs backend med AWS Lambda & API Gateway 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 2 av 4.

Hvor lang tid tar leksjonen «API Gateway-autoriseringsmekanismer»?

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 Serverløs backend med AWS Lambda & API Gateway-leksjonen?

Ja. Alle Serverløs backend med AWS Lambda & API Gateway-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

  1. IAM-roller og tillatelser
  2. API Gateway-autoriseringsmekanismer
  3. Sikring av Lambda med VPC
  4. Beskytte hemmeligheter med AWS Secrets Manager
← Tilbake til Serverløs backend med AWS Lambda & API Gateway