Sdílet prostřednictvím


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

  1. V Azure Portal přejděte k instanci Azure API Management.

  2. V části Nasazení a infrastruktura v nabídce na levé straně vyberte Rozhraní API pro správu.

    V Azure Portal vyberte rozhraní API pro správu.

  3. 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.

    Povolení rozhraní API MANAGEMENT API v Azure Portal

  4. 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.

    Vygenerování přístupového tokenu pro rozhraní REST API API Management v Azure Portal

  5. 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íčů.

  6. Výběrem možnosti Generovat vytvořte přístupový token.

  7. 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

  1. 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.

  2. Vygenerujte podpis použitím funkce hash HMAC-SHA512 na řetězec-to-sign pomocí primárního nebo sekundárního klíče.

  3. Base64 kóduje vrácený klíč podpisu.

  4. 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==

  5. 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.

Další kroky