Sdílet prostřednictvím


Strategie ověřování meteringové služby na Marketplace

Služba měření na Marketplace podporuje dvě strategie ověřování:

Tento článek vysvětluje, kdy a jak používat různé strategie ověřování k bezpečnému odesílání vlastních měřičů pomocí služby měření marketplace.

Použití tokenu zabezpečení Microsoft Entra

Příslušné typy nabídek jsou transakční SaaS a aplikace Azure s typem plánu 'spravované aplikace'.

K ověření odešlete vlastní měřiče pomocí předdefinovaného pevného ID aplikace Microsoft Entra.

U nabídek SaaS je to jediná dostupná možnost. Jedná se o povinný krok pro publikování jakékoli nabídky SaaS, jak je popsáno v registraci aplikace SaaS.

U aplikací Azure s plánem spravovaných aplikací byste měli zvážit použití této strategie v následujících případech:

  • Už máte mechanismus pro komunikaci s back-endovými službami a chcete tento mechanismus rozšířit o generování vlastních měřičů z centrální služby.
  • Máte složitou logiku vlastních měřičů. Tuto logiku spusťte v centrálním umístění místo prostředků spravovaných aplikací.

Při registraci aplikace můžete programově požádat o token zabezpečení Microsoft Entra. Očekává se, že vydavatel použije tento token a požádá ho o jeho vyřešení.

Další informace o těchto tokenech najdete v části Microsoft Entra přístupové tokeny.

Získání tokenu na základě aplikace Microsoft Entra

Metoda HTTP

POST

URL požadavku

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

parametru identifikátoru URI

název parametru povinné popis
tenantId Pravda ID tenanta registrované aplikace Microsoft Entra.

Hlavička požadavku

název záhlaví povinné popis
Content-Type Pravda Typ obsahu přidružený k požadavku. Výchozí hodnota je application/x-www-form-urlencoded.

textu požadavku

název vlastnosti povinné popis
Grant_type Pravda Typ udělení. Použijte client_credentials.
Client_id Pravda Identifikátor klienta nebo aplikace přidružený k aplikaci Microsoft Entra.
client_secret Pravda Tajný kód přidružený k aplikaci Microsoft Entra.
Resource Pravda Cílový prostředek, pro který se token požaduje. Použijte 20e940b3-4c77-4b0b-9a53-9e16a1b010a7.

odpověď

název typ popis
200 OK TokenResponse Požadavek byl úspěšný.

TokenResponse

Ukázkový token odpovědi:

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

Použití tokenu identit spravovaných Azure

Příslušné typy nabídek jsou nabídky aplikací Kubernetes a aplikace Azure s typem plánu spravované aplikace.

Použití tohoto přístupu umožňuje identitě nasazených prostředků autentizovat se k odeslání událostí vlastního využití měřičů. Kód, který zaznamenává použití, můžete vložit v rámci hranic vašeho nasazení.

Poznámka

Vydavatel by měl zajistit, aby prostředky, které generují využití, byly uzamčeny, takže nebudou manipulovány.

Vaše spravovaná aplikace může obsahovat jiný typ prostředků, od služby Virtual Machines až po Azure Functions. Další informace o ověřování pomocí spravovaných identit pro různé služby najdete v tématu použití spravovaných identit pro prostředky Azure).

K ověření pomocí virtuálního počítače s Windows použijte například následující postup:

  1. Pomocí jedné z metod se ujistěte, že je spravovaná identita nakonfigurovaná:

  2. Získejte přístupový token pro ID aplikace služby měření marketplace (00001111-aaaa-2222-bbbb-3333cccc4444) pomocí systémové identity, protokolu RDP k virtuálnímu počítači, otevřete konzolu PowerShellu a spusťte příkaz:

    # 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. Získejte ID spravované aplikace z vlastnosti 'ManagedBy' aktuálních skupin prostředků (není třeba pro nabídky aplikací pro 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. K hlášení využití použijte rozhraní API služby měření Marketplace.

Pro nabídky aplikací Kubernetes použijte následující postup k získání ověřovacího tokenu z aplikace. Pro více informací viz vzorový kód.

  1. ID klienta Spravované identity služby (MSI) aplikace je potřeba použít k vygenerování ověřovacího tokenu pro komunikaci s rozhraním Microsoft Marketplace Metering API. Pro více informací viz vzorový kód.

    # Audience for the token to be generated 
    resource = '00001111-aaaa-2222-bbbb-3333cccc4444'
    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. Použijte Marketplace metering service API pro odesílání údajů o využití