Bagikan melalui


Strategi autentikasi layanan pengukuran Marketplace

Layanan pengukuran marketplace mendukung dua strategi autentikasi:

Artikel ini menjelaskan kapan dan bagaimana menggunakan berbagai strategi autentikasi untuk mengirimkan meteran kustom dengan aman menggunakan layanan pengukuran Marketplace.

Menggunakan token keamanan Microsoft Entra

Jenis penawaran yang berlaku adalah SaaS yang dapat ditransaksikan dan Aplikasi Azure dengan jenis paket aplikasi terkelola.

Kirimkan pengukur kustom dengan menggunakan ID aplikasi Microsoft Entra tetap yang telah ditentukan sebelumnya untuk mengautentikasi.

Untuk penawaran SaaS, ini adalah satu-satunya opsi yang tersedia. Ini adalah langkah wajib untuk menerbitkan penawaran SaaS apa pun seperti yang dijelaskan dalam mendaftarkan aplikasi SaaS.

Untuk aplikasi Azure dengan paket aplikasi terkelola, Anda harus mempertimbangkan untuk menggunakan strategi ini dalam kasus berikut:

  • Anda sudah memiliki mekanisme untuk berkomunikasi dengan layanan ujung belakang Anda, dan Anda ingin memperluas mekanisme ini untuk memunculkan pengukuran kustom dari layanan pusat.
  • Anda memiliki logika meter kustom yang kompleks. Jalankan logika ini di lokasi pusat, bukan di sumber daya aplikasi terkelola.

Saat mendaftarkan aplikasi, Anda dapat meminta token keamanan Microsoft Entra secara terprogram. Penerbit diharapkan menggunakan token ini dan membuat permintaan untuk menyelesaikannya.

Untuk informasi selengkapnya tentang token ini, lihat Token akses Microsoft Entra.

Mendapatkan token berdasarkan aplikasi Microsoft Entra

Metode HTTP

POST

URL Permintaan

https://login.microsoftonline.com/*{tenantId}*/oauth2/token

Parameter URI

Nama parameter Diperlukan Keterangan
tenantId Benar ID penyewa aplikasi Microsoft Entra terdaftar.

Header permintaan

Nama header Diperlukan Keterangan
Content-Type Benar Jenis konten yang terkait dengan permintaan. Nilai defaultnya adalah application/x-www-form-urlencoded.

Badan permintaan

Nama properti Diperlukan Keterangan
Grant_type Benar Jenis hibah. Gunakan client_credentials.
Client_id Benar Pengidentifikasi klien/aplikasi yang terkait dengan aplikasi Microsoft Entra.
client_secret Benar Rahasia yang terkait dengan aplikasi Microsoft Entra.
Resource Benar Sumber daya target yang diminta tokennya. Gunakan 20e940b3-4c77-4b0b-9a53-9e16a1b010a7.

Respons

Nama Jenis Keterangan
200 OK TokenResponse Permintaan berhasil.

TokenResponse

Contoh token respons:

  {
      "token_type": "Bearer",
      "expires_in": "3600",
      "ext_expires_in": "0",
      "expires_on": "15251…",
      "not_before": "15251…",
      "resource": "20e940b3-4c77-4b0b-9a53-9e16a1b010a7",
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9…"
  }

Menggunakan token identitas yang dikelola Azure

Jenis penawaran yang berlaku adalah penawaran aplikasi Kubernetes dan aplikasi Azure dengan jenis paket aplikasi terkelola.

Menggunakan pendekatan ini memungkinkan identitas sumber daya yang disebarkan untuk mengautentikasi untuk mengirim peristiwa penggunaan meter kustom. Anda dapat menyematkan kode yang memunculkan penggunaan dalam batas-batas penyebaran Anda.

Catatan

Penerbit harus memastikan bahwa sumber daya yang memunculkan penggunaan dikunci, sehingga sumber daya tidak akan diubah.

Aplikasi terkelola Anda dapat berisi berbagai jenis sumber daya, dari Virtual Machines hingga Azure Functions. Untuk informasi selengkapnya tentang cara mengautentikasi menggunakan identitas terkelola untuk layanan yang berbeda, lihat cara menggunakan identitas terkelola untuk sumber daya Azure).

Misalnya, gunakan langkah-langkah berikut untuk mengautentikasi menggunakan VM Windows,

  1. Pastikan Identitas Terkelola dikonfigurasi menggunakan salah satu metode:

  2. Dapatkan token akses untuk ID aplikasi layanan pengukuran Marketplace (20e940b3-4c77-4b0b-9a53-9e16a1b010a7) menggunakan identitas sistem, RDP ke VM, buka konsol PowerShell dan jalankan perintah:

    # curl is an alias to Web-Invoke PowerShell command
    # Get system identity access tokenn
    $MetadataUrl = "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com%2F"
    $Token = curl -H @{"Metadata" = "true"} $MetadataUrl | Select-Object -Expand Content | ConvertFrom-Json
    $Headers = @{}
    $Headers.Add("Authorization","$($Token.token_type) "+ " " + "$($Token.access_token)")
    
  3. Dapatkan ID aplikasi terkelola dari properti 'ManagedBy' grup sumber daya saat ini (tidak diperlukan untuk penawaran aplikasi Kubernetes).

    # Get subscription and resource group
    $metadata = curl -H @{'Metadata'='true'} http://169.254.169.254/metadata/instance?api-version=2019-06-01 | select -ExpandProperty Content | ConvertFrom-Json 
    
    # Make sure the system identity has at least reader permission on the resource group
    $managementUrl = "https://management.azure.com/subscriptions/" + $metadata.compute.subscriptionId + "/resourceGroups/" + $metadata.compute.resourceGroupName + "?api-version=2019-10-01"
    $resourceGroupInfo = curl -Headers $Headers $managementUrl | select -ExpandProperty Content | ConvertFrom-Json
    $managedappId = $resourceGroupInfo.managedBy 
    
  4. Gunakan API layanan pengukuran Marketplace untuk memunculkan penggunaan.

Untuk penawaran aplikasi Kubernetes, gunakan mengikuti langkah-langkah untuk mendapatkan token autentikasi dari aplikasi. Untuk informasi selengkapnya, lihat kode sampel.

  1. ID Klien Identitas Layanan Terkelola (MSI) aplikasi perlu digunakan untuk menghasilkan token autentikasi untuk berkomunikasi ke Microsoft Marketplace Metering API. Untuk informasi selengkapnya, lihat kode sampel.

    # Audience for the token to be generated 
    resource = '20e940b3-4c77-4b0b-9a53-9e16a1b010a7'
    clientId = <identity client id>
    url = "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&clientId={0}&resource={1}".format(clientId,resource)
    headers = {'Metadata': 'true'}
    # Need to import requests module 
    response = requests.get(url)
    response = requests.get(url, headers=headers)
    authToken = response.json()
    
  2. Menggunakan API layanan pengukuran Marketplace untuk memancarkan penggunaan