【问题标题】:Consuming web service from BizTalk with authentication credentials使用身份验证凭据从 BizTalk 使用 Web 服务
【发布时间】:2010-11-01 11:27:17
【问题描述】:

我正在尝试通过在 SOAP 适配器端口中提供凭据来使用 BizTalk 的 Web 服务。

我输入 Web 服务 URL,然后我可以选择匿名、基本、摘要和 NTLM 身份验证类型。

如何提供我的用户名、密码和域?.. 使用soapUI 进行测试时,它可以完美运行。

我提供凭据的唯一方法是基本或摘要,但无论我填写什么,我都会收到“未授权”错误。

奇怪的是,当我选择 NTLM 身份验证类型时它实际上可以工作,但是当我没有提供凭据时它是如何获得访问权限的。而且我的服务器无法直接访问该服务?

【问题讨论】:

  • 它是内部网络服务吗? Web 服务可能在 NTLM 下工作,因为 BizTalk 帐户有权访问该 Web 服务。
  • 服务不是内部的,它在一个完全不同的网络上。服务供应商以域、用户名和密码的形式向我提供了一个 AD 用户。只有提供了这些凭据,才能调用 WSDL 及其提供的服务。

标签: web-services authentication biztalk


【解决方案1】:

您的问题缺少一些细节- Web 服务如何保护? 当你说它使用soapUI工作时 - 究竟如何?您是否检查过凭据是如何提供给服务的?可能是soapUI 是在具有相关服务权限的用户下运行的,这就是它工作的原因(类似于在NTLM 身份验证下工作的BizTalk 调用?)

您无疑知道,要使用 Basic 或 Digest,您只需在发送端口中提供正确的凭据,并且假设它们是正确的,并且 Web 服务配置正确,事情应该会很好地工作。

为了仔细测试这一点,我首先要确保您在无权调用服务的用户下运行任何客户端(soapUI 或自定义测试代码)(假设不是这种情况),确保您知道凭据,并使用正确的凭据从另一个客户端成功调用了服务(例如,如果您提供错误的密码,也证明它会失败),然后在发送端口中使用相同的用户名/密码组合。

顺便说一句 - 检查代理设置也很有用;如果拒绝请求的是代理而不是服务,那么事情可能会变得非常混乱,因为它在我身上发生过几次。

在所有情况下,Fiddler 的 HttpAnalyzer 对于了解网络上的流量后发生的情况都非常有用

【讨论】:

  • 查看 WSDL 或调用其服务时,我需要以域、用户名和密码的形式提供 AD 用户凭据。当我对服务进行测试调用并且工作正常时,soapUI 让我可以轻松地提供这些,但当然只有在提供它们时。在 SOAP 适配器的 BizTalk 中,我提供 WSDL URL,当使用 Basic 或 Digest 时,我的 AD 用户凭据不起作用。但在 NTLM 模式下,我奇怪地工作。这是因为我在将 Web 引用添加到我的 BizTalk 解决方案时提供的吗?
  • 不完全是,当使用 NTLM 模式时,使用发送主机运行的凭据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 2018-05-12
  • 2011-01-14
  • 2015-12-15
  • 1970-01-01
相关资源
最近更新 更多