Tworzenie dostawcy openID Connect w usłudze Azure Kubernetes Service (AKS)

OpenID Connect (OIDC) rozszerza protokół autoryzacji OAuth 2.0 do użycia jako inny protokół uwierzytelniania wystawiony przez firmę Microsoft Entra ID. Za pomocą funkcji OIDC można włączyć logowanie jednokrotne 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. Za pomocą klastra usługi AKS można włączyć wystawcę OpenID Connect (OIDC), który umożliwia identyfikatorowi Entra firmy Microsoft lub innej platformie zarządzania tożsamościami i dostępem dostawcy usług w chmurze, aby odnaleźć publiczne klucze podpisywania serwera interfejsu API.

Usługa AKS automatycznie i okresowo obraca klucz. Jeśli nie chcesz czekać, możesz obrócić klucz ręcznie i natychmiast. Maksymalny okres istnienia tokenu wystawionego przez dostawcę OIDC wynosi jeden dzień.

Ostrzeżenie

Włączenie wystawcy OIDC w istniejącym klastrze powoduje zmianę bieżącego wystawcy tokenu konta usługi na nową wartość, co może spowodować czas usterki podczas ponownego uruchamiania serwera interfejsu API. Jeśli zasobniki aplikacji korzystające z tokenu usługi pozostają w stanie niepowodzenia po włączeniu wystawcy OIDC, zalecamy ręczne ponowne uruchomienie zasobników.

Z tego artykułu dowiesz się, jak utworzyć, zaktualizować wystawcę OIDC i zarządzać nim dla klastra.

Ważne

Po włączeniu wystawcy OIDC w klastrze wyłączenie go nie jest obsługiwane.

Token musi być okresowo odświeżany. Jeśli używasz zestawu SDK, rotacja jest automatyczna. W przeciwnym razie należy odświeżyć token ręcznie co 24 godziny.

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure w wersji 2.42.0 lub nowszej. Uruchom polecenie az --version , aby znaleźć swoją wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • Usługa AKS obsługuje wystawcę OIDC w wersji 1.22 lub nowszej.

Tworzenie klastra usługi AKS za pomocą wystawcy OIDC

Klaster usługi AKS można utworzyć przy użyciu polecenia az aks create z parametrem --enable-oidc-issuer , aby włączyć wystawcę OIDC. Poniższy przykład tworzy klaster o nazwie myAKSCluster z jednym węzłem w grupie myResourceGroup:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --enable-oidc-issuer \
    --generate-ssh-keys

Aktualizowanie klastra usługi AKS za pomocą wystawcy OIDC

Klaster usługi AKS można zaktualizować przy użyciu polecenia az aks update z parametrem --enable-oidc-issuer w celu włączenia wystawcy OIDC. Poniższy przykład aktualizuje klaster o nazwie myAKSCluster:

az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer 

Wyświetlanie adresu URL wystawcy OIDC

Aby uzyskać adres URL wystawcy OIDC, uruchom polecenie az aks show . Zastąp wartości domyślne nazwy klastra i nazwy grupy zasobów.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Domyślnie wystawca jest ustawiony tak, aby używał podstawowego adresu URL https://{region}.oic.prod-aks.azure.com, gdzie wartość parametru {region} jest zgodna z lokalizacją, w której wdrożony jest klaster usługi AKS.

Obracanie klucza OIDC

Aby obrócić klucz OIDC, uruchom polecenie az aks oidc-issuer . Zastąp wartości domyślne nazwy klastra i nazwy grupy zasobów.

az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup

Ważne

Po obróceniu klucza stary klucz (klucz1) wygasa po 24 godzinach. Zarówno stary klucz (klucz1), jak i nowy klucz (klucz2) są prawidłowe w okresie 24-godzinnym po rotacji. Jeśli chcesz natychmiast unieważnić stary klucz (klucz1), musisz dwukrotnie obrócić klucz OIDC i ponownie uruchomić zasobniki przy użyciu przewidywanych tokenów konta usługi. W przypadku tego procesu klucz2 i klucz3 są prawidłowe, a klucz1 jest nieprawidłowy.

Sprawdzanie kluczy OIDC

Uzyskiwanie adresu URL wystawcy OIDC

Aby uzyskać adres URL wystawcy OIDC, uruchom polecenie az aks show . Zastąp wartości domyślne nazwy klastra i nazwy grupy zasobów.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Dane wyjściowe powinny wyglądać podobnie do następujących:

https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/

Domyślnie wystawca jest ustawiony tak, aby używał podstawowego adresu URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}, gdzie wartość parametru {region} jest zgodna z lokalizacją, w której wdrożony jest klaster usługi AKS. Wartość {uuid} reprezentuje klucz OIDC, który jest losowo generowany identyfikator GUID dla każdego klastra, który jest niezmienny.

Pobieranie dokumentu odnajdywania

Aby uzyskać dokument odnajdywania, skopiuj adres URL https://(OIDC issuer URL).well-known/openid-configuration i otwórz go w przeglądarce.

Dane wyjściowe powinny wyglądać podobnie do następujących:

{
  "issuer": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/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"
  ]
}

Pobieranie dokumentu zestawu JWK

Aby uzyskać dokument zestawu JWK, skopiuj jwks_uri go z dokumentu odnajdywania i wklej go na pasku adresu przeglądarki.

Dane wyjściowe powinny wyglądać podobnie do następujących:

{
  "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"
    }
  ]
}

Podczas rotacji klucza w dokumencie odnajdywania znajduje się jeden inny klucz.

Następne kroki

  • Zobacz Konfigurowanie tworzenia relacji zaufania między aplikacją a zewnętrznym dostawcą tożsamości, aby zrozumieć, jak poświadczenia tożsamości federacyjnej tworzą relację zaufania między aplikacją w klastrze i zewnętrznym dostawcą tożsamości.
  • Przejrzyj Tożsamość obciążeń Microsoft Entra (wersja zapoznawcza). Ta metoda uwierzytelniania integruje się z natywnymi możliwościami platformy Kubernetes w celu federacji z dowolnymi zewnętrznymi dostawcami tożsamości w imieniu aplikacji.
  • Zobacz Bezpieczny ruch sieciowy zasobnika, aby dowiedzieć się, jak używać aparatu zasad sieciowych i tworzyć zasady sieciowe platformy Kubernetes w celu kontrolowania przepływu ruchu między zasobnikami w usłudze AKS.