Comment faire une authentification pour API Rest subcription Azure Openaiest subcription Azure Openai le scope =/subscriptions/00000000-0000-0000-0000-00000000/resourceGroup

Nicolas 0 Points de réputation
2025-02-05T10:20:25.9433333+00:00

Bonjour nous souhaitons récupérer des informations sur notre souscription sur AzureOpenAI via API Rest afin de l'intégrer dans un power bi nous avons trouvé l'URL pour récupérer les informations :

curl --location 'https://management.azure.com/subscriptions/a6e3c2d8-3c49-4f44-9915-0cf9b61dcdc5/resourceGroups/davidson-data/providers/Microsoft.CostManagement/query?api-version=2024-08-01&expor=null' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {Bearer_token}' \
--data '{
  "type": "Usage",
  "timeframe": "Custom",
  "timePeriod": {
    "from": "2024-10-01T00:00:00Z",
    "to": "2024-11-30T00:00:00Z"
  },
  "dataset": {
    "granularity": "Daily",
    "aggregation": {
      "totalCost": {
        "name": "PreTaxCost",
        "function": "Sum"
      }
    },
    "grouping": [
      {
        "type": "Dimension",
        "name": "ResourceGroup"
      }
    ]
  }
}

Le problème c'est la partie Authentification qui bloque {bearer_token}

On a trouvé cette requête POST :

curl --location 'https://login.microsoftonline.com/a6e3c2d8-3c49-4f44-9915-0cf9b61dcdc5/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic bmljb2xhcy5yb3NzYXJkLnR3QGRhdmlkc29uLmZyOg==' \
--header 'Cookie: fpc=AogELIAG0udCicy361Vn4Ht8MIKnAQAAAH4mNd8OAAAA; stsservicecookie=estsfd; x-ms-gateway-slice=estsfd' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=https://management.azure.com/.default'

Mais il nous manque des informations comme
client_id

client_secret

grant_type

La documentation ici n'est pas très claire sur le sujet

Pour résumer :

Avoir une requête permettant de récupérer le coût de notre souscription entre deux dates sur Azure
Merci beaucoup

Azure
Azure
Plateforme et infrastructure de cloud computing pour la génération, le déploiement et la gestion d’applications et de services à travers un réseau mondial de centres de données gérés par Microsoft.
396 questions
{count} votes

1 réponse

Trier par : Le plus utile
  1. Sampath 340 Points de réputation Fournisseur Microsoft
    2025-02-20T09:05:12.82+00:00

    Bonjour, Nicolas,

    Vous trouverez ci-dessous les étapes pour authentifier et interroger l'API Azure Cost Management :

    Enregistrer une application dans Azure Active Directory :

    Pour s'authentifier avec les API REST d'Azure, vous devez enregistrer une application dans Azure Active Directory (Azure AD).

    • Accédez au Portail Azure et naviguez vers Azure Active Directory > Enregistrements d’applications.
    • Cliquez sur Nouvel enregistrement, puis saisissez un nom (par exemple, AzureCostAPIApp).
    • Choisissez "Comptes dans ce répertoire organisationnel uniquement" comme type de compte pris en charge, puis cliquez sur Enregistrer.

    Après l'enregistrement de votre application, vous devez récupérer les informations d'identification suivantes :

    • ID client : Disponible dans Enregistrements d’applications sous ID d'application (client).
    • ID de locataire : Disponible dans Enregistrements d’applications sous ID du répertoire (locataire).
    • Secret client :
      • Allez dans Certificats et secrets.
      • Cliquez sur Nouveau secret client, nommez-le et enregistrez le secret généré.

    Attribuer des autorisations API

    • Accédez à Autorisations API dans votre application enregistrée et cliquez sur Ajouter une autorisation.
    • Choisissez Azure Service Management > Autorisations déléguées, puis activez user_impersonation.
    • Cliquez sur Accorder le consentement de l'administrateur pour appliquer les modifications.

    Commande cURL pour obtenir un jeton

    
    curl --location 'https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token' \
    
    --header 'Content-Type: application/x-www-form-urlencoded' \
    
    --data-urlencode 'grant_type=client_credentials' \
    
    --data-urlencode 'client_id={client_id}' \
    
    --data-urlencode 'client_secret={client_secret}' \
    
    --data-urlencode 'scope=https://management.azure.com/.default'
    
    

    Remplacez {tenant_id}, {client_id}, {client_secret} par vos valeurs réelles.

    Exemple de réponse

    
    {
    
      "token_type": "Bearer",
    
      "expires_in": 3600,
    
      "access_token": "eyJ0eXAiOi..."
    
    }
    
    

    Extrayez le "access_token" pour l'utiliser avec l'API Azure Cost Management.

    Interroger l'API Azure Cost Management

    Une fois le jeton obtenu, utilisez-le pour demander des données de coût à l'API Azure Cost Management.

    
    curl --location 'https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.CostManagement/query?api-version=2024-08-01' \
    
    --header 'Content-Type: application/json' \
    
    --header 'Authorization: Bearer {access_token}' \
    
    --data '{
    
      "type": "Usage",
    
      "timeframe": "Custom",
    
      "timePeriod": {
    
        "from": "2024-10-01T00:00:00Z",
    
        "to": "2024-11-30T00:00:00Z"
    
      },
    
      "dataset": {
    
        "granularity": "Daily",
    
        "aggregation": {
    
          "totalCost": {
    
            "name": "PreTaxCost",
    
            "function": "Sum"
    
          }
    
        },
    
        "grouping": [
    
          {
    
            "type": "Dimension",
    
            "name": "ResourceGroup"
    
          }
    
        ]
    
      }
    
    }'
    
    

    Remplacez {subscription_id}, {resource_group} et {access_token} en conséquence.

    Consultez cette documentation Microsoft pour attribuer des autorisations aux API Azure Cost Management.

    Je traduis les réponses depuis l’anglais, donc merci d’excuser d’éventuelles erreurs grammaticales.

    J’espère que cela vous sera utile !

    Si cette réponse vous a été utile, cliquez sur "Accepter la réponse" et laissez un vote positif.

    Si vous avez d'autres questions, cliquez sur "Commenter".

    0 commentaires Aucun commentaire

Votre réponse

Les réponses peuvent être marquées comme réponses acceptées par l’auteur de la question, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur.