低信任帮助台场景中的Dynamics CRM

时间:2011-06-16 13:18:11

标签: dynamics-crm dynamics-crm-2011

好的,想象一下,银行的呼叫中心充满了低信任的员工。员工需要通过电话为客户提供基本服务。呼叫中心工作人员接听客户的电话,询问他们某些安全问题,然后以某种方式为帐户提供服务。

现在,从客户的角度来看,银行正在通过询问安全问题来验证他们是谁。这与银行的观点略有不同:它正在验证呼叫中心员工正在与客户交谈。

为什么这种差异很重要?银行希望限制这些低信任的员工,因此在客户打电话之前他们无法查看帐户的任何详细信息。因此,呼叫中心员工无法浏览不仅与他联系并要求提供服务的客户的帐户详细信息。

所以问题是: 这种设置在Dynamics CRM 2011中是否可行?如何实施呢?某种程度的定制可以,但是从CRM数据驱动的定制应用程序不是。

我想也许可以创建一个自定义组件,在回答一些安全问题后暂时修改用户对记录(及其所有子项)的权限。但是,我甚至不确定CRM中是否支持基于记录的安全性(超出所有权)?我想可以暂时为用户分配所有权。那是明智的吗?

请注意:只是隐藏视图&从GUI查找按钮不是我们在这里寻找的那种安全级别。我们希望从字面上限制用户访问相关记录。

3 个答案:

答案 0 :(得分:1)

免责声明:此答案基于大量的CRM 4.0经验并阅读2011年的发行说明。

简答:不。

答案很长:是的,但定制将是主要的。我们想到的“最简单”选项是,身份验证过程是作为定制的asp.net页面执行的,a)使用服务帐户将实体重新分配给个人,然后将其返回给相关的CRM表单,然后插入一个插件,重新分配保存更改 要么 b)拥有自己的一套表格来更新和检索作为服务帐户的信息,并且只在回答安全问题后才这样做。

另外,在CRM 4.0中几乎不可能使用任何类型的“脚本化”形式。我相信2011年略有改善,但我所看到的仍然没有令人鼓舞。在我们的联络中心使用CRM意味着投资一块第三方表单构建软件并创建可以从CRM启动并通过Web服务返回数据的定制表单(这些表现非常灵活)。我们只使用CRM界面查看历史请求 - 甚至大多数更新都会触发其中一个定制表单。

答案 1 :(得分:1)

我可以看到几个选项:

  1. 在权限模型中工作。这可行。默认情况下,您可以访问受限制,然后在帐户详细信息中输入另一个实体,运行插件并验证详细信息,然后将记录共享给当前用户。然而,我会关注取消分享是如何运作的。什么会引发它?是否会有一个仅在CRM之外运行并且定期取消共享记录的流程。如果那个过程失败怎么办?我们过去也遇到过这种类型的性能问题......每当个人记录的权限发生变化时,CRM似乎都会做很多工作。
  2. 按照您的建议重新分配所有者。多个用户是否需要查看相同的数据?是否需要为任何其他原因维护记录的所有者(例如,这是Joe的帐户,因为他是所有者)。
  3. 专门使用插件。您可以在记录的Retrieve和RetrieveMultiple上注册一个插件。此插件可以过滤掉您要从最终用户隐藏的所有详细信息。当用户需要查看其余数据时,他们会填写表单或对话框或其他数据。然后,此数据将包含在记录的Retrieve调用中。该插件检查隐藏数据,验证它是否存在并正确,然后将其剥离并让请求继续,只有这次它检索所有属性,并且表单按预期填充。

答案 2 :(得分:1)

如果我要实现这样的场景,我将创建一个链接到客户记录(new_customer)的客户访问记录(new_custaccess)。对于这个例子 - 保持简单 - 我将假设客户在银行员工(运营商)可以访问记录之前必须提供简单的访问代码。访问代码存储在字段new_custaccess中(new_secretcode)。

安全性是操作员没有new_customer的权限和对new_custaccess的读取/更新权限。

new_custaccess上有一个字段(new_secretcodeoperator),操作员可以更新。所有其他字段都被限制更新(并且,如果适用,读取)给操作员。

当客户致电并且运营商搜索相应的new_custaccess记录时。一旦他们找到记录,他们就会将客户提供的密码输入到new_secretcode字段中并进行保存。

在具有完全权限的用户的上下文中,在new_custaccess上执行预更新查询(在此处称为MASTER,以获得乐趣。)该插件检查所提供的代码是否与密码匹配。如果不是,则抛出错误,操作员可以重试。如果它与插件匹配,则从记录中剥离字段new_secretcodeoperator,以防止保存该值。它还将记录new_customer的相应权限分配给适当的运营商。

运营商现在可以访问客户记录(您必须决定是否级联权限或在每条记录上共享 - 该决定超出了此讨论范围。)

我们现在需要处理客户记录的撤销许可。我将通过拥有一个实体new_customeraccess来处理这个问题,该实体由前一个插件生成,只要访问被授予Customer记录。应该在Create of new_customeraccess上触发工作流程,导致new_customeraccess每20分钟更新一次(或者客户更喜欢的时间)。

在更新new_customeraccess时注册了一个插件,该插件会在修改工作流更新的字段时触发。此插件将根据业务决定的任何标准确定是继续共享还是撤销共享。

我还会从new_customer功能区创建一些基于javascript / html的弹出窗口,通过更新new_customeraccess上的字段来结束共享。通过字段级安全性为运营商提供有限的更新权限new_customeraccess。

如果不超出标准CRM定制模型,这应该可以实现您的目标。不完全确定你在定制上画线的位置,但这可能与你到达OOTB的距离很近。一些插件都是你需要的C#。唯一的JavaScript是可用性,而不是功能。

如果您有疑问,请告诉我。