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
Accédez à votre instance Gestion des API Azure dans le portail Azure.
Sélectionnez API de gestion dans la section Déploiement + infrastructure du menu de gauche.
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.
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
.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.
Sélectionnez Générer pour créer le jeton d’accès.
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
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.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.
Encodez au format Base64 la clé de signature renvoyée.
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==
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
- Consultez les informations de référence sur l’API REST Gestion des API.