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, können Sie die Versionsnummer herausfinden, indem Sie az --version ausführen.

Symptome

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

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

Antworttext: {

"error": "ungültiger_client"

"error_description": "AADSTS7000215: Ungültiges Client-Geheimnis angegeben. Stellen Sie sicher, dass das Geheimnis, das in der Anfrage gesendet wird, das Client-Geheimnis ist und nicht die Client-ID, für ein Geheimnis, das der App '123456789-1234-1234-1234-1234567890987' hinzugefügt wurde.\r\n

Trace-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 und password generierten 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 Zugangsdaten 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>

Mehr Informationen

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben, können Sie den Azure-Communitysupport stellen. Sie können auch Produktfeedback an die Azure Feedback Community senden.