Aracılığıyla paylaş


Market ölçüm hizmeti kimlik doğrulama stratejileri

Market ölçüm hizmeti iki kimlik doğrulama stratejisini destekler:

Bu makalede, Market ölçüm hizmetini kullanarak özel ölçümleri güvenli bir şekilde göndermek için farklı kimlik doğrulama stratejilerinin ne zaman ve nasıl kullanılacağı açıklanmaktadır.

Microsoft Entra güvenlik belirtecini kullanma

Geçerli teklif türleri, yönetilen uygulama planı türüne sahip işlem yapılabilir SaaS ve Azure Uygulaması lication'lardır.

Kimlik doğrulaması için önceden tanımlanmış sabit bir Microsoft Entra uygulama kimliği kullanarak özel ölçümler gönderin.

SaaS teklifleri için tek kullanılabilir seçenek budur. SaaS uygulamasını kaydetme bölümünde açıklandığı gibi herhangi bir SaaS teklifini yayımlamak için zorunlu bir adımdır.

Yönetilen uygulama planına sahip Azure uygulamaları için aşağıdaki durumlarda bu stratejiyi kullanmayı düşünmelisiniz:

  • Arka uç hizmetlerinizle iletişim kurmak için zaten bir mekanizmanız var ve bu mekanizmayı merkezi bir hizmetten özel ölçümler yayacak şekilde genişletmek istiyorsunuz.
  • Karmaşık özel ölçüm mantığınız var. Bu mantığı yönetilen uygulama kaynakları yerine merkezi bir konumda çalıştırın.

Uygulamanızı kaydederken program aracılığıyla bir Microsoft Entra güvenlik belirteci isteyebilirsiniz. Yayımcının bu belirteci kullanması ve çözümlemek için bir istekte bulunması beklenir.

Bu belirteçler hakkında daha fazla bilgi için bkz . Microsoft Entra erişim belirteçleri.

Microsoft Entra uygulamasını temel alan bir belirteç alma

HTTP Yöntemi

POST

İstek URL'si

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

URI parametresi

Parametre adı Required Açıklama
tenantId True Kayıtlı Microsoft Entra uygulamasının Kiracı Kimliği.

İstek üst bilgisi

Üst bilgi adı Required Açıklama
Content-Type True İstekle ilişkili içerik türü. Varsayılan değer şudur: application/x-www-form-urlencoded.

İstek gövdesi

Özellik adı Required Açıklama
Grant_type True Verme türü. client_credentials adresini kullanın.
Client_id True Microsoft Entra uygulamasıyla ilişkili istemci/uygulama tanımlayıcısı.
client_secret True Microsoft Entra uygulamasıyla ilişkili gizli dizi.
Resource True Belirtecin istendiği hedef kaynak. 20e940b3-4c77-4b0b-9a53-9e16a1b010a7 adresini kullanın.

Response

Ad Tür Açıklama
200 OK TokenResponse İstek başarılı oldu.

TokenResponse

Örnek yanıt belirteci:

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

Azure tarafından yönetilen kimlikler belirtecini kullanma

Geçerli teklif türleri Kubernetes uygulama teklifleri ve yönetilen uygulama planı türüne sahip Azure uygulamalarıdır.

Bu yaklaşımın kullanılması, dağıtılan kaynakların kimliğinin özel ölçüm kullanım olayları göndermek için kimlik doğrulaması yapmasına olanak tanır. Dağıtımınızın sınırları içinde kullanımı yayan kodu ekleyebilirsiniz.

Not

Publisher, kullanımı yayan kaynakların kilitli olduğundan emin olmalıdır, böylece değiştirilmez.

Yönetilen uygulamanız Sanal Makineler ile Azure İşlevleri farklı türde kaynaklar içerebilir. Farklı hizmetler için yönetilen kimlikleri kullanarak kimlik doğrulaması yapma hakkında daha fazla bilgi için bkz . Azure kaynakları için yönetilen kimlikleri kullanma).

Örneğin, Windows VM kullanarak kimlik doğrulaması yapmak için aşağıdaki adımları kullanın.

  1. Yönetilen Kimliğin aşağıdaki yöntemlerden biri kullanılarak yapılandırıldığından emin olun:

  2. Sistem kimliğini, VM'ye RDP'yi kullanarak Market ölçüm hizmeti uygulama kimliği (20e940b3-4c77-4b0b-9a53-9e16a1b010a7) için bir erişim belirteci alın, PowerShell konsolunu açın ve komutunu çalıştırın:

    # 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. Geçerli 'ManagedBy' kaynak gruplarından yönetilen uygulama kimliğini alın (Kubernetes uygulama teklifleri için gerekli değildir).

    # 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. Kullanımı yaymak için Market ölçüm hizmeti API'sini kullanın.

Kubernetes uygulama teklifleri için, uygulamadan kimlik doğrulama belirteci almak için aşağıdaki adımları kullanın. Daha fazla bilgi için bkz . örnek kod.

  1. Uygulamanın Yönetilen Hizmet Kimliği (MSI) İstemci Kimliği, Microsoft Market Ölçüm API'si ile iletişim kurmak üzere kimlik doğrulama belirteci oluşturmak için kullanılmalıdır. Daha fazla bilgi için bkz . örnek kod.

    # 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. Kullanımı yaymak için Market ölçüm hizmeti API'sini kullanma

Sonraki adımlar