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


Устранение неполадок с кодом ошибки ServicePrincipalValidationClientError

В этой статье описывается, как определить и устранить ServicePrincipalValidationClientError ошибку, которая может возникнуть при попытке создать и развернуть кластер Microsoft Служба Azure Kubernetes (AKS).

Предварительные требования

  • Azure CLI версии 2.0.59 или более поздней версии. Если Azure CLI уже установлен, можно найти номер версии, выполнив команду az --version.

Симптомы

При попытке развернуть кластер AKS вы получите следующее сообщение об ошибке:

adal: сбой запроса на обновление. Код состояния = '401'.

Текст ответа: {

"error": "invalid_client",

"error_description": "AADSTS7000215: указан недопустимый секрет клиента. Убедитесь, что секрет, отправляемый в запросе, является значением секрета клиента, а не идентификатором секрета, добавляемого в приложение "123456789-1234-1234-1234-1234567890987".\r\n

Идентификатор трассировки: 12345\r\n

Идентификатор корреляции: 6789\r\n

Метка времени: 2022-02-03 03:07:11Z",

"error_codes": [7000215],

"метка времени": "2022-02-03 03:07:11Z",

"trace_id": "12345",

"correlation_id": "6789",

"error_uri": "https://login.microsoftonline.com/error?code=7000215"

} Конечная точка https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

Причина

Секрет, предоставленный для выделенного субъекта-службы, не является допустимым.

Решение 1. Сброс секрета субъекта-службы

Чтобы устранить эту проблему, сбросить секрет субъекта-службы с помощью одного из следующих методов:

  • Сброс учетных данных субъекта-службы, выполнив команду сброса учетных данных az ad sp:

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • Укажите дату окончания срока действия, выполнив следующую команду:

    az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
    

Предыдущая команда сбрасывает секрет и отображает его в качестве выходных данных. Затем можно указать новый секрет при попытке создать новый кластер еще раз.

Для неудачных операций в существующем кластере убедитесь, что кластер AKS обновляется с новым секретом:

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>

Решение 2. Создание субъекта-службы

Вы можете создать новый субъект-службу и получить секрет, связанный с ним, выполнив команду az ad sp create-for-rbac :

az ad sp create-for-rbac --role Contributor

Выходные данные команды должны выглядеть следующим образом:

{
  "appId": "12345678-9abc-def0-1234-56789abcdef0",
  "name": "23456789-abcd-ef01-2345-6789abcdef01",
  "password": "3456789a-bcde-f012-3456-789abcdef012",
  "tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}

Обратите внимание на созданные appId значения и password значения. После получения этих значений можно повторно запустить команду создания кластера для нового субъекта-службы и секрета.

Чтобы обновить кластер AKS с учетными данными нового субъекта-службы, выполните следующую команду:

az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>

Дополнительная информация

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.