Niet-geautoriseerde fouten (401) tijdens het aanroepen van API's
Dit is het derde scenario van het lab, wat verwijst naar het artikel over azure API Management Troubleshooting Series. Zorg ervoor dat u de instructies voor het instellen van het lab hebt gevolgd om het probleem opnieuw te maken.
Oorspronkelijke productversie: API Management Service
Oorspronkelijk KB-nummer: 4464930
Notitie
Was dit artikel nuttig? Uw input is belangrijk voor ons. Gebruik de knop Feedback op deze pagina om ons te laten weten hoe goed dit artikel voor u heeft gewerkt of hoe we het kunnen verbeteren.
Symptomen
De Echo-API begon plotseling diverse typen HTTP 401 - Niet-geautoriseerde fouten te genereren tijdens het aanroepen van de bewerkingen eronder. Resource maken en resourcebewerkingen ophalen worden dit foutbericht weergegeven:
{
"statusCode": 401,
"message": "Toegang geweigerd vanwege een ongeldige abonnementssleutel. Zorg ervoor dat u een geldige sleutel opgeeft voor een actief abonnement.
}
Overwegende dat de rest van de bewerkingen wordt weergegeven
{
"statusCode": 401,
'bericht': 'Toegang geweigerd vanwege ontbrekende abonnementssleutel. Zorg ervoor dat u de abonnementssleutel opneemt bij het indienen van aanvragen bij een API.
}
De verwachte HTTP-antwoordcode voor alle bewerkingen is 200, maar de hoofdtekst van het antwoord verschilt omdat de back-end-API altijd echot wat u als aanvraagtekst verzendt, naast headers.
Stappen voor probleemoplossing
Ontwikkelaars moeten zich eerst abonneren op een product om toegang tot de API te krijgen. Wanneer ze zich abonneren, krijgen ze een abonnementssleutel die wordt verzonden als onderdeel van de aanvraagheader die geschikt is voor elke API in dat product. Ocp-Apim-Subscription-Key is de aanvraagheader die wordt verzonden voor de abonnementssleutel van het product dat is gekoppeld aan deze API. De sleutel wordt automatisch ingevuld.
Vanwege een ongeldige abonnementssleutel is toegang geweigerd. Zorg ervoor dat u een geldige sleutel voor een actief abonnement opgeeft. Het is duidelijk dat u een verkeerde waarde van de aanvraagheader Ocp-Apim-Subscription-Key verzendt terwijl u resourcebewerkingen maken aanroept en resourcebewerkingen ophaalt.
U kunt uw abonnementssleutel voor een bepaald product controleren via de APIM Developer-portal door na aanmelding naar de profielpagina te navigeren, zoals hieronder wordt weergegeven.
Selecteer de knop Weergeven om de abonnementssleutels te zien voor de respectieve producten waarop u zich hebt geabonneerd.
Als u controleert of de headers worden verzonden vanaf het tabblad Test , ziet u dat de waarde van de aanvraagheader Ocp-Apim-Subscription-Key onjuist is. U vraagt zich misschien af hoe dat mogelijk is, omdat APIM deze aanvraagheader automatisch vult met de juiste abonnementssleutel.
Laten we de front-enddefinitie van resource maken en resourcebewerkingen ophalen controleren op het tabblad Ontwerpen. Bij zorgvuldige inspectie ziet u dat deze bewerkingen een verkeerde in code vastgelegde waarde van ocp-Apim-Subscription-Key-aanvraagheader hebben toegevoegd onder het tabblad Headers.
U kunt dit verwijderen. Hiermee wordt het probleem met de ongeldige abonnementssleutel opgelost, maar er ontbreekt nog steeds een fout in de abonnementssleutel.
U ontvangt mogelijk het volgende foutbericht:
HTTP/1.1 401 Niet geautoriseerd
Lengte van inhoud: 152
Inhoudstype: toepassing/json
Datum: zon, 29 juli 2018 14:29:50 GMT
Variƫren: Origin WWW-Authenticate: AzureApiManagementKey realm="https://pratyay.azure-api.net/echo
,name="Ocp-Apim-Subscription-Key",type="header" {
"statusCode": 401,
'bericht': 'Toegang geweigerd vanwege ontbrekende abonnementssleutel. Zorg ervoor dat u de abonnementssleutel opneemt bij het indienen van aanvragen bij een API.}Ga naar de Echo-API'settings en controleer of deze is gekoppeld aan een van de beschikbare producten. Zo niet, dan moet u deze API koppelen aan een product, zodat u een abonnementssleutel krijgt.
Ontwikkelaars moeten zich eerst abonneren op een product om toegang tot de API te krijgen. Wanneer ontwikkelaars zich abonneren, ontvangen ze een abonnementssleutel die toegang biedt tot elke API in het betreffende product. Als u de APIM-abonnementssleutel hebt gemaakt, bent u al een beheerder en bent u standaard geabonneerd op elk product.
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.