【问题标题】:CRM 2011, authenticating form javascript requests to an external WCF serviceCRM 2011,对外部 WCF 服务的表单 javascript 请求进行身份验证
【发布时间】:2013-06-17 13:50:46
【问题描述】:

我们有一个 MS CRM 2011 的内部部署,并且一些表单运行自定义 javascript 来预填充某些字段。数据来自我们开发的 WCF RESTful Web 服务,该服务在与 CRM 相同的物理服务器上运行。该服务作为 CRM 网站中的应用程序托管在 IIS 中,以避免跨域脚本问题。 Javascript 发出一个 ajax 请求(使用 jQuery),返回一个 JSON 格式的回复,并填充字段。

到目前为止一切正常,但我现在开始考虑安全性和身份验证。具体来说,我希望我们的网络服务只回复有效的 CRM 用户,因为某些数据可能是敏感的。不需要单独的身份验证,所有 CRM 用户都将拥有对该 Web 服务的相同级别的访问权限,因此某种单一的服务帐户就可以工作。

到目前为止,我正在考虑进行 Windows 身份验证,使用自定义 Web 服务查询 CRM 以查看(已通过域身份验证的)用户在满足请求之前是否存在于 CRM 中。我在安全方面的经验很少,所以即使是一般性的提示也会受到欢迎。

【问题讨论】:

    标签: javascript dynamics-crm-2011 wcf-security


    【解决方案1】:

    叶戈尔,我认为你的方向是正确的。您可以进行自定义 Windows 身份验证,也可以使用其他简单的方法来解决此问题,即发送当前用户的用户 ID (guid) 到自定义应用程序,并让 Web 服务查询 CRM 以获得正确的访问权限。

    由于您已经提到所有用户具有相同的访问级别,您可以将用户的访问级别发送到 Web 服务以确定返回什么。

    【讨论】:

    • 但是对于非 CRM 用户来说,通过发送某人的访问级别或 GUID 来欺骗对我的服务的请求不是很简单吗?我认为 IWA 会起作用,因为我强制用户向服务提交域名/通行证以进行 AD 身份验证,并且该服务使用相同的凭据来检查 CRM。否则,我怎么能确定用户就是他声称的那个人?
    • 好吧,我不能相信用户会向我发送他的 CRM 访问级别。我怎么知道这是真的?只有少数域用户同时也是 CRM 用户,因此仅域身份验证不足以确认访问。任何域用户都可以声称有权访问 CRM。如果有办法安全地做到这一点,那肯定会很好。每次有人请求数据时,我宁愿避免额外的 CRM 呼叫。
    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 2011-08-29
    • 2012-07-28
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2020-01-29
    相关资源
    最近更新 更多