在 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-id
和client-secret
。 請參閱如何產生驗證權杖。 - 產生呼叫權利 API 所需的服務主體存取權杖。 請參閱如何產生驗證權杖。
- 將所有參數值放在隨手可及的位置。 他們需要透過權利 API 執行不同的使用者管理要求。
擷取 object-id
Azure 物件識別碼 (OID) 是 Microsoft Entra 使用者 OID。
先尋找使用者的 OID。 如果您要管理應用程式的存取權,您必須尋找並使用應用程式識別碼 (或用戶端識別碼),而不是 OID。
在呼叫 Azure Data Manager for Energy 執行個體的權利 API 時,輸入使用者的 OID (如果要管理應用程式的存取權,則輸入應用程式或用戶端識別碼) 作為參數。 您無法在 參數中使用使用者的電子郵件識別碼,而且必須使用物件識別碼。
第一次在新的資料分割區中新增使用者
若要將第一個系統管理員新增至 Azure Data Manager for Energy 執行個體的新資料分割區,請使用用來佈建執行個體的 OID 存取權杖。
使用產生 client-id 存取權杖取得
client-id
存取權杖。如果您嘗試直接使用自己的存取權杖來新增權利,則會導致 401 錯誤。
client-id
存取權杖必須用於在系統中新增第一組使用者。 這些使用者 (具有系統管理員存取權) 接著可使用自己的存取權杖來管理更多使用者。使用
client-id
存取權杖,利用下列各節中所述的命令來執行下列步驟:- 將使用者新增至具有 OWNER 角色的
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群組時,OSDU 社群所定義的指定身分識別有5000個成員資格的限制。
若要深入了解 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群組
在 Azure Cloud Shell 中執行下列 curl 命令,以使用權利服務將使用者新增至使用者群組。
要針對
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 群組的範例要求
設想有一個名為
medstest
的 Azure Data Manager for Energy 執行個體,其資料分割區名為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" }'
重要
應用程式識別碼是所有群組的預設 OWNER。
取得資料分割區中指定使用者的 OSDU 群組
在 Azure Cloud Bash 中執行下列 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>'
範例要求
設想有一個名為
medstest
的 Azure Data Manager for Energy 執行個體,其資料分割區名為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" } ] }
從數據分割中的群組中移除成員
在 Azure Cloud Shell 中執行下列 curl 命令,以從群組中移除特定成員。
如果 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>'
從資料分割中的所有群組中刪除特定使用者
在 Azure Cloud Shell 中執行下列 curl 命令,以從特定資料分割區中刪除特定使用者。
除非您有其他 OWNER 可管理該群組中的使用者,否則請勿刪除群組的 OWNER。 雖然 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 for Energy 執行個體,其資料分割區名為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 for Energy 執行個體: