Sdílet prostřednictvím


Použití spravované identity pro přístup k Azure Data Manageru pro energii z jiných služeb Azure

Tento článek popisuje, jak získat přístup k rovině dat nebo řídicí rovině Azure Data Manageru pro energii z jiných služeb Microsoft Azure pomocí spravované identity.

Je potřeba, aby služby, jako je Azure Functions, mohly využívat Azure Data Manager pro rozhraní API pro energii. Tato interoperabilita umožňuje používat nejlepší možnosti více služeb Azure.

Můžete například napsat skript ve službě Azure Functions pro příjem dat v Azure Data Manageru pro energii. V tomto scénáři byste měli předpokládat, že azure Functions je zdrojová služba a Azure Data Manager pro energii je cílová služba.

Tento článek vás provede pěti hlavními kroky konfigurace azure Functions pro přístup k Azure Data Manageru pro energii.

Přehled spravovaných identit

Spravovaná identita z Microsoft Entra ID umožňuje vaší aplikaci snadný přístup k dalším prostředkům chráněným microsoftem Entra. Identita je spravovaná platformou Azure a nevyžaduje, abyste vytvořili nebo obměněli tajné kódy. Jakákoli služba Azure, která chce získat přístup k Azure Data Manageru pro rovinu řízení energie nebo rovinu dat pro jakoukoli operaci, může k tomu použít spravovanou identitu.

Existují dva typy spravovaných identit:

  • Spravované identity přiřazené systémem mají svůj životní cyklus svázaný s prostředkem, který je vytvořil.
  • Spravované identity přiřazené uživatelem je možné použít u více prostředků.

Další informace o spravovaných identitách najdete v tématu Co jsou spravované identity pro prostředky Azure?

V současné době se ostatní služby můžou připojit k Azure Data Manageru pro energii pomocí spravované identity přiřazené systémem nebo přiřazené uživatelem. Azure Data Manager pro energii ale nepodporuje spravované identity přiřazené systémem.

Pro scénář v tomto článku použijete spravovanou identitu přiřazenou uživatelem ve službě Azure Functions k volání rozhraní API roviny dat v Azure Data Manageru pro energii.

Předpoklady

Než začnete, vytvořte následující prostředky:

Krok 1: Načtení ID objektu

Načtení ID objektu pro identitu přiřazenou uživatelem, která bude přistupovat k Azure Data Manageru pro rozhraní API pro energii:

  1. Přihlaste se k portálu Azure.
  2. Přejděte na spravovanou identitu a pak vyberte Přehled.
  3. V části Základy si poznamenejte hodnotu ID objektu (objektu zabezpečení).

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

Krok 2: Načtení ID aplikace

Načtěte ID aplikace identity přiřazené uživatelem pomocí ID objektu:

  1. Na webu Azure Portal přejděte na MICROSOFT Entra ID.
  2. V nabídce vlevo vyberte Podnikové aplikace.
  3. Do pole Hledat podle názvu aplikace nebo ID objektu zadejte ID objektu.
  4. Pro aplikaci, která se zobrazí ve výsledcích, si poznamenejte hodnotu ID aplikace.

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

Krok 3: Přidání spravované identity přiřazené uživatelem do Azure Functions

  1. Na webu Azure Portal přejděte do funkce Azure.
  2. V části Nastavení účtu vyberte Identita.
  3. Vyberte kartu Přiřazený uživatel a pak vyberte Přidat.
  4. Vyberte stávající spravovanou identitu přiřazenou uživatelem a pak vyberte Přidat. Pak se vrátíte na kartu Přiřazené uživatelem.

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

Krok 4: Přidání ID aplikace do skupin nároků

Dále přidejte ID aplikace do příslušných skupin, které budou používat službu nároků pro přístup k Azure Data Manageru pro rozhraní API pro energii. Následující příklad přidá ID aplikace do dvou skupin:

  • users@[ID oddílu].dataservices.energy
  • users.datalake.editors@[ID oddílu].dataservices.energy

Přidání ID aplikace:

  1. Shromážděte následující informace:

    • ID klientu
    • ID klienta
    • Tajný klíč klienta
    • Azure Data Manager pro identifikátor URI pro energii
    • ID datového oddílu
    • Přístupový token
    • ID aplikace spravované identity
  2. Pomocí rozhraní API přidat člena přidejte ID aplikace spravované identity přiřazené uživatelem do příslušných skupin nároků.

    Poznámka:

    V následujících příkazech nezapomeňte použít ID aplikace spravované identity, nikoli ID objektu.

    1. Pokud chcete přidat ID aplikace do skupiny users@[id oddílu].dataservices.energy group, spusťte v Azure následující příkaz cURL:

       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"
                      }'
      

      Tady je ukázková odpověď:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. Pokud chcete přidat ID aplikace do skupiny users.datalake.editors@[id oddílu].dataservices.energy group, spusťte v Azure následující příkaz cURL:

       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"
                      }'
      

      Tady je ukázková odpověď:

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

Krok 5: Vygenerování tokenu

Služba Azure Functions je teď připravená pro přístup k Azure Data Manageru pro rozhraní API pro energii.

Funkce Azure vygeneruje token pomocí identity přiřazené uživatelem. Funkce používá ID aplikace, které se nachází v instanci Azure Data Manageru pro energii při generování tokenu.

Tady je příklad kódu funkce 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

Z Azure Functions byste měli získat následující úspěšnou odpověď:

Screenshot of a success message from Azure Functions.

Po dokončení předchozích kroků teď můžete pomocí Azure Functions přistupovat k Azure Data Manageru pro energetická rozhraní API s vhodným využitím spravovaných identit.

Další kroky

Další informace o Lockboxu: