Authentifizieren bei der azure-API Management-REST-API für die direkte Verwaltung
In diesem Leitfaden wird beschrieben, wie Sie das Zugriffstoken (SAS-Token) erstellen, das erforderlich ist, um Aufrufe an die azure API Management-REST-API für die direkte Verwaltung zu tätigen.
Weitere Informationen zur Autorisierung und anderen Voraussetzungen für den Zugriff auf die REST-API für die direkte Verwaltung finden Sie unter Direkte Verwaltung API Management REST-API.
Wichtig
Der SAS-Tokenzugriff kann nur für API-Aufrufe der direkten Verwaltung angewendet werden, z. B.: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01
. Sie können es nicht für API-Aufrufe von Azure Resource Manager verwenden.
Manuelles Erstellen eines SAS-Tokens
Navigieren Sie im Azure-Portal zu Ihrer Azure API Management-Instanz.
Wählen Sie im Menü auf der linken Seite im Abschnitt Bereitstellung + Infrastruktur die Option Verwaltungs-API aus.
Wählen Sie unter Aktivieren API Management REST-API die Option Ja aus.
Wichtig
Wenn API Management REST-API aktivieren nicht ausgewählt ist, schlagen Aufrufe der REST-API für diesen Dienst instance fehl.
Geben Sie Ablaufdatum und -Uhrzeit für das Zugriffstoken in das Textfeld Ablaufzeit ein. Dieser Wert muss im Format
MM/DD/YYYY H:MM PM|AM
angegeben werden.Wählen Sie entweder den Primärschlüssel oder den sekundären Schlüssel in der Dropdownliste Geheimer Schlüssel aus. Beide Schlüssel bieten einen gleichwertigen Zugriff. Die Angabe von zwei Schlüsseln ermöglicht flexiblere Schlüsselverwaltungsstrategien.
Wählen Sie Generieren aus, um das Zugriffstoken zu erstellen.
Kopieren Sie das gesamte Zugriffstoken und verwenden Sie es im
Authorization
-Header für alle Anfragen an die API-Verwaltungs-REST-API, wie im folgenden Beispiel gezeigt.Authorization: SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==
Programmgesteuertes Erstellen eines SAS-Tokens
Erstellen Sie eine Zeichenzeichenfolge im folgenden Format:
{identifier} + "\n" + {expiry}
Dabei gilt:
identifier
– der Wert des Felds Bezeichner auf der Registerkarte Verwaltungs-API Ihres Azure API Management instance (Details finden Sie im vorherigen Abschnitt).
expiry
– Gewünschtes Ablaufdatum des SAS-Tokens.Generieren Sie eine Signatur, indem Sie eine HMAC-SHA512-Hashfunktion entweder mit dem primären oder dem sekundären Schlüssel auf die StringToSign-Zeichenfolge anwenden.
Codieren Sie den zurückgegebenen Signaturschlüssel mit Base64.
Erstellen Sie ein Zugriffstoken im folgenden Format.
uid={identifier}&ex={expiry}&sn={Base64 encoded signature}
Beispiel:
uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
Verwenden Sie diese Werte zur Erstellung des
Authorization
-Headers für alle Anfragen an die API-Verwaltungs-REST-API, wie im folgenden Beispiel gezeigt.Authorization: SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
Das folgende Beispiel demonstriert die hier beschriebenen Schritte zur Erstellung des Zugriffstokens.
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);
}
}
}
Hinweis
Beide SAS-Tokenformate sind richtig und werden akzeptiert:
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
und
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==
Den vollständigen Beispielcode finden Sie im Beispiel für API Management .NET-REST-API.