Freigeben über


Problembehandlung beim Fehlercode ServicePrincipalValidationClientError

In diesem Artikel wird erläutert, wie Sie den Fehler identifizieren und beheben, der ServicePrincipalValidationClientError auftreten kann, wenn Sie versuchen, einen Microsoft Azure Kubernetes Service (AKS)-Cluster zu erstellen und bereitzustellen.

Voraussetzungen

  • Azure CLI, Version 2.0.59 oder höher. Wenn Azure CLI bereits installiert ist, finden Sie die Versionsnummer, indem Sie ausführen az --version.

Symptome

Wenn Sie versuchen, einen AKS-Cluster bereitzustellen, wird die folgende Fehlermeldung angezeigt:

adal: Fehler bei der Aktualisierungsanforderung. Statuscode = '401'.

Antworttext: {

"error": "invalid_client",

"error_description": "AADSTS7000215: Ungültiger geheimer Clientschlüssel angegeben. Stellen Sie sicher, dass der geheime Schlüssel, der in der Anforderung gesendet wird, der geheime Clientschlüssel, nicht die geheime CLIENT-ID, für einen geheimen Schlüssel, der der App "123456789-1234-1234567890987" hinzugefügt wurde.\r\n

Ablaufverfolgungs-ID: 12345\r\n

Korrelations-ID: 6789\r\n

Zeitstempel: 2022-02-03 03:07:11Z",

"error_codes": [7000215],

"Timestamp": "2022-02-03 03:07:11Z",

"trace_id": "12345",

"correlation_id": "6789",

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

} Endpunkt https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0

Ursache

Der geheime Schlüssel, der für den hervorgehobenen Dienstprinzipal bereitgestellt wird, ist ungültig.

Lösung 1: Zurücksetzen des geheimen Dienstprinzipalschlüssels

Um dieses Problem zu beheben, setzen Sie den geheimen Dienstprinzipalschlüssel mithilfe einer der folgenden Methoden zurück:

  • Setzen Sie die Anmeldeinformationen des Dienstprinzipals zurück, indem Sie den Befehl "az ad sp credential reset " ausführen:

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • Geben Sie das Ablaufdatum an, indem Sie den folgenden Befehl ausführen:

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

Der vorherige Befehl setzt den geheimen Schlüssel zurück und zeigt ihn als Ausgabe an. Anschließend können Sie den neuen geheimen Schlüssel angeben, wenn Sie versuchen, den neuen Cluster erneut zu erstellen.

Stellen Sie bei fehlgeschlagenen Vorgängen in einem vorhandenen Cluster sicher, dass Sie Ihren AKS-Cluster mit dem neuen geheimen Schlüssel aktualisieren:

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

Lösung 2: Erstellen eines neuen Dienstprinzipals

Sie können einen neuen Dienstprinzipal erstellen und den geheimen Schlüssel abrufen, der diesem zugeordnet ist, indem Sie den Befehl az ad sp create-for-rbac ausführen:

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

Die Ausgabe des Befehls sollte der folgenden JSON-Zeichenfolge ähneln:

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

Beachten Sie die appId generierten Werte und password Werte. Nachdem Sie diese Werte abgerufen haben, können Sie den Clustererstellungsbefehl für den neuen Dienstprinzipal und den geheimen Schlüssel erneut ausführen.

Führen Sie den folgenden Befehl aus, um Ihren AKS-Cluster mit den Anmeldeinformationen des neuen Dienstprinzipals zu aktualisieren:

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

Weitere Informationen

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.