API Gateway-auktoriserare
Implementera olika API Gateway-auktoriserare, inklusive anpassade Lambda-auktoriserare och JWT-auktoriserare, för robust autentisering.
API Gateway-auktoriserare är en gratis lektion i Serverlös backend med AWS Lambda & API Gateway på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Serverlös backend med AWS Lambda & API Gateway, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.
Introduktion till API Gateway-auktoriserare
Välkommen! I den här lektionen lär du dig hur du skyddar dina serverlösa API:er med API Gateway-auktoriserare. De är avgörande för att kontrollera vem som får åtkomst till dina backendtjänster.
Tänk på en auktoriserare som en säkerhetsvakt vid ingången till ditt API. Innan en begäran når din Lambda-funktion eller någon annan backendtjänst kontrollerar auktoriseraren begärans autentiseringsuppgifter.
Varför använda API Gateway-auktoriserare?
Auktoriserare tillhandahåller robust autentisering och auktorisering för dina API:er. Här är varför de är viktiga:
- Skydda backendresurser: Förhindra obehörig åtkomst till dina Lambda-funktioner och andra tjänster.
- Koppla loss autentiseringslogik: Separera autentiseringslogiken från den huvudsakliga affärslogiken så att dina funktioner förblir renare.
- Detaljerad åtkomstkontroll: Kontrollera åtkomsten till specifika API-metoder eller resurser baserat på användaridentitet eller roller.
Typer av auktoriserare
API Gateway erbjuder flera typer av auktoriserare. I dag fokuserar vi på de två mest flexibla och vanligaste:
- Anpassade Lambda-auktoriserare: En Lambda-funktion som du skriver för att utföra anpassad autentisering.
- JWT-auktoriserare: API Gateways inbyggda stöd för validering av JSON Web Tokens (JWT:er).
Det finns även IAM-auktoriserare som använder AWS IAM-roller och policyer, men här fokuserar vi på de anpassade auktoriserarna och JWT-auktoriserarna.
Förklaring av anpassade Lambda-auktoriserare
En anpassad Lambda-auktoriserare är en Lambda-funktion som du tillhandahåller. API Gateway anropar funktionen med den inkommande begärans auktoriseringstoken (t.ex. från rubriken Authorization).
Din Lambda-funktion bearbetar sedan denna token, utför sin anpassade autentiseringslogik (t.ex. kontrollerar en databas eller anropar en identitetsleverantör) och returnerar en IAM-policy.
Auktoriseringspolicyn
Det centrala resultatet från din Lambda-auktoriserare är ett IAM-policy dokument. Policyn talar om för API Gateway om begäran till den aktuella API-slutpunkten ska Allow eller Deny.
Den innehåller ett principalId (den autentiserade användarens identifierare) och ett policyDocument som anger behörigheterna. Om värdet är Allow fortsätter begäran; om det är Deny avvisas den med felet 401 Unauthorized.
Kodexempel på Lambda-auktoriserare
Här är en enkel Python-Lambda-funktion som fungerar som auktoriserare. Den kontrollerar en specifik token och returnerar en policy med 'Allow' eller 'Deny' baserat på den.
Prova att ändra token i testhändelsen för att se olika resultat!
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))Förklaring av JWT-auktoriserare
JWT-auktoriserare (JSON Web Token) gör att API Gateway kan validera JWT:er inbyggt. I stället för att skriva en Lambda-funktion konfigurerar du API Gateway med information om din JWT-utfärdare.
När en begäran med en JWT kommer in utför API Gateway automatiskt valideringssteg som:
- Verifiering av signatur
- Kontroll av utgångstid
- Validering av målgrupp och utfärdare
Konfigurera en JWT-auktoriserare
För att konfigurera en JWT-auktoriserare anger du vanligtvis följande för API Gateway:
- Utfärdar-URL: URL:en till identitetsleverantören (t.ex.
https://cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXXför Cognito). - Målgrupp(er): En lista över giltiga målgrupper för token, vilket säkerställer att token är avsedd för ditt API.
- Identitetskälla: Den rubrik där JWT:n förväntas finnas (t.ex.
$request.header.Authorization).
API Gateway använder sedan dessa uppgifter för att hämta offentliga nycklar och validera inkommande JWT:er.
När ska du använda vilken auktoriserare?
Valet mellan Lambda-auktoriserare och JWT-auktoriserare beror på dina behov:
- Lambda-auktoriserare: Används för mycket anpassad autentiseringslogik, integration med äldre system eller identitetsleverantörer som inte stöder standarderna OIDC/OAuth2. Ger maximal flexibilitet.
- JWT-auktoriserare: Idealisk när du använder standardiserade identitetsleverantörer som AWS Cognito User Pools, Auth0, Okta med flera. Den är enklare att konfigurera och kräver mindre driftarbete.
För de flesta moderna applikationer som använder standardiserade identitetsleverantörer är JWT-auktoriserare ofta det bästa valet.
Snabbkontroll av auktoriserare
Dags för en snabb kontroll av vad du har lärt dig om API Gateway-auktoriserare!
Sammanfattning: Skydda med auktoriserare
Nu har du lärt dig om API Gateway-auktoriserare, en viktig komponent för att skydda dina serverlösa API:er!
- Auktoriserare fungerar som en säkerhetskontroll vid ingången till dina API-slutpunkter.
- Anpassade Lambda-auktoriserare ger maximal flexibilitet för anpassad autentiseringslogik.
- JWT-auktoriserare erbjuder inbyggd och lättkonfigurerad validering av standardiserade JSON Web Tokens.
Genom att implementera auktoriserare säkerställer du att endast legitima begäranden får åtkomst till dina backendtjänster, vilket ökar säkerheten i dina applikationer.
Lär dig Serverlös backend med AWS Lambda & API Gateway med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”API Gateway-auktoriserare” gratis?
Ja – hela texten till ”API Gateway-auktoriserare” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Serverlös backend med AWS Lambda & API Gateway, kan Ni uppgradera till CoddyKit PRO. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.
Vad lär jag mig i ”API Gateway-auktoriserare”?
Implementera olika API Gateway-auktoriserare, inklusive anpassade Lambda-auktoriserare och JWT-auktoriserare, för robust autentisering. Ni övar på Serverlös backend med AWS Lambda & API Gateway med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Serverlös backend med AWS Lambda & API Gateway?
Du behöver inga förkunskaper. Utbildningen i Serverlös backend med AWS Lambda & API Gateway på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”API Gateway-auktoriserare”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Serverlös backend med AWS Lambda & API Gateway-lektionen?
Ja. Varje Serverlös backend med AWS Lambda & API Gateway-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- IAM-roller och behörigheter
- API Gateway-auktoriserare
- Skydda Lambda med VPC
- Skydda hemligheter med AWS Secrets Manager