Estrategias de autenticación del servicio de medición de Marketplace
El servicio de medición de Marketplace admite dos estrategias de autenticación:
En este artículo se explica cuándo y cómo usar las distintas estrategias de autenticación para enviar de forma segura medidores personalizados mediante el servicio de medición de Marketplace.
Uso del token de seguridad de Microsoft Entra
Los tipos de oferta aplicables son aplicaciones comercializables SaaS y de Azure con el tipo de plan de aplicación administrada.
Envíe medidores personalizados mediante un identificador de aplicación fijo de Microsoft Entra predefinido para autenticarse.
En el caso de las ofertas de SaaS, esta es la única opción disponible. Es un paso obligatorio para publicar cualquier oferta de SaaS tal y como se describe en Registro de una aplicación SaaS.
En el caso de las aplicaciones de Azure con un plan de aplicación administrado, debe considerar la posibilidad de usar esta estrategia en los casos siguientes:
- Ya tiene un mecanismo para comunicarse con los servicios back-end y desea extender este mecanismo para emitir medidores personalizados desde un servicio central.
- Dispone de lógica de medidores personalizados compleja. Ejecute esta lógica en una ubicación central, en lugar de en los recursos de la aplicación administrada.
Al registrar la aplicación, puede solicitar mediante programación un token de seguridad de Microsoft Entra. Se espera que el anunciante use este token y realice una solicitud para resolverlo.
Para obtener más información sobre estos tokens, consulte Tokens de acceso de Microsoft Entra.
Obtención de un token basado en la aplicación Microsoft Entra
Método de HTTP
POST
Request URL (URL de la solicitud)
https://login.microsoftonline.com/*{tenantId}*/oauth2/token
Parámetro de URI
Nombre del parámetro | Obligatorio | Descripción |
---|---|---|
tenantId |
True | Identificador de inquilino de la aplicación Microsoft Entra registrada. |
Encabezado de solicitud
Nombre de encabezado | Obligatorio | Descripción |
---|---|---|
Content-Type |
True | Tipo de contenido asociado a la solicitud. El valor predeterminado es application/x-www-form-urlencoded . |
Cuerpo de la solicitud
Nombre de propiedad | Obligatorio | Descripción |
---|---|---|
Grant_type |
True | Tipo de concesión. Use client_credentials . |
Client_id |
True | Identificador de cliente o aplicación asociado a la aplicación Microsoft Entra. |
client_secret |
True | Secreto asociado a la aplicación Microsoft Entra. |
Resource |
True | Recurso de destino para el que se solicita el token. Use 20e940b3-4c77-4b0b-9a53-9e16a1b010a7 . |
Respuesta
Nombre | Tipo | Descripción |
---|---|---|
200 OK |
TokenResponse |
La solicitud se realizó correctamente. |
TokenResponse
Ejemplo de token de respuesta:
{
"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…"
}
Uso del token de identidades administradas por Azure
Los tipos de oferta aplicables son ofertas de aplicaciones de Kubernetes y aplicaciones de Azure con tipo de plan de aplicación administrada.
El uso de este enfoque permite que la identidad de los recursos implementados se autentique para enviar eventos de uso de medidores personalizados. Puede insertar el código que emite el uso dentro de los límites de la implementación.
Nota:
El anunciante debe asegurarse de que los recursos que emiten el uso están bloqueados, para que no se puedan modificar.
La aplicación administrada puede contener diferentes tipos de recursos, desde Virtual Machines hasta Azure Functions. Para más información sobre cómo autenticarse con identidades administradas en diferentes servicios, consulte ¿Cómo se usan las identidades administradas para recursos de Azure?.
Por ejemplo, siga estos pasos para autenticarse mediante una máquina virtual Windows,
Asegúrese de que la identidad administrada está configurada mediante uno de estos métodos:
Obtenga un token de acceso para el identificador de aplicación del servicio de medición de Marketplace (
20e940b3-4c77-4b0b-9a53-9e16a1b010a7
) mediante la identidad del sistema, RDP a la máquina virtual, abra la consola de PowerShell y ejecute el comando:# 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)")
Obtenga el identificador de aplicación administrada de la propiedad "ManagedBy" de los grupos de recursos actuales (no es necesario para las ofertas de aplicaciones de 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
Utilice la API del servicio de medición de Marketplace para emitir el uso.
En el caso de las ofertas de aplicaciones de Kubernetes, siga los pasos para obtener un token de autenticación de la aplicación. Para obtener más información, consulte código de ejemplo.
El identificador de cliente de Managed Service Identity (MSI) de la aplicación debe usarse para generar el token de autenticación para comunicarse con la API de medición de Microsoft Marketplace. Para obtener más información, consulte código de ejemplo.
# 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()
Uso de la API del servicio de medición de Marketplace para emitir uso