Управление пользователями в 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.
Сначала найдите идентификатор пользователя. Если вы управляете доступом к приложению, необходимо найти и использовать идентификатор приложения (или идентификатор клиента) вместо идентификатора OID.
Введите идентификатор пользователя (или приложения или идентификатор клиента при управлении доступом к приложению) в качестве параметров в вызовах API прав экземпляра Azure Data Manager для энергетики. В параметре нельзя использовать идентификатор электронной почты пользователя и использовать идентификатор объекта.
Первое добавление пользователей в новую секцию данных
Чтобы добавить первого администратора в новую секцию данных экземпляра Azure Data Manager для энергетики, используйте маркер доступа OID, который использовался для подготовки экземпляра.
Получение маркера
client-id
доступа с помощью маркера доступа с помощью маркера доступа идентификатора клиента.Если вы пытаетесь напрямую использовать собственный маркер доступа для добавления прав, это приведет к ошибке 401.
client-id
Маркер доступа должен использоваться для добавления первого набора пользователей в систему. Затем эти пользователи (с правами администратора) могут управлять большими пользователями с помощью собственного маркера доступа.client-id
Используйте маркер доступа, чтобы выполнить следующие действия с помощью команд, описанных в следующих разделах:- Добавьте пользователя в группу
users@<data-partition-id>.<domain>
OSDU с ролью OWNER. - Добавьте пользователя в
users.datalake.ops@<data-partition-id>.<domain>
группу OSDU с ролью OWNER, чтобы предоставить доступ ко всем группам служб.
- Добавьте пользователя в группу
Пользователь становится администратором секции данных. Затем администратор может добавить или удалить больше пользователей в необходимые группы прав:
- Получите маркер проверки подлинности администратора с помощью маркера доступа пользователей с одинаковыми
client-id
значениями иclient-secret
значениями. - Получите группу OSDU, например
service.legal.editor@<data-partition-id>.<domain>
, к которой требуется добавить дополнительных пользователей с помощью маркера доступа администратора. - Добавьте пользователей в группу OSDU с помощью маркера доступа администратора.
- Получите маркер проверки подлинности администратора с помощью маркера доступа пользователей с одинаковыми
users.data.root
— это значение по умолчанию и постоянный владелец всех записей данных при автоматическом создании записей в системе. Таким образом, если пользователь, который создал запись и является владельцем записи, покидает организацию, членыusers.data.root
всегда имеют доступ ко всем записям данных. Дополнительные сведения проверка корневой группы данных.При добавлении дополнительных участников в определенную группу 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 в секции данных
Выполните следующую команду curl в Azure Cloud Shell, чтобы добавить пользователей в группу пользователей с помощью службы прав.
Значение, которое нужно отправить для параметра
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" }'
Внимание
Идентификатор приложения является владельцем по умолчанию всех групп.
Получение групп OSDU для данного пользователя в разделе данных
Выполните следующую команду 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" } ] }
Удаление члена из группы в секции данных
Выполните следующую команду curl в Azure Cloud Shell, чтобы удалить конкретного члена из группы.
Если 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>'
Удаление конкретного пользователя из всех групп в секции данных
Выполните следующую команду curl в Azure Cloud Shell, чтобы удалить конкретного пользователя из определенной секции данных.
Не удаляйте владельца группы, если у вас нет другого владельца, который может управлять пользователями в этой группе. Хотя 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 для энергетики: