다음을 통해 공유


관리 ID를 사용하여 다른 Azure 서비스에서 Azure Data Manager for Energy에 액세스합니다.

이 문서에서는 관리 ID를 사용하여 다른 Microsoft Azure 서비스에서 Azure Data Manager for Energy의 데이터 평면 또는 컨트롤 플레인에 액세스하는 방법을 설명합니다.

Azure Data Manager for Energy API를 사용할 수 있도록 Azure Functions와 같은 서비스가 필요합니다. 이러한 상호 운용성을 통해 여러 Azure 서비스의 최상의 기능을 사용할 수 있습니다.

예를 들어 Azure Functions에서 스크립트를 작성하여 Azure Data Manager for Energy에서 데이터를 수집할 수 있습니다. 이 시나리오에서는 Azure Functions가 원본 서비스이고 Azure Data Manager for Energy가 대상 서비스라고 가정해야 합니다.

이 문서에서는 Azure Data Manager for Energy에 액세스하도록 Azure Functions를 구성하기 위한 5가지 기본 단계를 안내합니다.

관리 ID 개요

Microsoft Entra ID의 관리 ID를 사용하면 애플리케이션이 다른 Microsoft Entra로 보호된 리소스에 쉽게 액세스할 수 있습니다. ID는 Azure 플랫폼에서 관리되며 비밀을 만들거나 회전할 필요가 없습니다. 모든 작업에 대해 Azure Data Manager for Energy 컨트롤 플레인 또는 데이터 평면에 액세스하려는 모든 Azure 서비스는 관리 ID를 사용하여 액세스할 수 있습니다.

두 가지 종류의 관리 ID가 있습니다.

  • 시스템 할당 관리 ID의 수명 주기는 해당 ID를 생성한 리소스에 연결되어 있습니다.
  • 사용자 할당 관리 ID는 여러 리소스에서 사용할 수 있습니다.

관리 ID에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID란?을 참조하세요.

현재 다른 서비스는 시스템 할당 또는 사용자 할당 관리 ID를 사용하여 Azure Data Manager for Energy에 연결할 수 있습니다. 그러나 Azure Data Manager for Energy는 시스템 할당 관리 ID를 지원하지 않습니다.

이 문서의 시나리오에서는 Azure Functions의 사용자 할당 관리 ID를 사용하여 Azure Data Manager for Energy에서 데이터 평면 API를 호출합니다.

필수 조건

시작하기 전에 다음 리소스를 만듭니다.

1단계: 개체 ID 검색

Azure Data Manager for Energy API에 액세스할 사용자 할당 ID의 개체 ID를 검색하려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.
  2. 관리 ID로 이동한 다음, 개요를 선택합니다.
  3. Essentials에서 개체(보안 주체) ID 값을 적어 둡니다.

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

2단계: 애플리케이션 ID 검색

개체 ID를 사용하여 사용자 할당 ID의 애플리케이션 ID를 검색합니다.

  1. Azure Portal에서 Microsoft Entra ID로 이동합니다.
  2. 왼쪽 메뉴에서 엔터프라이즈 애플리케이션을 선택합니다.
  3. 애플리케이션 이름 또는 개체 ID로 검색 상자에 개체 ID를 입력합니다.
  4. 결과에 표시되는 애플리케이션의 경우 애플리케이션 ID 값을 적어 둡니다.

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

3단계: 사용자 할당 관리 ID를 Azure Functions에 추가

  1. Azure Portal에서 Azure 함수로 이동합니다.
  2. 계정 설정에서 ID를 선택합니다.
  3. 사용자 할당 탭을 선택한 다음, 추가를 선택합니다.
  4. 기존 사용자 할당 관리 ID를 선택한 다음, 추가를 선택합니다. 그러면 사용자 할당 탭으로 돌아갑니다.

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

4단계: 권한 그룹에 애플리케이션 ID 추가

다음으로, 권한 서비스를 사용하여 Azure Data Manager for Energy API에 액세스하려는 적절한 그룹에 애플리케이션 ID를 추가합니다. 다음 예제에서는 애플리케이션 ID를 두 그룹에 추가합니다.

  • users@[파티션 ID].dataservices.energy
  • users.datalake.editors@[파티션 ID].dataservices.energy

애플리케이션 ID를 추가하려면 다음을 수행합니다.

  1. 다음 정보를 수집합니다.

    • 테넌트 ID
    • 클라이언트 ID
    • 클라이언트 암호
    • Azure Data Manager for Energy URI
    • 데이터 파티션 ID
    • 액세스 토큰
    • 관리 ID의 애플리케이션 ID
  2. 멤버 추가 API를 사용하여 사용자 할당 관리 ID의 애플리케이션 ID를 적절한 권한 그룹에 추가합니다.

    참고 항목

    다음 명령에서 개체 ID가 아닌 관리 ID의 애플리케이션 ID를 사용해야 합니다.

    1. 애플리케이션 ID를 users@[파티션 ID].dataservices.energy 그룹에 추가하려면 Azure의 Bash를 통해 다음 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"
                      }'
      

      샘플 응답은 다음과 같습니다.

      {
          "email": "<application ID of the managed identity>",
          "role": "MEMBER"
          }
      
    2. 애플리케이션 ID를 users.datalake.editors@[파티션 ID].dataservices.energy 그룹에 추가하려면 Azure의 Bash를 통해 다음 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"
                      }'
      

      샘플 응답은 다음과 같습니다.

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

5단계: 토큰 생성

이제 Azure Functions가 Azure Data Manager for Energy API에 액세스할 준비가 되었습니다.

Azure 함수는 사용자 할당 ID를 사용하여 토큰을 생성합니다. 함수는 토큰을 생성하는 동안 Azure Data Manager for Energy 인스턴스에 있는 애플리케이션 ID를 사용합니다.

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

Azure Functions에서 다음과 같은 성공적인 응답을 받아야 합니다.

Screenshot of a success message from Azure Functions.

이전 단계가 완료되면 이제 Azure Functions를 사용하여 관리 ID를 적절하게 사용하여 Azure Data Manager for Energy API에 액세스할 수 있습니다.

다음 단계

Lockbox에 대해 알아보기: