Бөлісу құралы:


Управление пользователями в Azure Data Manager для энергетики

В этой статье вы узнаете, как управлять пользователями и их членством в группах OSDU в Azure Data Manager для энергетики. API-интерфейсы прав используются для добавления или удаления пользователей в группы OSDU и проверка прав, когда пользователь пытается получить доступ к службам или данным OSDU. Дополнительные сведения о концепциях групп OSDU см. в разделе "Права".

Необходимые компоненты

  • Создайте экземпляр Azure Data Manager для энергетики. Узнайте , как создать экземпляр Azure Data Manager для энергетики.
  • Получение различных параметров экземпляра, таких как client-id и client-secret. Узнайте , как создать маркер проверки подлинности.
  • Создайте маркер доступа субъекта-службы, необходимый для вызова API-интерфейсов прав. Узнайте , как создать маркер проверки подлинности.
  • Держите все значения параметров удобно. Они необходимы для выполнения различных запросов на управление пользователями с помощью API прав.

Получение объекта-идентификатора

Идентификатор объекта Azure (OID) — это OID пользователя Microsoft Entra.

  1. Сначала найдите идентификатор пользователя. Если вы управляете доступом к приложению, необходимо найти и использовать идентификатор приложения (или идентификатор клиента) вместо идентификатора OID.

  2. Введите идентификатор пользователя (или приложения или идентификатор клиента при управлении доступом к приложению) в качестве параметров в вызовах API прав экземпляра Azure Data Manager для энергетики. В параметре нельзя использовать идентификатор электронной почты пользователя и использовать идентификатор объекта.

    Снимок экрана: поиск идентификатора объекта из идентификатора Microsoft Entra ID.

    Снимок экрана: поиск OID из профиля.

Первое добавление пользователей в новую секцию данных

  1. Чтобы добавить первого администратора в новую секцию данных экземпляра Azure Data Manager для энергетики, используйте маркер доступа OID, который использовался для подготовки экземпляра.

  2. Получение маркера client-id доступа с помощью маркера доступа с помощью маркера доступа идентификатора клиента.

    Если вы пытаетесь напрямую использовать собственный маркер доступа для добавления прав, это приведет к ошибке 401. client-id Маркер доступа должен использоваться для добавления первого набора пользователей в систему. Затем эти пользователи (с правами администратора) могут управлять большими пользователями с помощью собственного маркера доступа.

  3. client-id Используйте маркер доступа, чтобы выполнить следующие действия с помощью команд, описанных в следующих разделах:

    1. Добавьте пользователя в группу users@<data-partition-id>.<domain> OSDU с ролью OWNER.
    2. Добавьте пользователя в users.datalake.ops@<data-partition-id>.<domain> группу OSDU с ролью OWNER, чтобы предоставить доступ ко всем группам служб.
  4. Пользователь становится администратором секции данных. Затем администратор может добавить или удалить больше пользователей в необходимые группы прав:

    1. Получите маркер проверки подлинности администратора с помощью маркера доступа пользователей с одинаковыми client-id значениями и client-secret значениями.
    2. Получите группу OSDU, например service.legal.editor@<data-partition-id>.<domain>, к которой требуется добавить дополнительных пользователей с помощью маркера доступа администратора.
    3. Добавьте пользователей в группу OSDU с помощью маркера доступа администратора.
  5. users.data.root — это значение по умолчанию и постоянный владелец всех записей данных при автоматическом создании записей в системе. Таким образом, если пользователь, который создал запись и является владельцем записи, покидает организацию, члены users.data.root всегда имеют доступ ко всем записям данных. Дополнительные сведения проверка корневой группы данных.

  6. При добавлении дополнительных участников в определенную группу OSDU существует ограничение в 5000 членства для данного удостоверения, определенного сообществом OSDU.

Чтобы узнать больше о группах начальной загрузки OSDU, проверка здесь.

Получение списка всех групп, к которых у вас есть доступ в разделе данных

Выполните следующую команду curl в Azure Cloud Shell, чтобы получить все группы, доступные для вас или к которым у вас есть доступ в определенном разделе данных экземпляра Azure Data Manager для энергетики.

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

Добавление участников в группу OSDU в секции данных

  1. Выполните следующую команду curl в Azure Cloud Shell, чтобы добавить пользователей в группу пользователей с помощью службы прав.

  2. Значение, которое нужно отправить для параметра email , — это идентификатор пользователя, а не адрес электронной почты пользователя.

        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 пользователей

    Рассмотрим экземпляр medstest Azure Data Manager для энергетики с именем dp1секции данных.

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

    Внимание

    Идентификатор приложения является владельцем по умолчанию всех групп.

    Снимок экрана: идентификатор приложения в идентификаторе Microsoft Entra.

Получение групп OSDU для данного пользователя в разделе данных

  1. Выполните следующую команду curl в Azure Cloud Shell, чтобы получить все группы, связанные с пользователем.

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

    Образец запроса

    Рассмотрим экземпляр medstest Azure Data Manager для энергетики с именем dp1секции данных.

        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. Выполните следующую команду curl в Azure Cloud Shell, чтобы удалить конкретного члена из группы.

  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. Выполните следующую команду curl в Azure Cloud Shell, чтобы удалить конкретного пользователя из определенной секции данных.

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

    Образец запроса

    Рассмотрим экземпляр medstest Azure Data Manager для энергетики с именем dp1секции данных.

        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 для энергетики: