Dynamics 365:安全的客户参与应用程序

客户参与应用程序使用Microsoft Dataverse提供了一个丰富的安全模型,可以适应许多业务场景。本节为您提供了应考虑的安全措施的特定于产品的指导。

Dataverse安全模型有以下目标:

  • 只允许用户访问他们工作所需的信息。

  • 按角色对用户进行分组,并根据这些角色限制访问权限。

  • 支持数据共享,以便用户和团队可以访问他们不拥有的记录以进行特定的协作。

  • 阻止用户访问他们不拥有或共享的记录。
     

了解有关Microsoft Dataverse安全性的更多信息。

安全功能


我们使用三类主要的安全功能来提供适当的用户访问:基本安全控制、其他安全控制和手动共享。您应该使用基本安全控制来满足大多数安全要求。使用其他选项来管理异常和边缘场景。

类别描述好处局限性
基本安全控制其中包括记录所有权、业务单元层次结构、安全角色以及用户和团队。它们定义了用户和记录的基本访问级别和权限。它们易于设置和管理。它们提供了一个清晰一致的安全模型。它们无法处理复杂或动态的场景。
其他安全控制其中包括字段级安全性、层次结构安全性、访问团队和表关系。它们为安全模型增加了更多的粒度和灵活性。他们可以处理特定或特殊情况。它们可以适应不同的组织结构和数据访问需求。它们会增加安全模型的复杂性和维护性。
手动共享这允许用户与另一个用户或团队共享记录。用户必须对记录具有共享权限。这是授予对记录访问权限的一种简单快捷的方法。它可以处理计划外或临时情况。它不能自动化或按比例缩放。如果广泛使用,可能会导致性能问题。

记录所有权


Dataverse支持两种类型的记录所有权:

  • 组织所有:当记录属于该组织时,环境中的每个人都可以访问该记录。

  • 用户或团队所有:如果组织不拥有该记录,则由用户、团队或业务部门拥有。当记录由用户或团队拥有时,只有所有者和具有相应安全角色的用户才能访问该记录。

有些现成的表是这两种类型的例外。例如,业务部门拥有系统用户记录。

业务部门


业务单元是一个安全构建块,可帮助您管理用户及其可以访问的数据。术语“业务单元”不一定与组织的运营业务单元有关。在Dataverse中,业务单元提供了一个框架来定义用户、团队和记录的组织结构。业务单元按组织层次结构对用户和团队进行分组,并可以使用安全角色授予或限制对数据的访问。

业务部门具有等级性质。您可以允许用户访问其业务部门中的记录,也可以访问其业务单元及其单元下的业务单元中的记录。例如,您可以使用业务单元的分层性质来限制对站点、地区、地区和公司级别的记录的访问。业务单元可用于将数据分割到所有权容器中以进行访问控制。

在您的实现中,最大限度地减少业务单元的数量是一种最佳做法。基于访问控制需求,而不是将组织结构图映射到业务单元。

安全角色


特权是指在Dynamics 365中执行操作的权限。安全角色是一组权限,用于定义用户可以执行的一组操作。某些权限通常适用,例如使用导出到Microsoft Excel功能。其他应用于特定的表,例如读取所有帐户的能力。

您必须将一个或多个预定义或自定义的安全角色直接或从用户所属的团队继承给用户,以允许他们访问Dynamics 365。您可以为一个用户分配多个安全角色。用户的有效安全角色是分配给他们的所有安全角色的所有权限的总和。例如,如果一个安全角色允许用户读取帐户,而另一个安全任务允许用户读取联系人,则用户可以读取帐户和联系人。

客户参与应用程序具有几个开箱即用的安全角色。如果您需要更多或不同的安全角色,请从复制现有的安全角色开始。

最佳做法是在根业务单元级别创建安全角色,因为这些角色会自动复制到所有子业务单元,并且可以包含在解决方案中。

以下是使用特权帐户和服务帐户的一些最佳做法:

  • 限制并定期审查提升的用户和服务帐户列表。

  • 考虑一种即时访问方法来授予提升的权限。

  • 请考虑使用管理用户帐户授予对设置和管理功能的访问权限,但不授予对功能的访问权。了解有关Power Platform中特权身份管理和管理用户的更多信息。

  • 使用应用程序帐户进行集成和部署。了解有关应用程序用户和非交互式用户帐户的更多信息。

  • 使用服务器到服务器(S2S)身份验证,允许应用程序和服务之间进行安全无缝的通信。

笔记

Azure Active Directory现在是Microsoft Entra ID。了解更多信息

团队


团队提供了一种直接的方式来共享记录、跨业务部门与其他人协作以及分配安全角色。尽管一个团队属于一个业务单元,但它也可以包括来自其他业务单元的用户。您可以将一个用户与多个团队相关联,这是向跨业务部门的用户授予权限的一种方便方式。

Dataverse有三种类型的团队:

  • 所有者团队:您可以使所有者团队成为记录的所有者,这是将记录链接到特定业务单元的有用方法。所有者团队还可以共享记录并具有安全角色。

  • Microsoft Entra安全团队和办公室团队:这些是特殊类型的所有者团队。您无法在Dynamics 365中管理他们的成员资格。相反,它们链接到Microsoft Entra安全组或Microsoft 365组。拥有适当许可证并添加到Microsoft Entra组的用户将在系统中自动启用,并在连接到环境时添加到团队中。使用Microsoft Entra ID非常有用,因为组和权限也扩展到Dynamics 365之外的启用Microsoft Entra的应用程序。

  • 访问团队:这些团队是唯一的,因为他们不能拥有记录,也不能有安全角色关联。然而,就像所有者团队一样,访问团队可以与他们共享记录。当您在表级别启用访问团队时,他们可以将特定的记录级别权限授予记录访问团队的成员。这是与用户或团队手动共享记录的替代方案。

在以下情况下使用所有者团队:

  • 您需要团队级别的记录所有权,而不是用户。

  • 您需要通过团队为用户分配安全角色。

  • 你需要报告团队的进展情况。
     

当团队成员对单个记录需要不同的权限而不是对记录类型需要相同的权限时,请使用访问团队。例如,您可以使用访问团队将对特定帐户记录的读取权限授予对所有帐户都没有读取权限的用户。

字段级安全


您可以使用字段级安全性来限制对特定用户或团队具有高业务影响的字段的访问。例如,您可以只允许某些用户读取或更新业务客户的信用评分。

字段级安全性可用于大多数现成表上的默认字段、自定义字段和自定义表上的自定义字段。字段级安全性由安全配置文件管理。现场级安全的范围是整个组织范围的,适用于所有数据访问请求。

共享


记录共享允许用户将表记录的访问权限授予其他用户或团队。用户必须对记录具有共享权限才能共享该记录。共享应被视为用户手动管理默认安全模型异常的一种方式。

请记住以下建议做法:

  • 只与尽可能少的用户或团队共享必要的记录。广泛的共享可能会导致大规模的性能问题。

  • 授予用户执行工作所需的最低访问权限。

  • 不要自动共享。

  • 尽可能关闭安全角色中的共享权限。


层次结构安全性


您可以使用层次结构安全模型从用户或职位层次结构的角度访问数据。有了这种额外的安全性,您可以让经理访问其报告所拥有的记录,以供批准或代表他们执行任务。

访问控制功能概述
下表总结了Dataverse中可用的访问控制功能。

TypeBenefits
组织允许对环境中的所有记录进行打开访问。绕过了安全检查的需要,从而提高了性能。
业务部门非常适合大型用户组访问的大量数据。允许进行最佳访问检查。减少维护开销。可用于管理和监督访问,在较低级别具有更细粒度的访问。
用户所有权非常适合大体积的整体。数据,但对数据的较小子集进行单独的细粒度访问。优化的访问检查将内存缓存和记录数据直接结合在一起。启用组合业务单元访问。
团队所有权非常适合大容量的整体数据,但对较小的数据子集进行分组细粒度访问。优化的访问检查将内存缓存和记录数据直接结合在一起。随着用户参与度的变化,减少级联影响。将用户与记录业务单元结构隔离开来,实现具有数据影响的用户移动。
共享与使用其他功能的标准模型相比,非常适合对异常进行建模。为每条记录提供特定的唯一权限,但要付出代价--检查大量规则会增加性能、存储和维护开销。与团队共享可以降低成本。
继承建立在所有权和共享模式之上。用于支持链中高于个人细粒度访问的直属经理。不打算取代更高级或更广泛级别的业务部门访问权限。

环境安全组


您可以将Microsoft Entra安全组与Dataverse环境相关联,以控制用户访问。除非Microsoft Entra ID中的用户具有特定的、具有高度特权的Microsoft 365管理员角色,否则即使分配了有效的身份验证和安全角色,他们也无法访问Dynamics 365中的任何信息,除非他们也是Dynamics 365中正确环境安全组的成员。
将安全组与环境相关联是一种最佳做法。这将阻止所有符合Microsoft Entra条件并获得适当许可的用户在Dynamics 365环境中显示为活动用户。


审计


审核可帮助您遵守内部政策、政府法规和消费者对更好地控制机密数据的要求。组织对其业务系统的各个方面进行审计,以验证系统和数据访问控制是否有效运行,并识别可疑或不合规的活动。


Dataverse审计


审核日志可帮助您确保系统的数据完整性,并满足某些安全性和法规遵从性要求。审核功能记录用户和管理员对记录和用户访问权限所做的更改,以便您以后可以查看活动。
可以在表级别、字段级别和用户访问级别启用审核。您可以通过三种方式查看数据审核:
 

  • 上下文方面,在记录级别,在表单上

  • 在全球范围内,从审计摘要视图

  • 来自API


不要对所有表和列启用审核。进行尽职调查,以确定需要审计哪些表和字段。过多的审核可能会影响性能并消耗大量日志存储。


Microsoft 365审核日志


活动日志记录Microsoft 365和Dynamics 365应用程序中的用户和管理活动。数据存储在Microsoft 365统一审计日志中,与以前的Dataverse审计功能相比,该日志对系统资源的占用更小。
Microsoft 365审核日志还有其他几个好处:

  • Microsoft 365管理员可以管理Microsoft 365安全和法规遵从性门户中所有环境的设置和访问活动报告。Dataverse审核是在每个Dynamics365环境中单独设置和存储的。

  • 系统中的所有数据都会被记录下来,包括读取操作、插件操作、表操作、批量操作、用户登录和注销,甚至Microsoft支持操作。


-您可以设置系统,根据可配置的设置将某些事件通知管理员或合规官员。

  • 管理员可以使用预定义或自定义的筛选器轻松地搜索审核日志。

  • 管理员可以使用安全信息和事件管理(SIEM) 功能近乎实时,以分析和获取系统内可能的可疑行为的警报,并提供解决措施。

  • Dynamics 365提供与多个SIEM供应商的开箱即用集成,如ArcLight、Microsoft OMS、Okta、SumoLogic、BetterCloud,以及许多其他供应商的标准CEF格式集成。微软还发布了一个连接器,将活动日志集成到Azure Sentinel中。


默认情况下,活动日志记录数据会根据Microsoft 365许可证类型保留90天或一年。如果您需要更长时间地保留数据,我们建议您更改保留策略或将这些日志移动到外部存储。
 

用于Microsoft Power Platform的密码箱


通过适用于Microsoft Power Platform的Lockbox,您可以向Microsoft工程师提供对环境的临时、及时访问,以帮助解决关键的支持请求。
Lockbox具有以下核心功能:
 

  • 管理员可以选择哪些Microsoft Dataverse数据库需要使用lockbox进行保护。

  • 在极少数情况下,Microsoft需要临时访问受锁箱保护的数据库中的数据以解决关键问题,系统会通知管理员,管理员可以访问Power Platform管理中心批准或拒绝该请求。

  • 一旦授予Microsoft访问权限,在临时访问期间在受锁箱保护的数据库中发生的任何操作都会被记录下来,并作为SQL审核日志提供给您的组织。您可以将这些日志导出到Azure数据湖中进行进一步分析。


客户管理的密钥


默认情况下,Microsoft管理所有Dynamics 365环境的加密密钥。您可以选择自己管理加密密钥,但应注意潜在风险。了解有关客户管理的加密密钥的更多信息。


接下来的步骤

  • Learn about security features in Power Pages

  • Learn about security features in finance and operations apps

  • Learn how to make security a priority from day one

  • Use the Success by Design security checklist to help identify and prioritize key requirements and implementation activities in the areas of privacy and compliance, identity and access, and application security

本文 :https://architect.pub/dynamics-365-secure-customer-engagement-apps
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【架构师酒馆】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
4e93f4405f0f4a4652ce08030b24be13.jpeg
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

18ecf0b4a434e012dacbd8f837de64b2.jpeg

QQ群

【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

bbd7b73f2239eafbf36e53abc1e1722a.jpeg

视频号【架构师酒馆】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

75c476008f420ec29d3901b493dde38b.jpeg

知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

caf6ac104dd0be5066bf4e44a9343f9b.jpeg

喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【架构师酒馆】智能时刻
哔哩哔哩【架构师酒馆】

e779141371fb96ccbb7f6c5b71bc7507.jpeg

抖音【cea_cio】架构师酒馆

21f7493eb1c6ef8dd7065a041b45d068.jpeg

快手【cea_cio_cto】架构师酒馆

e6f6c392f84d062779457d503e5db1da.jpeg

小红书【cea_csa_cto】架构师酒馆

e163ba4afcf484359214469fd5493e5d.jpeg

网站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

谢谢大家关注,转发,点赞和点在看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/666608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sping源码(九)—— Bean的初始化(非懒加载)— FactoryBean

FactoryBean 先来介绍一下FactoryBean是什么。以及BeanFactory和FactoryBean的区别。 举个栗子&#xff1a; MyFactoryBean.class public class MyFactoryBean implements FactoryBean<User> {Overridepublic User getObject() throws Exception {return new User(&qu…

CAPL如何发送一条UDP报文

UDP作为传输层协议,本身并不具有可靠性传输特点,所以不需要建立连接通道,可以直接发送数据。当然,前提是需要知道对方的通信端点,也就是IP地址和端口号。 端口号是传输层协议中最显著的特征,传输层根据它来确定上层绑定的应用程序,以达到把数据交给上层应用处理的目的。…

五种主流数据库:常用数据类型

在设计数据库的表结构时&#xff0c;我们需要明确表中包含哪些字段以及字段的数据类型。字段的数据类型定义了该字段能够存储的数据种类以及支持的操作。 本文将会介绍五种主流数据库中常用的数据类型以及如何选择合适的数据类型&#xff0c;包括 MySQL、Oracle、SQL Server、…

基于Springboot + vue实现的文化民俗网站

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

uni-app的网络请求库封装及使用(同时支持微信小程序)

其实uni-app中内置的uni.request()已经很强大了&#xff0c;简单且好用。为了让其更好用&#xff0c;同时支持拦截器&#xff0c;支持Promise 写法&#xff0c;特对其进行封装。同时支持H5和小程序环境&#xff0c;更好用啦。文中给出使用示例&#xff0c;可以看到使用变得如此…

安卓Zygote进程详解

目录 一、概述二、Zygote如何被启动的&#xff1f;2.1 init.zygote64_32.rc2.2 Zygote进程在什么时候会被重启2.3 Zygote 启动后做了什么2.4 Zygote启动相关主要函数 三、Zygote进程启动源码分析3.1 Nativate-C世界的Zygote启动要代码调用流程3.1.1 [app_main.cpp] main()3.1.2…

11- Redis 中的 SDS 数据结构

字符串在 Redis 中是很常用的&#xff0c;键值对中的键是字符串类型&#xff0c;值有时也是字符串类型。 Redis 是用 C 语言实现的&#xff0c;但是它没有直接使用 C 语言的 char* 字符数组来实现字符串&#xff0c;而是自己封装了一个名为简单动态字符串&#xff08;simple d…

13.优化界面化的游戏辅助

12.使用mfc实现游戏辅助的界面 在它的代码上进行修改 12.使用mfc实现游戏辅助的界面它的代码是频繁读写游戏的内存&#xff0c;这样不是很好&#xff0c;下面的代码是在它的基础上进行了封装&#xff0c;控制无敌的逻辑在我们申请的内存中实现&#xff08;也就是在一个全局中实…

gcc 内建函数示例 __builtin_return_address

1,理论未动&#xff0c;示例先行 hello_gcc_callstack.c #include <stdio.h>void do_backtrace() {void *pc0 __builtin_return_address(0);void *pc1 __builtin_return_address(1);void *pc2 __builtin_return_address(2);void *pc3 __builtin_return_address(3);…

oracle中的INTERVAL函数学习总结

Oracle 从9i数据库开始引入了一种新特性&#xff0c;可以用来存储时间间隔&#xff0c;出现了INTERVAL 函数。这个函数的表达式比较多&#xff0c;初学比较费劲不好掌握&#xff0c;经过以几个小时的查阅资料和实验&#xff0c;总结如下&#xff1a; interval year t…

使用Redis常遇到的问题

文章目录 概述缓存雪崩、穿透、击穿大key问题热Key问题缓存和数据库双写一致性问题缓存并发竞争Redis线上阻塞要如何排查Redis 常见的性能问题都有哪些Redis 如何做内存优化Redis数据倾斜 概述 在使用Redis时&#xff0c;有几个常见的问题可能会出现&#xff0c;包括但不限于以…

2022年全国职业院校技能大赛高职组“信息安全管理与评估”赛项第三阶段任务书

第三阶段竞赛项目试题 本文件为信息安全管理与评估项目竞赛-第三阶段试题。根据信息安全管理与评估项目技术文件要求&#xff0c;第三阶段为夺旗挑战CTF&#xff08;网络安全渗透&#xff09;。 本次比赛时间为180分钟。 介绍 夺旗挑战赛&#xff08;CTF&#xff09;的目标…

21 厂商考证介绍(华为 华三 锐键 深信服)+AI 解析

一 认识考证体系 二 明确考证的大致方向 锐键 职业资格证书等级介绍 职业资格证书是由国家职业资格鉴定机构或相关行业主管部门颁发的&#xff0c;用于证明一个人在特定职业领域具备一定技能和知识水平的证明文件。职业资格证书的等级分为初级、中级、高级、技师、高级技师、…

算法每日一题(python,2024.05.29) day.11

题目来源&#xff08;力扣. - 力扣&#xff08;LeetCode&#xff09;&#xff0c;简单&#xff09; 解题思路&#xff1a; 法一&#xff1a;切片函数法 直接用python中的切片函数直接解决 法二&#xff1a;交换法 从俩头开始交换字符串的数字&#xff0c;若为奇数&#xff…

CSRF跨站请求伪造漏洞

CSRF跨站请求伪造漏洞 1.CSRF漏洞概述2.防御CSRF攻击3.CSRF防御绕过CSRF令牌未绑定到用户会话自定义标头令牌绕过绕过Referer检查关键词绕过 4.利用示例使用HTML标签进行GET表单 GET 请求表单POST请求通过 iframe 发送表单 POST 请求Ajax POST 请求 5.CSRF BP 验证方法6.CSRF测…

LabVIEW老程序功能升级:重写还是改进?

概述&#xff1a;面对LabVIEW老程序的功能升级&#xff0c;开发者常常面临重写与改进之间的选择。本文从多个角度分析两种方法的利弊&#xff0c;并提供评估方法和解决思路。 重写&#xff08;重新开发&#xff09;的优势和劣势&#xff1a; 优势&#xff1a; 代码清晰度高&a…

【R语言基础】如何更新R版本

文章目录 概要流程细节具体步骤 概要 提示&#xff1a;由于软件包的更新&#xff0c;所以需要更新R至新版本 流程细节 查看当前R版本 R.version下载更新包&#xff1a;installr install.packages("installr")library(installr)跟着向导一步步执行安装 具体步骤 …

使用Spring Boot自定义注解 + AOP实现基于IP的接口限流和黑白名单

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

技术分享 | SpringBoot 流式输出时,正常输出后为何突然报错?

项目背景 一个 SpringBoot 项目同时使用了 Tomcat 的过滤器和 Spring 的拦截器&#xff0c;一些线程变量在过滤器中初始化并在拦截器中使用。该项目需要调用大语言模型进行流式输出。项目中&#xff0c;笔者使用 SpringBoot 的 ResponseEntity<StreamingResponseBody> 将…

java实现地形dem产汇流流场数据提取解析

一、基础概念 在GIS和气象学、海洋学、大气科学、水文学等领域&#xff0c;"提取流场"通常指的是从数据集中识别和分析流体&#xff08;如水流、风场、洋流、大气流&#xff09;的运动模式和流向的过程。这个过程涉及数据处理、可视化和分析技术&#xff0c;下面是提…