Dataverse的一个关键特性是其丰富的安全模型,可以适应许多业务使用场景。只有当环境中存在Dataverse数据库时,此安全模型才会发挥作用。作为管理员,您可能不会自己构建整个安全模型,但通常会参与管理用户、确保他们拥有正确的配置以及解决与安全访问相关的问题的过程。 提示 视频符号查看以下视频:Microsoft Dataverse – Security Concepts Shown In Demos.。基于角色的安全性
业务部门 提示 视频符号查看以下视频:Modernize business units. 业务单元使用安全角色来确定用户具有的有效安全性。业务单元是一个安全建模构建块,有助于管理用户及其可以访问的数据。业务单元定义了一个安全边界。每个Dataverse数据库都有一个根业务单元。 您可以创建子业务单元,以帮助进一步细分用户和数据。分配给环境的每个用户都将属于一个业务单元。虽然业务单元可以用于1:1建模一个真正的组织层次结构,但它们通常更倾向于仅定义的安全边界,以帮助实现安全模型的需求。 为了更好地理解,让我们看看下面的例子。我们有三个业务部门。Woodgrove是根业务部门,并将永远处于顶端,这是不可改变的。我们创建了另外两个子业务单元A和B。这些业务单元中的用户有非常不同的访问需求。当我们将用户与此环境关联时,我们可以将用户设置为这三个业务单元中的一个。用户的关联位置将确定哪个业务单元拥有该用户所属的记录。有了这个关联,我们就可以定制一个安全角色,允许用户查看该业务单元中的所有记录。 分层数据访问结构
当我们将用户与此环境关联时,我们可以将用户设置为这三个业务单元中的一个,并将业务单元的安全角色分配给用户。当用户创建记录时,与用户关联的业务单元确定哪个业务单元拥有这些记录。通过具有该关联,我们可以定制一个安全角色,允许用户查看该业务单元中的记录。 用户A与部门A相关联,并从部门A分配了一个安全角色Y。这允许用户A访问联系人#1和联系人#2记录。而部门B中的用户B不能访问部门A的联系人记录,但可以访问联系人#3记录。 矩阵数据访问结构示例 矩阵数据访问结构(现代化的业务单元) 当我们将用户与此环境关联时,我们可以将用户设置为这三个业务单元中的一个。对于用户需要访问数据的每个业务单元,都会将该业务单元的安全角色分配给用户。当用户创建记录时,用户可以将业务部门设置为拥有该记录。 用户A可以与任何业务单元相关联,包括根业务单元。将来自部门A的安全角色Y分配给用户A,该角色允许用户访问联系人#1和联系人#2记录。来自部门B的安全角色Y被分配给用户A,这允许用户访问联系人#3记录。 分层数据访问结构示例 启用矩阵数据访问结构 笔记 启用此功能之前,必须发布所有自定义项,以便为该功能启用所有新的未发布表。如果打开此功能后发现有未发布的表无法使用此功能,则可以使用Microsoft Dynamics CRM的OrgDBOrgSettings工具设置RecomputerOwnershipAcrossBusinessUnits设置。将RecomputerownershipAcrossBusiness Units设置为true可以设置和更新“拥有的业务单元”字段。
只要用户具有对记录表具有读取权限的安全角色,就可以将用户分配为任何业务单元中的记录所有者,而无需在记录所属业务单元中分配安全角色。参见现代化业务单元中的记录所有权。 笔记 此功能开关存储在EnableOwnershipAcrossBusinessUnits设置中,可以使用Microsoft Dynamics CRM的OrgDBOrgSettings工具进行设置。将业务部门与Microsoft Entra安全组关联
为每个业务单元创建一个Microsoft Entra安全组,并将相应的业务单元安全角色分配给每个组团队。 为每个业务部门创建一个Microsoft Entra安全组。 为每个业务单元创建一个Microsoft Entra安全组。为每个Microsoft Entra安全组创建一个Dataverse组团队。将业务部门的相应安全角色分配给每个Dataverse组团队。当用户访问环境时,上图中的用户将在根业务单元中创建。让用户和Dataverse组团队在根业务单元中是很好的。他们只能访问分配了安全角色的业务单元中的数据。 将用户添加到相应的Microsoft Entra安全组中,以授予他们访问业务部门的权限。用户可以立即运行应用程序并访问其资源/数据。 在矩阵数据访问中,用户可以从多个业务部门工作和访问数据,将用户添加到映射到这些业务部门的Microsoft Entra安全组中。 拥有的业务单元
笔记 当您更改哪个业务单元拥有一条记录时,请确保检查以下级联效果:使用的SDK。NET来配置级联行为。 当功能开关打开时,您可以管理是否允许用户设置“拥有的业务单元”列。若要设置“拥有业务单元”栏,您需要向用户的安全角色授予具有本地级别权限的“业务单元”表的“附加到”权限。 若要允许用户设置此列,可以在以下位置启用此列:
笔记 如果您有一个作业/流程在环境之间同步数据,并且“拥有的业务单元”作为架构的一部分包含在内,那么如果目标环境没有相同的“拥有的事业单元”值,则您的作业将失败,并违反外键约束。 您可以从源架构中删除Owning Business Unit列,也可以将source的Owning BusinessUnit列值更新为目标的任何业务单元。 如果您有将数据从环境复制到外部资源(例如PowerBI)的作业/流程,则需要从源中选择或取消选择Owning Business Unit列。如果您的资源可以接收,请选择它,否则请取消选择它。 表/记录所有权
举另一个例子,假设用户A与部门A相关联,我们在Contact上为他们提供业务单元级别的Read访问权限。他们可以看到联系人#1和#2,但不能看到联系人#3。 当您配置或编辑安全角色权限时,您正在为每个选项设置访问级别。以下是安全角色权限编辑器的示例。 在上面,您可以看到每个表的标准权限类型创建、读取、写入、删除、附加、附加到、分配和共享。您可以单独编辑其中的每一个。每个的视觉显示将与下面的键相匹配,以确定您授予的访问级别。 安全角色特权密钥。 在上面的示例中,我们为组织级别的联系人提供了访问权限,这意味着A部门的用户可以查看和更新任何人拥有的联系人。事实上,最常见的管理错误之一是对权限感到沮丧,并只是过度授予访问权限。很快,一个精心制作的安全模型就开始看起来像瑞士奶酪(到处都是洞!)。 现代化企业单位的记录所有权
如果在预览期间在生产环境中启用了跨业务部门的记录所有权,则需要执行以下操作才能启用跨业务部门记录所有权:
笔记 如果使用Microsoft Dynamics CRM的OrgDBOrgSettings工具关闭“跨业务部门记录所有权”功能或将RecomputerOwnershipAcrossBusinessUnits设置设置为false,则将无法设置或更新“拥有的业务部门”字段,并且“拥有的业务部门”字段与所有者的业务部门不同的所有记录都将更新为所有者的业务单位。团队(包括小组团队)
Dataverse中的记录级安全性
Dataverse中的列级安全性
列级安全性是逐列启用的。然后通过创建列安全配置文件来管理访问。配置文件包含启用了列级安全性的所有列以及该特定配置文件授予的访问权限。每个列都可以在配置文件中进行控制,以便进行“创建”、“更新”和“读取”访问。然后,列安全配置文件与一个或多个用户或团队相关联,以将这些特权授予用户对他们已经有权访问的记录的访问权限。需要注意的是,列级安全性与记录级安全性无关。用户必须已经有权访问列安全配置文件的记录,才能授予他们对列的任何访问权限。列级安全性应根据需要使用,而不是过度使用,因为如果过度使用,会增加有害的开销。 跨多个环境管理安全性
配置用户环境安全
此外,您还可以分配用户需要的任何安全角色。您也可以将他们添加为任何团队的成员。请记住,团队也可以具有安全角色,因此用户的有效权限是直接分配的安全角色与他们所属的任何团队的安全角色的组合。安全性始终是附加性的,提供了他们任何权利中限制性最小的许可。以下是配置环境安全性的良好演练。 如果您使用了列级安全性,则需要将用户或用户团队与您创建的某个列安全性配置文件相关联。 安全性是一篇复杂的文章,最好由应用程序制造商和管理用户权限的团队共同努力来实现。任何重大更改都应在将更改部署到环境中之前进行协调。 另请参阅
【Data Verse和D365是学习软件架构设计很好的资料】 本文 :https://architect.pub 讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】 公众号 【jiagoushipro】 【ca_cea】 QQ群 【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。 视频号 【架构师酒馆】 知识星球 【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。 喜马拉雅 【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】 知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】 微博 【架构师酒馆】 智能时刻 哔哩哔哩 【架构师酒馆】 抖音 【cea_cio】架构师酒馆 快手 【cea_cio_cto】架构师酒馆 小红书 【cea_csa_cto】架构师酒馆 网站 CIO(首席信息官) https://cio.ceo 网站CIO,CTO和CDOhttps://cioctocdo.com网站架构师实战分享https://architect.pub网站程序员云开发分享https://pgmr.cloud官网 行天智能科技咨询公司 https://xingtian.ai 网站开发者闲谈https://blog.developer.chat网站首席隐私官内参https://cpo.work网站首席安全官内参https://cso.pub 网站CIO内参https://cio.cool 网站CDO内参https://cdo.fyi 网站CXO内参https://cxo.pub 网站首席架构师社区https://jiagoushi.pro 谢谢大家关注,转发,点赞和点在看。 |