Udostępnij za pośrednictwem


Rozwiązywanie problemów z kodem błędu ServicePrincipalValidationClientError

W tym artykule omówiono sposób identyfikowania i rozwiązywania błędu ServicePrincipalValidationClientError , który może wystąpić, jeśli spróbujesz utworzyć i wdrożyć klaster usługi Microsoft Azure Kubernetes Service (AKS).

Wymagania wstępne

  • Interfejs wiersza polecenia platformy Azure w wersji 2.0.59 lub nowszej. Jeśli interfejs wiersza polecenia platformy Azure jest już zainstalowany, możesz znaleźć numer wersji, uruchamiając polecenie az --version.

Symptomy

Podczas próby wdrożenia klastra usługi AKS zostanie wyświetlony następujący komunikat o błędzie:

adal: Żądanie odświeżania nie powiodło się. Kod stanu = '401'.

Treść odpowiedzi: {

"error": "invalid_client",

"error_description": "AADSTS7000215: podano nieprawidłowy wpis tajny klienta. Upewnij się, że wpis tajny wysyłany w żądaniu jest wartością klucza tajnego klienta, a nie identyfikatorem wpisu tajnego klienta dodanego do aplikacji "123456789-1234-1234-1234-1234567890987".\r\n

Identyfikator śledzenia: 12345\r\n

Identyfikator korelacji: 6789\r\n

Sygnatura czasowa: 2022-02-03 03:07:11Z",

"error_codes": [7000215],

"sygnatura czasowa": "2022-02-03 03:07:11Z",

"trace_id": "12345",

"correlation_id": "6789",

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

} Punkt końcowy https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

Przyczyna

Wpis tajny podany dla wyróżnionej jednostki usługi jest nieprawidłowy.

Rozwiązanie 1. Resetowanie wpisu tajnego jednostki usługi

Aby rozwiązać ten problem, zresetuj klucz tajny jednostki usługi przy użyciu jednej z następujących metod:

Poprzednie polecenie resetuje wpis tajny i wyświetla go jako dane wyjściowe. Następnie można określić nowy wpis tajny podczas próby ponownego utworzenia nowego klastra.

W przypadku operacji, które zakończyły się niepowodzeniem w istniejącym klastrze, upewnij się, że klaster usługi AKS został zaktualizowany przy użyciu nowego wpisu tajnego:

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

Rozwiązanie 2. Tworzenie nowej jednostki usługi

Możesz utworzyć nową jednostkę usługi i uzyskać skojarzony z nim wpis tajny, uruchamiając polecenie az ad sp create-for-rbac :

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

Dane wyjściowe polecenia powinny przypominać następujący ciąg JSON:

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

Zanotuj appId wygenerowane wartości i .password Po otrzymaniu tych wartości możesz ponownie uruchomić polecenie tworzenia klastra dla nowej jednostki usługi i wpisu tajnego.

Aby zaktualizować klaster usługi AKS przy użyciu poświadczeń nowej jednostki usługi, uruchom następujące polecenie:

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

Więcej informacji

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.