views:

611

answers:

1

I am trying to consume a web service from BizTalk by supplying credentials in the SOAP adapter port.

I type in the Web Service URL and then I have the choice of Anonymous, Basic, Digest and NTLM authentication types.

How do I supply my username, password and domain?.. when testing with soapUI it works perfectly.

The only way I get to supply credentials is Basic or Digest but no matter what I fill in I get a "not authroized" error.

The strange thing is that it actually works when I choose the NTLM authentication type but how does it get acces when I have not supplied the credentials. And there is no way that my server has direct access to the service?

+1  A: 

There are details lacking from your question - How is the web service secured? When you say it works using soapUI - how exactly? have you checked how the credentials were supplied to the service? could it be that the soapUI was running under a user with permissions for the service in question, and that this is why it works (similar to a BizTalk call working under NTLM authentication?)

As you're undoubtedly aware, to use Basic or Digest you simply have to provide the correct credentials in the send port and, assuming they are correct, and the web service is configured correctly, things should work nicely.

To test this carefully I would first make sure you are running whatever client (soapUI or custom test code) under a user that has no permissions to call service (assuming that is not the case already), make sure you know the credentials, and have succesfully called the service, with the right credentials, from another client (also prove that it fails if you provide the wrong password, for example), then use the same username/password combination in the send port.

by the way - it will also be useful to check the proxy settings; things can get quite confusing if it is the proxy that is rejecting the request and not the service as it happened to me on a few occasions.

in all cases HttpAnalyzer of Fiddler can be very useful in understanding what is happening following the traffic on the wire

Yossi Dahan
When viewing the WSDL or calling its services I need to supply AD user credentials in the form of domain, username and password. soapUI lets me easily provide these when I make test calls to the service and I works fine, but only when they are supplied of course.In BizTalk in the SOAP adapter I provide WSDL URL and when using Basic or Digest my AD user credentials wont work. But in NTLM mode i oddly does work. Is this because I supplied then when I added the web reference to my BizTalk solution?
lox
Not quite, when using NTLM mode the credentials the send host runs under are used
Yossi Dahan