Besitzbasierte Sicherheit in Microsoft Dataverse

Dataverse bietet ein flexibles Sicherheitsmodell für viele Geschäftsszenarien. Das Modell gilt nur für Umgebungen mit einer Dataverse-Datenbank. Als Administrator verwalten Sie Benutzer, überprüfen deren Sicherheitskonfiguration und behandeln Zugriffsprobleme.

Rollenbasierte Sicherheit

Dataverse verwendet Sicherheitsrollen zur Gruppierung von Berechtigungen. Weisen Sie Benutzern oder Dataverse-Teams Sicherheitsrollen direkt zu. Teammitglieder erhalten die Berechtigungen, die dem Team zugewiesen sind.

Sicherheitsberechtigungen sind kumulativ. Ein Benutzer erhält den weitestgehenden Zugriff, der sich aus all seinen Rollen und Teammitgliedschaften ergibt. Wenn beispielsweise einer Rolle Lesezugriff auf Organisationsebene für alle Kontaktdatensätze gewährt wird, kann eine andere Rolle einen bestimmten Kontakt nicht vom Benutzer ausblenden.

Unternehmenseinheiten

Geschäftseinheiten arbeiten mit Sicherheitsrollen zusammen, um den Zugriff eines Benutzers zu bestimmen. Sie definieren Sicherheitsgrenzen, mit denen Sie Benutzer und Daten verwalten können. Jede Dataverse-Datenbank verfügt über eine Stammgeschäftseinheit.

Erstellen Sie untergeordnete Unternehmenseinheiten, um Benutzer und Daten in kleinere Sicherheitsbereiche aufzuteilen. Jeder Benutzer in einer Umgebung gehört zu einer Geschäftseinheit. Ihre Geschäftseinheitsstruktur kann Ihrer Organisationshierarchie entsprechen, muss aber nicht.

In den folgenden Beispielen werden drei Geschäftseinheiten verwendet. Woodgrove ist die Stammgeschäftseinheit und verbleibt am Anfang der Hierarchie. Die Bereiche A und B sind untergeordnete Geschäftseinheiten. Die Benutzer jeder Abteilung haben unterschiedliche Zugriffsanforderungen.

Hierarchische Struktur des Datenzugriffs

Verwenden Sie eine hierarchische Struktur, um Benutzer und Daten in einer strukturähnlichen Hierarchie zu trennen.

Weisen Sie jedem Benutzer eine Geschäftseinheit zu, und weisen Sie dem Benutzer eine Sicherheitsrolle aus dieser Geschäftseinheit zu. Standardmäßig besitzt die Geschäftseinheit des Benutzers Datensätze, die der Benutzer erstellt. Die Sicherheitsrolle bestimmt, auf welche Datensätze der Benutzer in dieser Geschäftseinheit zugreifen kann.

In diesem Beispiel gehört der Benutzer A zu Abteilung A und verfügt über die Sicherheitsrolle Y aus Abteilung A. Benutzer A kann auf Kontakt #1 und Kontakt #2 zugreifen. Benutzer B gehört zu Abteilung B, sodass der Benutzer B nicht auf die Kontakte von Abteilung A zugreifen kann, sondern auf Kontakt Nr. 3 zugreifen kann.

Diagramm hierarchischer Geschäftseinheiten, wobei Benutzer A auf die Kontakte der Abteilung A und Benutzer B auf Kontakt Nr. 3 der Abteilung B zugreift.

Matrixdatenzugriffsstruktur (modernisierte Geschäftseinheiten)

Verwenden Sie eine Matrixstruktur, um Daten in einer strukturähnlichen Hierarchie zu organisieren und Benutzern den Zugriff auf Daten in mehreren Geschäftseinheiten zu ermöglichen, unabhängig von der Geschäftseinheit, zu der sie gehören.

Weisen Sie dem Benutzer aus jeder Geschäftseinheit, auf deren Daten er zugreifen muss, eine Sicherheitsrolle zu. Wenn der Benutzer einen Datensatz erstellt, kann er die Geschäftseinheit auswählen, die sie besitzt.

In diesem Beispiel kann Benutzer A zu einer beliebigen Geschäftseinheit gehören, einschließlich der Stammgeschäftseinheit. Die Sicherheitsrolle Y aus Abteilung A gewährt Dem Benutzer A Zugriff auf Kontakt Nr. 1 und Kontakt Nr. 2. Sicherheitsrolle Y aus Abteilung B gewährt Dem Benutzer A Zugriff auf Kontakt Nr. 3.

Diagramm, das zeigt, wie Benutzer A über die Rolle Y, die jeweils von den einzelnen Geschäftseinheiten zugewiesen wird, auf Kontakte in Geschäftsbereich A und Geschäftsbereich B zugreift.

Aktivieren der Matrixdatenzugriffsstruktur

Notiz

Bevor Sie dieses Feature aktivieren, veröffentlichen Sie alle Anpassungen, damit das Feature auf neue Tabellen angewendet wird. Wenn eine nicht veröffentlichte Tabelle nicht funktioniert, nachdem Sie das Feature aktiviert haben, verwenden Sie das OrgDBOrgSettings-Tool für Microsoft Dynamics CRM, um RecomputeOwnershipAcrossBusinessUnits auf true festzulegen. Mit dieser Einstellung können Sie die Spalte " Eigene Geschäftseinheit " festlegen und aktualisieren.

  1. Melden Sie sich beim Power Platform Admin Center als Dynamics 365-Administrator oder Microsoft Power Platform-Administrator an.
  2. Wählen Sie im Navigationsbereich die Option Verwalten aus.
  3. Wählen Sie im Bereich "Verwalten" die Option "Umgebungen" und dann die Umgebung aus.
  4. Wählen Sie Einstellungen>Produkt>Funktionen aus.
  5. Aktivieren Sie Datensatzbesitz über Geschäftseinheiten hinweg.
  6. Wählen Sie Speichern.

Nachdem Sie das Feature aktiviert haben, wählen Sie eine Geschäftseinheit aus, wenn Sie einem Benutzer eine Sicherheitsrolle zuweisen. Mit dieser Option können Sie dem Benutzer Rollen aus verschiedenen Geschäftseinheiten zuweisen. Um modellgesteuerte Apps auszuführen, benötigt der Benutzer auch eine Rolle aus seiner eigenen Geschäftseinheit, die die erforderlichen Benutzereinstellungenberechtigungen enthält. Die Rolle Basisbenutzer zeigt, welche Berechtigungen für Benutzereinstellungen aktiviert werden sollen.

Sie können einen Benutzer zum Datensatzbesitzer in einer beliebigen Geschäftseinheit machen, wenn einer seiner Sicherheitsrollen Leseberechtigungen für die Tabelle des Datensatzes gewährt. Der Benutzer benötigt keine Sicherheitsrolle von der Geschäftseinheit des Besitzers des Datensatzes. Weitere Informationen finden Sie unter Datensatzbesitz in modernisierten Geschäftseinheiten.

Notiz

Die Einstellung "EnableOwnershipAcrossBusinessUnits " speichert den Status dieses Features. Sie können die Einstellung auch mit dem OrgDBOrgSettings-Tool für Microsoft Dynamics CRM ändern.

Eine Unternehmenseinheit mit einer Microsoft Entra Sicherheitsgruppe verbinden

Ordnen Sie Geschäftseinheiten Microsoft Entra Sicherheitsgruppen zu, um die Benutzerverwaltung und Rollenzuweisung zu vereinfachen.

Erstellen Sie eine Microsoft Entra Sicherheitsgruppe für jede Geschäftseinheit.

Für jede Geschäftseinheit:

  1. Erstellen Sie eine Microsoft Entra-Sicherheitsgruppe.
  2. Erstellen Sie ein Dataverse-Gruppenteam für die Sicherheitsgruppe.
  3. Weisen Sie die Sicherheitsrolle der Geschäftseinheit dem Dataverse-Gruppenteam zu.
  4. Fügen Sie der Sicherheitsgruppe Microsoft Entra Benutzer hinzu.

Wenn ein Benutzer zum ersten Mal auf die Umgebung zugreift, erstellt Dataverse den Benutzer in der Stammgeschäftseinheit. Die Benutzer- und Dataverse-Gruppenteams können in der Stammgeschäftseinheit verbleiben. Ihre zugewiesenen Sicherheitsrollen gewähren Zugriff auf Daten in den entsprechenden Geschäftseinheiten.

Fügen Sie für den Matrixdatenzugriff Benutzer zur Microsoft Entra Sicherheitsgruppe für jede Geschäftseinheit hinzu, auf die sie zugreifen müssen.

Besitzer des Geschäftsbereichs

Jeder Datensatz verfügt über eine Spalte " Eigene Geschäftseinheit ", die die Geschäftseinheit identifiziert, die den Datensatz besitzt. Wenn ein Benutzer einen Datensatz erstellt, wird die Spalte standardmäßig auf die Geschäftseinheit des Benutzers festgelegt. Sie können den Wert nur ändern, wenn der Datensatzbesitz in allen Geschäftseinheiten aktiviert ist.

Notiz

Das Ändern der eigenen Geschäftseinheit kann zu kaskadierenden Änderungen führen. Weitere Informationen finden Sie unter Verwenden des SDK für .NET zum Konfigurieren des Kaskadierungsverhaltens.

Damit ein Benutzer die Spalte „Besitzende Geschäftseinheit“ festlegen kann, gewähren Sie der Sicherheitsrolle des Benutzers die Berechtigung „Anfügen an“ auf lokaler Ebene für die Tabelle „Geschäftseinheit“.

Fügen Sie die Spalte zu:

  • Ein Formulartext oder eine Kopfzeile.
  • Eine Aussicht.
  • Eine Spaltenzuordnung. Wenn Sie AutoMapEntity verwenden, schließen Sie die Spalte in die Zuordnung ein.

Notiz

Wenn ein Datensynchronisierungsauftrag " Owning Business Unit " in seinem Schema enthält, schlägt der Auftrag mit einer Verletzung der Fremdschlüsseleinschränkung fehl, wenn die Zielumgebung nicht denselben Wert enthält. Entfernen Sie die Spalte aus dem Quellschema, oder ändern Sie ihren Quellwert in eine in der Zielumgebung vorhandene Geschäftseinheit.

Wenn Sie Daten in eine externe Ressource kopieren, z. B. Power BI, schließen Sie "Owning Business Unit" nur ein, wenn das Ziel die Spalte unterstützt.

Tabellen- und Datensatzbesitz

Dataverse unterstützt zwei Datensatzbesitztypen:

  • Organisation im Besitz: Eine Berechtigung gilt entweder für alle Datensätze oder gilt nicht.
  • Benutzer oder Team im Besitz: Die meisten Berechtigungen unterstützen Benutzer-, Geschäftseinheits-, parent-child-Geschäftseinheit und Organisationszugriffsebenen.

Sie wählen den Besitzertyp aus, wenn Sie eine Tabelle erstellen, und Sie können ihn später nicht ändern. Beispielsweise können Benutzer mit Lesezugriff auf die Kontakttabelle nur die Kontaktdatensätze lesen, die sie besitzen.

Wenn Benutzer A zu Abteilung A gehört und auf Geschäftsbereichsebene Lesezugriff auf die Tabelle „Kontakt“ hat, kann Benutzer A Kontakt #1 und Kontakt #2 lesen, aber nicht Kontakt #3.

Wenn Sie eine Sicherheitsrolle konfigurieren, wählen Sie für jede Berechtigung eine Zugriffsstufe aus.

Screenshot der Registerkarte „Kerndatensätze“ der Sicherheitsrolle mit den Berechtigungsstufen von Erstellen bis Freigeben, wobei die Tabelle „Kontakt“ hervorgehoben ist.

Konfigurieren Sie die Standardtabellenberechtigungen separat: Erstellen, Lesen, Schreiben, Löschen, Anfügen, Anfügen, Zuweisen und Freigeben. Das Berechtigungssymbol zeigt die gewährte Zugriffsebene an.

Screenshot des Sicherheitsrollenberechtigungsschlüssels mit Symbolen für

In diesem Beispiel ermöglicht der organisationsweite Zugriff auf die Tabelle „Kontakt“ einem Benutzer in Abteilung A, Kontakte anzuzeigen und zu aktualisieren, die beliebigen Personen gehören. Gewähren Sie Benutzern nur den Zugriff, den sie benötigen. Breite Berechtigungen können ein ansonsten gut gestaltetes Sicherheitsmodell schwächen.

Datensatzbesitz in modernisierten Geschäftseinheiten

Mit modernisierten Geschäftseinheiten können Benutzer Datensätze in jeder beliebigen Geschäftseinheit besitzen. Ein Benutzer benötigt aus einer beliebigen Geschäftseinheit eine Sicherheitsrolle, die die Berechtigung Lesen für die Tabelle des Datensatzes gewährt. Der Benutzer benötigt keine Rolle aus jeder Geschäftseinheit, die einen Datensatz enthält, den er besitzt.

Wenn Sie den Besitz von Datensätzen innerhalb von Geschäftseinheiten in einer Produktionsumgebung während des Vorschauzeitraums aktiviert haben:

  1. Installieren Sie den Organisationseinstellungen-Editor.
  2. Legen Sie RecomputeOwnershipAcrossBusinessUnits auf true fest. Während der Neuberechnung ist das System gesperrt, was bis zu fünf Minuten dauern kann. Nach der Neuberechnung können Benutzer Eigentümer von Datensätzen über Geschäftseinheiten hinweg sein, ohne dass für jede Geschäftseinheit eine separate Sicherheitsrolle erforderlich ist. Datensatzbesitzer können Datensätze auch Benutzern außerhalb der Geschäftseinheit zuweisen, der der Datensatz gehört.
  3. Setzen Sie AlwaysMoveRecordToOwnerBusinessUnit auf false. Datensätze verbleiben dann in ihrer ursprünglichen eigenen Geschäftseinheit, wenn sich der Besitz ändert.

Setzen Sie für Nichtproduktionsumgebungen AlwaysMoveRecordToOwnerBusinessUnit auf false.

Notiz

Wenn Sie Datensatzbesitz über Geschäftseinheiten hinweg deaktivieren oder RecomputeOwnershipAcrossBusinessUnits auf festlegen, können Sie die Spalte false weder festlegen noch aktualisieren. Dataverse ändert auch die eigene Geschäftseinheit jedes betroffenen Datensatzes so, dass er mit der Geschäftseinheit des Datensatzbesitzers übereinstimmt.

Teams (einschließlich Gruppenteams)

Jedes Team gehört zu einer Geschäftseinheit. Dataverse erstellt automatisch ein Standardteam für jede Geschäftseinheit und verwaltet seine Mitgliedschaft. Das Standardteam enthält immer alle Benutzer in der Geschäftseinheit. Sie können die Mitglieder nicht manuell hinzufügen oder entfernen. Dataverse aktualisiert die Mitgliedschaft, wenn Sie Benutzer mit der Geschäftseinheit verknüpfen oder aufheben.

Dataverse bietet zwei Arten von Teams:

  • Besitzer-Teams können Datensätze besitzen. Jedes Teammitglied erhält direkten Zugriff auf die Datensätze des Teams. Ein Benutzer kann mehreren Besitzerteams angehören.
  • Access-Teams bieten Zugriff auf freigegebene Datensätze, besitzen jedoch keine Datensätze oder verfügen über Sicherheitsrollen.

Freigeben von Datensätzen

Teilen Sie einzelne Datensätze mit einem Benutzer oder Team, um Ausnahmen zu behandeln, die ihr Besitz- und Geschäftseinheitsmodell nicht abdeckt. Verwenden Sie Freigaben nur in Ausnahmefällen, da sie weniger effizient sind und sich schwieriger beheben lassen als die rollenbasierte Zugriffskontrolle. Das Teilen mit einem Team ist effizienter als die separate Freigabe für jeden Benutzer.

Verwenden Sie eine Access-Teamvorlage, um automatisch ein Zugriffsteam zu erstellen und seine Berechtigungen für einen Datensatz zu definieren. Sie können auch Zugriffsteams ohne Vorlage erstellen und ihre Mitglieder manuell verwalten. Access-Teams besitzen keine Datensätze und können keine Sicherheitsrollen haben. Teammitglieder erhalten Zugriff, da der Datensatz mit dem Team geteilt wird.

Sicherheit auf Datensatzebene in Dataverse

Der Datensatzzugriff eines Benutzers kombiniert alle sicherheitsrelevanten Rollen, Mitgliedschaften in Geschäftseinheiten, Teammitgliedschaften und freigegebenen Datensätzen. Der Zugriff ist innerhalb einer Dataverse-Datenbank kumulativ. Dataverse verfolgt den Zugriff separat für jede Datenbank, und der Benutzer muss über eine entsprechende Dataverse-Lizenz verfügen.

Sicherheit auf Spaltenebene in Dataverse

Verwenden Sie sicherheit auf Spaltenebene, wenn die Sicherheit auf Datensatzebene nicht genügend Kontrolle bietet. Aktivieren Sie sie für alle benutzerdefinierten Spalten und die meisten Systemspalten. Die meisten Systemspalten, die personenbezogene Informationen (PII) enthalten, unterstützen die Sicherheit auf Spaltenebene. Die Metadaten einer Systemspalte geben an, ob Sie sie sichern können.

Aktivieren Sie die Sicherheit auf Spaltenebene separat für jede Spalte. Erstellen Sie dann ein Spaltensicherheitsprofil, das "Erstellen", "Aktualisieren" und "Lesezugriff " auf gesicherte Spalten gewährt. Weisen Sie das Profil Benutzern oder Teams zu.

Sicherheit auf Spaltenebene gewährt keinen Zugriff auf einen Datensatz. Ein Benutzer muss bereits über Datensatzzugriff verfügen, bevor ein Spaltensicherheitsprofil Zugriff auf gesicherte Spalten gewähren kann. Verwenden Sie die Sicherheit auf Spaltenebene nur bei Bedarf, da übermäßige Verwendung die Leistung verringern kann.

Sicherheit in mehreren Umgebungen koordinieren

Verwenden Sie Dataverse-Lösungen, um Sicherheitsrollen und Spaltensicherheitsprofile zwischen Umgebungen zu verschieben. Erstellen und verwalten Sie Geschäftseinheiten und Teams separat in jeder Umgebung. Außerdem müssen Sie den entsprechenden Sicherheitskomponenten in jeder Umgebung Benutzer zuweisen.

Konfigurieren der Benutzersicherheit

Nachdem Sie Rollen, Teams und Geschäftseinheiten erstellt haben, konfigurieren Sie den Zugriff jedes Benutzers:

  1. Ordnen Sie den Benutzer einer Geschäftseinheit zu. Dataverse verwendet standardmäßig die Stammgeschäftseinheit und fügt den Benutzer dem Standardteam dieser Geschäftseinheit hinzu.
  2. Weisen Sie die Sicherheitsrollen zu, die der Benutzer benötigt.
  3. Fügen Sie den Benutzer zu den entsprechenden Teams hinzu.
  4. Wenn Sie sicherheit auf Spaltenebene verwenden, weisen Sie dem Benutzer oder einem seiner Teams ein Spaltensicherheitsprofil zu.

Der effektive Zugriff eines Benutzers kombiniert direkt zugewiesene Sicherheitsrollen mit Rollen, die über Teams zugewiesen sind. Dataverse gewährt immer die umfassendste Berechtigung für diese Rollen. Eine ausführliche exemplarische Vorgehensweise finden Sie unter Konfigurieren der Umgebungssicherheit.

Koordinieren Sie wichtige Sicherheitsänderungen mit App-Machern und Administratoren, die Benutzerberechtigungen verwalten, bevor Sie die Änderungen bereitstellen.

Siehe auch