Freigeben über


Verwenden einer verwalteten Identität für den Zugriff auf Azure Data Manager for Energy über andere Azure-Dienste

In diesem Artikel wird beschrieben, wie Sie über andere Microsoft Azure-Dienste mithilfe einer verwalteten Identität auf die Daten- oder Steuerungsebene von Azure Data Manager for Energy zugreifen.

Dienste wie Azure Functions müssen Azure Data Manager for Energy-APIs nutzen können. Diese Interoperabilität ermöglicht es Ihnen, die besten Funktionen mehrerer Azure-Dienste zu nutzen.

Sie können beispielsweise ein Skript in Azure Functions zum Erfassen von Daten in Azure Data Manager for Energy schreiben. In diesem Szenario sollten Sie davon ausgehen, dass Azure Functions der Quelldienst und Azure Data Manager for Energy der Zieldienst ist.

In diesem Artikel werden die fünf wichtigsten Schritte zum Konfigurieren von Azure Functions für den Zugriff auf Azure Data Manager for Energy erläutert.

Übersicht über verwaltete Identitäten

Eine verwaltete Identität von Microsoft Entra ID ermöglicht Ihrer Anwendung, einfach auf andere durch Microsoft Entra geschützte Ressourcen zuzugreifen. Da die Identität von der Azure-Plattform verwaltet wird, müssen Sie keine Geheimnisse erstellen oder rotieren. Jeder Azure-Dienst, der für einen beliebigen Vorgang auf die Steuerungs- oder Datenebene von Azure Data Manager for Energy zugreifen möchte, kann hierfür eine verwaltete Identität verwenden.

Es gibt zwei Arten von verwalteten Identitäten:

  • Systemseitig zugewiesene verwaltete Identitäten haben ihren Lebenszyklus an die Ressource gebunden, die sie erstellt hat.
  • Benutzerseitig zugewiesene verwaltete Identitäten können für mehrere Ressourcen verwendet werden.

Weitere Informationen zu verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.

Derzeit können andere Dienste eine Verbindung mit Azure Data Manager for Energy unter Verwendung einer systemseitig oder benutzerseitig zugewiesenen verwalteten Identität herstellen. Azure Data Manager for Energy unterstützt jedoch keine systemseitig zugewiesenen verwalteten Identitäten.

Für das Szenario in diesem Artikel verwenden Sie eine benutzerseitig zugewiesene verwaltete Identität in Azure Functions, um eine Datenebenen-API in Azure Data Manager for Energy aufzurufen.

Voraussetzungen

Erstellen Sie die folgenden Ressourcen, bevor Sie beginnen:

Schritt 1: Abrufen der Objekt-ID

So rufen Sie die Objekt-ID für die benutzerseitig zugewiesene Identität ab, die auf die Azure Data Manager for Energy-APIs zugreift:

  1. Melden Sie sich beim Azure-Portal an.
  2. Wechseln Sie zur verwalteten Identität, und wählen Sie dann Übersicht aus.
  3. Notieren Sie sich unter Essentials den Wert Objekt-ID (Prinzipal).

Screenshot der Objekt-ID für eine benutzerseitig zugewiesene Identität.

Schritt 2: Abrufen der Anwendungs-ID

Rufen Sie die Anwendungs-ID der benutzerseitig zugewiesenen Identität mithilfe der Objekt-ID ab:

  1. Navigieren Sie im Azure-Portal zu Microsoft Entra ID.
  2. Wählen Sie im Menü auf der linken Seite die Option Unternehmensanwendungen aus.
  3. Geben Sie im Feld Nach Anwendungsname oder Objekt-ID suchen die Objekt-ID ein.
  4. Notieren Sie sich den Wert der Anwendungs-ID für die in den Ergebnissen angezeigte Anwendung.

Screenshot der Anwendungs-ID für eine benutzerseitig zugewiesene Identität.

Schritt 3: Hinzufügen der benutzerseitig zugewiesenen verwalteten Identität zu Azure Functions

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Funktion.
  2. Wählen Sie unter Kontoeinstellungen die Option Identität aus.
  3. Wählen Sie die Registerkarte Benutzerseitig zugewiesen und dann Hinzufügen aus.
  4. Wählen Sie Ihre vorhandene benutzerseitig zugewiesene verwaltete Identität und dann Hinzufügen aus. Daraufhin werden Sie zur Registerkarte Benutzerseitig zugewiesen zurückgeleitet.

Screenshot einer zu einer Azure-Funktion neu hinzugefügte benutzerseitig zugewiesene Identität.

Schritt 4: Hinzufügen der Anwendungs-ID zu Berechtigungsgruppen

Fügen Sie als Nächstes die Anwendungs-ID den entsprechenden Gruppen hinzu, die den Berechtigungsdienst für den Zugriff auf Azure Data Manager for Energy-APIs verwenden. Im folgenden Beispiel wird die Anwendungs-ID zu zwei Gruppen hinzugefügt:

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

So fügen Sie die Anwendungs-ID hinzu:

  1. Sammeln Sie die folgenden Informationen:

    • Mandanten-ID
    • Client-ID
    • Geheimer Clientschlüssel
    • Azure Data Manager for Energy-URI
    • Datenpartitions-ID
    • Zugriffstoken
    • Anwendungs-ID der verwalteten Identität
  2. Verwenden Sie die Add Member-API, um die Anwendungs-ID der benutzerseitig zugewiesenen verwalteten Identität zu den entsprechenden Berechtigungsgruppen hinzuzufügen.

    Hinweis

    Verwenden Sie in den folgenden Befehlen unbedingt die Anwendungs-ID der verwalteten Identität und nicht die Objekt-ID.

    1. Um die Anwendungs-ID zur Gruppe „users@[partition ID].dataservices.energy“ hinzuzufügen, führen Sie den folgenden cURL-Befehl über Bash in Azure aus:

       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 sehen Sie eine Beispielantwort:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. Um die Anwendungs-ID zur Gruppe „users.datalake.editors@[partition ID].dataservices.energy“ hinzuzufügen, führen Sie den folgenden cURL-Befehl über Bash in Azure aus:

       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 sehen Sie eine Beispielantwort:

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

Schritt 5: Generieren eines Token

Jetzt kann Azure Functions auf Azure Data Manager for Energy-APIs zugreifen.

Die Azure-Funktion generiert mithilfe der vom Benutzer zugewiesenen Identität ein Token. Die Funktion verwendet die während der Tokengenerierung in der Azure Data Manager for Energy-Instanz vorhandene Anwendungs-ID.

Hier sehen Sie ein Beispiel für den Azure Functions-Code:

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

Sie sollten die folgende Erfolgsantwort von Azure Functions erhalten:

Screenshot der Erfolgsmeldung von Azure Functions.

Nach Abschluss der vorherigen Schritte können Sie Azure Functions jetzt verwenden, um auf Azure Data Manager for Energy-APIs mit entsprechender Verwendung von verwalteten Identitäten zuzugreifen.

Nächste Schritte

Weitere Informationen zu Lockbox: