Condividi tramite


Errori non autorizzati (401) durante la chiamata delle API

Facendo riferimento all'articolo sulla serie di risoluzione dei problemi di Azure Gestione API, questo è il terzo scenario del lab. Assicurarsi di aver seguito le istruzioni di configurazione del lab in base a questo, per ricreare il problema.

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

Nota

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 durante la chiamata delle operazioni sottostanti. Le operazioni Create resource e Retrieve resource mostrano 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 mostrano

{
"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 ripete sempre qualsiasi elemento inviato come corpo della richiesta oltre alle intestazioni.

Procedura di risoluzione dei problemi

  • Per ottenere l'accesso all'API, gli sviluppatori devono prima sottoscrivere un prodotto. Quando sottoscrivono, ricevono una chiave di sottoscrizione inviata come parte dell'intestazione della richiesta che è utile per qualsiasi API in tale prodotto. Ocp-Apim-Subscription-Key è l'intestazione della richiesta inviata per il codice 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 durante la chiamata delle operazioni Crea risorsa e Recupera risorsa .

  • È possibile controllare la chiave di sottoscrizione per un prodotto specifico 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 mai è possibile, perché Gestione API riempie automaticamente questa intestazione della richiesta con la chiave di sottoscrizione corretta.

  • Controllare la definizione front-end delle operazioni Crea risorsa e Recupera risorsa 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. In questo modo verrà risolto il problema relativo alla chiave di sottoscrizione non valida, ma verrà comunque visualizzato un errore di chiave di sottoscrizione mancante.

    È possibile che venga visualizzato il messaggio di errore seguente:

    HTTP/1.1 401 Non autorizzato

    Content-Length: 152
    Content-Type: application/json
    Data: Domenica, 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 sottoscrivere un prodotto per ottenere l'accesso all'API. Quando si sottoscrivono, ottengono una chiave di sottoscrizione valida per qualsiasi API nel prodotto. Se è stata creata l'istanza di Gestione API, si è già un amministratore, quindi per impostazione predefinita si è iscritti a ogni prodotto.

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.