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.