Marketplace metering service authentication strategies

A Marketplace mérési szolgáltatás két hitelesítési stratégiát támogat:

Ez a cikk bemutatja, hogy mikor és hogyan használhatja a különböző hitelesítési stratégiákat az egyéni fogyasztásmérők biztonságos beküldéséhez a Marketplace mérési szolgáltatással.

A Microsoft Entra biztonsági jogkivonat használata

Az alkalmazható ajánlattípusok felügyelt alkalmazáscsomag-típussal rendelkező átvehető SaaS- és Azure-alkalmazás.

Egyéni mérőszámok elküldése előre meghatározott rögzített Microsoft Entra-alkalmazásazonosítóval a hitelesítéshez.

SaaS-ajánlatok esetén ez az egyetlen elérhető lehetőség. Ez egy kötelező lépés az SaaS-ajánlatok közzétételéhez az SaaS-alkalmazások regisztrálásában leírtak szerint.

Felügyelt alkalmazáscsomaggal rendelkező Azure-alkalmazások esetén a következő esetekben érdemes megfontolni ezt a stratégiát:

  • Már rendelkezik egy olyan mechanizmussal, amellyel kommunikálhat a háttérszolgáltatásokkal, és ki szeretné terjeszteni ezt a mechanizmust az egyéni mérők központi szolgáltatásból való kibocsátására.
  • Összetett egyéni fogyasztásmérő-logikával rendelkezik. Futtassa ezt a logikát központi helyen a felügyelt alkalmazáserőforrások helyett.

Az alkalmazás regisztrálása után programozott módon igényelhet Microsoft Entra biztonsági jogkivonatot. A közzétevőnek várhatóan ezt a jogkivonatot kell használnia, és kérnie kell a megoldását.

További információ ezekről a jogkivonatokról: Microsoft Entra hozzáférési jogkivonatok.

Jogkivonat lekérése a Microsoft Entra alkalmazás alapján

HTTP-metódus

POST

Kérés URL-címe

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

URI-paraméter

Paraméter neve Szükséges Ismertetés
tenantId Igaz A regisztrált Microsoft Entra-alkalmazás bérlőazonosítója.

Kérelem fejléce

Fejléc neve Szükséges Ismertetés
Content-Type Igaz A kérelemhez társított tartalomtípus. Az alapértelmezett érték application/x-www-form-urlencoded.

Kérelem törzse

Tulajdonság neve Szükséges Ismertetés
Grant_type Igaz Megadás típusa. Use client_credentials.
Client_id Igaz A Microsoft Entra alkalmazáshoz társított ügyfél-/alkalmazásazonosító.
client_secret Igaz A Microsoft Entra alkalmazáshoz társított titkos kód.
Resource Igaz Célerőforrás, amelyhez a jogkivonatot kérik. Use 20e940b3-4c77-4b0b-9a53-9e16a1b010a7.

Válasz

Név Típus Ismertetés
200 OK TokenResponse A kérés sikeres volt.

TokenResponse

Minta válasz jogkivonata:

  {
      "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…"
  }

Az Azure által felügyelt identitások jogkivonatának használata

Az alkalmazható ajánlattípusok a Kubernetes-alkalmazásajánlatok és a felügyelt alkalmazáscsomag típusú Azure-alkalmazások.

Ezzel a módszerrel az üzembe helyezett erőforrások identitása hitelesíthető az egyéni mérőszámok használati eseményeinek küldéséhez. Beágyazhatja a használatot kibocsátó kódot az üzembe helyezés határain belül.

Megjegyzés:

A Publishernek biztosítania kell, hogy a használatot kibocsátó erőforrások zárolva legyenek, így azok nem lesznek illetéktelenek.

A felügyelt alkalmazás különböző típusú erőforrásokat tartalmazhat a virtuális gépektől az Azure Functionsig. A felügyelt identitások különböző szolgáltatásokhoz való hitelesítéséről további információt a felügyelt identitások Azure-erőforrásokhoz való használatával kapcsolatban talál.

Például a következő lépésekkel hitelesítheti magát Egy Windows rendszerű virtuális géppel,

  1. Győződjön meg arról, hogy a felügyelt identitás az alábbi módszerek egyikével van konfigurálva:

  2. Szerezze be a Marketplace mérési szolgáltatásalkalmazás-azonosítójának (20e940b3-4c77-4b0b-9a53-9e16a1b010a7) hozzáférési jogkivonatát a rendszeradentitás használatával, RDP-t a virtuális géphez, nyissa meg a PowerShell-konzolt, és futtassa a parancsot:

    # 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. Kérje le a felügyelt alkalmazás azonosítóját az aktuális erőforráscsoportok "ManagedBy" tulajdonságából (a Kubernetes-alkalmazásajánlatokhoz nem szükséges).

    # 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. Használja a Marketplace metering service API-t a használat kibocsátásához.

A Kubernetes-alkalmazásajánlatok esetében az alábbi lépésekkel kérhet le egy hitelesítési jogkivonatot az alkalmazásból. További információ: mintakód.

  1. Az alkalmazás felügyeltszolgáltatás-identitás (MSI) ügyfélazonosítóját kell használni a Microsoft Marketplace Metering API-val való kommunikációhoz szükséges hitelesítési jogkivonat létrehozásához. További információ: mintakód.

    # 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. Használat kibocsátásához használja a Marketplace metering service API-t

További lépések