CRM Online 2015身份验证原始肥皂

时间:2016-03-09 15:17:47

标签: authentication soap dynamics-crm adfs dynamics-crm-online

嗨,谢谢你抽出时间来看看,

我最近被要求使用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请求需要进行相对较小的更改,但我已经达到了需要一些新鲜眼睛的程度/建议。

有没有人有过这种设置的经验?任何人都能轻轻地把我推向正确的方向吗?

非常感谢

加雷

2 个答案:

答案 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的情况下显然是'你不能'。

此致

加雷