Sdílet prostřednictvím


Strategie ověřování služby měření 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 transactovatelné SaaS a Aplikace Azure lications 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 tématu Přístupové tokeny Microsoft Entra.

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

Metoda HTTP

POST

URL požadavku

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

Parametr identifikátoru URI

Název parametru Povinní účastníci Popis
tenantId True ID tenanta registrované aplikace Microsoft Entra.

Hlavička požadavku

Název záhlaví Povinní účastníci Popis
Content-Type True Typ obsahu přidružený k požadavku. Výchozí hodnota je application/x-www-form-urlencoded.

Text požadavku

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

Response

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ů ověřit odesílání vlastních událostí využití měřičů. Kód, který generuje využití, můžete vložit do 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 (20e940b3-4c77-4b0b-9a53-9e16a1b010a7) 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 aktuální vlastnosti Spravované skupiny prostředků (není potřeba pro nabídky aplikací 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 generování 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. Další informace najdete v ukázkovém kódu.

  1. ID klienta identity spravované služby (MSI) aplikace je potřeba použít k vygenerování ověřovacího tokenu pro komunikaci s rozhraním API pro měření na Webu Microsoft Marketplace. Další informace najdete v ukázkovém kódu.

    # 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. Použití rozhraní API služby měření marketplace ke generování využití