Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O serviço de medição do Marketplace dá suporte a duas estratégias de autenticação:
- Token de segurança do Microsoft Entra
- identidades gerenciadas
Este artigo explica quando e como usar as diferentes estratégias de autenticação para enviar medidores personalizados com segurança usando o serviço de medição do Marketplace.
Usando o token de segurança do Microsoft Entra
Os tipos de oferta aplicáveis são SaaS transacionáveis e Aplicativos Azure com tipo de plano de aplicativo gerenciado.
Envie medidores personalizados usando uma ID de aplicativo fixa predefinida do Microsoft Entra para autenticar.
Para ofertas de SaaS, essa é a única opção disponível. É uma etapa obrigatória para publicar qualquer oferta de SaaS, conforme descrito em registrar um aplicativo SaaS.
Para aplicativos do Azure com plano de aplicativo gerenciado, você deve considerar o uso dessa estratégia nos seguintes casos:
- Você já tem um mecanismo para se comunicar com seus serviços de back-end e deseja estender esse mecanismo para emitir medidores personalizados de um serviço central.
- Você tem uma lógica complexa de medidores personalizados. Execute essa lógica em um local central, em vez dos recursos do aplicativo gerenciado.
Ao registrar seu aplicativo, você pode solicitar programaticamente um token de segurança do Microsoft Entra. Espera-se que o editor use esse token e faça uma solicitação para resolvê-lo.
Para obter mais informações sobre esses tokens, confira Tokens de acesso do Microsoft Entra.
Obter um token com base no aplicativo Microsoft Entra
Método HTTP
POST
URL de solicitação
https://login.microsoftonline.com/*{tenantId}*/oauth2/token
Parâmetro de URI
nome do parâmetro | Obrigatório | Descrição |
---|---|---|
tenantId |
Verdadeiro | ID do locatário do aplicativo Microsoft Entra registrado. |
Cabeçalho da solicitação
nome do cabeçalho | Obrigatório | Descrição |
---|---|---|
Content-Type |
Verdadeiro | Tipo de conteúdo associado à solicitação. O valor padrão é application/x-www-form-urlencoded . |
Corpo da solicitação
Nome da propriedade | Obrigatório | Descrição |
---|---|---|
Grant_type |
Verdadeiro | Tipo de concessão. Use client_credentials . |
Client_id |
Verdadeiro | Identificador de cliente/aplicativo associado ao aplicativo Microsoft Entra. |
client_secret |
Verdadeiro | Segredo associado ao aplicativo Microsoft Entra. |
Resource |
Verdadeiro | Recurso de destino para o qual o token é solicitado. Use 00001111-aaaa-2222-bbbb-3333cccc4444 . |
Resposta
Nome | Tipo | Descrição |
---|---|---|
200 OK |
TokenResponse |
Solicitação bem-sucedida. |
TokenResponse
Exemplo de token de resposta
{
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "0",
"expires_on": "15251…",
"not_before": "15251…",
"resource": "00001111-aaaa-2222-bbbb-3333cccc4444",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayIsImtpZCI6ImlCakwxUmNxemhpeTRmcHhJeGRacW9oTTJZayJ9…"
}
Usando o token de identidades gerenciadas pelo Azure
Os tipos de oferta aplicáveis são ofertas de aplicativo kubernetes e aplicativos do Azure com tipo de plano de aplicativo gerenciado.
Usar essa abordagem permite que a identidade de recursos implantados se autentique para enviar eventos de uso de medidores personalizados. Você pode inserir o código que registra o uso nos limites da sua implantação.
Nota
O Publisher deve garantir que os recursos que emitem dados de utilização estejam bloqueados, para que não possam ser adulterados.
Seu aplicativo gerenciado pode conter diferentes tipos de recursos, de Máquinas Virtuais a Azure Functions. Para obter mais informações sobre como autenticar usando identidades gerenciadas para diferentes serviços, consulte como usar identidades gerenciadas para recursos do Azure).
Por exemplo, use as etapas a seguir para autenticar usando uma VM do Windows,
Verifique se a Identidade Gerenciada está configurada usando um dos métodos:
Obtenha um token de acesso para a ID do aplicativo de serviço de medição do Marketplace (
00001111-aaaa-2222-bbbb-3333cccc4444
) usando a identidade do sistema, RDP para a VM, abra o console do PowerShell e execute o 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)")
Obtenha a ID do aplicativo gerenciado da propriedade 'ManagedBy' dos grupos de recursos atuais (não necessária para ofertas de aplicativos do 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
Use a API de serviço de medição do Marketplace para emitir o uso.
Para ofertas de aplicativo do Kubernetes, use as etapas a seguir para obter um token de autenticação do aplicativo. Para obter mais informações, consulte o código de exemplo .
A ID do cliente MSI (Identidade de Serviço Gerenciado) do aplicativo precisa ser usada para gerar o token de autenticação para se comunicar com a API de Medição do Microsoft Marketplace. Para obter mais informações, consulte o código de exemplo .
# 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()
Usar a API do serviço de medição do Marketplace para emitir o uso