S’authentifier auprès de l’API REST Azure Gestion des API de gestion directe

Ce guide explique comment créer le jeton d’accès (jeton SAS) nécessaire pour effectuer des appels dans l’API REST Azure Gestion des API de gestion directe.

Pour plus d’informations sur l’autorisation et d’autres conditions préalables pour accéder à l’API REST de gestion directe, consultez Gestion directe Gestion des API API REST.

Important

L’accès au jeton SAS ne peut être appliqué que pour les appels d’API de gestion directe, par exemple : https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01. Vous ne pouvez pas l’utiliser pour les appels d’API à Azure Resource Manager.

Créer manuellement un jeton SAP

  1. Accédez à votre instance Gestion des API Azure dans le portail Azure.

  2. Sélectionnez API de gestion dans la section Déploiement + infrastructure du menu de gauche.

    Sélectionnez API de gestion dans le Portail Azure

  3. Dans Activer Gestion des API API REST, sélectionnez Oui.

    Important

    Si l’option Activer Gestion des API’API REST n’est pas sélectionnée, les appels effectués à l’API REST pour ce service instance échouent.

    Activer Gestion des API API dans le Portail Azure

  4. Indiquez la date et l'heure d'expiration pour le jeton d'accès dans la zone de texte Expiration. Cette valeur doit être au format MM/DD/YYYY H:MM PM|AM.

    Générer un jeton d’accès pour Gestion des API’API REST dans le Portail Azure

  5. Sélectionnez la clé primaire ou la clé secondaire dans la liste déroulante Clé secrète . Les clés fournissent un accès équivalent ; deux clés sont fournies pour permettre des stratégies souples de gestion des clés.

  6. Sélectionnez Générer pour créer le jeton d’accès.

  7. Copiez le jeton d'accès complet et indiquez-le dans l'en-tête Authorization de chaque demande à l'API REST de gestion des API, comme illustré dans l'exemple suivant.

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

Créer par programmation un jeton SAP

  1. Créez une chaîne pour se connecter au format suivant :

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

    où :
    identifier- la valeur du champ Identificateur de l’onglet API gestion de votre Gestion des API instance Azure (voir la section précédente pour plus d’informations).
    expiry - date d’expiration souhaitée du jeton SAP.

  2. Générez une signature en appliquant une fonction de hachage HMAC-SHA512 à la chaîne de signature à l'aide de la clé primaire ou secondaire.

  3. Encodez au format Base64 la clé de signature renvoyée.

  4. Créez un jeton d'accès avec le format suivant.

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

    Exemple :

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

  5. Utilisez ces valeurs pour créer un en-tête Authorization dans chaque demande à l'API REST de gestion des API, comme illustré dans l'exemple suivant.

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

L'exemple suivant illustre les étapes précédentes de génération du jeton d'accès.

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);   
        }   
    }   
}  
  

Notes

Les deux formats de jeton SAS sont corrects et acceptés :
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
and
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==

Pour obtenir un exemple de code complet, consultez l’exemple d’API REST Gestion des API .NET.

Étapes suivantes