Een beheerde identiteit gebruiken om toegang te krijgen tot Azure Data Manager for Energy vanuit andere Azure-services
In dit artikel wordt beschreven hoe u toegang krijgen tot het gegevensvlak of het besturingsvlak van Azure Data Manager for Energy van andere Microsoft Azure-services met behulp van een beheerde identiteit.
Er is behoefte aan services zoals Azure Functions om Azure Data Manager voor Energy-API's te kunnen gebruiken. Met deze interoperabiliteit kunt u de beste mogelijkheden van meerdere Azure-services gebruiken.
U kunt bijvoorbeeld een script schrijven in Azure Functions om gegevens op te nemen in Azure Data Manager for Energy. In dat scenario moet u ervan uitgaan dat Azure Functions de bronservice is en Azure Data Manager for Energy de doelservice is.
In dit artikel worden de vijf belangrijkste stappen beschreven voor het configureren van Azure Functions voor toegang tot Azure Data Manager for Energy.
Overzicht van beheerde identiteiten
Met een beheerde identiteit van Microsoft Entra ID heeft uw toepassing eenvoudig toegang tot andere met Microsoft Entra beveiligde resources. De identiteit wordt beheerd door het Azure-platform en vereist niet dat u geheimen maakt of roteert. Elke Azure-service die toegang wil krijgen tot Azure Data Manager voor het energiebeheervlak of gegevensvlak voor elke bewerking, kan hiervoor een beheerde identiteit gebruiken.
Er zijn twee typen beheerde identiteit:
- Door het systeem toegewezen beheerde identiteiten hebben hun levenscyclus gekoppeld aan de resource die ze heeft gemaakt.
- Door de gebruiker toegewezen beheerde identiteiten kunnen worden gebruikt voor meerdere resources.
Zie Wat zijn beheerde identiteiten voor Azure-resources voor meer informatie over beheerde identiteiten.
Momenteel kunnen andere services verbinding maken met Azure Data Manager for Energy met behulp van een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit. Azure Data Manager for Energy biedt echter geen ondersteuning voor door het systeem toegewezen beheerde identiteiten.
Voor het scenario in dit artikel gebruikt u een door de gebruiker toegewezen beheerde identiteit in Azure Functions om een gegevensvlak-API aan te roepen in Azure Data Manager for Energy.
Vereisten
Voordat u begint, maakt u de volgende resources:
Op Python gebaseerde Azure-functie, met behulp van Azure Portal of de opdrachtregel
Stap 1: de object-id ophalen
Ga als volgt te werk om de object-id op te halen voor de door de gebruiker toegewezen identiteit die toegang heeft tot de Api's van Azure Data Manager for Energy:
- Meld u aan bij de Azure-portal.
- Ga naar de beheerde identiteit en selecteer Vervolgens Overzicht.
- Noteer onder Essentials de id-waarde van het object (principal ).
Stap 2: de toepassings-id ophalen
Haal de toepassings-id van de door de gebruiker toegewezen identiteit op met behulp van de object-id:
- Ga in Azure Portal naar Microsoft Entra-id.
- Selecteer Enterprise-toepassingen in het linkermenu.
- Voer in het vak Zoeken op toepassingsnaam of object-id de object-id in.
- Noteer de waarde van de toepassings-id voor de toepassing die in de resultaten wordt weergegeven.
Stap 3: de door de gebruiker toegewezen beheerde identiteit toevoegen aan Azure Functions
- Ga in Azure Portal naar uw Azure-functie.
- Selecteer bij Accountinstellingen de optie Identiteit.
- Selecteer het tabblad Gebruiker toegewezen en selecteer vervolgens Toevoegen.
- Selecteer uw bestaande door de gebruiker toegewezen beheerde identiteit en selecteer vervolgens Toevoegen. Vervolgens keert u terug naar het tabblad Gebruiker toegewezen .
Stap 4: De toepassings-id toevoegen aan rechtengroepen
Voeg vervolgens de toepassings-id toe aan de juiste groepen die gebruikmaken van de rechtenservice voor toegang tot Azure Data Manager for Energy-API's. In het volgende voorbeeld wordt de toepassings-id toegevoegd aan twee groepen:
- users@[partitie-id].dataservices.energy
- users.datalake.editors@[partitie-id].dataservices.energy
De toepassings-id toevoegen:
Verzamel de volgende informatie:
- Tenant-id
- Client-id
- Clientgeheim
- Azure Data Manager for Energy URI
- Gegevenspartitie-id
- Toegangstoken
- Toepassings-id van de beheerde identiteit
Gebruik de Add Member-API om de toepassings-id van de door de gebruiker toegewezen beheerde identiteit toe te voegen aan de juiste rechtengroepen.
Notitie
Zorg ervoor dat u in de volgende opdrachten de toepassings-id van de beheerde identiteit en niet de object-id gebruikt.
Voer de volgende cURL-opdracht uit via Bash in Azure om de toepassings-id toe te voegen aan de groep users@[partition ID].dataservices.energy:
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" }'
Hier volgt een voorbeeldantwoord:
{ "email": "<application ID of the managed identity>", "role": "MEMBER" }
Als u de toepassings-id wilt toevoegen aan de groep users.datalake.editors@[partitie-id].dataservices.energy, voert u de volgende cURL-opdracht uit via 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" }'
Hier volgt een voorbeeldantwoord:
{ "email": "<application ID of the managed identity>", "role": "MEMBER" }
Stap 5: Een token genereren
Azure Functions is nu klaar voor toegang tot Azure Data Manager for Energy-API's.
De Azure-functie genereert een token met behulp van de door de gebruiker toegewezen identiteit. De functie gebruikt de toepassings-id die aanwezig is in het Azure Data Manager for Energy-exemplaar tijdens het genereren van het token.
Hier volgt een voorbeeld van de Azure-functiecode:
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
U krijgt het volgende geslaagde antwoord van Azure Functions:
Nu de voorgaande stappen zijn voltooid, kunt u Azure Functions gebruiken om toegang te krijgen tot Azure Data Manager for Energy-API's met het juiste gebruik van beheerde identiteiten.
Volgende stappen
Meer informatie over Lockbox: