Stratégies d’authentification du service de mesure de la Place de marché
Le service de mesure de la Place de marché prend en charge deux stratégies d’authentification :
Cet article explique quand et comment utiliser les différentes stratégies d’authentification pour envoyer en toute sécurité des compteurs personnalisés à l’aide du service de contrôle de la Place de marché.
Utilisation du jeton de sécurité Microsoft Entra
Les types d’offres applicables sont les applications SaaS et Azure traitées avec le type de plan d’application managée.
Envoyez des compteurs personnalisés à l’aide d’un ID d’application Microsoft Entra prédéfini pour l’authentification.
Pour les offres SaaS, il s’agit de la seule option disponible. Il s’agit d’une étape obligatoire pour la publication d’une offre SaaS, comme décrit dans Inscrire une application SaaS.
Pour les applications Azure avec un plan d’application managée, vous devez envisager d’utiliser cette stratégie dans les cas suivants :
- Vous disposez déjà d’un mécanisme de communication avec vos services principaux et souhaitez étendre ce mécanisme pour émettre des compteurs personnalisés à partir d’un service central.
- Vous avez une logique de compteurs personnalisés complexe. Exécutez cette logique dans un emplacement central au lieu des ressources d’applications managées.
Lorsque vous inscrivez votre application, vous pouvez demander par programme un jeton de sécurité Microsoft Entra. Le serveur de publication doit utiliser ce jeton et effectuer une requête pour le résoudre.
Pour plus d’informations sur ces jetons, consultez Les jetons d’accès Microsoft Entra.
Obtenir un jeton basé sur l’application Microsoft Entra
Méthode HTTP
POST
URL de requête
https://login.microsoftonline.com/*{tenantId}*/oauth2/token
Paramètre URI
Nom du paramètre | Obligatoire | Description |
---|---|---|
tenantId |
True | ID de locataire de l’application Microsoft Entra inscrite. |
En-tête de requête
Nom de l’en-tête | Obligatoire | Description |
---|---|---|
Content-Type |
True | Type de contenu associé à la requête. La valeur par défaut est application/x-www-form-urlencoded . |
Corps de la demande
Nom de la propriété | Obligatoire | Description |
---|---|---|
Grant_type |
True | Type d’autorisation. Utiliser client_credentials . |
Client_id |
True | Identificateur client/application associé à l’application Microsoft Entra. |
client_secret |
True | Secret associé à l’application Microsoft Entra. |
Resource |
True | Ressource cible pour laquelle le jeton est demandé. Utiliser 20e940b3-4c77-4b0b-9a53-9e16a1b010a7 . |
Response
Nom | Type | Description |
---|---|---|
200 OK |
TokenResponse |
Demande réussie. |
TokenResponse
Voici un exemple de token de réponse :
{
"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…"
}
Utilisation du jeton d’identités managées par Azure
Les types d’offres applicables sont des offres d’application Kubernetes et des applications Azure avec un type de plan d’application managé.
Cette approche permet à l’identité des ressources déployées de s’authentifier pour envoyer des événements d’utilisation de compteurs personnalisés. Vous pouvez incorporer le code qui émet l’utilisation dans les limites de votre déploiement.
Remarque
Le serveur de publication doit s’assurer que les ressources qui émettent l’utilisation sont verrouillées afin qu’il n’y ait pas de falsification.
Votre application managée peut contenir différents types de ressources, des machines virtuelles aux Azure Functions. Pour plus d’informations sur la façon de s’authentifier à l’aide d’identités managées pour différents services, consultez Comment utiliser des identités managées pour des ressources Azure).
Par exemple, utilisez les étapes suivantes pour vous authentifier à l’aide d’une machine virtuelle Windows,
Assurez-vous que l’identité managée est configurée à l’aide de l’une des méthodes suivantes :
Obtenez un jeton d’accès pour l’ID d’application de service de contrôle de la Place de marché (
20e940b3-4c77-4b0b-9a53-9e16a1b010a7
) à l’aide de l’identité système, rdp sur la machine virtuelle, ouvrez la console PowerShell et exécutez la commande :# 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)")
Obtenez l’ID d’application managée à partir de la propriété « ManagedBy » des groupes de ressources actuels (non nécessaire pour les offres d’application 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
Utilisez l’API du service de mesure de la Place de marché pour émettre l’utilisation.
Pour les offres d’application Kubernetes, procédez comme suit pour obtenir un jeton d’authentification à partir de l’application. Pour plus d’informations, consultez l’exemple de code.
L’ID client MSI (Managed Service Identity) de l’application doit être utilisé pour générer un jeton d’authentification pour communiquer avec l’API contrôle de la Place de marché Microsoft. Pour plus d’informations, consultez l’exemple de code.
# 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()
Utiliser l’API du service de contrôle de la Place de marché pour émettre l’utilisation