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

OpenID Подключение (OIDC) расширяет протокол авторизации OAuth 2.0 для использования в качестве другого протокола проверки подлинности, выданного идентификатором Microsoft Entra. Вы можете использовать OIDC для включения единого входа между приложениями с поддержкой OAuth в кластере Служба Azure Kubernetes (AKS) с помощью маркера безопасности, называемого маркером идентификатора. С помощью кластера AKS вы можете включить издателя OpenID Подключение (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 -g myResourceGroup -n myAKSCluster --node-count 1 --enable-oidc-issuer

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

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

az aks update -g myResourceGroup -n myAKSCluster --enable-oidc-issuer 

Отображение URL-адреса поставщика OIDC

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

az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv

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

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

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

az aks oidc-issuer rotate-signing-keys -n myAKSCluster -g myResourceGroup

Внимание

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

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

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

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

az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv

Результат должен выглядеть так:

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

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

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

Чтобы получить документ обнаружения, скопируйте URL-адрес https://(OIDC issuer URL).well-known/openid-configuration и откройте его в браузере.

Результат должен выглядеть так:

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

Получение документа набора 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.