SECURITY A DATA MODELING Prepared for MUNI 2024 Enehano Solutions – 2024 A picture containing text, sign, outdoor Description automatically generated TVORBA DATOVÉHO MODELU V SALESFORCE ‹#› •Tvorba datového modelu ‹#› •Standardní vs. Custom objekty •Standardní objekt •Již existující objekt v rámci dané instance Salesforce •Např. Account, Contact, Lead, Opportunity •Mají definované atributy/pole, které nelze v administraci změnit •Name, Address,… •Nedají se odstranit •Můžete přidávat nové atributy •Custom objekty •Můžete si definovat vlastní objekty a ty propojovat, jak se standardními, tak i dalšími custom objekty a tím rozšiřovat datový model •Obsahují pouze systémové pole •Name •Created By •Last Modified By • • • ‹#› •Objekty v SF A picture containing text, sign, outdoor Description automatically generated ‹#› •Vazby mezi objekty – Lookup vs Master-Detail •Lookup relace •Vznikne přidáním pole typu Lookup Relationship •Jedná se o vazbu 0..N •Př. Úkol – na záznamu úkolu mám lookup pole na zákazníka, toto pole není povinné •Má navíc defaultní pole Owner – vlastnictví záznamu •Master-Detail relace •Vznikne přidání pole typu Master-Detail Relationship •Jedná se o vazbu 1..N •Př. Objednávka -> Položky objednávky •Vždycky musí existovat master záznam, pokud smažu master, smažou se i detailní záznamy •Vlastnictví a pravidla pro sdílení se dědí z master záznamu •U master záznamu mám rozšířené funkce: •Roll-up summary • • • A picture containing text, sign, outdoor Description automatically generated ‹#› •Junction Object •Vznikne spojením dvou master detail vazeb na 1 objektu •Výsledná vazba je m:n •Př. Uchazeč o pozici a Pracovní pozice – juction object je zde Žádost o práci (Job Application) • A picture containing text, sign, outdoor Description automatically generated ‹#› •Příklady z praxe •Vazba LOOKUP •Máme-li tabulky s pobočkami banky a klienty pak vazba klient – domovská pobočka klienta je typu lookup •Vazba MASTER-DETAIL •V rezervačním systému vazba místnost – schůzka je typu master – detail, kde nadřazeným objektem je právě objekt místnost (není-li místnost, nemůžou v ní být schůzky). Obdobně je i vazba pokoj – rezervace hosta, pozor ale pokud máme trio objektů host, pokoj a obsazenost pokoje, tak směřujeme už na junction vazbu… •Vazba JUNCTION •Vazba mezi objektem Opportunity a Product přes objekt OpportunityLineItem •Máme-li tabulku pracovních pozic a kandidátů, pak junction vazebním objektem bude tabulka s uchazeči o danou pozici •Vazba SELF RELATIONSHIP •Vazba na nadřazenou pobočku / org. jednotku v případě, že je vše uložené Account ROLE VS. PROFILE A picture containing text, sign, outdoor Description automatically generated ‹#› •User • A picture containing text, sign, outdoor Description automatically generated ‹#› •Profil •Každý uživatel ho má povinně •Definuje přístup k objektům, polím •Přiřazení práv v rámci aplikace •Nastavení zabezpečení •Standardní / Custom •Přiřazen větší skupině uživatelů • ØPermission set •Definuje práva a přístupy obdobně jako profil •Rozšíření oprávnění •Pro menší skupiny uživatelů / jednotlivce Profil – přístupy a oprávnění designovat podle uživatele z dané skupiny, který má vidět a umět nejméně - Co zde nastavíte už dalšími prostředky pouze rozšiřujete, nikoliv omezujete A picture containing text, sign, outdoor Description automatically generated ‹#› •Role •Není povinná •Pro design datové viditelnosti (na úrovni záznamů) •Role hierarchy •Sharing rules • ØRole Hierarchy Set Organization-Wide Defaults and Create a Role Hierarchy Unit | •Struktura společnosti z hlediska přístupu k datům •Možnost sdílení dat s nadřízenými rolemi DATA SECURITY & SHARING A picture containing text, sign, outdoor Description automatically generated ‹#› •Record level security • •Jaké/koho vidím záznamy •A co s nimi mohu dělat • Salesforce Data Protection 101 – What is Salesforce security model? | WithSecure™ Každý záznam má svého vlastníka (defaultně ten, kdo ho založil) – ten ho vidí a může upravovat, může nad všemy svými záznamy tvořit reporty atd. Kdo další a jaká má oprávnění? Škála pouze vlastník <> úplně všichni…. Konkrétní nastavení viditelnosti zajišťuje sada funkcionalit/několik security vrstev A picture containing text, sign, outdoor Description automatically generated ‹#› •Salesforce Data Security Model Data Security | Salesforce Trailhead ORG ACCESS 10 Features every Salesforce Professional should know | Salesforce Ben OBJECT LEVEL FIELD LEVEL How to Evaluate your CRM API | Zentso Apex Basics & Database | Salesforce Trailhead RECORD LEVEL A picture containing text, sign, outdoor Description automatically generated ‹#› •Salesforce – obecné zabezpečení, oprávnění •Securita pro celý org (viz sekce Security v Setupu) •Nebo pro jednotlivé profily (má vyšší prioritu než org settings) •Požadavky na heslo •IP adresy (rozsah) •Časové omezení pro přihlášení • •V profilu (permission setu) také nastavujeme různá obecná oprávnění, např. •Možnost vytvářet list views i pro ostatní uživatele •Zda vidí Setup, zda může vytvářet další uživatele, reporty, dashboardy, složky, … •Jaké aplikace má přiřazené (Sales, Service, Marketing, HR, …) •Object level a field level security A picture containing text, sign, outdoor Description automatically generated ‹#› •Salesforce Data Security Model A picture containing text, sign, outdoor Description automatically generated ‹#› •Object level security • •Jaké vidím objekty (a taby) •Co s nimi mohu dělat •Read, Create, Edit, Delete, View All, Modify All •Přiřazení Record Typů • • •Nastavuje na se Profilu / Permission Setu • A picture containing text, sign, outdoor Description automatically generated A picture containing text, sign, outdoor Description automatically generated ‹#› •Field level security • •Jaká vidím pole •Co s nimi mohu dělat •Read, Edit • •Nastavuje na se Profilu / Permission Setu • Příklad – HR aplikace, každý je oprávněn vidět objekt Employee, ale pouze člověk s daným profilem/PS může vidět jeho plat A picture containing text, sign, outdoor Description automatically generated A picture containing text, sign, outdoor Description automatically generated ‹#› •OWD - Organization Wide Defaults​ •Určuje základní přístup a jeho úroveň k záznamům pro celý Org •Public Read/Write - Uživatelé vidí a mohou upravit všechny záznamy​ •Public Read Only - Uživatelé mohou vidět všechny záznamy​ •Private - Uživatelé vidí jen své záznamy •Controlled by Parent – pro Master Detail Relationship Další vrstva přístup vždy jen přidává! A picture containing text, sign, outdoor Description automatically generated A picture containing text, sign, outdoor Description automatically generated ‹#› •Role Hierarchy​ • Obchodní zástupce Slezsko Ředitel Divize Slezsko Ředitel Divize Morava Ředitel Divize Čechy CEO Obchodní zástupce Morava Obchodní zástupce Čechy VP Sales Pokud zapnutý hiearchiský přístup… morava vidí > … VP vidí vše až na CE, CEO vidí úplně vše (přístup dle přístupu podřízeného uživatele) A picture containing text, sign, outdoor Description automatically generated ‹#› •Role Hierarchy​ •Rozšiřuje sdílení záznamů směrem nahoru v hierarchii •Umožní přístup k záznamům podřízených Rolí, tj. Otevřeme přístup managerům, kterým byl nastavením OWD přístup znemožněn​ (úroveň přístupu dle přístupu vlastníka) •Takto vidí nadřazená role všechny záznamy, které vidí uživatel v roli pod ním (které vlastní, i které s ní jsou sdíleny jinými způsoby) •Definice přístupu k vztaženým („podřazeným“) Záznamům použitím Role:​ •Při definovaní Role můžeme definovat přístup vlastníka záznamu ke vztaženým záznamům (Opportunita, Case), které jsou vlastněny jiným uživatelem •Příklad: Uživatelé v dané Roli - vlastníci Accountu mohou pouze nahlížet do Opportunit, které sami nevlastní Příklad: jsem vlastníkem Accountu, pod kterým má Opportunitu založenou kolega. Opportunity jsou na private. Na úrovni mé role může být určeno, že takovouto oportunitu uvidím nebo neuvidím. A picture containing text, sign, outdoor Description automatically generated ‹#› •Role Hierarchy​ Pokud zapnutý hiearchiský přístup… morava vidí > … VP vidí vše až na CE, CEO vidí úplně vše (přístup dle přístupu podřízeného uživatele) A picture containing text, sign, outdoor Description automatically generated ‹#› •Sharing Rules •Umožní skupinám uživatelů další přístup k záznamům na základě definovaných podmínek •Výjimky k OWD, Role hierarchy sharing, týmům •Criteria Based vs. Owner Based • • •Vlastněné určitými uživateli •Splňující určitá kritéria Jaké Záznamy sdílet • •Public Group •Role •Role a jí podřízené S kým •Read Only •Read/Write Úroveň přístupu Příklad – mezinárodní implementace, CZ support specialist role a SK support specialist role <> vzájemně read only na Casy pro sdílení knowlege A picture containing text, sign, outdoor Description automatically generated A picture containing text, sign, outdoor Description automatically generated ‹#› •Teams •Account, Opportunity, Case •Vytvoření týmu, který se mnou kooperuje na záznamu, který vlastním •Lze vytvořit předdefinovaný tým •Definuje se úroveň přístupu (Read/Write) na záznam a přidružené záznamy • • • A picture containing text, sign, outdoor Description automatically generated ‹#› •Manual Sharing •Musí být povoleno v rámci OWD •Sdílení s uživatelem, rolí, rolí včetně podřízených, public group •Manual Sharing je dostupný •Vlastníkovi záznamu, jeho managerům v Role Hierarchy a administrátorům •Pro Objekty nastavené jako Public Read-Only a Private • • A picture containing text, sign, outdoor Description automatically generated ‹#› •Manual Sharing A picture containing text, sign, outdoor Description automatically generated ‹#› •Salesforce Record Level Security - Shrnutí • •OWD definují základní úroveň přístupu k Záznamům pro celý org •Role Hierarchy otevírá přístup k Záznamům vertikálně skrze org. strukturu •Sharing Rules rozšiřují přístup dle definovaných podmínek •Teamy definují skupinu spolupracovníků na mém záznamu •Manual Sharing rozšiřuje přístup k jednotlivým záznamům • • Picture 2 A picture containing text, sign, outdoor Description automatically generated ‹#› •Salesforce Data Security Model - Shrnutí •Object level security • Field level security • Record level security • Org Wide Defaults Role Hierarchy Sharing Rules Teams, Manual Sharing