Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CRM 2011,对外部WCF服务的表单javascript请求进行身份验证_Javascript_Dynamics Crm 2011_Wcf Security - Fatal编程技术网

CRM 2011,对外部WCF服务的表单javascript请求进行身份验证

CRM 2011,对外部WCF服务的表单javascript请求进行身份验证,javascript,dynamics-crm-2011,wcf-security,Javascript,Dynamics Crm 2011,Wcf Security,我们有一个MS CRM 2011的内部部署,一些表单运行自定义javascript来预先填充某些字段。数据来自我们开发的WCF RESTful web服务,该服务与CRM运行在同一物理服务器上。该服务作为CRM网站中的应用程序托管在IIS中,以避免跨域脚本问题。Javascript发出ajax请求(使用jQuery),返回JSON格式的回复,并填充字段 到目前为止一切正常,但我现在开始考虑安全性和身份验证。具体来说,我希望我们的web服务只回复有效的CRM用户,因为有些数据可能是敏感的。不需要进

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

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


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

Egor,我认为你的方向是正确的。您可以执行自定义windows身份验证,或者解决此问题的其他简单方法是将当前用户的用户id(guid)发送到自定义应用程序,并让webservice查询CRM以获得正确的访问权限


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

但是,对于非CRM用户来说,通过发送某人的访问级别或GUID来欺骗对我的服务的请求不是很简单吗?我认为IWA会起作用,因为我强制用户向该服务提交域名/通行证以进行广告认证,而该服务使用相同的凭据来检查CRM。否则,我如何才能确定用户是他声称的那个人?好吧,我不能相信用户会向我发送他的CRM访问级别。我怎么知道这是真的?只有少数域用户也是CRM用户,因此仅域身份验证不足以确认访问。任何域用户都可以声称有权访问CRM。如果有一种方法可以安全地做到这一点,那当然很好。我宁愿避免每次有人请求数据时都打一个额外的CRM电话。