Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается создание и управление поставщиком OpenID Connect (OIDC) для кластера Службы Azure Kubernetes (AKS). Издатель OIDC позволяет кластеру AKS интегрироваться с поставщиками удостоверений, такими как Microsoft Entra ID, что обеспечивает безопасную проверку подлинности и возможности единого входа для приложений, работающих в кластере.
Сведения о OpenID Connect (OIDC) в AKS
OpenID Connect (OIDC) расширяет протокол авторизации OAuth 2.0 для использования в качестве другого протокола проверки подлинности, выданного идентификатором Microsoft Entra. Вы можете использовать OIDC для включения единого входа между приложениями с поддержкой OAuth в кластере Службы Azure Kubernetes (AKS) с помощью маркера безопасности, называемого маркером идентификатора. Вы можете включить издателя OIDC в кластерах AKS, что позволяет Идентификатору Microsoft Entra (или другой платформе управления доступом поставщика облачных служб) обнаруживать открытые ключи подписывания сервера API.
Необходимые компоненты
Требования к платформе:
- Azure CLI версии 2.42.0+ (
az --versionдля проверки версии, установки или обновления Azure CLI при необходимости) - Минимальная версия Kubernetes — 1.22+
Поведение конкретной версии:
- Поставщик OIDC, включенный по умолчанию (без
--enable-oidc-issuerфлага) для Kubernetes версии 1.34+ - Автоматическое продление маркера отключено (
--service-account-extend-token-expiration=false) для Kubernetes версии 1.30.0+ - Требуется ручное включение, если ранее не было настроено для версий Kubernetes до 1.34.
Важные рекомендации.
- Вы не можете отключить издателя OIDC после включения
- Включение издателя OIDC в существующих кластерах требует перезагрузки сервера API (краткое время простоя)
- Максимальное время существования токена — 24 часа (один день)
- Проецируемые токены учетной записи сервиса, необходимые для кластеров Kubernetes 1.30+
Создание кластера AKS с издателем OIDC
Создайте кластер AKS с помощью
az aks createкоманды с параметром--enable-oidc-issuer.# Set environment variables RESOURCE_GROUP=<your-resource-group-name> CLUSTER_NAME=<your-aks-cluster-name> # Create the AKS cluster with OIDC issuer enabled (OIDC issuer enabled by default for Kubernetes 1.34+) az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --node-count 1 \ --enable-oidc-issuer \ --generate-ssh-keys
Активация издателя OIDC в существующем кластере AKS
Включите поставщика OIDC в существующем кластере AKS с помощью команды
az aks updateс параметром--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 cluster az aks update \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --enable-oidc-issuer
Получение URL-адреса издателя OIDC
Получите URL-адрес издателя OIDC с помощью
az aks showкоманды.# 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По умолчанию издатель использует базовый URL-адрес
https://{region}.oic.prod-aks.azure.com, где значение для{region}совпадений с расположением кластера AKS развертывается.
Поворот ключа OIDC
Внимание
При смене ключа OIDC следует учитывать следующие рекомендации.
- Если вы хотите отключить старый ключ сразу после смены ключа, необходимо дважды повернуть ключ OIDC и перезапустить модули pod с помощью проецируемых маркеров учетной записи службы.
- Старые и новые ключи остаются действительными в течение 24 часов после смены.
- Обновление токена вручную требуется каждые 24 часа (если только не используется "Azure Identity SDK", который обновляется автоматически).
Смените ключ OIDC с помощью
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
Получение документа обнаружения
Перейдите по URL-адресу издателя OIDC в браузере и добавьте
/.well-known/openid-configurationв конец URL-адреса. Например:https://eastus.oic.prod-aks.azure.com/.well-known/openid-configuration.Выходные данные должны выглядеть примерно так:
{ "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" ] }
Получение документа набора JWK
Перейдите к jwks_uri из документа обнаружения в браузере. Например:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks.Выходные данные должны выглядеть примерно так:
{ "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" } ] }Замечание
Во время смены ключей в документе обнаружения присутствует еще один ключ.