API Gateway-authorizers
Implementér forskellige API Gateway-authorizers, herunder tilpassede Lambda-authorizers og JWT-authorizers, for robust godkendelse.
API Gateway-authorizers er en gratis Serverløs backend med AWS Lambda og API Gateway-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Serverløs backend med AWS Lambda og API Gateway, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Introduktion til API Gateway-authorizere
Velkommen! I denne lektion lærer du, hvordan du sikrer dine serverløse API'er ved hjælp af API Gateway-authorizere. De er afgørende for at kontrollere, hvem der kan få adgang til dine backend-tjenester.
Tænk på en authorizer som en sikkerhedsvagt ved indgangen til dit API. Før en forespørgsel når din Lambda-funktion eller en anden backend-tjeneste, kontrollerer authorizeren forespørgslens legitimationsoplysninger.
Hvorfor bruge API Gateway-authorizere?
Authorizere giver robust godkendelse og adgangskontrol til dine API'er. Her er grunden til, at de er vigtige:
- Beskyt backend-ressourcer: Forhindr uautoriseret adgang til dine Lambda-funktioner og andre tjenester.
- Adskil godkendelseslogik: Adskil godkendelseslogikken fra din primære forretningslogik, så dine funktioner forbliver overskuelige.
- Detaljeret adgangskontrol: Styr adgangen til bestemte API-metoder eller ressourcer ud fra brugerens identitet eller roller.
Typer af authorizere
API Gateway tilbyder flere typer authorizere. I dag fokuserer vi på de to mest fleksible og mest anvendte:
- Brugerdefinerede Lambda-authorizere: En Lambda-funktion, som du skriver for at udføre brugerdefineret godkendelse.
- JWT-authorizere: API Gateways indbyggede understøttelse af validering af JSON Web Tokens (JWT'er).
Der findes også IAM-authorizere, som bruger AWS IAM-roller og -politikker, men her fokuserer vi på de brugerdefinerede authorizere og JWT-authorizere.
Forklaring af brugerdefinerede Lambda-authorizere
En brugerdefineret Lambda-authorizer er en Lambda-funktion, som du leverer. API Gateway kalder denne funktion med den indgående forespørgsels godkendelsestoken (f.eks. fra Authorization-headeren).
Din Lambda-funktion behandler derefter denne token, udfører sin brugerdefinerede godkendelseslogik (f.eks. kontrollerer en database eller kalder en identitetsudbyder) og returnerer en IAM-politik.
Godkendelsespolitikken
Det centrale output fra din Lambda-authorizer er et IAM-politikdokument. Denne politik fortæller API Gateway, om forespørgslen til det ønskede API-slutpunkt skal Allow eller Deny.
Den indeholder en principalId (identifikatoren for den godkendte bruger) og et policyDocument, der angiver tilladelserne. Hvis værdien er Allow, fortsætter forespørgslen; hvis den er Deny, afvises den med fejlen 401 Unauthorized.
Kodeeksempel på en Lambda-authorizer
Her er en enkel Python-Lambda-funktion, der fungerer som authorizer. Den kontrollerer en bestemt token og returnerer en politik med 'Allow' eller 'Deny' baseret på den.
Prøv at ændre token i testhændelsen for at se forskellige output!
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 af JWT-authorizere
JWT-authorizere (JSON Web Token) gør det muligt for API Gateway at validere JWT'er indbygget. I stedet for at skrive en Lambda-funktion konfigurerer du API Gateway med oplysninger om din JWT-udsteder.
Når en forespørgsel med en JWT ankommer, udfører API Gateway automatisk valideringstrin som:
- Kontrol af signatur
- Kontrol af udløbstid
- Validering af målgruppe og udsteder
Konfiguration af en JWT-authorizer
For at konfigurere en JWT-authorizer angiver du typisk følgende for API Gateway:
- Udsteder-URL: URL'en til identitetsudbyderen (f.eks.
https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXXfor Cognito). - Målgruppe(r): En liste over gyldige målgrupper for tokenen, så det sikres, at tokenen er beregnet til dit API.
- Identitetskilde: Den header, hvor JWT'en forventes (f.eks.
$request.header.Authorization).
API Gateway bruger derefter disse oplysninger til at hente offentlige nøgler og validere indgående JWT'er.
Hvornår skal du bruge hvilken authorizer?
Valget mellem Lambda-authorizere og JWT-authorizere afhænger af dine behov:
- Lambda-authorizer: Bruges til meget brugerdefineret godkendelseslogik, integration med ældre systemer eller identitetsudbydere, der ikke understøtter standarderne OIDC/OAuth2. Giver maksimal fleksibilitet.
- JWT-authorizer: Ideel ved brug af standardiserede identitetsudbydere som AWS Cognito User Pools, Auth0, Okta osv. Den er enklere at konfigurere og kræver mindre drift.
For de fleste moderne applikationer, der bruger standardiserede identitetsudbydere, er JWT-authorizere ofte det foretrukne valg.
Hurtig kontrol af authorizere
Det er tid til en hurtig kontrol af det, du har lært om API Gateway-authorizere!
Opsamling: Sikring med authorizere
Du har nu lært om API Gateway-authorizere, som er en vigtig komponent til sikring af dine serverløse API'er!
- Authorizere fungerer som et sikkerhedstjek ved indgangen til dine API-slutpunkter.
- Brugerdefinerede Lambda-authorizere giver maksimal fleksibilitet til brugerdefineret godkendelseslogik.
- JWT-authorizere giver indbygget validering, der er nem at konfigurere, af standardiserede JSON Web Tokens.
Ved at implementere authorizere sikrer du, at kun legitime forespørgsler får adgang til dine backend-tjenester, hvilket forbedrer sikkerheden i dine applikationer.
Lær Serverløs backend med AWS Lambda og API Gateway med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “API Gateway-authorizers” gratis?
Ja — hele teksten til “API Gateway-authorizers” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Serverløs backend med AWS Lambda og API Gateway-kurset, skal du opgradere til CoddyKit PRO. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “API Gateway-authorizers”?
Implementér forskellige API Gateway-authorizers, herunder tilpassede Lambda-authorizers og JWT-authorizers, for robust godkendelse. Du øver dig i Serverløs backend med AWS Lambda og API Gateway med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Serverløs backend med AWS Lambda og API Gateway?
Der kræves ingen tidligere erfaring. Serverløs backend med AWS Lambda og API Gateway på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “API Gateway-authorizers”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Serverløs backend med AWS Lambda og API Gateway-lektion?
Ja. Alle Serverløs backend med AWS Lambda og API Gateway-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- IAM-roller og -tilladelser
- API Gateway-authorizers
- Sikring af Lambda med VPC
- Beskyttelse af secrets med AWS Secrets Manager