Concetti della sicurezza in Microsoft Dataverse

Una delle caratteristiche fondamentali di Dataverse è il modello di sicurezza avanzato che può essere adattato a molti scenari di utilizzo aziendale. Questo modello di sicurezza entra in gioco solo quando un database Dataverse è presente nell'ambiente. Come amministratore, probabilmente non costruirai l'intero modello di sicurezza da solo, ma sarai spesso coinvolto nel processo di gestione degli utenti e ti assicurerai che abbiano la configurazione corretta e la risoluzione dei problemi relativi all'accesso alla sicurezza.

Sicurezza basata sui ruoli

Dataverse usa la sicurezza basata sui ruoli per raggruppare una raccolta di privilegi. Questi ruoli di sicurezza possono essere associati direttamente agli utenti oppure possono essere associati con i team e le Business Unit di Dataverse. Gli utenti possono quindi essere associati al team; pertanto, tutti gli utenti associati al team potranno sfruttare i privilegi del ruolo. Un concetto chiave della sicurezza di Dataverse è che tutte le concessioni di privilegi sono cumulative con la maggiore quantità di accesso che prevale. Se hai concesso l'accesso in lettura a livello di organizzazione generale a tutti i record dei contatti, non puoi tornare indietro e nascondere un singolo record.

Business Unit

Suggerimento

Simbolo Video Guarda il seguente video: Modernizzare le Business Unit.

Le Business Unit collaborano con i ruoli di sicurezza per determinare la sicurezza effettiva di cui dispone un utente. Le Business Unit sono un blocco predefinito del modello di sicurezza che consente di gestire gli utenti e i dati a cui possono accedere. Le Business Unit definiscono un limite di sicurezza. Ogni database Dataverse ha un'unica Business Unit radice.

Puoi creare delle Business Unit figlio per segmentare ulteriormente utenti e dati. Ogni utente assegnato a un ambiente appartiene a una Business Unit. Anche se le Business Unit possono essere usate per modellare 1:1 una reale gerarchia organizzativa, più spesso propendono per limiti di sicurezza appena definiti per realizzare le esigenze del modello di sicurezza.

Per comprendere meglio, osserviamo l'esempio seguente. Sono disponibili tre Business Unit. Woodgrove rappresenta la Business Unit radice e sarà sempre nella parte superiore, il che non è modificabile. Abbiamo creato altre due Business Unit secondarie A e B. Gli utenti di queste Business Unit hanno esigenze di accesso molto diverse. Quando associamo un utente con questo ambiente, possiamo impostare l'utente in una di queste tre Business Unit. Dove viene associato l'utente determinerà quale Business Unit è proprietaria dei record di proprietà dell'utente. Avere quell'associazione ci consente di personalizzare un ruolo di sicurezza per consentire all'utente di vedere tutti i record in quella Business Unit.

Struttura gerarchica di accesso ai dati

I clienti possono utilizzare una struttura organizzativa in cui i dati e gli utenti sono suddivisi in compartimenti in una gerarchia ad albero.

Quando associamo un utente a questo ambiente possiamo impostare l'utente in una di queste tre Business Unit e assegnare un ruolo di sicurezza dalla Business Unit all'utente. La Business Unit a cui è associato l'utente determina quale Business Unit possiede i record quando l'utente crea un record. Avere quell'associazione ci consente di personalizzare un ruolo di sicurezza che consente all'utente di vedere i record in quella Business Unit.

L'utente A è associato alla Divisione A e gli viene assegnato un ruolo di sicurezza Y dalla Divisione A. Ciò consente all'utente A di accedere ai record Contatto n. 1 e Contatto n. 2. Mentre l'utente B nella divisione B non può accedere ai record del contatto della divisione A, ma può accedere al record del contatto n. 3.

Esempio di struttura di accesso ai dati matrice

Struttura di accesso ai dati matrice (Business Unit moderna)

I clienti possono utilizzare una struttura organizzativa in cui i dati sono suddivisi in compartimenti in una gerarchia ad albero e gli utenti possono lavorare e accedere ai dati di qualsiasi Business Unit indipendentemente dalla Business Unit a cui è assegnato l'utente.

Quando associamo un utente con questo ambiente, possiamo impostare l'utente in una di queste tre Business Unit. Per ogni Business Unit di cui un utente ha bisogno per accedere ai dati, all'utente viene assegnato un ruolo di sicurezza di tale Business Unit. Quando l'utente crea un record, l'utente può impostare la Business Unit come proprietaria del record.

L'utente A può essere associato a qualsiasi Business Unit, inclusa la Business Unit radice. All'utente A viene assegnato un ruolo di sicurezza Y della Divisione A che consente all'utente di accedere ai record del contatto n. 1 e del contatto n. 2. All'utente A viene assegnato un ruolo di sicurezza Y della Divisione B che consente all'utente di accedere ai record del contatto n. 3.

Esempio di struttura gerarchica di accesso ai dati

Abilitare la struttura di accesso ai dati matrice

Nota

Prima di abilitare questa funzionalità, è necessario pubblicare tutte le personalizzazioni per abilitare tutte le nuove tabelle non pubblicate per la funzionalità. Se scopri di avere tabelle non pubblicate che non funzionano con questa funzione dopo averla attivata, puoi configurare l'impostazione RecomputeOwnershipAcrossBusinessUnits utilizzando lo Strumento OrgDBOrgSettings per Microsoft Dynamics CRM. L'impostazione di RecomputeOwnershipAcrossBusinessUnits su true consente di impostare e aggiornare il campo Business Unit proprietaria.

  1. Accedi all'interfaccia di amministrazione di Power Platform come amministratore (amministratore di Dynamics 365, amministratore globale o amministratore di Microsoft Power Platform).
  2. Seleziona Ambienti, quindi scegli l'ambiente per il quale desideri abilitare questa funzione.
  3. Seleziona Impostazioni>Prodotto>Caratteristiche.
  4. Abilita l'opzione Proprietà di record tra Business Unit.

Una volta abilitata l'opzione della funzionalità, puoi selezionare Business Unit quando assegni un ruolo di sicurezza a un utente. Ciò consente di assegnare il ruolo di sicurezza di diverse Business Unit a un utente. L'utente richiede anche un ruolo di sicurezza dalla Business Unit a cui è assegnato l'utente con privilegi delle impostazioni utente per eseguire le app basate su modello. Puoi fare riferimento al ruolo di sicurezza Utente Basic per scoprire come vengono abilitati questi privilegi delle impostazioni utente.

È possibile assegnare un utente come proprietario del record in qualsiasi business unit senza la necessità di assegnare un ruolo di sicurezza nella business unit proprietaria del record, purché l'utente disponga di un ruolo di sicurezza con privilegio di lettura per la tabella dei record. Vedi Proprietà dei record nelle business unit moderne.

Nota

Questa opzione della funzionalità è memorizzata nelle impostazioni di database di ambiente EnableOwnershipAcrossBusinessUnits e può essere impostata anche usando lo strumento OrgDBOrgSettings per Microsoft Dynamics CRM.

Associare una Business Unit a un gruppo di sicurezza di Microsoft Entra

Puoi usare un gruppo di sicurezza di Microsoft Entra per mappare la tua Business Unit e semplificare l'amministrazione degli utenti e l'assegnazione dei ruoli.

Crea un gruppo di sicurezza di Microsoft Entra per ogni Business Unit e assegna il rispettivo ruolo di sicurezza della Business Unit a ogni team del gruppo.

Per ogni Business Unit, crea un gruppo di sicurezza di Microsoft Entra.

Per ogni Business Unit, crea un gruppo di sicurezza di Microsoft Entra. Crea un team di gruppo di Dataverse per ogni gruppo di sicurezza di Microsoft Entra. Assegna il rispettivo ruolo di sicurezza dalla Business Unit a ogni team di gruppo di Dataverse. L'utente nel diagramma precedente verrà creato nella Business Unit radice quando l'utente accede all'ambiente. Va bene avere l'utente e i team di gruppo di Dataverse nella Business Unit radice. Hanno accesso solo ai dati nella business unit a cui è assegnato il ruolo di sicurezza.

Aggiungi gli utenti nel rispettivo gruppo di sicurezza di Microsoft Entra per concedere loro l'accesso alla Business Unit. Gli utenti possono eseguire immediatamente l'app e accedere alle relative risorse/dati.

Nell'accesso ai dati della matrice, dove gli utenti possono lavorare e accedere ai dati da più Business Unit, aggiungi gli utenti ai gruppi di sicurezza di Microsoft Entra mappati a tali Business Units.

Business Unit proprietaria

Ogni record dispone di una colonna Business Unit proprietaria che determina quale Business Unit è proprietaria del record. Questa colonna è configurata per impostazione predefinita sulla Business Unit dell'utente quando viene creato il record e non può essere modificato tranne quando l'opzione della funzionalità è attivata.

Nota

Quando modifichi la Business Unit proprietaria di un record, verifica gli effetti a cascata indicati di seguito: Uso di SDK per .NET per configurare il comportamento a cascata.

Puoi gestire se desideri consentire all'utente di impostare la colonna Business unit proprietaria quando l'opzione della funzionalità è attivata. Per impostare la colonna Business Unit proprietaria, devi concedere al ruolo di sicurezza dell'utente il privilegio Aggiungi a della tabella di Business Unit con autorizzazione a livello locale.

Per consentire all'utente di impostare questa colonna, puoi abilitare la colonna nelle posizioni seguenti:

  1. Modulo: sia nell'intestazione sia nel corpo.
  2. Vista.
  3. Mapping delle colonne. Se usi AutoMapEntity, puoi specificare la colonna nel mapping delle colonne.

Nota

Se hai un lavoro o processo per sincronizzare i dati tra ambienti e la Business Unit proprietaria è inclusa nello schema, il lavoro avrà esito negativo con una violazione di vincolo Chiave esterna se l'ambiente di destinazione non ha lo stesso valore per Business Unit proprietaria.

Puoi rimuovere la colonna Business Unit proprietaria dallo schema di origine oppure puoi aggiornare il valore della colonna Business Unit proprietaria dell'ambiente di origine a una qualsiasi delle Business Unit dell'ambiente di destinazione.

Se hai un lavoro/processo per copiare dati da un ambiente a una risorsa esterna, ad esempio PowerBI, dovrai selezionare o deselezionare la colonna Business Unit proprietaria nell'ambiente di origine. Selezionalo se la tua risorsa può ricevere il processo, altrimenti deselezionalo.

Proprietà tabella/record

Dataverse supporta due tipi di proprietà di record: proprietà dell'organizzazione e proprietà dell'utente o del team. Questa scelta avviene al momento della creazione della tabella e non può essere modificata. Per motivi di sicurezza, per i record di proprietà dell'organizzazione è solo possibile specificare che l'utente può eseguire o meno l'operazione. Per i record di proprietà dell'utente e del team, le scelte del livello di accesso per la maggior parte dei privilegi sono a livello Organizzazione, Business Unit, Business Unit e Business Unit figlio o solo i record dell'utente. Questo significa che se per il privilegio in lettura sul contatto viene impostato proprietà dell'utente, l'utente vede solo i propri record.

Per fornire un altro esempio, supponiamo che l'utente A sia associato alla Divisione A e gli assegniamo l'accesso in lettura a livello di Business Unit sul contatto. Potrebbero vedere il contatto n. 1 e n. 2 ma non il contatto n. 3.

Quando configuri o modifichi i privilegi del ruolo di sicurezza, imposti il livello di accesso per ciascuna opzione. Di seguito viene fornito un esempio dell'editor di privilegi del ruolo di sicurezza.

Privilegi dei ruoli di sicurezza.

Sopra puoi vedere i tipi di privilegi standard per ogni tabella Crea, Leggi, Scrivi, Elimina, Aggiungi, Aggiungi a, Assegna e Condividi. È possibile modificare ognuno di questi individualmente. La visualizzazione di ciascuno corrisponderà alla chiave di seguito relativa al livello di accesso concesso.

Chiave dei privilegi dei ruoli di sicurezza.

Nell'esempio precedente, abbiamo assegnato l'accesso a livello di organizzazione al contatto, che significa che l'utente nella Divisione A può vedere e aggiornare i contatti di proprietà di chiunque. Infatti, uno degli errori amministrativi più comuni è relativo alle autorizzazioni e alla concessione dell'accesso. Un modello di sicurezza ben elaborato può rapidamente presentare vari problemi.

Proprietà dei record nelle business unit moderne

In Business unit moderne, puoi fare in modo che gli utenti siano proprietari di record in qualsiasi business unit. Tutto ciò di cui gli utenti hanno bisogno è un ruolo di sicurezza (qualsiasi business unit) che abbia il privilegio di lettura sulla tabella dei record. Gli utenti non devono avere un ruolo di sicurezza assegnato in ogni business unit in cui risiede il record.

Se Proprietà dei record tra business unit è stato abilitato nell'ambiente di produzione durante il periodo di anteprima, è necessario eseguire le seguenti operazioni per abilitare questa proprietà del record in tutta la business unit:

  1. Installa l'editor delle impostazioni dell'organizzazione
  2. Imposta le impostazioni dell'organizzazione RecomputeOwnershipAcrossBusinessUnits su true. Quando questa impostazione è impostata su true, il sistema è bloccato e possono essere necessari fino a 5 minuti per eseguire il ricalcolo per abilitare la funzionalità in cui gli utenti possono essere proprietari di record tra business unit senza la necessità di avere ruolo di sicurezza separati assegnati da ogni business unit. Ciò consente al proprietario di un record di assegnare il proprio record a qualcuno al di fuori della business unit proprietaria del record.
  3. Imposta AlwaysMoveRecordToOwnerBusinessUnit su false. Ciò fa sì che il record rimanga nella business unit proprietaria originale quando viene modificata la proprietà del record.

Per tutti gli ambienti non di produzione, è sufficiente impostare AlwaysMoveRecordToOwnerBusinessUnit su false per utilizzare questa capacità.

Nota

Se disattivi la funzionalità Proprietà di record tra Business Unit o imposti RecomputeOwnershipAcrossBusinessUnits su false usando lo strumento OrgDBOrgSettings per Microsoft Dynamics CRM, non sarai in grado di impostare o aggiornare il campo Business unit proprietaria e tutti i record in cui il campo Business unit proprietaria è diverso dalla business unit proprietaria verranno aggiornati sulla business unit proprietaria.

Team (inclusi team di gruppo)

I team sono un altro blocco predefinito di sicurezza importante. I team sono di proprietà di una Business Unit. Ogni Business Unit ha un team predefinito che viene creato automaticamente insieme alla Business Unit. I membri del team predefinito vengono gestiti da Dataverse e contengono sempre tutti gli utenti associati a quella Business Unit. Non è possibile aggiungere o rimuovere manualmente membri dal team predefinito; questi sono modificati in modo dinamico dal sistema quando nuovi utenti sono associati o dissociati dalle Business Unit. Esistono due tipi di team, i team proprietari e i team di accesso.

  • I team proprietari possono possedere i record, che danno a qualsiasi membro del team l'accesso diretto a quel record. Gli utenti possono essere membri di più team. Questo rappresenta un sistema potente per concedere le autorizzazioni agli utenti in modo ampio senza dover eseguire la microgestione dell'accesso a livello di singolo utente.
  • I team di accesso sono illustrati nella sezione successiva come parte della condivisione dei record.

Condivisione dei record

È possibile condividere singolarmente i record con un altro utente. Questo è un modo potente per gestire le eccezioni che non rientrano nella proprietà del record o è un membro di un modello di accesso di una Business Unit. Deve comunque essere un'eccezione perché è un modo meno efficiente di controllare l'accesso. La risoluzione dei problemi di condivisione è più difficile perché non è un controllo di accesso implementato in modo coerente. La condivisione può essere eseguita a livello di utente e a livello di team. La condivisione con un team è più efficiente. Un concetto più avanzato di condivisione è con i team di accesso, che consente la creazione automatica di un team e la condivisione dell'accesso ai record con il team è basata su un modello di team di accesso (modello di autorizzazioni) che viene applicato. I team di accesso possono essere utilizzati anche senza i modelli, con la sola aggiunta o rimozione manuale dei relativi membri. I team di accesso sono più efficienti perché non consentono al team di essere proprietario dei record o di avere dei ruoli di sicurezza assegnati al team. Gli utenti ottengono l'accesso perché il record viene condiviso con il team e l'utente è un membro.

Sicurezza a livello di record in Dataverse

Potresti chiederti cosa determina l'accesso a un record. Sembra una domanda semplice, ma per un determinato utente è la combinazione di tutti i suoi ruoli di sicurezza, la Business Unit a cui è associato, i team di cui è membro e i record che sono condivisi con lui. L'elemento chiave da ricordare è che qualsiasi accesso è cumulativo per tutti questi concetti nell'ambito di un ambiente di database Dataverse. Questi diritti sono concessi solo in un singolo database e vengono monitorati individualmente in ogni database Dataverse. Ciò richiede che abbiano una licenza appropriata per accedere a Dataverse.

Sicurezza a livello di colonna in Dataverse

Talvolta il controllo a livello di record dell'accesso può non essere adatto ad alcuni scenari aziendali. Dataverse prevede una funzionalità di sicurezza a livello di colonna per consentire un controllo più granulare della sicurezza a livello di colonna. La sicurezza a livello di colonna può essere abilitata per tutte le colonne personalizzate e la maggior parte delle colonne di sistema. La maggior parte delle colonne di sistema che comprendono informazioni personali (PII) può essere protetta a livello individuale. I metadati di ogni colonna definiscono se questa opzione è disponibile per la colonna di sistema.

La sicurezza a livello di colonna è abilitata colonna per colonna. L'accesso viene quindi gestito creando un profilo di sicurezza della colonna. Il profilo contiene tutte le colonne per cui la sicurezza a livello di colonna è abilitata e l'accesso è concesso da quel profilo specifico. Ogni colonna può essere controllata all'interno del profilo per l'accesso per creazione, aggiornamento e lettura. I profili di sicurezza delle colonne vengono quindi associati a un utente o team per concedere agli utenti quei privilegi per i record a cui hanno già accesso. È importante notare che la sicurezza a livello di colonna non ha nulla a che fare con la sicurezza a livello di record. Un utente deve già avere accesso al record per il profilo di protezione della colonna per concedergli qualsiasi accesso alle colonne. La sicurezza a livello di colonna deve essere utilizzata quando necessario e non in modo eccessivo poiché può causare un sovraccarico nocivo.

Gestione della sicurezza in più ambienti

I ruoli di sicurezza e i profili di sicurezza delle colonne possono inseriti in un pacchetto e spostati da un ambiente all'altro utilizzando delle soluzioni Dataverse. Le Business Unit e i team devono essere creati e gestiti in ogni ambiente insieme all'assegnazione degli utenti ai componenti di sicurezza necessari.

Configurazione della sicurezza degli ambienti degli utenti

Una volta creati ruoli, team e unità aziendali in un ambiente, è il momento di assegnare agli utenti le loro configurazioni di sicurezza. Innanzitutto, quando crei un utente, assocerai l'utente a una Business Unit. Per impostazione predefinita, si tratta della Business Unit radice dell'organizzazione. Vengono anche aggiunti al team predefinito di tale Business Unit.

Inoltre, vengono assegnati i ruoli di sicurezza di cui l'utente necessita. Viene aggiunto anche come membro di alcuni team. Ricorda che i team possono anche avere ruoli di sicurezza, in modo che i diritti effettivi dell'utente sono la combinazione di ruoli di sicurezza assegnati direttamente combinati con quelli di tutti i team di cui fanno parte. La sicurezza è sempre additiva, fornendo l'autorizzazione meno restrittiva di ogni diritto. Di seguito è riportata una procedura dettagliata per la configurazione della sicurezza degli ambienti.

Se hai utilizzato la sicurezza a livello di colonna, dovrai associare l'utente o un team dell'utente a uno dei profili di titoli di colonna che hai creato.

La sicurezza è un articolo complesso e viene realizzata al meglio come uno sforzo congiunto tra i produttori di applicazioni e il team che amministra le autorizzazioni degli utenti. È necessario coordinare tutte le modifiche sostanziali in anticipo prima di distribuirle nell'ambiente.

Vedi anche

Configurare la sicurezza dell'ambiente
Ruoli di sicurezza e privilegi