Mengautentikasi ke manajemen langsung Azure API Management REST API

Panduan ini menjelaskan cara membuat token akses (token SAS) yang diperlukan untuk melakukan panggilan ke manajemen langsung Azure API Management REST API.

Untuk informasi selengkapnya tentang otorisasi dan prasyarat lainnya untuk mengakses REST API manajemen langsung, lihat Manajemen langsung API Management REST API.

Penting

Akses token SAS hanya dapat diterapkan untuk panggilan API manajemen langsung, misalnya: https://apim-instance.management.azure-api.net/ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis?api-version=2021-08-01. Anda tidak dapat menggunakannya untuk panggilan API ke Azure Resource Manager.

Membuat token SAS secara manual

  1. Navigasi ke instans API Management Azure Anda di portal Azure.

  2. Pilih API Manajemen dari bagian Penyebaran + infrastruktur menu di sebelah kiri.

    Pilih API Manajemen di portal Azure

  3. Di Aktifkan API Management REST API, pilih Ya.

    Penting

    Jika Aktifkan API Management REST API tidak dipilih, panggilan yang dilakukan ke REST API untuk instans layanan tersebut akan gagal.

    Mengaktifkan API API Management di portal Azure

  4. Tentukan tanggal dan waktu kedaluwarsa untuk token akses dalam kotak teks Kedaluwarsa . Nilai ini harus dalam format MM/DD/YYYY H:MM PM|AM.

    Menghasilkan token akses untuk REST API API Management di portal Azure

  5. Pilih kunci primer atau kunci sekunder di daftar drop-down Kunci rahasia . Kunci menyediakan akses yang setara; dua kunci disediakan untuk mengaktifkan strategi manajemen kunci yang fleksibel.

  6. Pilih Buat untuk membuat token akses.

  7. Salin token akses lengkap dan berikan di Authorization header setiap permintaan ke API Management REST API, seperti yang ditunjukkan dalam contoh berikut.

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

Membuat token SAS secara terprogram

  1. Buat string-to-sign dalam format berikut:

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

    di mana:
    identifier- nilai bidang Pengidentifikasi dari tab API Manajemen instans Azure API Management Anda (lihat bagian sebelumnya untuk detailnya).
    expiry - tanggal kedaluwarsa token SAS yang diinginkan.

  2. Buat tanda tangan dengan menerapkan fungsi hash HMAC-SHA512 ke string-to-sign menggunakan kunci primer atau sekunder.

  3. Base64 mengodekan kunci tanda tangan yang dikembalikan.

  4. Buat token akses menggunakan format berikut.

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

    Contoh:

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

  5. Gunakan nilai-nilai ini untuk membuat Authorization header di setiap permintaan ke API Management REST API, seperti yang ditunjukkan dalam contoh berikut.

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

Contoh berikut menunjukkan langkah-langkah sebelumnya untuk menghasilkan token akses.

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

Catatan

Kedua format token SAS sudah benar dan diterima:
SharedAccessSignature uid=53dd860e1b72ff0467030003&ex=2014-08-04T22:03:00.0000000Z&sn=ItH6scUyCazNKHULKA0Yv6T+Skk4bdVmLqcPPPdWoxl2n1+rVbhKlplFrqjkoUFRr0og4wjeDz4yfThC82OjfQ==
dan
SharedAccessSignature integration&201808020500&aAsTE43MAbKMkZ6q83Z732IbzesfsaPEU404oUjQ4ZLE9iIXLz+Jj9rEctxKYw43SioCfdLaDq7dT8RQuBKc0w==

Untuk kode sampel lengkap, lihat Sampel REST API .NET API Management.

Langkah berikutnya