我知道有很多关于尝试连接到Dynamics CRM的帖子,但我还没有找到确定的答案。所以这里:
环境:
虽然很老,但我认为this is the most helpful blogpost可以找到有关连接到内部部署CRM的信息。但是,它假定我可以与一个ADFS服务器通信,以获取基于用户名/密码组合的安全令牌。目前我们这里没有ADFS服务器。
我的问题是,我可以使用不同的方式对CRM SOAP服务进行身份验证吗?或者我是否必须有ADFS服务器?
答案 0 :(得分:0)
如果没有ADFS,唯一的其他选项是Active Directory身份验证通常设置为在Web服务器上使用NTLM(请参阅此处的方案:http://www.innovation.ch/personal/ronald/ntlm.html)。通常,NTLM通过代理(例如CURL或.NET)在HTTP库中处理。对于Java,您应该能够在HttpClient(https://hc.apache.org/httpcomponents-client-ga/ntlm.html)中使用NTLM支持。 NTLM在上面的方案链接中描述的来回非常繁琐。但只要您的HTTP库支持它,从使用的角度来看,它应该对您有点无缝。
下面是使用curl + NTLM和PHP调用OrganizationData.svc的示例。 SOAP Organization.svc的过程相同。您只需要包含SOAP正文和<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<img src="http://www.whatever9495.com/template/damei_d21/image/logo.png" data-video="https://drive.google.com/file/d/0Bwbk-P9knHkGa21vSzYzMFl6YXM/preview">
<script>
$('img').click(function() {
video = '<iframe src="' + $(this).attr('data-video') + '" width="715" height="480" frameborder="0" allowfullscreen=""></iframe>';
$(this).replaceWith(video);
});
</script>
</body>
</html>
标题,例如SOAPAction
。
http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute
以下是针对java的NTLM库的几个选项: