Menggunakan identitas terkelola untuk mengakses Azure Data Manager for Energy dari layanan Azure lainnya

Artikel ini menjelaskan cara mengakses sarana data atau sarana kontrol Azure Data Manager for Energy dari layanan Microsoft Azure lainnya dengan menggunakan identitas terkelola.

Ada kebutuhan untuk layanan seperti Azure Functions untuk dapat menggunakan Azure Data Manager untuk API Energi. Interoperabilitas ini memungkinkan Anda menggunakan kemampuan terbaik dari beberapa layanan Azure.

Misalnya, Anda dapat menulis skrip di Azure Functions untuk menyerap data di Azure Data Manager for Energy. Dalam skenario itu, Anda harus mengasumsikan bahwa Azure Functions adalah layanan sumber dan Azure Data Manager for Energy adalah layanan target.

Artikel ini memancarkan Anda melalui lima langkah utama untuk mengonfigurasi Azure Functions untuk mengakses Azure Data Manager for Energy.

Gambaran umum identitas terkelola

Identitas terkelola dari MICROSOFT Entra ID memungkinkan aplikasi Anda mengakses sumber daya lain yang dilindungi Microsoft Entra dengan mudah. Identitas dikelola oleh platform Azure dan tidak mengharuskan Anda untuk membuat atau memutar rahasia apa pun. Setiap layanan Azure yang ingin mengakses sarana kontrol Azure Data Manager for Energy atau sarana data untuk operasi apa pun dapat menggunakan identitas terkelola untuk melakukannya.

Ada dua jenis identitas terkelola:

  • Identitas terkelola yang ditetapkan sistem memiliki siklus hidup yang terkait dengan sumber daya yang membuatnya.
  • Identitas terkelola yang ditetapkan pengguna dapat digunakan pada beberapa sumber daya.

Untuk mempelajari identitas terkelola selengkapnya, lihat Apa itu identitas terkelola untuk sumber daya Azure?.

Saat ini, layanan lain dapat terhubung ke Azure Data Manager for Energy dengan menggunakan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna. Namun, Azure Data Manager for Energy tidak mendukung identitas terkelola yang ditetapkan sistem.

Untuk skenario dalam artikel ini, Anda akan menggunakan identitas terkelola yang ditetapkan pengguna di Azure Functions untuk memanggil API bidang data di Azure Data Manager for Energy.

Prasyarat

Sebelum Anda mulai, buatlah sumber daya berikut ini:

Langkah 1: Ambil ID objek

Untuk mengambil ID objek untuk identitas yang ditetapkan pengguna yang akan mengakses API Azure Data Manager for Energy:

  1. Masuk ke portal Azure.
  2. Buka identitas terkelola, lalu pilih Gambaran Umum.
  3. Di bawah Esensial, perhatikan nilai ID Objek (utama).

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

Langkah 2: Ambil ID aplikasi

Ambil ID aplikasi identitas yang ditetapkan pengguna dengan menggunakan ID objek:

  1. Di portal Azure, buka ID Microsoft Entra.
  2. Di menu kiri, pilih aplikasi Enterprise.
  3. Dalam kotak Cari menurut nama aplikasi atau ID objek, masukkan ID objek.
  4. Untuk aplikasi yang muncul dalam hasil, perhatikan nilai ID Aplikasi.

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

Langkah 3: Tambahkan identitas terkelola yang ditetapkan pengguna ke Azure Functions

  1. Di portal Azure, buka fungsi Azure Anda.
  2. Pada Pengaturan Akun, harap pilih Identitas.
  3. Pilih tab Ditetapkan pengguna, lalu pilih Tambahkan.
  4. Pilih identitas terkelola yang ditetapkan pengguna yang sudah ada, lalu pilih Tambahkan. Anda kemudian dikembalikan ke tab Pengguna yang ditetapkan.

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

Langkah 4: Tambahkan ID aplikasi ke grup pemberian izin

Selanjutnya, tambahkan ID aplikasi ke grup yang sesuai yang akan menggunakan layanan pemberian hak untuk mengakses Api Azure Data Manager for Energy. Contoh berikut menambahkan ID aplikasi ke dua grup:

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

Untuk menambahkan ID aplikasi:

  1. Kumpulkan informasi berikut:

    • ID Penyewa
    • ID klien
    • Rahasia Klien
    • Azure Data Manager untuk URI Energi
    • ID partisi data
    • Token akses
    • ID aplikasi identitas terkelola
  2. Gunakan Tambahkan API Anggota untuk menambahkan ID aplikasi identitas terkelola yang ditetapkan pengguna ke grup pemberian hak yang sesuai.

    Catatan

    Dalam perintah berikut, pastikan untuk menggunakan ID aplikasi identitas terkelola dan bukan ID objek.

    1. Untuk menambahkan ID aplikasi ke grup users@[ID partisi].dataservices.energy, jalankan perintah cURL berikut melalui Bash di 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"
                      }'
      

      Berikut adalah contoh respons:

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. Untuk menambahkan ID aplikasi ke grup users.datalake.editors@[ID partisi].dataservices.energy, jalankan perintah cURL berikut melalui Bash di 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"
                      }'
      

      Berikut adalah contoh respons:

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

Langkah 5: Hasilkan token

Sekarang Azure Functions siap mengakses Azure Data Manager untuk ENERGY API.

Fungsi Azure menghasilkan token dengan menggunakan identitas yang ditetapkan pengguna. Fungsi ini menggunakan ID aplikasi yang ada di instans Azure Data Manager for Energy saat menghasilkan token.

Berikut adalah contoh kode fungsi 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

Anda akan mendapatkan respons yang berhasil berikut dari Azure Functions:

Screenshot of a success message from Azure Functions.

Dengan langkah-langkah sebelumnya selesai, Anda sekarang dapat menggunakan Azure Functions untuk mengakses Api Azure Data Manager for Energy dengan penggunaan identitas terkelola yang sesuai.

Langkah berikutnya

Pelajari tentang Lockbox: