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.
Wtyczka kubelogin na platformie Azure to wtyczka poświadczeń client-go, która implementuje uwierzytelnianie Microsoft Entra. Wtyczka kubelogin oferuje funkcje, które nie są dostępne w narzędziu wiersza polecenia kubectl. Aby uzyskać więcej informacji, zobacz wprowadzenie do rozwiązania kubelogin i wprowadzenie do narzędzia kubectl.
Ten artykuł zawiera omówienie i przykłady użycia platformy Kubelogin do obsługiwanych metod uwierzytelniania Microsoft Entra zalecanych dla usługi AKS.
Ograniczenia uwierzytelniania przy użyciu kubelogin w AKS
- Grupy utworzone w usłudze Microsoft Entra są uwzględniane tylko przez ich wartość ObjectID , a nie przez ich nazwę wyświetlaną. Polecenie
sAMAccountNamejest dostępne tylko dla grup synchronizowanych z lokalnej usługi Active Directory systemu Windows Server.
- Metoda uwierzytelniania nazwy głównej usługi działa tylko z zarządzaną integracją Microsoft Entra ID, a nie ze starszą integracją Microsoft Entra ID.
- Jednostka usługi może należeć do maksymalnie 200 grup firmy Microsoft Entra. Jeśli masz więcej niż 200 grup, rozważ użycie ról aplikacji.
- Metoda uwierzytelniania kodu urządzenia nie działa, gdy zasady dostępu warunkowego firmy Microsoft Entra są ustawione w dzierżawie Microsoft Entra. W tym scenariuszu zamiast tego użyj uwierzytelniania interakcyjnego przeglądarki internetowej.
- Metoda uwierzytelniania Azure CLI jest kompatybilna tylko z Microsoft Entra.
Jak działa uwierzytelnianie kubelogin w usłudze AKS
Klastry AKS z uruchomioną platformą Kubernetes w wersji 1.24 lub nowszej automatycznie używają formatu wtyczki exec kubelogin. Klastry z systemem Kubernetes w wersjach starszych niż 1.24 wymagają ręcznej konwersji na ten format.
W przypadku większości interakcji z kubelogin użyj podpolecenia convert-kubeconfig. Podpolecenie używa pliku kubeconfig określonego w --kubeconfig lub w zmiennej środowiskowej KUBECONFIG, aby przekształcić końcowy plik kubeconfig do formatu exec na podstawie określonej metody uwierzytelniania.
Metody uwierzytelniania implementowane przez rozwiązanie kubelogin to przepływy udzielania tokenów entra OAuth 2.0 firmy Microsoft. Zachowanie pamięci podręcznej zależy od metody uwierzytelniania. Kod urządzenia, interaktywne logowanie przez przeglądarkę internetową oraz przepływ Resource Owner Password Credentials (ROPC) przechowują rekordy uwierzytelniania w katalogu pamięci podręcznej kubelogin. Metody, takie jak Azure CLI i Azure Developer CLI, używają pamięci podręcznej zarządzanej przez odpowiednie narzędzie wiersza poleceń zamiast pamięci podręcznej kubelogin.
Uwierzytelnianie kodu urządzenia
Kod urządzenia to domyślna metoda uwierzytelniania dla convert-kubeconfig podpolecenia. Ta metoda uwierzytelniania wyświetla kod urządzenia, który umożliwia użytkownikowi zalogowanie się z sesji przeglądarki.
Uwaga
Przed wprowadzeniem wtyczek kubelogin i exec metoda uwierzytelniania platformy Azure w narzędziu kubectl obsługiwała tylko przepływ kodu urządzenia. Użyto wcześniejszej wersji biblioteki, która generuje token z audience oświadczeniem z prefiksem spn: . Nie jest ona zgodna z Microsoft Entra, która używa przepływu on-behalf-of (OBO). Po uruchomieniu convert-kubeconfig podpolecenia kubelogin usuwa spn: prefiks z oświadczenia odbiorców.
Parametry uwierzytelniania kodu urządzenia
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem kodu urządzenia:
| Parameter | Description |
|---|---|
-l devicecode (opcjonalny) |
Określa metodę uwierzytelniania kubelogin. Ten parametr jest opcjonalny, ponieważ kod urządzenia jest metodą domyślną. |
--legacy |
Używa starszego zachowania dla klastrów skonfigurowanych ze starszą integracją Microsoft Entra ID. Jeśli plik kubeconfig jest przeznaczony dla takiego klastra, narzędzie kubelogin automatycznie dodaje flagę --legacy . |
--cache-dir |
Zmienia domyślną ścieżkę katalogu pamięci podręcznej tokenu, która to ${HOME}/.kube/cache/kubelogin. |
Uwierzytelnianie CLI platformy Azure
Metoda uwierzytelniania interfejsu wiersza polecenia platformy Azure (polecenie: -l azurecli) używa kontekstu logowania, który interfejs wiersza polecenia platformy Azure ustanawia w celu uzyskania tokenu dostępu. Token jest wystawiany w tej samej dzierżawie Microsoft Entra co az login. kubelogin nie zapisuje tokenów w pliku pamięci podręcznej tokenów, ponieważ Azure CLI już nimi zarządza.
Parametry uwierzytelniania CLI platformy Azure
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem interfejsu wiersza polecenia platformy Azure:
| Parameter | Description |
|---|---|
-l azurecli |
Określa metodę uwierzytelniania kubelogin. |
--azure-config-dir |
Określa katalog konfiguracji interfejsu wiersza polecenia platformy Azure. Katalog domyślny to ${HOME}/.azure. |
Zaloguj się do Azure
Zaloguj się do Azure przy użyciu az login polecenia .
az login
Interakcyjne uwierzytelnianie przeglądarki internetowej
Interaktywna metoda uwierzytelniania w przeglądarce internetowej (polecenie: -l interactive) automatycznie otwiera przeglądarkę internetową w celu zalogowania użytkownika. Po pomyślnym uwierzytelnieniu użytkownika przeglądarka automatycznie przekierowuje do lokalnego serwera WWW z użyciem zweryfikowanych danych uwierzytelniających. Ta metoda uwierzytelniania jest zgodna z zasadami dostępu warunkowego.
Możesz użyć tokenu nośnikowego lub tokenu Proof-of-Possession (PoP) z tą metodą uwierzytelniania.
Parametry uwierzytelniania tokenu elementu nośnego
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem tokenu elementu nośnego:
| Parameter | Description |
|---|---|
-l interactive |
Określa metodę uwierzytelniania kubelogin. |
--cache-dir |
Zmienia domyślną ścieżkę katalogu pamięci podręcznej tokenu, która to ${HOME}/.kube/cache/kubelogin. |
Parametry uwierzytelniania tokenu poP
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem tokenu PoP:
| Parameter | Description |
|---|---|
-l interactive |
Określa metodę uwierzytelniania kubelogin. |
--pop-enabled |
Włącza uwierzytelnianie tokenu poP. |
--pop-claims |
Określa atrybuty tokenu PoP w formacie pary klucz-wartość. Na przykład u=/ARM/ID/OF/CLUSTER. |
Uwierzytelnianie głównego elementu usługi
Jednostka usługi (polecenie: -l spn) metoda uwierzytelniania używa jednostki usługi do logowania użytkownika. Poświadczenie można podać, ustawiając zmienną środowiskową lub używając poświadczenia jako argumentu wiersza polecenia. Obsługiwane poświadczenia, których można użyć, to hasło lub certyfikat klienta wymiany informacji osobistych (PFX).
Parametry uwierzytelniania jednostki usługi
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem jednostki usługi:
| Parameter | Description |
|---|---|
-l spn |
Określa metodę uwierzytelniania kubelogin. |
--client-id |
Identyfikator aplikacji (client-id) jednostki usługi. |
--client-secret |
Tajny klucz klienta pryncypała usługi. |
Uwierzytelnianie tożsamości zarządzanej
Użyj metody uwierzytelniania tożsamości zarządzanej (polecenie: -l msi) dla aplikacji łączących się z zasobami obsługującymi uwierzytelnianie Firmy Microsoft Entra. Przykłady obejmują uzyskiwanie dostępu do zasobów Azure, takich jak maszyna wirtualna Azure, Virtual Machine Scale Sets lub Azure Cloud Shell.
Możesz użyć domyślnej tożsamości zarządzanej przypisanej do zasobu lub określonej tożsamości zarządzanej przypisanej przez użytkownika.
Parametry uwierzytelniania tożsamości zarządzanej
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem tożsamości zarządzanej:
| Parameter | Description |
|---|---|
-l msi |
Określa metodę uwierzytelniania kubelogin. |
--client-id |
Identyfikator aplikacji (client-id) tożsamości zarządzanej przypisanej przez użytkownika. Jeśli nie określisz tego parametru, zostanie użyta domyślna tożsamość zarządzana. |
Uwierzytelnianie tożsamości obciążenia roboczego
Metoda uwierzytelniania tożsamości obciążenia roboczego (polecenie: -l workloadidentity) używa poświadczeń tożsamości, które są sfederowane z usługą Microsoft Entra, aby uwierzytelniać dostęp do klastrów AKS. Metoda używa zintegrowanego uwierzytelniania firmy Microsoft Entra. Działa przez ustawienie następujących zmiennych środowiskowych:
| Variable | Description |
|---|---|
AZURE_CLIENT_ID |
Identyfikator aplikacji Microsoft Entra, który jest sfederowany z tożsamością obciążenia. |
AZURE_TENANT_ID |
Identyfikator dzierżawcy Microsoft Entra. |
AZURE_FEDERATED_TOKEN_FILE |
Plik zawierający podpisaną asercję tożsamości obciążenia roboczego, na przykład token (JWT) projekcji konta usługi platformy Kubernetes. |
AZURE_AUTHORITY_HOST |
Podstawowy adres URL autorytetu Microsoft Entra. Na przykład https://login.microsoftonline.com/. |
Możesz użyć tożsamości obciążenia do uzyskiwania dostępu do klastrów Kubernetes z systemów CI/CD, takich jak GitHub lub Argo CD, bez przechowywania poświadczeń jednostki usługi w systemach zewnętrznych. Aby skonfigurować federację openID Connect (OIDC) z usługi GitHub, zobacz przykład federacji OIDC.
Parametry uwierzytelniania tożsamości dla obciążenia roboczego
W poniższej tabeli przedstawiono parametry, których można używać z uwierzytelnianiem tożsamości obciążenia:
| Parameter | Description |
|---|---|
-l workloadidentity |
Określa metodę uwierzytelniania kubelogin. |
Uwierzytelnianie w usłudze Azure Developer CLI
Metoda uwierzytelniania interfejsu wiersza polecenia dewelopera Azure (polecenie: -l azd) używa kontekstu logowania, który Azure interfejs wiersza polecenia dewelopera ustanawia w celu uzyskania tokenu dostępu. Token jest wystawiany w tej samej dzierżawie Microsoft Entra co azd auth login. kubelogin nie zapisuje tokenów w swojej pamięci podręcznej tokenów, ponieważ zarządza nimi narzędzie Azure Developer CLI.
Ta metoda uwierzytelniania działa tylko z zarządzaną usługą Microsoft Entra w usłudze AKS. Aby uzyskać więcej informacji, zobacz omówienie interfejsu wiersza polecenia dewelopera Azure.
Uwierzytelnianie w usłudze Azure Pipelines
Metoda uwierzytelniania Azure Pipelines (polecenie: -l azurepipelines) używa połączenia usługi Azure Resource Manager i tokenu dostępu systemu potoku do uwierzytelniania. Ta metoda działa tylko w Azure Pipelines. Potok musi mieć połączenie z usługą Azure Resource Manager oraz zezwalać skryptom na dostęp do tokenu OAuth.
Jeśli używasz zadania AzureCLI@2 z połączeniem usługi Azure Resource Manager, kubelogin może używać identyfikatora dzierżawy, identyfikatora klienta i identyfikatora połączenia usługi udostępnianych przez Azure Pipelines w postaci zmiennych środowiskowych. Aby uzyskać więcej informacji, zobacz połączenia usług Azure Pipelines.
Warning
kubelogin obsługuje również metodę uwierzytelniania typu Resource Owner Password Credentials (ROPC). Microsoft zaleca, aby nie używać ropc, ponieważ jest on niezgodny z uwierzytelnianiem wieloskładnikowym i niektórymi scenariuszami tożsamości hybrydowej. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące Platforma tożsamości Microsoft ROPC.
Eksportowanie ścieżki pliku kubeconfig
Przed uruchomieniem podpolecenia convert-kubeconfig, wyeksportuj ścieżkę pliku kubeconfig do zmiennej środowiskowej KUBECONFIG. Przykład:
export KUBECONFIG=/path/to/kubeconfig
Konwertowanie pliku kubeconfig
convert-kubeconfig Uruchom polecenie podrzędne, aby przekonwertować plik kubeconfig, aby użyć wtyczki exec dla wybranej metody uwierzytelniania.
kubelogin convert-kubeconfig
kubelogin convert-kubeconfig -l azurecli
# Bearer token authentication
kubelogin convert-kubeconfig -l interactive
# Proof-of-Possession (PoP) token authentication
kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"
- Używanie zmiennych środowiskowych
- Używanie argumentów wiersza polecenia
- Używanie certyfikatu klienta
- Używanie tokenu PoP ze zmiennymi środowiskowymi
convert-kubeconfigUruchom polecenie podrzędne, aby przekonwertować plik kubeconfig, aby użyć wtyczki exec.kubelogin convert-kubeconfig -l spnUstaw zmienne środowiskowe dla identyfikatora klienta i klucza tajnego klienta lub certyfikatu klienta. Przykład:
export AZURE_CLIENT_ID=<service-principal-client-id> export AZURE_CLIENT_SECRET=<service-principal-client-secret>
# Default managed identity authentication
kubelogin convert-kubeconfig -l msi
# Specific managed identity authentication
kubelogin convert-kubeconfig -l msi --client-id <managed-identity-client-id>
kubelogin convert-kubeconfig -l workloadidentity
Konwertowanie pliku kubeconfig przy użyciu interfejsu wiersza polecenia dewelopera Azure
Zaloguj się za pomocą narzędzia Azure Developer CLI.
azd auth loginSkonwertuj plik kubeconfig tak, aby używał metody uwierzytelniania Azure Developer CLI.
kubelogin convert-kubeconfig -l azd
Konwertowanie pliku kubeconfig w Azure Pipelines
W zadaniu korzystającym z połączenia usługi Azure Resource Manager AzureCLI@2 przekonwertuj plik kubeconfig tak, aby używał uwierzytelniania usługi Azure Pipelines.
kubelogin convert-kubeconfig -l azurepipelines
Usuwanie buforowanych tokenów
Usuń buforowane tokeny przy użyciu kubelogin remove-cache-dir polecenia .
kubelogin remove-cache-dir
Pobieranie informacji o węźle
Uzyskaj informacje o węźle przy użyciu kubectl get polecenia .
kubectl get nodes
Jak używać identyfikatorów aplikacji kubelogin w usłudze AKS
Usługa AKS używa pary aplikacji Microsoft Entra. Te identyfikatory aplikacji są takie same we wszystkich środowiskach.
| Application | Identyfikator aplikacji (GUID) | Użyto w |
|---|---|---|
Aplikacja serwera usługi AKS (--server-id) |
6dae42f8-4368-4678-94ff-3960e28e3630 |
Odbiorca tokenu dla wszystkich obsługiwanych metod uwierzytelniania kubelogin podczas uzyskiwania dostępu do AKS. |
Publiczna aplikacja kliencka usługi AKS (--client-id) |
80faf920-1908-4b52-b5ef-a8e7bedfc67a |
Kod urządzenia, interaktywna przeglądarka internetowa i uwierzytelnianie ROPC. |
Gdy wywołujesz kubelogin get-token bezpośrednio w przypadku AKS, określ identyfikator aplikacji serwera AKS za pomocą --server-id. Aby zapoznać się z parametrami specyficznymi dla trybu, zobacz dokumentację narzędzia kubeloginget-token.
Uwaga
Identyfikator publicznej aplikacji klienckiej usługi AKS w tej sekcji to wartość --client-id używana na potrzeby uwierzytelniania za pomocą kodu urządzenia, interaktywnego logowania w przeglądarce internetowej oraz uwierzytelniania ROPC. W przypadku uwierzytelniania za pomocą jednostki usługi i tożsamości zarządzanej element --client-id identyfikuje natomiast jednostkę usługi lub tożsamość zarządzaną przypisaną przez użytkownika.
Na przykład uzyskaj token przy użyciu uwierzytelniania kodu urządzenia i identyfikatorów aplikacji usługi AKS:
kubelogin get-token \
--login devicecode \
--server-id 6dae42f8-4368-4678-94ff-3960e28e3630 \
--client-id 80faf920-1908-4b52-b5ef-a8e7bedfc67a \
--tenant-id <microsoft-entra-tenant-id>
Treści powiązane
- Dowiedz się, jak zintegrować usługę AKS z firmą Microsoft Entra w artykule z instrukcjami dotyczącymi integracji z firmą Microsoft Entra .
- Aby rozpocząć pracę z tożsamościami zarządzanymi w usłudze AKS, zobacz Używanie tożsamości zarządzanej w usłudze AKS.
- Aby rozpocząć korzystanie z tożsamości obciążeń w usłudze AKS, zobacz Korzystanie z tożsamości obciążeń w usłudze AKS.