使用SoapUI和Windows身份验证测试Web服务

时间:2009-05-27 09:54:29

标签: web-services testing soap user-interface soapui

是否可以包含Windows域凭据以使用SOAP UI测试我的Web服务?

我找到了一个属性页面,但IIS只回复了“错误的凭据”。

5 个答案:

答案 0 :(得分:58)

SoapUI似乎不能直接使用NTLM身份验证,但您可以使用Burp Suite等代理为您执行身份验证。

  1. http://portswigger.net/burp/下载Burp Suite并启动它。
  2. 在Burp的“Proxy:Intercept”选项卡上,单击按钮以关闭拦截。
  3. 在Burp的“代理:选项”选项卡上,确保将其设置为未使用的端口,默认为8081
  4. 在Burp的“选项”标签上,勾选“执行www身份验证”并为您要点击的服务器添加设置。同时勾选“提示身份验证失败的凭据”
  5. 切换到Burp的“代理:历史记录”标签,以便您可以查看请求。
  6. 在SoapUI中,选择文件>首选项,然后选择“代理设置”。输入主机“localhost”和端口“8081”。
  7. 正常使用SoapUI。它将通过Burp Proxy发送请求,Burp Proxy将为您执行NTLM身份验证。

答案 1 :(得分:12)

soapUI 4.5刚刚添加了对NTLMv2的支持,无需使用Burp Suite。

答案 2 :(得分:6)

接受的解决方案适用于大多数情况。但是,如果服务使用委派来访问其他服务器上的资源,则会遇到Burp代理使用的NTLM身份验证的双跃点问题。代理将成功对服务进行身份验证,但服务使用委派对其他资源进行的后续调用将失败。

本文详细介绍了该问题:

http://blogs.msdn.com/b/besidethepoint/archive/2010/05/09/double-hop-authentication-why-ntlm-fails-and-kerberos-works.aspx

我发现最简单的解决方法是使用Fiddler作为代理。在Fiddler的规则菜单上,选择“自动验证”。然后更新您的SoapUI首选项以使用fiddler作为代理(默认位置是localhost:8888)。现在,您的呼叫将包含在可以委派的凭证中。

如果您使用LoadUI执行SoapUI测试用例,SoapUI测试运行器将使用您的SoapUI代理设置,您的调用将继续有效。

答案 3 :(得分:1)

我认为SoapUI可能只支持WSDL的NT身份验证。

您可以在此处查看有关如何实施的详细信息:

(顺便说一句,this google search doesn't look promising for you!)

答案 4 :(得分:1)

当前版本SoapUI 4.5.1不适用于Windows身份验证,但每晚构建版本再次运行良好。

Download nightly build version