Usare un'identità gestita per accedere ad Azure Data Manager per l'energia da altri servizi di Azure

Questo articolo descrive come accedere al piano dati o al piano di controllo di Azure Data Manager per l'energia da altri servizi di Microsoft Azure usando un'identità gestita.

È necessario che i servizi, ad esempio Funzioni di Azure, possano usare Azure Data Manager per le API per l'energia. Questa interoperabilità consente di usare le migliori funzionalità di più servizi di Azure.

Ad esempio, è possibile scrivere uno script in Funzioni di Azure per inserire dati in Azure Data Manager for Energy. In questo scenario, è consigliabile presupporre che Funzioni di Azure sia il servizio di origine e Azure Data Manager for Energy sia il servizio di destinazione.

Questo articolo illustra i cinque passaggi principali per configurare Funzioni di Azure per accedere ad Azure Data Manager for Energy.

Panoramica delle identità gestite

Un'identità gestita da Microsoft Entra ID consente all'applicazione di accedere facilmente ad altre risorse protette di Microsoft Entra. L'identità viene gestita dalla piattaforma Azure e non richiede la creazione o la rotazione di segreti. Qualsiasi servizio di Azure che vuole accedere ad Azure Data Manager per piano di controllo energia o piano dati per qualsiasi operazione può usare un'identità gestita a tale scopo.

Sono disponibili due tipi di identità gestite:

  • Le identità gestite assegnate dal sistema hanno il ciclo di vita associato alla risorsa che li ha creati.
  • Le identità gestite assegnate dall'utente possono essere usate in più risorse.

Per altre informazioni sulle identità gestite, vedere Che cosa sono le identità gestite per le risorse di Azure?

Attualmente, altri servizi possono connettersi ad Azure Data Manager for Energy usando un'identità gestita assegnata dal sistema o assegnata dall'utente. Azure Data Manager for Energy, tuttavia, non supporta le identità gestite assegnate dal sistema.

Per lo scenario in questo articolo si userà un'identità gestita assegnata dall'utente in Funzioni di Azure per chiamare un'API del piano dati in Azure Data Manager for Energy.

Prerequisiti

Prima di iniziare, creare le risorse seguenti:

Passaggio 1: Recuperare l'ID oggetto

Per recuperare l'ID oggetto per l'identità assegnata dall'utente che accederà alle API di Azure Data Manager per l'energia:

  1. Accedi al portale di Azure.
  2. Passare all'identità gestita e quindi selezionare Panoramica.
  3. In Informazioni di base prendere nota del valore ID Oggetto (entità).

Screenshot of the object ID for a user-assigned identity.

Passaggio 2: Recuperare l'ID applicazione

Recuperare l'ID applicazione dell'identità assegnata dall'utente usando l'ID oggetto:

  1. Nel portale di Azure passare a Microsoft Entra ID.
  2. Nel menu a sinistra selezionare Applicazioni aziendali.
  3. Nella casella Cerca per nome applicazione o ID oggetto immettere l'ID oggetto.
  4. Per l'applicazione visualizzata nei risultati, prendere nota del valore id applicazione.

Screenshot of the application ID for a user-assigned identity.

Passaggio 3: Aggiungere l'identità gestita assegnata dall'utente a Funzioni di Azure

  1. Nella portale di Azure passare alla funzione di Azure.
  2. In Impostazioni account selezionare Autenticazione.
  3. Selezionare la scheda Assegnata dall'utente e quindi selezionare Aggiungi.
  4. Selezionare l'identità gestita assegnata dall'utente esistente e quindi selezionare Aggiungi. Si torna quindi alla scheda Assegnata dall'utente.

Screenshot of a newly added user-assigned identity to an Azure function.

Passaggio 4: Aggiungere l'ID applicazione ai gruppi entitlement

Aggiungere quindi l'ID applicazione ai gruppi appropriati che useranno il servizio entitlement per accedere alle API di Azure Data Manager per l'energia. L'esempio seguente aggiunge l'ID applicazione a due gruppi:

  • users@[ID partizione].dataservices.energy
  • users.datalake.editors@[ID partizione].dataservices.energy

Per aggiungere l'ID applicazione:

  1. Raccogliere le seguenti informazioni:

    • ID tenant
    • ID client
    • Segreto client
    • Azure Data Manager per l'URI dell'energia
    • ID partizione dati
    • Token di accesso
    • ID applicazione dell'identità gestita
  2. Usare l'API Aggiungi membro per aggiungere l'ID applicazione dell'identità gestita assegnata dall'utente ai gruppi di diritti appropriati.

    Nota

    Nei comandi seguenti assicurarsi di usare l'ID applicazione dell'identità gestita e non l'ID oggetto.

    1. Per aggiungere l'ID applicazione al gruppo users@[ID partizione].dataservices.energy, eseguire il comando cURL seguente tramite Bash in Azure:

       curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/users@ <data-partition-id>.dataservices.energy/members' \
          --header 'data-partition-id: <data-partition-id>' \
          --header 'Authorization: Bearer \
          --header 'Content-Type: application/json' \
          --data-raw '{
                          "email": "<application ID of the managed identity>",
                          "role": "MEMBER"
                      }'
      

      Ecco una risposta di esempio:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. Per aggiungere l'ID applicazione al gruppo users.datalake.editors@[ID partizione].dataservices.energy, eseguire il comando cURL seguente tramite Bash in Azure:

       curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/ users.datalake.editors@ <data-partition-id>.dataservices.energy/members' \
          --header 'data-partition-id: <data-partition-id>' \
          --header 'Authorization: Bearer \
          --header 'Content-Type: application/json' \
          --data-raw '{
                          "email": "<application ID of the managed identity>",
                          "role": "MEMBER"
                      }'
      

      Ecco una risposta di esempio:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      

Passaggio 5: Generare un token

Ora Funzioni di Azure è pronto per accedere ad Azure Data Manager per le API Per l'energia.

La funzione di Azure genera un token usando l'identità assegnata dall'utente. La funzione usa l'ID applicazione presente nell'istanza di Azure Data Manager per l'energia durante la generazione del token.

Di seguito è riportato un esempio del codice della funzione di Azure:

import logging
import requests
import azure.functions as func
from msrestazure.azure_active_directory import MSIAuthentication

def main(req: func.HttpRequest) -> str:
    logging.info('Python HTTP trigger function processed a request.')

    //To authenticate by using a managed identity, you need to pass the Azure Data Manager for Energy application ID as the resource.     
    //To use a user-assigned identity, you should include the   
    //client ID as an additional parameter.
    //Managed identity using user-assigned identity: MSIAuthentication(client_id, resource)

    creds = MSIAuthentication(client_id="<client_id_of_managed_identity>”, resource="<meds_app_id>")
    url = "https://<meds-uri>/api/entitlements/v2/groups"
    payload = {}
    // Passing the data partition ID of Azure Data Manager for Energy in headers along with the token received using the managed instance.
    headers = {
        'data-partition-id': '<data partition id>',
        'Authorization': 'Bearer ' + creds.token["access_token"]
    }
    response = requests.request("GET", url, headers=headers, data=payload, verify=False)
    return response.text

È consigliabile ottenere la risposta seguente da Funzioni di Azure:

Screenshot of a success message from Azure Functions.

Dopo aver completato i passaggi precedenti, è ora possibile usare Funzioni di Azure per accedere alle API di Azure Data Manager per l'energia con l'uso appropriato delle identità gestite.

Passaggi successivi

Informazioni su Lockbox: