Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Kubernetes Service (AKS) obsługuje uwierzytelnianie ustrukturyzowane, co umożliwia skonfigurowanie zewnętrznych dostawców tożsamości na potrzeby uwierzytelniania użytkowników na serwerze interfejsu API Kubernetes. Ta funkcja jest oparta na nadrzędnej konfiguracji uwierzytelniania ustrukturyzowanego platformy Kubernetes. Usługa AKS implementuje tę funkcję za pośrednictwem modułów uwierzytelniania JSON Web Token (JWT), które weryfikują tokeny od zewnętrznych dostawców tożsamości zgodnie z konfiguracją. W przypadku uwierzytelniania ustrukturyzowanego organizacje mogą integrować usługę AKS z istniejącą infrastrukturą tożsamości poza identyfikatorem Entra firmy Microsoft.
Ten artykuł zawiera omówienie sposobu używania zewnętrznych dostawców tożsamości z uwierzytelnianiem ustrukturyzowanym usługi AKS, w tym kluczowych pojęć, zagadnień dotyczących zabezpieczeń i następnych kroków konfiguracji.
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Zalety autoryzacji z wykorzystaniem zewnętrznego dostawcy tożsamości
Uwierzytelnianie ustrukturyzowane rozszerza możliwości AKS, wykraczając poza tradycyjną integrację z Microsoft Entra ID, obsługując dostawców tożsamości zgodnych ze standardem OpenID Connect (OIDC). Ta funkcja umożliwia:
- Uwierzytelnianie użytkowników z zewnętrznymi dostawcami tożsamości, takimi jak Google, GitHub lub dowolny dostawca zgodny ze standardem OIDC.
- Utrzymywanie scentralizowanego zarządzania tożsamościami w całej organizacji.
- Implementowanie niestandardowych reguł walidacji oświadczeń i mapowania użytkowników.
- Obsługa wielu dostawców tożsamości jednocześnie w jednym klastrze.
Przepływ uwierzytelniania zewnętrznego dostawcy tożsamości
Gdy użytkownik próbuje uzyskać dostęp do serwera interfejsu API Kubernetes przy użyciu uwierzytelniania strukturalnego z zewnętrznym dostawcą tożsamości, przepływ uwierzytelniania i autoryzacji jest następujący:
-
Uwierzytelnianie: Następujące kroki weryfikują tożsamość użytkownika:
- Prezentacja tokenu: użytkownik przedstawia token JWT od skonfigurowanego dostawcy tożsamości.
- Weryfikacja tokenu: serwer interfejsu API weryfikuje podpis, wystawcę, odbiorców i wygaśnięcie tokenu.
- Przetwarzanie oświadczeń: stosowane są niestandardowe reguły sprawdzania poprawności oświadczeń, aby upewnić się, że token spełnia Twoje wymagania.
- Mapowanie użytkowników: oświadczenia są mapowane na tożsamość użytkownika platformy Kubernetes (nazwa użytkownika, grupy i dodatkowe atrybuty).
- Autoryzacja: Standard Kubernetes Role-Based Access Control (RBAC) określa, jakie akcje może wykonać uwierzytelniony użytkownik.
Obsługiwani dostawcy tożsamości
Chociaż zintegrowane uwierzytelnianie w AKS zezwala na dowolnego dostawcę tożsamości zgodnego ze standardem OIDC, typowi dostawcy obejmują:
- GitHub: uwierzytelnianie przy użyciu tożsamości usługi GitHub lub funkcji GitHub Actions.
- Google OAuth 2.0: użyj kont Google do uwierzytelniania.
- Ogólne dostawcy OIDC: dowolny dostawca wdrażający standardy OIDC.
- Niestandardowe rozwiązania tożsamości: implementacje OIDC specyficzne dla organizacji.
Uwaga / Notatka
Identyfikator Entra firmy Microsoft nie jest obsługiwany jako zewnętrzny dostawca tożsamości za pośrednictwem uwierzytelniania ustrukturyzowanego. Użyj istniejącej integracji firmy Microsoft Entra na potrzeby uwierzytelniania identyfikatora Entra firmy Microsoft.
Wymagania dotyczące zewnętrznych dostawców tożsamości
Zewnętrzni dostawcy tożsamości muszą spełniać następujące wymagania, aby działać z ustrukturyzowanym uwierzytelnianiem w AKS:
- Obsługa standardów OIDC.
- Zapewnij publicznie dostępne punkty końcowe wykrywania OIDC.
- Wystawiaj tokeny JWT z odpowiednimi oświadczeniami.
- Dostęp z węzłów klastra AKS do weryfikacji tokenu.
Uwierzytelnianie JWT dla ustrukturyzowanego uwierzytelniania w AKS
Uwierzytelniacz JWT to obiekt konfiguracji, który definiuje sposób, w jaki AKS weryfikuje i przetwarza tokeny od zewnętrznego dostawcy tożsamości. Na przykład usługa AKS oczekuje tokenu identyfikatora (JWT), którego aud oświadczenie (publiczność) odpowiada wartości publiczności, którą skonfigurujesz dla uwierzytelniającego, takiego jak "my-api", lub identyfikator klienta OAuth. Każdy moduł uwierzytelniania JWT zawiera następujące składniki:
- Konfiguracja wystawcy: określa adres URL wystawcy OIDC i oczekiwane wartości odbiorców tokenów.
- Reguły weryfikacji oświadczeń: używa wyrażeń CEL (Common Expression Language), aby wymusić niestandardową logikę walidacji na oświadczeniach tokenu.
- Mapowania roszczeń: Definiuje sposób mapowania roszczeń JWT do atrybutów użytkownika Kubernetes, takich jak nazwa użytkownika, grupy i dodatkowe pola.
- Reguły walidacji użytkownika: stosuje dodatkową logikę walidacji po mapowaniu oświadczeń, aby dodatkowo ograniczyć lub zezwolić na dostęp.
Wyrażenia CEL na potrzeby walidacji i mapowania oświadczeń
Uwierzytelnianie ustrukturyzowane używa wyrażeń CEL na potrzeby elastycznej weryfikacji i mapowania oświadczeń. CEL zapewnia bezpieczne środowisko piaskownicy do oceny niestandardowej logiki w stosunku do roszczeń JWT.
Przykładowe wyrażenia CEL:
// 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)
Najlepsze rozwiązania dotyczące zabezpieczeń
Podczas korzystania z zewnętrznych dostawców tożsamości z uwierzytelnianiem ustrukturyzowanym za pomocą usługi AKS należy pamiętać o następujących najlepszych rozwiązaniach w zakresie zabezpieczeń:
- Użyj silnej weryfikacji oświadczeń: zaimplementuj kompleksowe reguły walidacji, aby upewnić się, że akceptowane są tylko autoryzowane tokeny.
- Ogranicz zakres tokenów: skonfiguruj dostawcę tożsamości, aby wystawiał tokeny z minimalnymi wymaganymi oświadczeniami.
- Regularna rotacja: Regularnie wymieniaj tajne klucze i certyfikaty klienta.
-
Monitorowanie dostępu: włącz dzienniki zasobów i włącz
kube-apiserverdzienniki, aby sprawdzić potencjalne problemy ze skonfigurowanymi modułami uwierzytelniania JWT i śledzić zdarzenia uwierzytelniania. - Konfiguracje testowe: najpierw zweryfikuj konfigurację uwierzytelniania JWT w środowisku nieprodukcyjnym.
Zagadnienia dotyczące zabezpieczeń
Podczas korzystania z zewnętrznych dostawców tożsamości z uwierzytelnianiem ustrukturyzowanym za pomocą usługi AKS należy pamiętać o następujących kwestiach dotyczących zabezpieczeń:
-
Wymagania dotyczące prefiksu: Wszystkie nazwy użytkowników i grupy mapowane za pomocą uwierzytelniania ustrukturyzowanego muszą być poprzedzone prefiksem,
aks:jwt:aby zapobiec konfliktom z innymi metodami uwierzytelniania i kontami systemowymi. -
Dostęp do sieci: punkty końcowe dostawcy tożsamości muszą być dostępne z następujących lokalizacji:
- Węzły klastra AKS do weryfikacji tokenu.
- Systemy klienckie na potrzeby pozyskiwania tokenów.
- Wszystkie ścieżki sieciowe związane z przepływem uwierzytelniania.
-
Warstwy walidacji: Uwierzytelnianie ustrukturyzowane zapewnia wiele warstw weryfikacji:
- Weryfikacja podpisu tokenu zapewnia autentyczność tokenu.
- Standardowa weryfikacja oświadczeń weryfikuje wystawcę, odbiorcę i wygaśnięcie.
- Walidacja oświadczeń niestandardowych spełnia specyficzne wymagania organizacji.
- Weryfikacja użytkownika: ostateczna kontrola po mapowaniu oświadczeń.
Treści powiązane
Aby uzyskać więcej informacji na temat uwierzytelniania ustrukturyzowanego i powiązanych funkcji, zobacz następujące zasoby: