Share via


Eseguire l'autenticazione all'API REST di Azure Gestione API gestione diretta

Questa guida descrive come creare il token di accesso necessario per effettuare chiamate all'API REST di Azure Gestione API gestione diretta.

Per altre informazioni sull'autorizzazione e altri prerequisiti per l'accesso all'API REST di gestione diretta, vedere Gestione diretta Gestione API API REST.

Importante

L'accesso al token di firma di accesso condiviso può essere applicato solo per le chiamate API di gestione diretta, ad esempio: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01. Non è possibile usarlo per le chiamate API ad Azure Resource Manager.

Creare manualmente un token di firma di accesso condiviso

  1. Passare all'istanza di Azure Gestione API nell'portale di Azure.

  2. Selezionare Api di gestione nella sezione Distribuzione e infrastruttura del menu a sinistra.

    Selezionare API di gestione nella portale di Azure

  3. In Abilita API REST Gestione API selezionare .

    Importante

    Se l'API REST Abilita Gestione API non è selezionata, le chiamate effettuate all'API REST per l'istanza del servizio avranno esito negativo.

    Abilitare l'API Gestione API nell'portale di Azure

  4. Specificare la data e l'ora di scadenza per il token di accesso nella casella di testo Scadenza. Il formato per questo valore deve essere MM/DD/YYYY H:MM PM|AM.

    Generare il token di accesso per l'API REST Gestione API nell'portale di Azure

  5. Selezionare la chiave primaria o la chiave secondaria nell'elenco a discesa Chiave privata . Le chiavi offrono lo stesso livello di accesso. Sono disponibili due chiavi per permettere strategie flessibili per la gestione delle chiavi.

  6. Selezionare Genera per creare il token di accesso.

  7. Copiare il token di accesso completo e specificarlo nell'intestazione Authorization di ogni richiesta per l'API REST Gestione API, come mostrato nell'esempio seguente.

    Authorization: SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==
    

Creare a livello di codice un token di firma di accesso condiviso

  1. Creare un accesso stringa-to-sign nel formato seguente:

    {identifier} + "\n" + {expiry}

    dove:
    identifier- il valore del campo Identificatore dalla scheda API di gestione dell'istanza di Azure Gestione API (vedere la sezione precedente per informazioni dettagliate).
    expiry - data di scadenza desiderata del token di firma di accesso condiviso.

  2. Generare una firma applicando una funzione hash HMAC-SHA512 alla stringa da firmare, usando la chiave primaria o secondaria.

  3. Applicare la codifica Base64 alla chiave di firma restituita.

  4. Creare un token di accesso usando il formato seguente.

    uid={identifier}&ex={expiry}&sn={Base64 encoded signature}

    Esempio:

    uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==

  5. Usare questi valori per creare un'intestazione Authorization in ogni richiesta per l'API REST Gestione API, come mostrato nell'esempio seguente.

    Authorization: SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
    

L'esempio seguente illustra i passaggi precedenti per la generazione del token di accesso.

using System;   
using System.Text;   
using System.Globalization;   
using System.Security.Cryptography;   
  
public class Program   
{   
    public static void Main()   
    {   
        var id = "53d7e14aee681a0034030003";   
        var key = "pXeTVcmdbU9XxH6fPcPlq8Y9D9G3Cdo5Eh2nMSgKj/DWqeSFFXDdmpz5Trv+L2hQNM+nGa704Rf8Z22W9O1jdQ==";   
        var expiry = DateTime.UtcNow.AddDays(10);   
        using (var encoder = new HMACSHA512(Encoding.UTF8.GetBytes(key)))   
        {   
            var dataToSign = id + "\n" + expiry.ToString("O", CultureInfo.InvariantCulture);   
            var hash = encoder.ComputeHash(Encoding.UTF8.GetBytes(dataToSign));   
            var signature = Convert.ToBase64String(hash);   
            var encodedToken = string.Format("SharedAccessSignature uid={0}&ex={1:o}&sn={2}", id, expiry, signature);   
            Console.WriteLine(encodedToken);   
        }   
    }   
}  
  

Nota

Entrambi i formati di token di firma di accesso condiviso sono corretti e accettati:
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
e
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==

Per il codice di esempio completo, vedere l'esempio di API REST Gestione API .NET.

Passaggi successivi