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.
Dotyczy: ✔️ AKS Automatic AKS Standard ✔️
W tym artykule opisano, jak utworzyć wystawcę OpenID Connect (OIDC) dla klastra Azure Kubernetes Service (AKS) i zarządzać nim. Wystawca OIDC umożliwia klastrowi usługi AKS integrację z dostawcami tożsamości, takimi jak Microsoft Entra ID, dzięki czemu można bezpiecznie uwierzytelnić się i zapewnić możliwości logowania jednokrotnego dla aplikacji działających w klastrze.
W przypadku większości obciążeń produkcyjnych AKS Automatic jest zalecanym domyślnym rozwiązaniem AKS. AKS Automatic jest domyślnie gotowa do użytku produkcyjnego i obejmuje wystawcę tokenów OIDC jako wstępnie skonfigurowaną funkcję zabezpieczeń. W warstwie AKS Standard działanie emitenta OIDC zależy od wersji platformy Kubernetes i stanu klastra, a w razie potrzeby można je włączyć ręcznie.
Aby dowiedzieć się więcej o usłudze AKS Automatic, zobacz Co to jest Azure Kubernetes Service (AKS) Automatic?
Wystawca OIDC w AKS Automatic i AKS Standard
Oba tryby klastra AKS obsługują wystawcę tokenów OIDC, ale sposób konfiguracji jest inny:
- AKS Automatic: wystawca tokenów OIDC jest wstępnie skonfigurowany.
- AKS Standard: Może być konieczne jawne włączenie wystawcy tokenów OIDC, w zależności od wersji i od tego, czy jest on już skonfigurowany.
W przypadku większości scenariuszy produkcyjnych zacznij od usługi AKS Automatic, aby użyć domyślnych ustawień gotowych do produkcji i zmniejszyć nakład pracy operacyjnej.
Informacje o OpenID Connect (OIDC) w AKS
OpenID Connect (OIDC) rozszerza protokół autoryzacji OAuth 2.0 do użycia jako inny protokół uwierzytelniania wystawiony przez Microsoft Entra ID. OIDC umożliwia włączanie logowania jednokrotnego między aplikacjami z obsługą protokołu OAuth w klastrze usługi Azure Kubernetes Service (AKS) przy użyciu tokenu zabezpieczającego nazywanego tokenem identyfikatora. Możesz włączyć wydawcę OIDC na swoich klastrach AKS, co pozwala Microsoft Entra ID (lub innej platformie zarządzania tożsamościami i dostępem dostawcy chmury) odkryć publiczne klucze podpisywania serwera API.
Wymagania wstępne
Wymagania dotyczące platformy:
- Azure CLI w wersji 2.42.0 lub nowszej (
az --versionaby sprawdzić wersję, zainstalować lub uaktualnić Azure CLI w razie potrzeby). - Platforma Kubernetes w wersji 1.22 lub nowszej.
Zachowanie specyficzne dla wersji (AKS Standard):
- Wystawca OIDC jest domyślnie włączony (flaga
--enable-oidc-issuernie jest wymagana) dla nowo utworzonych klastrów AKS w Kubernetes w wersji 1.34 lub nowszej. - W przypadku istniejących klastrów funkcja OIDC nie jest domyślnie włączona niezależnie od wersji platformy Kubernetes i wymaga ręcznego włączenia.
- Automatyczne rozszerzenie tokenu wyłączone (
--service-account-extend-token-expiration=false) dla platformy Kubernetes w wersji 1.30.0 lub nowszej. - Jeśli wystawca OIDC nie został wcześniej skonfigurowany, ręczne włączanie jest wymagane dla wersji platformy Kubernetes wcześniejszych niż 1.34.
- Przewidywane tokeny konta usługi są wymagane dla klastrów Kubernetes w wersji 1.30 lub nowszej.
Ważne zagadnienia:
- Nie można wyłączyć wystawcy OIDC po włączeniu.
- Włączenie wystawcy OIDC w istniejących klastrach wymaga ponownego uruchomienia serwera API (krótki przestój).
- Maksymalny okres istnienia tokenu wynosi 24 godziny (jeden dzień).
Utwórz klaster AKS za pomocą wystawcy OIDC
AKS Automatic (zalecana wartość domyślna dla środowiska produkcyjnego)
W usłudze AKS Automatic wystawca OIDC jest wstępnie skonfigurowany. Nie potrzebujesz osobnego etapu włączania obsługi OIDC issuer.
Utwórz klaster automatyczny usługi AKS, wykonując czynności opisane w przewodniku Szybki start:
AKS Standard
Utwórz klaster AKS w warstwie Standard za pomocą polecenia az aks create z parametrem --enable-oidc-issuer.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Create the AKS Standard cluster with OIDC issuer enabled
az aks create \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Uwaga / Notatka
W klastrach AKS Standard utworzonych za pomocą platformy Kubernetes w wersji 1.34 lub nowszej wystawca OIDC jest domyślnie włączony dla nowych klastrów.
Włącz wystawcę OIDC w istniejącym klastrze AKS Standard
Włącz wystawcę tokenów OIDC w istniejącym klastrze AKS Standard za pomocą polecenia az aks update z parametrem --enable-oidc-issuer.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Enable the OIDC issuer on the existing AKS Standard cluster
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--enable-oidc-issuer
Uzyskiwanie adresu URL emitenta OIDC
Użyj polecenia az aks show do uzyskania adresu URL wystawcy OIDC.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Get the OIDC issuer URL
az aks show \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP \
--query "oidcIssuerProfile.issuerUrl" \
-o tsv
Domyślnie wystawca używa podstawowego adresu URL https://{region}.oic.prod-aks.azure.com, przy czym wartość {region} odpowiada lokalizacji, w której wdrożono klaster AKS.
Obracanie klucza podpisywania OIDC
Ważne
Podczas rotacji kluczy podpisywania OIDC należy pamiętać o następujących kwestiach:
- Jeśli chcesz natychmiast unieważnić stary klucz po rotacji kluczy, musisz dwukrotnie zmienić klucz OIDC i ponownie uruchomić zasobniki przy użyciu przypisanych tokenów konta usługi.
- Zarówno stare, jak i nowe klucze pozostają ważne przez 24 godziny po rotacji.
- Token należy odświeżyć ręcznie co 24 godziny (chyba że używasz bibliotek klienckich usługi Azure Identity, które są odświeżane automatycznie).
Obróć klucz OIDC za pomocą polecenia az aks oidc-issuer.
# Set environment variables
RESOURCE_GROUP=<your-resource-group-name>
CLUSTER_NAME=<your-aks-cluster-name>
# Rotate the OIDC signing keys
az aks oidc-issuer rotate-signing-keys \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP
Pobierz dokument odnajdywania
Przejdź w przeglądarce do URL wystawcy OIDC i dodaj /.well-known/openid-configuration do adresu URL.
Przykład: https://eastus.oic.prod-aks.azure.com/.well-known/openid-configuration
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
Pobierz dokument zestawu JWK
W przeglądarce przejdź do jwks_uri z dokumentu wykrywania.
Przykład: https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks
Dane wyjściowe powinny przypominać następujące przykładowe dane wyjściowe:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
Uwaga / Notatka
Podczas rotacji klucza dokument odnajdywania zawiera jeden dodatkowy klucz.