Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ AKS Automatic ✔️ AKS Standard
В этой статье описывается создание издателя OpenID Connect (OIDC) и управление им для кластера Azure Kubernetes Service (AKS). Издатель OIDC позволяет кластеру AKS интегрироваться с поставщиками удостоверений, такими как Microsoft Entra ID, чтобы обеспечить безопасную проверку подлинности и предоставить возможности единого входа для приложений, работающих в кластере.
Для большинства рабочих нагрузок AKS Automatic — это рекомендуемый вариант работы с AKS по умолчанию. AKS Automatic готов к работе по умолчанию и включает издателя OIDC в качестве предварительно настроенной возможности безопасности. В AKS Standard поведение издателя OIDC зависит от версии Kubernetes и состояния кластера, и его можно включить вручную при необходимости.
Дополнительные сведения об AKS Automatic см. в разделе Что такое AKS Automatic в Azure Kubernetes Service (AKS)?
Эмитент OIDC в AKS Automatic и AKS Standard
Оба режима кластера AKS поддерживают издателя OIDC, но настройка отличается:
- AKS Automatic: поставщик OIDC предварительно сконфигурирован.
- AKS Standard: может потребоваться явно включить издателя OIDC в зависимости от версии и того, настроена ли она уже.
Для большинства рабочих сценариев начните с AKS Automatic, чтобы использовать готовые к работе значения по умолчанию и сократить эксплуатационные расходы.
Сведения о OpenID Connect (OIDC) в AKS
OpenID Connect (OIDC) расширяет протокол авторизации OAuth 2.0 для использования в качестве другого протокола проверки подлинности, выданного Microsoft Entra ID. Вы можете использовать OIDC для включения единого входа между приложениями с поддержкой OAuth в кластере Службы Azure Kubernetes (AKS) с помощью маркера безопасности, называемого маркером идентификатора. Вы можете включить издателя OIDC в кластерах AKS, что позволяет Microsoft Entra ID (или платформе управления идентификацией и доступом от другого поставщика облачных услуг) обнаруживать публичные ключи подписи сервера API.
Предварительные требования
Требования к платформе:
- Azure CLI версии 2.42.0 или более поздней (
az --versionчтобы проверить версию, установить или обновить Azure CLI при необходимости). - Kubernetes версии 1.22 или более поздней.
Поведение, зависящее от версии (AKS Standard):
- Поставщик OIDC включен по умолчанию (флаг
--enable-oidc-issuerне требуется) для новых кластеров AKS с версией Kubernetes 1.34 или более поздней. - Для существующих кластеров OIDC не включен по умолчанию независимо от версии Kubernetes и требует ручного включения.
- Автоматическое расширение токена отключено (
--service-account-extend-token-expiration=false) для Kubernetes версии 1.30.0 или более поздней. - Если издатель OIDC ранее не был настроен, то для версий Kubernetes ниже 1.34 требуется включить его вручную.
- Для кластеров Kubernetes версии 1.30 и выше требуются проецируемые токены сервисной учетной записи.
Важные рекомендации.
- Вы не можете деактивировать издателя OIDC после включения.
- Для включения издателя OIDC в существующих кластерах требуется перезапуск сервера API (краткое время простоя).
- Максимальное время существования токена составляет 24 часа (один день).
Создание кластера AKS с издателем OIDC
AKS Automatic (рекомендуется для использования по умолчанию в рабочей среде)
В AKS Automatic издатель OIDC предварительно настроен. Вам не нужен отдельный этап для включения поставщика OIDC.
Создайте автоматический кластер AKS, выполнив краткое руководство.
AKS Standard
Создайте кластер AKS Standard с помощью az aks create команды с параметром --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
Замечание
В кластерах AKS Standard, созданных с помощью Kubernetes версии 1.34 или более поздней, издатель OIDC по умолчанию включен для новых кластеров.
Включение издателя OIDC в существующем кластере AKS Standard
Включите издатель OIDC для существующего кластера AKS Standard с помощью команды 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 Standard 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, которые обновляются автоматически).
Смените ключ 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"
}
]
}
Замечание
Во время смены ключей документ обнаружения включает один дополнительный ключ.