嗨,谢谢你抽出时间来看看,
我最近被要求使用CRM Online 2015调查集成,我遇到了一些尝试使用Raw SOAP请求进行身份验证的问题。
虽然我知道还有其他方法可以进行身份验证,主要是使用CRM SDK,但我的意思是推动我找到使用Raw SOAP的解决方案。
我遇到了Jason Lattimer撰写的非常有用的博客:http://jlattimer.blogspot.co.uk/2015/02/soap-only-authentication-using-c.html
在此示例之后,我使用RAW SOAP成功通过试用CRM帐户进行了身份验证...很棒...完成...我错了。
当我在CRM开发环境中指出这个示例时,我收到了一个SOAP错误:
<?xml version="1.0" encoding="utf-8" ?>
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:psf="http://schemas.microsoft.com/Passport/SoapServices/SOAPFault">
<S:Body>
<S:Fault>
<S:Code>
<S:Value>S:Sender</S:Value>
<S:Subcode>
<S:Value>wst:FailedAuthentication</S:Value>
</S:Subcode>
</S:Code>
<S:Reason>
<S:Text xml:lang="en-US">Authentication Failure</S:Text>
</S:Reason>
<S:Detail>
<psf:error>
<psf:value>0x80048821</psf:value>
<psf:internalerror>
<psf:code>0x80047860</psf:code>
<psf:text>Direct login to WLID is not allowed for this federated namespace</psf:text>
</psf:internalerror>
</psf:error>
</S:Detail>
</S:Fault>
</S:Body>
</S:Envelope>
我能想到的试用版与开发环境之间的唯一区别是开发环境设置使用ADFS / AD On-Premises。
Fiddler日志显示Jason的样本直接登录login.microsoftonline.com而CRM SDK(可以使用)转到dynamicscrmemea.accesscontrol.windows.net。
所以我相信这是问题所在!
我已经围绕堆栈溢出/其他来源进行了讨论,我觉得SOAP请求需要进行相对较小的更改,但我已经达到了需要一些新鲜眼睛的程度/建议。
有没有人有过这种设置的经验?任何人都能轻轻地把我推向正确的方向吗?
非常感谢
加雷
答案 0 :(得分:0)
我们遇到了类似的问题,尝试创建BizTalk集成。最终,我们通过使用Windows Live / Office 365帐户实际连接而不是针对实际AD进行身份验证的帐户来解决此问题。 CRM由用户而不是组织确定身份验证类型,因此您可以混合和匹配...
答案 1 :(得分:0)
非常感谢您的回复。我与Ops团队进行了这次讨论,理想情况下他们希望通过AD管理所有用户。
作为后续文章,本文似乎总结了这个问题: Web Service Authentication to Online Federated Dynamics CRM 2013 from Java
在没有使用SDK的情况下显然是'你不能'。
此致
加雷