Ověření v rozhraní REST API pro přímou správu Azure API Management
Tato příručka popisuje, jak vytvořit přístupový token (token SAS) potřebný k volání do rozhraní REST API přímé správy Azure API Management.
Další informace o autorizaci a dalších požadavcích pro přístup k rozhraní REST API pro přímou správu najdete v tématu Přímá správa API Management rozhraní REST API.
Důležité
Přístup k tokenu SAS je možné použít pouze pro volání rozhraní API pro přímou správu, například: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01
. Nemůžete ho použít pro volání rozhraní API do Azure Resource Manager.
Ruční vytvoření tokenu SAS
V Azure Portal přejděte k instanci Azure API Management.
V části Nasazení a infrastruktura v nabídce na levé straně vyberte Rozhraní API pro správu.
V části Povolit rozhraní REST API API Management vyberte Ano.
Důležité
Pokud možnost Povolit API Management rozhraní REST API není vybraná, volání rozhraní REST API pro danou instanci služby selžou.
V textovém poli Vypršení platnosti zadejte datum a čas vypršení platnosti přístupového tokenu. Tato hodnota musí být ve formátu
MM/DD/YYYY H:MM PM|AM
.V rozevíracím seznamu Tajný klíč vyberte primární nebo sekundární klíč. Klíče poskytují ekvivalentní přístup; K dispozici jsou dva klíče, které umožňují strategie flexibilní správy klíčů.
Výběrem možnosti Generovat vytvořte přístupový token.
Zkopírujte úplný přístupový token a zadejte ho v
Authorization
hlavičce každého požadavku do API Management ROZHRANÍ REST API, jak je znázorněno v následujícím příkladu.Authorization: SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==
Programové vytvoření tokenu SAS
Vytvořte řetězec pro přihlášení v následujícím formátu:
{identifier} + "\n" + {expiry}
kde:
identifier
– hodnota pole Identifikátor na kartě Rozhraní API pro správu vaší instance Azure API Management (podrobnosti najdete v předchozí části).
expiry
– požadované datum vypršení platnosti tokenu SAS.Vygenerujte podpis použitím funkce hash HMAC-SHA512 na řetězec-to-sign pomocí primárního nebo sekundárního klíče.
Base64 kóduje vrácený klíč podpisu.
Vytvořte přístupový token pomocí následujícího formátu.
uid={identifier}&ex={expiry}&sn={Base64 encoded signature}
Příklad:
uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
Tyto hodnoty použijte k vytvoření
Authorization
hlavičky v každém požadavku na API Management ROZHRANÍ REST API, jak je znázorněno v následujícím příkladu.Authorization: SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
Následující příklad ukazuje předchozí kroky pro vygenerování přístupového tokenu.
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);
}
}
}
Poznámka
Oba formáty tokenů SAS jsou správné a přijaté:
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
a
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==
Kompletní ukázkový kód najdete v ukázce rozhraní .NET REST API API Management.