Azure Data Manager for Energy에서 사용자 관리

이 문서에서는 Azure Data Manager for Energy의 OSDU 그룹에서 사용자 및 해당 멤버 자격을 관리하는 방법을 알아봅니다. 자격 API는 OSDU 그룹에 사용자를 추가 또는 제거하고 사용자가 OSDU 서비스 또는 데이터에 액세스하려고 할 때 자격을 확인하는 데 사용됩니다. OSDU 그룹 개념에 대한 자세한 내용은 자격을 참조하세요.

필수 조건

  • Azure Data Manager for Energy 인스턴스를 만듭니다. Azure Data Manager for Energy 인스턴스를 만드는 방법을 참조하세요.
  • client-idclient-secret과 같은 인스턴스의 다양한 매개 변수를 가져옵니다. 인증 토큰 생성 방법을 참조하세요.
  • Entitlement API를 호출하는 데 필요한 서비스 주체 액세스 토큰을 생성합니다. 인증 토큰 생성 방법을 참조하세요.
  • 모든 매개 변수 값을 편리하게 보관합니다. Entitlements API를 통해 다양한 사용자 관리 요청을 실행하는 데 필요합니다.

개체 ID 페치

Azure OID(개체 ID)는 Microsoft Entra 사용자 OID입니다.

  1. 먼저 사용자의 OID를 찾습니다. 애플리케이션의 액세스를 관리하는 경우 OID 대신 애플리케이션 ID(또는 클라이언트 ID)를 찾아 사용해야 합니다.

  2. Azure Data Manager for Energy 인스턴스의 Entitlements API 호출에서 사용자의 OID(또는 애플리케이션에 대한 액세스를 관리하는 경우 애플리케이션 또는 클라이언트 ID)를 매개 변수로 입력합니다. 매개 변수에는 사용자의 이메일 ID를 사용할 수 없으며 반드시 개체 ID를 사용해야 합니다.

    Microsoft Entra ID에서 개체 ID를 찾는 방법을 보여 주는 스크린샷.

    프로필에서 OID를 찾는 모습을 보여 주는 스크린샷.

새 데이터 파티션에 사용자를 처음 추가하는 경우

  1. Azure Data Manager for Energy 인스턴스의 새 데이터 파티션에 첫 번째 관리자를 추가하려면 인스턴스를 프로비전하는 데 사용된 OID의 액세스 토큰을 사용합니다.

  2. 클라이언트 ID 액세스 토큰 생성을 사용하여 client-id 액세스 토큰을 가져옵니다.

    자격 추가를 위해 고유의 액세스 토큰을 직접 사용하려고 하면 401 오류가 발생합니다. 시스템에 첫 번째 사용자 집합을 추가하려면 client-id 액세스 토큰을 사용해야 합니다. 그런 다음 관리자 액세스 권한이 있는 해당 사용자는 자신의 액세스 토큰을 사용하여 더 많은 사용자를 관리할 수 있습니다.

  3. 다음 섹션에 설명된 명령을 사용하여 다음 단계를 수행하려면 client-id 액세스 토큰을 사용합니다.

    1. OWNER 역할을 사용하여 users@<data-partition-id>.<domain> OSDU 그룹에 사용자를 추가합니다.
    2. 모든 서비스 그룹에 대한 액세스 권한을 부여하려면 OWNER 역할을 사용하여 users.datalake.ops@<data-partition-id>.<domain> OSDU 그룹에 사용자를 추가합니다.
    3. 모든 데이터 그룹에 대한 액세스 권한을 부여하려면 OWNER 역할을 사용하여 users.data.root@<data-partition-id>.<domain> OSDU 그룹에 사용자를 추가합니다.
  4. 사용자는 데이터 파티션의 관리자가 됩니다. 그런 다음 관리자는 필요한 자격 그룹에 더 많은 사용자를 추가하거나 제거할 수 있습니다.

    1. 사용자 액세스 토큰 생성을 사용하고 동일한 client-idclient-secret 값을 사용하여 관리자의 인증 토큰을 가져옵니다.
    2. 관리자의 액세스 토큰을 사용하여 더 많은 사용자를 추가하려는 OSDU 그룹(예: service.legal.editor@<data-partition-id>.<domain>)을 가져옵니다.
    3. 관리자의 액세스 토큰을 사용하여 해당 OSDU 그룹에 더 많은 사용자를 추가합니다.

OSDU 부트스트랩 그룹에 대해 자세히 알아보려면 여기를 확인합니다.

데이터 파티션에서 액세스할 수 있는 모든 그룹 목록 가져오기

Azure Cloud Shell에서 다음 curl 명령을 실행하여 사용 가능하거나 Azure Data Manager for Energy 인스턴스의 특정 데이터 파티션에서 액세스할 수 있는 모든 그룹을 가져옵니다.

    curl --location --request GET "https://<adme-url>/api/entitlements/v2/groups/" \
    --header 'data-partition-id: <data-partition>' \
    --header 'Authorization: Bearer <access_token>'

데이터 파티션의 OSDU 그룹에 구성원 추가

  1. 자격 부여 서비스를 사용하여 사용자 그룹에 사용자를 추가하려면 Azure Cloud Shell에서 다음 curl 명령을 실행합니다.

  2. 매개 변수 email에 대해 전송되는 값은 사용자의 이메일 주소가 아닌 사용자의 OID입니다.

        curl --location --request POST 'https://<adme-url>/api/entitlements/v2/groups/<group-name>@<data-partition-id>.<domain>/members' \
        --header 'data-partition-id: <data-partition-id>' \
        --header 'Authorization: Bearer <access_token>' \
        --header 'Content-Type: application/json' \
        --data-raw '{
                        "email": "<Object_ID_1>",
                        "role": "MEMBER"
                    },
                   {
                        "email": "<Object_ID_2>",
                        "role": "MEMBER"
                    }
                   '
    

    사용자 OSDU 그룹에 대한 샘플 요청

    dp1이라는 데이터 파티션이 있는 medstest라는 Azure Data Manager for Energy 인스턴스를 고려해 보세요.

        curl --location --request POST 'https://medstest.energy.azure.com/api/entitlements/v2/groups/users@medstest-dp1.dataservices.energy/members' \
        --header 'data-partition-id: medstest-dp1' \
        --header 'Authorization: Bearer abcdefgh123456.............' \
        --header 'Content-Type: application/json' \
        --data-raw '{
                        "email": "90e0d063-2f8e-4244-860a-XXXXXXXXXX",
                        "role": "MEMBER"
                    }'
    

    샘플 응답

        {
            "email": "90e0d063-2f8e-4244-860a-XXXXXXXXXX",
            "role": "MEMBER"
        }
    

    법률 서비스 편집자 OSDU 그룹에 대한 샘플 요청

        curl --location --request POST 'https://medstest.energy.azure.com/api/entitlements/v2/groups/service.legal.editor@medstest-dp1.dataservices.energy/members' \
        --header 'data-partition-id: medstest-dp1' \
        --header 'Authorization: Bearer abcdefgh123456.............' \
        --header 'Content-Type: application/json' \
        --data-raw '{
                        "email": "90e0d063-2f8e-4244-860a-XXXXXXXXXX",
                        "role": "MEMBER"
                    }'
    

    Important

    앱 ID는 모든 그룹의 기본 소유자입니다.

    Microsoft Entra ID의 앱 ID를 보여 주는 스크린샷.

데이터 파티션의 특정 사용자에 대한 OSDU 그룹 가져오기

  1. Azure Cloud Shell에서 다음 curl 명령을 실행하여 사용자와 연결된 모든 그룹을 가져옵니다.

        curl --location --request GET 'https://<adme-url>/api/entitlements/v2/members/<obejct-id>/groups?type=none' \
        --header 'data-partition-id: <data-partition-id>' \
        --header 'Authorization: Bearer <access_token>'
    

    샘플 요청

    dp1이라는 데이터 파티션이 있는 medstest라는 Azure Data Manager for Energy 인스턴스를 고려해 보세요.

        curl --location --request GET 'https://medstest.energy.azure.com/api/entitlements/v2/members/90e0d063-2f8e-4244-860a-XXXXXXXXXX/groups?type=none' \
        --header 'data-partition-id: medstest-dp1' \
        --header 'Authorization: Bearer abcdefgh123456.............'
    

    샘플 응답

        {
        "desId": "90e0d063-2f8e-4244-860a-XXXXXXXXXX",
        "memberEmail": "90e0d063-2f8e-4244-860a-XXXXXXXXXX",
        "groups": [
            {
            "name": "users",
            "description": "Datalake users",
            "email": "users@medstest-dp1.dataservices.energy"
            },
            {
            "name": "service.search.user",
            "description": "Datalake Search users",
            "email": "service.search.user@medstest-dp1.dataservices.energy"
            }
        ]
        }
    

데이터 파티션의 그룹에서 구성원 제거

  1. 그룹에서 특정 구성원을 제거하려면 Azure Cloud Shell에서 다음 curl 명령을 실행합니다.

  2. API가 users@ 그룹에서 구성원을 제거하려고 하지만 구성원이 이미 다른 그룹의 일부인 경우 API 요청이 실패합니다. users@ 그룹에서 구성원을 제거하여 데이터 파티션에서 제거하려면 Delete 명령을 사용하면 됩니다.

        curl --location --request DELETE 'https://<adme-url>/api/entitlements/v2/groups/<group-id>/members/<object-id>' \
        --header 'data-partition-id: <data-partition-id>' \
        --header 'Authorization: Bearer <access_token>'
    

데이터 파티션의 모든 그룹에서 특정 사용자 삭제

  1. 특정 데이터 파티션에서 특정 사용자를 삭제하려면 Azure Cloud Shell에서 다음 curl 명령을 실행합니다.

  2. 해당 그룹의 사용자를 관리할 수 있는 다른 소유자가 없는 한 그룹의 소유자를 삭제하지 마세요. users.data.root는 모든 데이터 레코드의 기본 및 영구 소유자입니다.

        curl --location --request DELETE 'https://<adme-url>/api/entitlements/v2/members/<object-id>' \
        --header 'data-partition-id: <data-partition-id>' \
        --header 'Authorization: Bearer <access_token>'
    

    샘플 요청

    dp1이라는 데이터 파티션이 있는 medstest라는 Azure Data Manager for Energy 인스턴스를 고려해 보세요.

        curl --location --request DELETE 'https://medstest.energy.azure.com/api/entitlements/v2/members/90e0d063-2f8e-4244-860a-XXXXXXXXXX' \
        --header 'data-partition-id: medstest-dp1' \
        --header 'Authorization: Bearer abcdefgh123456.............'
    

    샘플 응답

    성공적인 응답에 대한 출력이 없습니다.

다음 단계

그룹에 사용자를 추가한 후 다음을 수행할 수 있습니다.

Azure Data Manager for Energy 인스턴스로 데이터를 수집할 수도 있습니다.