Gestire gli utenti in Azure Data Manager per l'energia

Questo articolo illustra come gestire gli utenti e le relative appartenenze ai gruppi OSDU in Azure Data Manager for Energy. Le API entitlement vengono usate per aggiungere o rimuovere utenti ai gruppi OSDU e per controllare i diritti quando l'utente tenta di accedere ai dati o ai servizi OSDU. Per altre informazioni sui concetti relativi ai gruppi OSDU, vedere Entitlement.

Prerequisiti

  • Creare un'istanza di Azure Data Manager per l'energia. Vedere Come creare Azure Data Manager per l'istanza di Energy.
  • Ottenere vari parametri dell'istanza, ad esempio client-id e client-secret. Vedere Come generare il token di autenticazione.
  • Generare il token di accesso dell'entità servizio necessario per chiamare le API Entitlement. Vedere Come generare il token di autenticazione.
  • Tenere a portata di mano tutti i valori dei parametri. Sono necessari per eseguire richieste di gestione utenti diverse tramite l'API Entitlements.

Recuperare object-id

L'ID oggetto di Azure (OID) è l'OID utente di Microsoft Entra.

  1. Trovare prima l'OID degli utenti. Se si gestisce l'accesso di un'applicazione, è necessario trovare e usare l'ID applicazione (o l'ID client) anziché l'OID.

  2. Immettere l'OID degli utenti (o l'ID applicazione o client se si gestisce l'accesso per un'applicazione) come parametri nelle chiamate all'API Entitlement dell'istanza di Azure Data Manager per l'energia. Non è possibile usare l'ID di posta elettronica dell'utente nel parametro e deve usare l'ID oggetto.

    Screenshot che mostra la ricerca dell'ID oggetto da Microsoft Entra ID.

    Screenshot che mostra la ricerca dell'OID dal profilo.

Aggiunta per la prima volta di utenti in una nuova partizione di dati

  1. Per aggiungere il primo amministratore a una nuova partizione di dati di un'istanza di Azure Data Manager per l'energia, usare il token di accesso dell'OID usato per effettuare il provisioning dell'istanza.

  2. Ottenere il client-id token di accesso usando Genera token di accesso con ID client.

    Se si tenta di usare direttamente il proprio token di accesso per l'aggiunta di entitlement, viene generato un errore 401. Il client-id token di accesso deve essere usato per aggiungere il primo set di utenti nel sistema. Questi utenti (con accesso amministratore) possono quindi gestire più utenti con il proprio token di accesso.

  3. Usare il client-id token di accesso per eseguire i passaggi seguenti usando i comandi descritti nelle sezioni seguenti:

    1. Aggiungere l'utente al users@<data-partition-id>.<domain> gruppo OSDU con il ruolo OWNER.
    2. Aggiungere l'utente al gruppo OSDU con il ruolo OWNER per concedere l'accesso a users.datalake.ops@<data-partition-id>.<domain> tutti i gruppi di servizi.
    3. Aggiungere l'utente al users.data.root@<data-partition-id>.<domain> gruppo OSDU con il ruolo OWNER per concedere l'accesso a tutti i gruppi di dati.
  4. L'utente diventa l'amministratore della partizione dati. L'amministratore può quindi aggiungere o rimuovere altri utenti ai gruppi entitlement necessari:

    1. Ottenere il token di autenticazione dell'amministratore usando Genera token di accesso utente e usando gli stessi client-id valori e client-secret .
    2. Ottenere il gruppo OSDU, ad esempio service.legal.editor@<data-partition-id>.<domain>, a cui si vogliono aggiungere altri utenti usando il token di accesso dell'amministratore.
    3. Aggiungere altri utenti al gruppo OSDU usando il token di accesso dell'amministratore.

Per altre informazioni sui gruppi di bootstrap OSDU, vedere qui.

Ottenere l'elenco di tutti i gruppi a cui si ha accesso in una partizione di dati

Eseguire il comando curl seguente in Azure Cloud Shell per ottenere tutti i gruppi disponibili per l'utente o a cui si ha accesso nella partizione di dati specifica dell'istanza di Azure Data Manager per l'energia.

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

Aggiungere membri a un gruppo OSDU in una partizione di dati

  1. Eseguire il comando curl seguente in Azure Cloud Shell per aggiungere gli utenti al gruppo di utenti usando il servizio entitlement.

  2. Il valore da inviare per il parametro email è l'OID dell'utente e non l'indirizzo di posta elettronica dell'utente.

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

    Richiesta di esempio per gli utenti del gruppo OSDU

    Si consideri un'istanza di Azure Data Manager per l'energia denominata medstest con una partizione di dati denominata 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"
                    }'
    

    Risposta di esempio

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

    Richiesta di esempio per il gruppo OSDU dell'editor di servizi legali

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

    Importante

    L'ID app è il PROPRIETARIO predefinito di tutti i gruppi.

    Screenshot che mostra l'ID app in Microsoft Entra ID.

Ottenere gruppi OSDU per un determinato utente in una partizione di dati

  1. Eseguire il comando curl seguente in Azure Cloud Shell per ottenere tutti i gruppi associati all'utente.

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

    Esempio di richiesta

    Si consideri un'istanza di Azure Data Manager per l'energia denominata medstest con una partizione di dati denominata 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.............'
    

    Risposta di esempio

        {
        "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"
            }
        ]
        }
    

Rimuovere un membro da un gruppo in una partizione di dati

  1. Eseguire il comando curl seguente in Azure Cloud Shell per rimuovere un membro specifico da un gruppo.

  2. Se l'API tenta di rimuovere un membro dal users@ gruppo, ma il membro fa già parte di altri gruppi, la richiesta API avrà esito negativo. Per rimuovere un membro dal users@ gruppo e quindi dalla partizione di dati, è possibile usare il comando Elimina.

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

Eliminare un utente specifico da tutti i gruppi in una partizione di dati

  1. Eseguire il comando curl seguente in Azure Cloud Shell per eliminare un utente specifico da una partizione di dati specifica.

  2. Non eliminare il PROPRIETARIO di un gruppo a meno che non si disponga di un altro PROPRIETARIO in grado di gestire gli utenti in tale gruppo. Anche se users.data.root è il proprietario predefinito e permanente di tutti i record di dati.

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

    Esempio di richiesta

    Si consideri un'istanza di Azure Data Manager per l'energia denominata medstest con una partizione di dati denominata 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.............'
    

    Risposta di esempio

    Nessun output per una risposta riuscita.

Passaggi successivi

Dopo aver aggiunto utenti ai gruppi, è possibile:

È anche possibile inserire dati nell'istanza di Azure Data Manager per l'energia: