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 Informazioni sulle 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:
Funzione di Azure basata su Python, usando il portale di Azure o la riga di comando
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:
- Accedere al portale di Azure.
- Passare all'identità gestita e quindi selezionare Panoramica.
- In Informazioni di base prendere nota del valore ID Oggetto (entità).
Passaggio 2: Recuperare l'ID applicazione
Recuperare l'ID applicazione dell'identità assegnata dall'utente usando l'ID oggetto:
- Nel portale di Azure passare a Microsoft Entra ID.
- Nel menu a sinistra selezionare Applicazioni aziendali.
- Nella casella Cerca per nome applicazione o ID oggetto immettere l'ID oggetto.
- Per l'applicazione visualizzata nei risultati, prendere nota del valore id applicazione.
Passaggio 3: Aggiungere l'identità gestita assegnata dall'utente a Funzioni di Azure
- Nella portale di Azure passare alla funzione di Azure.
- In Impostazioni account selezionare Autenticazione.
- Selezionare la scheda Assegnata dall'utente e quindi selezionare Aggiungi.
- Selezionare l'identità gestita assegnata dall'utente esistente e quindi selezionare Aggiungi. Si torna quindi alla scheda Assegnata dall'utente.
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:
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
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.
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" }'
Di seguito è fornito un esempio di risposta:
{ "email": "<application ID of the managed identity>", "role": "MEMBER" }
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" }'
Di seguito è fornito un esempio di risposta:
{ "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:
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: