Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have created a bdc model using .net custom connector which connects to the External system via a custom built webservice. It works when I open the external lists locally from the SharePoint server but I get the famous 'The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM'. error when I try to open the external list on a client computer.

Tried changing the clientauthenticationtype in the httpBinding to Windows or Ntlm and also manipulated the authentication providers of the webservices in IIS but that didn't work.

Hope someone can help me.

share|improve this question
add comment

1 Answer 1

How are you handling authentication? Is it done client side direct to source or are you relying on the server to impersonate?

If the latter you have the NTLM 'double-hop' issue. You may need to utilize Secure Store and map it to your data source so only a single authentication pass is happening. Or try and change the authentication scheme to handle Kerberos, claims, or cookie.

I'm not a Dev, so I don't have any samples for you.

share|improve this answer
    
Hi thank you for your reply I tried configuring Secure Store as explained in MSDN but 1. In SPD, when I open the Connection Properties, I can only specify the Secondary Secure Store Application ID. In the guide it says I should select Impersonate Windows Identity but I don't see this option. 2. After I saved the connection properties the list started working in the client. But after a couple of minutes - i get the same error again with HTTP request unauthorized... I do have a feeling it's a douple hop issue but I'm quite confused with the inconsistent behavior. Thanks for your help –  ladiebugged Feb 10 '13 at 12:00
    
Sounds like you are in a load balanced scenario and your session is being sent to different servers. It works initially against one server, however at some point that request is being serviced by another. At that point, it is trying to "impersonate" the credentials and you getting the error. Try and isolate the server you connect to, and ensure that server is the only server the will service the web request. If the issue goes away then you need to find a way to ensure service affinity when making these connections. –  Jesus Shelby Feb 11 '13 at 0:46
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.