Koncepce zabezpečení v Microsoft Dataverse
Jednou z klíčových funkcí Dataverse je jeho bohatý model zabezpečení, který se dokáže přizpůsobit mnoha scénářům podnikového využití. Tento model zabezpečení je ve hře pouze tehdy, když je v prostředí databáze Dataverse . Jako správce pravděpodobně nebudete sami budovat celý model zabezpečení, ale budete často zapojeni do procesu správy uživatelů, zajišťovat, že mají správnou konfiguraci a řešit problémy související se zabezpečením.
Zpropitné
Podívejte se na následující video: Microsoft Dataverse – Bezpečnostní koncepty zobrazené v ukázkách.
Zabezpečení založené na rolích
Dataverse používá zabezpečení založené na rolích k seskupení kolekce oprávnění. Tyto role zabezpečení mohou být přidruženy přímo k uživatelům nebo mohou být přidruženy k týmům a organizačním jednotkám Dataverse. Uživatelé pak mohou být přidruženi k týmu, a proto mají z role prospěch všichni uživatelé přidružení k týmu. Klíčový koncept zabezpečení Dataverse, který je třeba pochopit, je, že všechna udělovaná oprávnění jsou kumulativní, přičemž nejvíce převládá oprávnění přístupu. Pokud jste poskytli široký přístup ke čtení všech záznamů kontaktů na úrovni organizace, nemůžete se vrátit a skrýt jediný záznam.
Organizační jednotky
Tip
Podívejte se na následující video: Modernizace obchodních jednotek.
Organizační jednotky pracují s rolemi zabezpečení, aby určily efektivní zabezpečení, které uživatel má. Organizační jednotky jsou stavebním blokem při modelování zabezpečení, který pomáhá spravovat uživatele a data, ke kterým mají přístup. Organizační jednotky definují hranice zabezpečení Každá databáze Dataverse má jednu kořenovou organizační jednotku.
Můžete vytvořit podřízené organizační jednotky, které vám pomohou dále segmentovat uživatele a data. Každý uživatel přiřazený k prostředí patří do obchodní jednotky. Zatímco organizační jednotky by mohly být použity k modelování skutečné hierarchie organizace 1:1, častěji se přiklání k právě definovaným hranicím zabezpečení, aby pomohly dosáhnout potřeb modelu zabezpečení.
Lépe to pochopíte na následujícím příkladu. Máme tři organizační jednotky. Woodgrove je kořenovou organizační jednotkou a vždy bude na vrcholu, to je neměnné. Vytvořili jsme dvě další podřízený obchodní jednotky A a B. Uživatelé v těchto obchodních jednotkách mají různé potřeby přístupu. Když uživatele přidružíme k tomuto prostředí, můžeme jej nastavit, aby byl součástí jedné z těchto tří organizačních jednotek. Kde je uživatel přidružen, určuje, která obchodní jednotka vlastní záznamy, jejichž vlastníkem je uživatel. Díky tomuto přidružení nám to umožňuje přizpůsobit role zabezpečení, který uživateli umožňuje zobrazit všechny záznamy v této obchodní jednotce.
Hierarchická struktura přístupu k datům
Zákazníci mohou použít organizační strukturu, kde jsou data a uživatelé rozděleni do stromové hierarchie.
Když s tím spojíme uživatele s tímto prostředím, můžeme nastavit uživatele tak, aby byl v jedné z těchto tří obchodních jednotek, a přiřadit uživateli role zabezpečení z obchodní jednotky. Obchodní jednotka, ke které je uživatel přidružen, určuje, která obchodní jednotka vlastní záznamy, když uživatel vytvoří záznam. Díky tomuto přidružení nám umožňuje přizpůsobit role zabezpečení, který uživateli umožňuje vidět záznamy v dané obchodní jednotce.
Uživatel A je přidružen k divizi A a má přiřazenou roli zabezpečení Y z divize A. To uživateli A umožňuje přístup k záznamům kontaktu č. 1 a kontaktu č. 2. Zatímco uživatel B v divizi B nemá přístup k záznamům kontaktu divize A, ale má přístup k záznamu kontaktu č. 3.
Struktura přístupu k maticovým datům (modernizované obchodní jednotky)
Zákazníci mohou používat organizační strukturu, kde jsou data rozdělena do stromové hierarchie, a uživatelé mohou pracovat a přistupovat k datům jakékoli obchodní jednotky bez ohledu na to, k jaké obchodní jednotce je uživatel přiřazen.
Když uživatele přidružíme k tomuto prostředí, můžeme jej nastavit, aby byl součástí jedné z těchto tří organizačních jednotek. Pro každou obchodní jednotku, kterou uživatel potřebuje k přístupu k datům, je uživateli přiřazena role zabezpečení z této obchodní jednotky. Když uživatel vytvoří záznam, může uživatel nastavit, aby obchodní jednotka záznam vlastnila.
Uživatel A může být spojen s jakoukoli obchodní jednotkou, včetně kořenové obchodní jednotky. Role zabezpečení Y z divize A je přiřazena uživateli A, což uživateli poskytuje přístup k záznamům kontaktu č. 1 a kontaktu č. 2. Role zabezpečení Y z divize B je přiřazena uživateli A, což uživateli poskytuje přístup k záznamům kontaktu č. 3.
Zapnutí struktury přístupu k maticovým datům
Poznámka:
Než tuto funkci zapnete, musíte publikovat všechna svá přizpůsobení, abyste pro tuto funkci zpřístupnili všechny nové nepublikované tabulky. Pokud po jejím zapnutí zjistíte, že máte nepublikované tabulky, které s touto funkcí nefungují, můžete nastavit RecomputeOwnershipAcrossBusinessUnits pomocí Nástroje OrgDBOrgSettings pro Microsoft Dynamics CRM. Nastavení RecomputeOwnershipAcrossBusinessUnits na true umožňuje nastavit a aktualizovat pole Vlastnící organizační jednotka.
- Přihlaste se do Power Platform centra pro správu jako správce (admin Dynamics 365 nebo Microsoft Power Platform admin).
- Vyberte Prostředí a poté vyberte prostředí, pro které chcete tuto funkci zapnout.
- Vyberte Nastavení>Produkt>Funkce.
- Zapněte přepínač záznam vlastnictví napříč obchodními jednotkami.
Jakmile je tento přepínač funkcí zapnutý, můžete vybrat obchodní jednotku, když přiřazujete uživateli roli zabezpečení. To umožňuje přiřadit uživateli roli zabezpečení z různých obchodních jednotek. Uživatel také vyžaduje role zabezpečení od obchodní jednotky, ke které je uživatel přiřazen s oprávněními uživatelského nastavení ke spouštění modelem řízených aplikací. V roli zabezpečení Základní uživatel zjistíte, jak jsou povolena tato oprávnění pro uživatelská nastavení.
Uživatele můžete přiřadit jako vlastníka záznamu v jakékoli obchodní jednotce, aniž byste museli přiřadit roli zabezpečení v obchodní jednotce vlastnící záznam, pokud má uživatel roli zabezpečení oprávnění ke čtení tabulky záznamů. Viz Záznam vlastnictví v modernizovaných obchodních jednotkách.
Poznámka:
Tento přepínač funkcí je uložen v nastavení EnableOwnershipAcrossBusinessUnits a lze ho také nastavit pomocí nástroje OrgDBOrgSettings pro Microsoft Dynamics CRM.
Přiřazení organizační jednotky ke skupině zabezpečení Microsoft Entra
Skupinu zabezpečení Microsoft Entra můžete použít pro mapování vaší obchodní jednotky pro zjednodušení správy uživatelů a přidělování rolí.
Vytvoření skupiny zabezpečení Microsoft Entra pro každou organizační jednotku a přiřazení příslušné role zabezpečení organizační jednotky každému týmu skupiny.
Pro každou organizační jednotku vytvořte skupinu zabezpečení Microsoft Entra. Vytvořte tým skupiny Dataverse pro každou skupinu zabezpečení Microsoft Entra. Každému týmu skupiny Dataverse přiřaďte příslušnou roli zabezpečení z organizační jednotky. Uživatel ve výše uvedeném diagramu bude vytvořen v kořenové organizační jednotce, když uživatel přistoupí k prostředí. Je v pořádku mít uživatele a týmu skupiny Dataverse v kořenové organizační jednotce. Má přístup pouze k datům v organizační jednotce, kde je přiřazena role zabezpečení.
Přidejte uživatele do příslušné skupiny zabezpečení Microsoft Entra, aby jim udělil přístup k organizační jednotce. Uživatelé mohou okamžitě spustit aplikaci a přistupovat k jejím zdrojům/datům.
V maticovém přístupu k datům, kde mohou uživatelé pracovat a přistupovat k datům z více organizačních jednotek, přidejte uživatele do skupiny zabezpečení Microsoft Entra mapované na tyto organizační jednotky.
Vlastnící obchodní jednotka
Každý záznam má sloupec Vlastní obchodní jednotku , který určuje, která obchodní jednotka záznam vlastní. Tento sloupec je při vytvoření záznamu nastaven jako výchozí na obchodní jednotku uživatele a nelze jej změnit, kromě případů, kdy je přepínač funkce zapnutý.
Poznámka:
Když změníte, která obchodní jednotka vlastní záznam, nezapomeňte zkontrolovat následující kaskádové efekty: Použití SDK pro .NET ke konfiguraci kaskádového chování.
Můžete nastavit, zda chcete umožnit uživateli nastavit sloupec Vlastnící obchodní jednotka, když je přepínač funkcí zapnutý. Chcete-li nastavit sloupec Vlastnící obchodní jednotka, musíte přidělit roli zabezpečení uživatele - oprávnění Připojit k tabulky obchodní jednotky s povolením na lokální úrovni.
Chcete-li svému uživateli umožnit nastavení tohoto sloupce, můžete ho zapnout v následujícím:
- Formulář - text i záhlaví.
- Zobrazení.
- Mapování sloupců. Pokud používáte AutoMapEntity, můžete v mapování sloupců zadat sloupec.
Poznámka:
Pokud máte úlohu/proces pro synchronizaci dat mezi prostředími a Vlastnící obchodní jednotka je zahrnuta jako součást schématu, vaše úloha selže s porušením omezení Cizí KLÍČ, pokud cílové prostředí nemá stejnou hodnotu Vlastnící obchodní jednotka.
Můžete buď odstranit sloupec Vlastnící obchodní jednotka ze zdrojového schématu nebo aktualizovat hodnotu sloupce Vlastnící obchodní jednotka zdroje na kteroukoli obchodní jednotku cíle.
Pokud máte úlohu/proces kopírování dat z prostředí do externího zdroje, například PowerBI, budete muset vybrat nebo zrušit výběr sloupce Vlastnící obchodní jednotka z vašeho zdroje. Vyberte ji, pokud ji váš zdroj může přijmout, jinak zrušte její výběr.
Vlastnictví tabulky/záznamu
Dataverse podporuje dva typy vlastnictví záznamu. Záznamy vlastněné organizací a záznamy vlastněné uživatelem nebo týmem. Toto je volba, která se stane v okamžiku vytvoření tabulky, a nelze ji změnit. Z bezpečnostních důvodů existuje k záznamům, které vlastní organizace, jediná možnost úrovně přístupu, a to, zda uživatel může nebo nemůže provést operaci. U záznamů vlastněných uživatelem a týmem jsou na úrovni přístupu pro většinu oprávnění odstupňovány organizace, organizační jednotka, organizační jednotka a podřízená organizační jednotka nebo pouze vlastní záznamy uživatele. To znamená, že pro oprávnění ke čtení kontaktu bych jej mohl nastavit jako vlastněný uživatelem a uživatel by viděl pouze své vlastní záznamy.
Chcete-li uvést další příklad, řekněme, že uživatel A je přidružen k divizi A a my mu poskytujeme přístup ke čtení kontaktu na úrovni organizační jednotky. Mohl by vidět kontakt č. 1 a č. 2, ale ne kontakt č. 3.
Když konfigurujete nebo upravujete oprávnění role zabezpečení, nastavujete úroveň přístupu pro každou možnost. Následuje příklad editoru oprávnění role zabezpečení.
Výše můžete vidět standardní typy oprávnění pro každou tabulku - Vytvoření, Čtení, Zápis, Odstranění, Připojení, Připojení k, Přiřazení a Sdílení. Každou z nich můžete upravovat samostatně. Vizuální zobrazení každé z nich bude odpovídat níže uvedenému klíči podle úrovně přístupu, kterou jste udělili.
Ve výše uvedeném příkladu jsme kontaktu udělili přístup na úrovni organizace, což znamená, že uživatel v divizi A mohl vidět a aktualizovat kontakty vlastněné kýmkoli. Ve skutečnosti je jednou z nejčastějších chyb správců frustrace ohledně oprávnění a udělení příliš širokého přístupu. Dobře propracovaný model zabezpečení začíná velmi rychle vypadat jako švýcarský sýr (plný děr!).
Záznam vlastnictví v modernizovaných obchodních jednotkách
V modernizovaných obchodních jednotkách můžete mít uživatele, kteří jsou vlastníky záznamů napříč všemi obchodními jednotkami. Vše, co uživatelé potřebují, je role zabezpečení (jakákoli obchodní jednotka), která má oprávnění ke čtení tabulky záznamů. Uživatelé nemusí mít přiřazenou roli zabezpečení v každé obchodní jednotce, kde se záznam nachází.
Pokud byla možnost Zaznamenat vlastnictví napříč obchodními jednotkami zapnuta ve vašem produkčním prostředí během období Preview, musíte provést následující, abyste zapli vlastnictví tohoto záznamu napříč obchodní jednotkou:
- Nainstalujte Editor nastavení organizace
- Nastavte nastavení organizace RecomputeOwnershipAcrossBusinessUnits na true. Je-li toto nastavení nastaveno na hodnotu true, systém je uzamčen a může trvat až 5 minut, než provede přepočet, aby se umožnila možnost, kdy uživatelé nyní mohou vlastnit záznamy napříč obchodními jednotkami, aniž by museli mít pro každou obchodní jednotku přiděleno samostatné role zabezpečení. To umožňuje vlastníkovi záznamu přiřadit svůj záznam někomu mimo obchodní jednotku, která záznam vlastní.
- Nastavte AlwaysMoveRecordToOwnerBusinessUnit na false. Díky tomu záznam zůstane v původní vlastnící obchodní jednotce, když se vlastnictví záznamu změní.
Pro všechna neprodukční prostředí stačí nastavit AlwaysMoveRecordToOwnerBusinessUnit na false pro použití této schopnosti.
Poznámka:
Když vypnete funkci Vlastnictví záznamu napříč obchodními jednotkami nebo nastavíte RecomputeOwnershipAcrossBusinessUnits na false pomocí nástroje OrgDBOrgSettings pro Microsoft Dynamics CRM, nebude moci nastavit ani aktualizovat pole Vlastníci organizační jednotka a všechny záznamy, kde se pole Vlastnící organizační jednotka liší od obchodní jednotky vlastníka, budou nastaveny na obchodní jednotku vlastníka.
Týmy (včetně týmů skupiny)
Týmy jsou dalším důležitým stavebním prvkem zabezpečení. Týmy jsou vlastněny organizační jednotkou. Každá organizační jednotka má jeden výchozí tým, který se automaticky vytvoří při vytvoření organizační jednotky. Výchozí členové týmu jsou spravováni platformou Dataverse a vždy obsahují všechny uživatele přidružené k této organizační jednotce. Nemůžete ručně přidat nebo odebrat členy z výchozího týmu. Systém je dynamicky upravuje, když jsou noví uživatelé přidruženi k organizačním jednotkám nebo když je jim přidružení zrušeno. Existují dva typy týmů: vlastnící týmy a přístupové týmy.
- Vlastnící týmy mohou vlastnit záznamy a každý člen týmu k nim má přímý přístup. Uživatelé mohou být členy více týmů. Díky tomu se jedná o účinný způsob udělování oprávnění uživatelům v širokém rozsahu bez nutnosti mikrořízení na úrovni jednotlivých uživatelů.
- Přístupové týmy jsou popsány v další části jako součást sdílení záznamů.
Sdílení záznamu
Jednotlivé záznamy mohou být sdíleny po jednom s jiným uživatelem. Jedná se o účinný způsob řešení výjimek, které nespadají do modelu přístupu typu vlastnictví záznamu nebo je člen organizační jednotky. Měla by to být výjimka, protože je to méně výkonný způsob řízení přístupu. Řešení problémů při sdílení je složitější, protože se nejedná o konzistentně implementované řízení přístupu. Sdílení lze provádět na úrovni uživatelů i týmů. Sdílení s týmem je efektivnější způsob sdílení. Pokročilejší koncept sdílení je s přístupovými týmy, které zajišťují automatické vytvoření týmu a sdílení přístupu k záznamu s týmem na základě šablony přístupového týmu (šablony oprávnění), která je použita. Přístupové týmy lze také použít bez šablon, pouze s ručním přidáním nebo odebráním členů. Přístupové týmy jsou výkonnější, protože neumožňují vlastnit záznamy týmem ani mít přiřazeny role zabezpečení týmu. Uživatelé získají přístup, protože záznam je sdílen s týmem a uživatel je členem.
Zabezpečení na úrovni záznamu v Dataverse
Možná vás zajímá – co určuje přístup k záznamu? To zní jako jednoduchá otázka, ale pro každého daného uživatele je to kombinace všech jeho bezpečnostních rolí, obchodní jednotky, se kterou jsou spojeni, týmů, kterých jsou členy, a záznamů, které jsou s nimi sdíleny. Klíčovou věcí k zapamatování je, že veškerý přístup je kumulativní ve všech těchto konceptech v rozsahu databázového prostředí Dataverse. Tato oprávnění jsou udělována pouze v rámci jedné databáze a jsou jednotlivě sledována v každé databázi Dataverse. To vyžaduje, aby uživatelé měli příslušnou licenci pro přístup k Dataverse.
Zabezpečení na úrovni sloupců v Dataverse
Řízení přístupu na úrovni záznamů někdy není pro některé obchodní scénáře adekvátní. Dataverse má funkci zabezpečení na úrovni sloupce, která umožňuje podrobnější kontrolu zabezpečení na úrovni sloupce. Zabezpečení na úrovni sloupce lze zapnout pro všechny vlastní sloupce a většinu systémových sloupců. Většinu systémových sloupců, které obsahují osobní identifikovatelné informace (PII), lze zabezpečit samostatně. Metadata každého sloupce definují, zda je to dostupná možnost pro systémový sloupec.
Zabezpečení na úrovni sloupce se zapíná pro jednotlivé sloupce. Přístup je poté spravován vytvořením profilu zabezpečení sloupce. Profil obsahuje všechny sloupce, které mají zapnuté zabezpečení na úrovni sloupce a přístup udělovaný tímto konkrétním profilem. U každého sloupce lze v rámci profilu řídit přístup pro vytvoření, aktualizaci a čtení. Profily zabezpečení sloupců jsou pak přidruženy k uživateli nebo týmům, které uživatelům přidělují tato oprávnění k záznamům, ke kterým již mají přístup. Je důležité si uvědomit, že zabezpečení na úrovni sloupce nemá nic společného se zabezpečením na úrovni záznamu. Uživatel již musí mít přístup k záznamu pro profil zabezpečení sloupce, aby mu mohl poskytnout jakýkoli přístup ke sloupcům. Zabezpečení na úrovni sloupce by mělo být použito podle potřeby a ne příliš, protože může navýšit režii, která je při nadměrném použití na úkor.
Správa zabezpečení ve více prostředích
Role zabezpečení a profily zabezpečení sloupce lze sbalit a přesunout z jednoho prostředí do jiného pomocí řešení Dataverse. Organizační jednotky a týmy musí být vytvořeny a spravovány v každém prostředí spolu s přiřazením uživatelů k nezbytným součástem zabezpečení.
Konfigurace zabezpečení prostředí uživatelů
Jakmile jsou role, týmy a organizační jednotky vytvořeny v prostředí, je čas přiřadit uživatelům jejich konfigurace zabezpečení. Nejprve při vytváření uživatele přidružíte uživatele k organizační jednotce. Ve výchozím nastavení se jedná o kořenovou organizační jednotku v organizaci. Jsou také přidáni do výchozího týmu dané organizační jednotky.
Kromě toho přiřadíte veškeré role zabezpečení, které uživatel potřebuje. Také je přidáte jako členy potřebných týmů. Pamatujte, že týmy mohou mít také role zabezpečení, takže efektivní práva uživatele jsou kombinací přímo přiřazených rolí zabezpečení v kombinaci s rolemi všech týmů, jejichž jsou členy. Zabezpečení lze vždy přidat, čímž nabízí nejméně omezující oprávnění některého z jejich nároků. Tohle je dobrý návod, jak konfigurovat zabezpečení prostředí.
Pokud jste použili zabezpečení na úrovni sloupce, budete muset přidružit uživatele nebo tým uživatele k jednomu z profilů zabezpečení sloupců, který jste vytvořili.
Zabezpečení je komplexní článek a lze jej nejlépe dosáhnout společným úsilím tvůrců aplikací a týmu spravujícího oprávnění uživatelů. Jakékoli významné změny by měly být koordinovány v dostatečném předstihu před nasazením změn do prostředí.
Viz také
Konfigurace zabezpečení prostředí
Role zabezpečení a oprávnění