Delen via


Problemen met de foutcode ServicePrincipalValidationClientError oplossen

In dit artikel wordt beschreven hoe u de ServicePrincipalValidationClientError fout kunt identificeren en oplossen die kunnen optreden als u probeert een AKS-cluster (Microsoft Azure Kubernetes Service) te maken en te implementeren.

Voorwaarden

  • Azure CLI, versie 2.0.59 of een nieuwere versie. Als Azure CLI al is geïnstalleerd, kunt u het versienummer vinden door uit te voeren az --version.

Symptomen

Wanneer u probeert een AKS-cluster te implementeren, wordt het volgende foutbericht weergegeven:

adal: vernieuwingsaanvraag is mislukt. Statuscode = '401'.

Hoofdtekst van antwoord: {

"error": "invalid_client",

"error_description": "AADSTS7000215: Ongeldig clientgeheim opgegeven. Zorg ervoor dat het geheim dat wordt verzonden in de aanvraag de waarde van het clientgeheim is, niet de clientgeheim-id, voor een geheim dat is toegevoegd aan de app '123456789-1234-1234567890987'.\r\n

Tracerings-id: 12345\r\n

Correlatie-id: 6789\r\n

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

"error_codes": [7000215],

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

"trace_id": "12345",

"correlation_id": "6789",

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

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

Oorzaak

Het geheim dat is opgegeven voor de gemarkeerde service-principal, is niet geldig.

Oplossing 1: Het geheim van de service-principal opnieuw instellen

U kunt dit probleem oplossen door het geheim van de service-principal opnieuw in te stellen met behulp van een van de volgende methoden:

  • Stel de referenties van de service-principal opnieuw in door de opdracht az ad sp credential reset uit te voeren:

    az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
    
  • Geef de vervaldatum op door de volgende opdracht uit te voeren:

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

Met de voorgaande opdracht wordt het geheim opnieuw ingesteld en weergegeven als uitvoer. Vervolgens kunt u het nieuwe geheim opgeven wanneer u het nieuwe cluster opnieuw probeert te maken.

Voor mislukte bewerkingen in een bestaand cluster moet u ervoor zorgen dat u uw AKS-cluster bijwerkt met het nieuwe geheim:

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

Oplossing 2: Een nieuwe service-principal maken

U kunt een nieuwe service-principal maken en het geheim ophalen dat eraan is gekoppeld door de opdracht az ad sp create-for-rbac uit te voeren:

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

De uitvoer van de opdracht moet lijken op de volgende JSON-tekenreeks:

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

Noteer de appId waarden en password waarden die worden gegenereerd. Nadat u deze waarden hebt opgehaald, kunt u de opdracht voor het maken van het cluster opnieuw uitvoeren voor de nieuwe service-principal en het nieuwe geheim.

Voer de volgende opdracht uit om uw AKS-cluster bij te werken met de referenties van de nieuwe service-principal:

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

Meer informatie

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.