Dela via


Obehöriga fel (401) vid anrop av API:er

Med hänvisning till artikeln om felsökningsserien för Azure API Management är detta det tredje scenariot i labbet. Se till att du har följt instruktionerna för labbkonfigurationen enligt detta för att återskapa problemet.

Ursprunglig produktversion: API Management Service
Ursprungligt KB-nummer: 4464930

Kommentar

Var den här artikeln till hjälp? Dina indata är viktiga för oss. Använd feedbackknappen på den här sidan för att informera oss om hur bra den här artikeln fungerade för dig eller hur vi kan förbättra den.

Symptom

Echo-API:et började plötsligt generera olika typer av HTTP 401 – Obehöriga fel när åtgärderna under den anropas. Skapa resurs och Hämta resursåtgärder visar det här felmeddelandet:

{
"statusCode": 401,
"message": "Åtkomst nekad på grund av ogiltig prenumerationsnyckel. Se till att ange en giltig nyckel för en aktiv prenumeration."
}

Medan resten av åtgärderna visar

{
"statusCode": 401,
"message": "Åtkomst nekad på grund av att prenumerationsnyckeln saknas. Se till att inkludera prenumerationsnyckeln när du gör begäranden till ett API."
}

Den förväntade HTTP-svarskoden för alla åtgärder är 200, men svarstexten varierar eftersom serverdels-API:et alltid ekar vad du än skickar som en begärandetext utöver rubriker.

Felsökningsanvisningar

  • För att få åtkomst till API:et måste utvecklarna först prenumerera på en produkt. När de prenumererar får de en prenumerationsnyckel som skickas som en del av begärandehuvudet som är bra för alla API:er i den produkten. Ocp-Apim-Subscription-Key är begärandehuvudet som skickas för prenumerationsnyckeln för den produkt som är associerad med det här API:et. Nyckeln fylls i automatiskt.

  • Angående felet Åtkomst nekad på grund av en ogiltig prenumerationsnyckel. Se till att ange en giltig nyckel för en aktiv prenumeration. Det är tydligt att du skickar fel värde för begäranderubriken Ocp-Apim-Subscription-Key när du anropar Skapa resurs och Hämta resursåtgärder .

  • Du kan kontrollera din prenumerationsnyckel för en viss produkt från APIM Developer-portalen genom att gå till profilsidan efter inloggningen enligt nedan.

  • Välj knappen Visa för att se prenumerationsnycklarna för respektive produkter som du har prenumererat på.

    Skärmbild av prenumerationsnycklarna för respektive produkter.

  • Om du kontrollerar rubrikerna som skickas från fliken Test ser du att värdet för begäranderubriken Ocp-Apim-Subscription-Key är fel. Du kanske undrar hur det är möjligt eftersom APIM automatiskt fyller den här begäranderubriken med rätt prenumerationsnyckel.

  • Nu ska vi kontrollera klientdelsdefinitionen för Skapa resurs och Hämta resursåtgärder under fliken Design . Vid noggrann kontroll skulle du märka att dessa åtgärder fick ett felaktigt hårdkodat värde för Ocp-Apim-Subscription-Key-begäranderubriken som lades till under fliken Rubriker .

  • Du kan ta bort det, detta bör lösa problemet med den ogiltiga prenumerationsnyckeln, men du skulle ändå få ett fel med prenumerationsnyckeln som saknas.

    Du kan få följande felmeddelande:

    HTTP/1.1 401 Obehörig

    Innehållslängd: 152
    Innehållstyp: program/json
    Datum: Sön, 29 jul 2018 14:29:50 GMT
    Vary: Origin WWW-Authenticate: AzureApiManagementKey realm="https://pratyay.azure-api.net/echo",name="Ocp-Apim-Subscription-Key",type="header" {
    "statusCode": 401,
    "message": "Åtkomst nekad på grund av att prenumerationsnyckeln saknas. Se till att inkludera prenumerationsnyckeln när du gör begäranden till ett API." }

  • Gå till Echo APIsettings och kontrollera om det är associerat med någon av de tillgängliga produkterna. Annars måste du associera det här API:et med en produkt så att du får en prenumerationsnyckel.

    Utvecklare måste först prenumerera på en produkt för att få åtkomst till API:n. När de prenumererar få de en prenumerationsnyckel som går att använda till alla API:er i produkten. Om du har skapat APIM-instansen är du redan administratör, så du prenumererar på alla produkter som standard.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.