Поделиться через


Создание поставщика OpenID Connect в Служба Azure Kubernetes (AKS)

OpenID Connect (OIDC) расширяет протокол авторизации OAuth 2.0 для использования в качестве другого протокола проверки подлинности, выданного идентификатором Microsoft Entra. Вы можете использовать OIDC для включения единого входа между приложениями с поддержкой OAuth в кластере Служба Azure Kubernetes (AKS) с помощью маркера безопасности, называемого маркером идентификатора. С помощью кластера AKS вы можете включить издателя OpenID Connect (OIDC), который позволяет Microsoft Entra ID или другой платформе управления удостоверениями и доступом другого поставщика облачных поставщиков обнаруживать открытые ключи подписывания сервера API.

AKS автоматически и периодически поворачивает ключ. Если вы не хотите ждать, вы можете повернуть ключ вручную и немедленно. Максимальное время существования маркера, выданного поставщиком OIDC, составляет один день.

Предупреждение

Включение издателя OIDC в существующем кластере изменяет текущего издателя маркера учетной записи службы на новое значение, которое может привести к простою при перезапуске сервера API. Если модули pod приложения с помощью маркера службы остаются в состоянии сбоя после включения издателя OIDC, рекомендуется вручную перезапустить модули pod.

В этой статье вы узнаете, как создавать, обновлять и управлять издателем OIDC для кластера.

Внимание

После включения издателя OIDC в кластере отключение его не поддерживается.

Маркер необходимо периодически обновлять. Если вы используете пакет SDK, смена выполняется автоматически. В противном случае необходимо вручную обновить маркер каждые 24 часа.

Необходимые компоненты

  • Azure CLI версии 2.42.0 или более поздней. Чтобы узнать, какая версия используется, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
  • AKS поддерживает издателя OIDC версии 1.22 и выше.

Создание кластера AKS с издателем OIDC

Кластер AKS можно создать с помощью команды az aks create с параметром --enable-oidc-issuer , чтобы включить издателя OIDC. В следующем примере создается кластер с именем myAKSCluster с одним узлом в myResourceGroup:

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

Обновление кластера AKS с помощью издателя OIDC

Кластер AKS можно обновить с помощью команды az aks update с параметром --enable-oidc-issuer , чтобы включить издателя OIDC. В следующем примере обновляется кластер с именем myAKSCluster:

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

Отображение URL-адреса издателя OIDC

Чтобы получить URL-адрес издателя OIDC, выполните команду az aks show . Замените значения по умолчанию для имени кластера и имени группы ресурсов.

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

По умолчанию издатель использует базовый URL-адрес https://{region}.oic.prod-aks.azure.com, где значение для {region} совпадений с расположением кластера AKS развертывается.

Поворот ключа OIDC

Чтобы повернуть ключ OIDC, выполните команду az aks oidc-issuer . Замените значения по умолчанию для имени кластера и имени группы ресурсов.

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

Внимание

После смены ключа старый ключ (key1) истекает через 24 часа. Старый ключ (key1) и новый ключ (key2) действительны в течение 24-часового периода после смены. Если вы хотите немедленно отключить старый ключ (key1), необходимо дважды повернуть ключ OIDC и перезапустить модули pod с помощью проецируемых маркеров учетной записи службы. С помощью этого процесса ключ2 и key3 допустимы, а ключ1 недопустим.

Проверка ключей OIDC

Получение URL-адреса издателя OIDC

Чтобы получить URL-адрес издателя OIDC, выполните команду az aks show . Замените значения по умолчанию для имени кластера и имени группы ресурсов.

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

Вывод должен иметь следующий вид:

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

По умолчанию издатель использует базовый URL-адрес https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}, где значение для {region} совпадений с расположением кластера AKS развертывается. Значение {uuid} представляет ключ OIDC, который является случайным образом созданным guid для каждого кластера, который является неизменяемым.

Получение документа обнаружения

Чтобы получить документ обнаружения, скопируйте URL-адрес https://(OIDC issuer URL).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

Чтобы получить документ JWK Set, скопируйте jwks_uri его из документа обнаружения и вставьте его в адресную строку браузера.

Вывод должен иметь следующий вид:

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

Во время смены ключей в документе обнаружения присутствует еще один ключ.

Следующие шаги

  • Узнайте , как настроить связь доверия между приложением и внешним поставщиком удостоверений, чтобы понять, как федеративные учетные данные удостоверения создают отношение доверия между приложением в кластере и внешним поставщиком удостоверений.
  • Просмотрите Идентификация рабочей нагрузки Microsoft Entra (предварительная версия). Этот метод проверки подлинности интегрируется с собственными возможностями Kubernetes для федерации с любыми внешними поставщиками удостоверений от имени приложения.
  • См. раздел "Безопасный сетевой трафик pod", чтобы понять, как использовать подсистему сетевой политики сети Kubernetes и создавать политики сети Kubernetes для управления потоком трафика между модулями pod в AKS.