Condividi tramite


Errori non autorizzati (401) durante la chiamata delle API

Facendo riferimento all'articolo su Azure Gestione API Troubleshooting Series, questo è il terzo scenario del lab. Assicurarsi di aver seguito le istruzioni di configurazione del lab in base a questa situazione, per ricreare il problema.

Versione originale del prodotto: servizio Gestione API
Numero KB originale: 4464930

Note

Questo articolo è stato utile? Diamo importanza al contributo degli utenti. Usare il pulsante Feedback in questa pagina per comunicare se questo articolo è stato utile o come possiamo migliorarlo.

Sintomi

L'API Echo ha improvvisamente iniziato a generare diversi tipi di HTTP 401 - Errori non autorizzati richiamando le operazioni al suo interno. Le operazioni Crea risorsa e Recupera risorsa visualizzano questo messaggio di errore:

{
"statusCode": 401,
"message": "Accesso negato a causa di una chiave di sottoscrizione non valida. Assicurarsi di fornire una chiave valida per una sottoscrizione attiva".
}

Mentre le altre operazioni vengono visualizzate

{
"statusCode": 401,
"message": "Accesso negato a causa della chiave di sottoscrizione mancante. Assicurarsi di includere la chiave di sottoscrizione quando si effettuano richieste a un'API."
}

Il codice di risposta HTTP previsto per tutte le operazioni è 200, tuttavia il corpo della risposta varia in quanto l'API back-end restituisce sempre qualsiasi elemento inviato come corpo della richiesta oltre alle intestazioni.

Passaggi per la risoluzione dei problemi

  • Per avere accesso all'API, gli sviluppatori devono prima sottoscrivere un prodotto. Quando sottoscrivono, ottengono una chiave di sottoscrizione che viene inviata come parte dell'intestazione della richiesta valida per qualsiasi API in tale prodotto. Ocp-Apim-Subscription-Key è l'intestazione della richiesta inviata per la chiave di sottoscrizione del prodotto associato a questa API. La chiave viene compilata automaticamente.

  • Per quanto riguarda l'errore Accesso negato a causa di una chiave di sottoscrizione non valida. Assicurarsi di fornire una chiave valida per una sottoscrizione attiva, è chiaro che si sta inviando un valore errato dell'intestazione della richiesta Ocp-Apim-Subscription-Key richiamando le operazioni Crea risorsa e Recupera risorsa.

  • È possibile controllare la chiave di sottoscrizione per un determinato prodotto dal portale per sviluppatori di Gestione API passando alla pagina Profilo dopo l'accesso, come illustrato di seguito.

  • Selezionare il pulsante Mostra per visualizzare le chiavi di sottoscrizione per i rispettivi prodotti sottoscritti.

    Screenshot delle chiavi di sottoscrizione per i rispettivi prodotti.

  • Se si controllano le intestazioni inviate dalla scheda Test , si noterà che il valore dell'intestazione della richiesta Ocp-Apim-Subscription-Key non è corretto. Ci si potrebbe chiedere come sia possibile, perché Gestione API riempie automaticamente questa intestazione della richiesta con la chiave di sottoscrizione corretta.

  • Si esaminerà ora la definizione front-end di Crea risorsa e Recuperare le operazioni delle risorse nella scheda Progettazione . Dopo un'attenta ispezione, si noterà che queste operazioni hanno ottenuto un valore hardcoded errato dell'intestazione della richiesta Ocp-Apim-Subscription-Key aggiunta nella scheda Intestazioni .

  • È possibile rimuoverlo. Questo problema dovrebbe risolvere il problema della chiave di sottoscrizione non valida, ma si riceve comunque un errore di chiave di sottoscrizione mancante.

    Potrebbe essere visualizzato il seguente messaggio di errore:

    HTTP/1.1 401 Non autorizzato

    Lunghezza contenuto: 152
    Content-Type: application/json
    Data: Sun, 29 Luglio 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": "Accesso negato a causa della chiave di sottoscrizione mancante. Assicurarsi di includere la chiave di sottoscrizione quando si effettuano richieste a un'API." }

  • Passare a Echo APIsettings e verificare se è associato a uno dei prodotti disponibili. In caso contrario, è necessario associare questa API a un prodotto in modo da ottenere una chiave di sottoscrizione.

    Gli sviluppatori devono prima effettuare la sottoscrizione di un prodotto per ottenere l'accesso all'API. Quando effettuano la sottoscrizione, ottengono una chiave di sottoscrizione che è utile per qualsiasi API nel prodotto. Se è stata creata l'istanza di Gestione API, si è già un amministratore, quindi si è iscritti a ogni prodotto per impostazione predefinita.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.