Verifiëren bij de Azure API Management REST API voor direct beheer

In deze handleiding wordt beschreven hoe u het toegangstoken (SAS-token) maakt dat nodig is om aanroepen uit te voeren in de Azure API Management REST API voor direct beheer.

Zie Direct beheer API Management REST API voor meer informatie over autorisatie en andere vereisten voor toegang tot de REST API voor direct beheer.

Belangrijk

SAS-tokentoegang kan alleen worden toegepast voor API-aanroepen voor direct beheer, bijvoorbeeld: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01. U kunt deze niet gebruiken voor API-aanroepen naar Azure Resource Manager.

Handmatig een SAS-token maken

  1. Navigeer naar uw Azure API Management-exemplaar in de Azure Portal.

  2. Selecteer Beheer-API in de sectie Implementatie en infrastructuur van het menu aan de linkerkant.

    Selecteer Management-API in de Azure Portal

  3. Selecteer in API Management REST API inschakelen de optie Ja.

    Belangrijk

    Als Enable API Management REST API niet is geselecteerd, mislukken aanroepen naar de REST API voor dat service-exemplaar.

    API Management-API inschakelen in de Azure Portal

  4. Geef de vervaldatum en -tijd voor het toegangstoken op in het tekstvak Verloop . Deze waarde moet de indeling MM/DD/YYYY H:MM PM|AMhebben.

    Toegangstoken genereren voor API Management REST API in de Azure Portal

  5. Selecteer de primaire sleutel of secundaire sleutel in de vervolgkeuzelijst Geheime sleutel . De sleutels bieden gelijkwaardige toegang; er worden twee sleutels verstrekt om strategieën voor flexibel sleutelbeheer mogelijk te maken.

  6. Selecteer Genereren om het toegangstoken te maken.

  7. Kopieer het volledige toegangstoken en geef dit op in de Authorization header van elke aanvraag naar de API Management REST API, zoals wordt weergegeven in het volgende voorbeeld.

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

Programmatisch een SAS-token maken

  1. Maak een tekenreeks om aan te melden in de volgende indeling:

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

    Hierbij
    identifier- de waarde van het veld Id op het tabblad Beheer-API van uw Azure API Management-exemplaar (zie de vorige sectie voor meer informatie).
    expiry - gewenste vervaldatum van het SAS-token.

  2. Genereer een handtekening door een HMAC-SHA512-hashfunctie toe te passen op de tekenreeks om te ondertekenen met behulp van de primaire of secundaire sleutel.

  3. Base64 codeer de geretourneerde handtekeningsleutel.

  4. Maak een toegangstoken met de volgende indeling.

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

    Voorbeeld:

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

  5. Gebruik deze waarden om een Authorization header te maken in elke aanvraag voor de API Management REST API, zoals wordt weergegeven in het volgende voorbeeld.

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

In het volgende voorbeeld ziet u de voorgaande stappen voor het genereren van het toegangstoken.

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

Notitie

Beide SAS-tokenindelingen zijn correct en worden geaccepteerd:
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
en
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==

Zie het API Management .NET REST API-voorbeeld voor volledige voorbeeldcode.

Volgende stappen