Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Kubernetes Service (AKS) stöder strukturerad autentisering, vilket gör att du kan konfigurera externa identitetsprovidrar för att autentisera användare till Kubernetes API-servern. Den här funktionen baseras på den överordnade Kubernetes-strukturerade autentiseringskonfigurationen. AKS implementerar den här funktionen via JWT-autentisering (JSON Web Token) som validerar token från externa identitetsprovidrar enligt din konfiguration. Med strukturerad autentisering kan organisationer integrera AKS med sin befintliga identitetsinfrastruktur utöver Microsoft Entra-ID.
Den här artikeln innehåller en översikt över hur du använder externa identitetsprovidrar med AKS-strukturerad autentisering, inklusive viktiga begrepp, säkerhetsöverväganden och nästa steg för konfiguration.
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
Fördelar med autentisering med extern identitetsprovider
Strukturerad autentisering utökar AKS utöver traditionell Microsoft Entra-ID-integrering genom att stödja OIDC-identitetsprovidrar (Branschstandard OpenID Connect). Med den här funktionen kan du göra följande:
- Autentisera användare med externa identitetsprovidrar som Google, GitHub eller någon OIDC-kompatibel leverantör.
- Underhålla centraliserad identitetshantering i hela organisationen.
- Implementera regler för anpassad anspråksverifiering och användarmappning.
- Stöd för flera identitetsprovidrar samtidigt i ett enda kluster.
Autentiseringsflöde för extern identitetsprovider
När en användare försöker komma åt Kubernetes API-servern med strukturerad autentisering med en extern identitetsprovider är autentiserings- och auktoriseringsflödet följande:
-
Autentisering: Följande steg verifierar användarens identitet:
- Tokenpresentation: Användaren presenterar en JWT-token från sin konfigurerade identitetsprovider.
- Tokenverifiering: API-servern validerar tokens signatur, utfärdare, målgrupp och förfallodatum.
- Anspråksbearbetning: Anpassade valideringsregler för anspråk tillämpas för att säkerställa att token uppfyller dina krav.
- Användarmappning: Anspråk mappas till Kubernetes användaridentitet (användarnamn, grupper och extra attribut).
- Auktorisering: Standard Kubernetes Role-Based Access Control (RBAC) avgör vilka åtgärder den autentiserade användaren kan utföra.
Identitetsleverantörer som stöds
AkS-strukturerad autentisering tillåter alla OIDC-kompatibla identitetsprovider, men vanliga leverantörer inkluderar:
- GitHub: Autentisera med GitHub-identiteter eller GitHub Actions.
- Google OAuth 2.0: Använd Google-konton för autentisering.
- Generiska OIDC-leverantörer: Alla leverantörer som implementerar OIDC-standarder.
- Anpassade identitetslösningar: Organisationsspecifika OIDC-implementeringar.
Anmärkning
Microsoft Entra-ID stöds inte som extern identitetsprovider via strukturerad autentisering. Använd den befintliga Microsoft Entra-integreringen för Microsoft Entra-ID-autentisering.
Krav för externa identitetsprovidrar
Externa identitetsprovidrar måste uppfylla följande krav för att arbeta med AKS-strukturerad autentisering:
- Stöd för OIDC-standarder.
- Ange offentligt tillgängliga OIDC-identifieringsslutpunkter.
- Utfärda JWT-token med lämpliga anspråk.
- Vara tillgänglig från AKS-klusternoder för tokenverifiering.
JWT-auktoriseringar för strukturerad autentisering i AKS
En JWT-autentisering är ett konfigurationsobjekt som definierar hur AKS validerar och bearbetar token från en extern identitetsprovider. AKS förväntar sig till exempel en ID-token (JWT) vars anspråk (målgrupp) matchar det målgruppsvärde aud som du konfigurerar för autentiseringen, till exempel "my-api", eller ett OAuth-klient-ID. Varje JWT-autentisering innehåller följande komponenter:
- Utfärdarkonfiguration: Anger OIDC-utfärdarens URL och förväntade målgruppsvärden för token.
- Regler för anspråksverifiering: Använder CEL-uttryck (Common Expression Language) för att framtvinga anpassad valideringslogik på tokenanspråk.
- Anspråksmappningar: Definierar hur JWT-anspråk mappas till Kubernetes-användarattribut som användarnamn, grupper och extra fält.
- Regler för användarverifiering: Tillämpar extra valideringslogik efter anspråksmappning för att ytterligare begränsa eller tillåta åtkomst.
CEL-uttryck för anspråksverifiering och mappning
Strukturerad autentisering använder CEL-uttryck för flexibel anspråksverifiering och mappning. CEL tillhandahåller en säker sandbox-miljö för utvärdering av anpassad logik mot JWT-anspråk.
Exempel på CEL-uttryck:
// Validate that the 'sub' claim exists
has(claims.sub)
// Map username with AKS prefix
'aks:jwt:' + claims.sub
// Map groups from comma-separated string
claims.groups.split(',').map(g, 'aks:jwt:' + g)
// Conditional mapping based on claim verification
'aks:jwt:' + (claims.email_verified ? claims.email : claims.sub)
Metodtips för säkerhet
Tänk på följande säkerhetsmetoder när du använder externa identitetsprovidrar med AKS-strukturerad autentisering:
- Använd stark anspråksverifiering: Implementera omfattande valideringsregler för att säkerställa att endast auktoriserade token godkänns.
- Begränsa tokenomfång: Konfigurera din identitetsprovider för att utfärda token med minimala nödvändiga anspråk.
- Regelbunden rotation: Rotera klienthemligheter och certifikat regelbundet.
-
Övervaka åtkomst: Aktivera resursloggar och aktivera
kube-apiserverloggar för att inspektera eventuella problem med de konfigurerade JWT-autentiseringarna och spåra autentiseringshändelser. - Testkonfigurationer: Verifiera din JWT-autentiseringskonfiguration i en icke-produktionsmiljö först.
Säkerhetsfrågor
Tänk på följande säkerhetsaspekter när du använder externa identitetsprovidrar med AKS-strukturerad autentisering:
-
Prefixkrav: Alla användarnamn och grupper som mappas via strukturerad autentisering måste föregås av
aks:jwt:för att förhindra konflikter med andra autentiseringsmetoder och systemkonton. -
Nätverksåtkomst: Identitetsproviderns slutpunkter måste vara tillgängliga från:
- AKS-klusternoder för tokenverifiering.
- Klientsystem för tokenförvärv.
- Alla nätverksvägar som ingår i autentiseringsflödet.
-
Valideringslager: Strukturerad autentisering innehåller flera valideringslager:
- Validering av tokensignatur garanterar tokens äkthet.
- Validering av standardanspråk verifierar utfärdare, målgrupp och förfallodatum.
- Validering av anpassade anspråk tillämpar organisationens specifika krav.
- Slutgiltiga kontroller för användarverifiering efter anspråksmappning.
Relaterat innehåll
Mer information om strukturerad autentisering och relaterade funktioner finns i följande resurser: