biztalkbiztalk-2020http-negotiate

BizTalk 2020 - HTTP request unauthorized with client authentication scheme 'Negotiate'. The authentication header received/server was 'Negotiate'


We have an orchestration using a SendPort to call an in-house webservice that is not on the same machine as BizTalk. The exact same application runs fine on BizTalk 2016, but fails on BizTalk 2020.

Error Description: System.Net.WebException: The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate'.

I read related question on StackOverflow: "The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate'"

We have a WCF Behavior called bizTalkAddHttpheaders. All code was recompiled with .NET 4.7.2 for BizTalk 2020. We have tried with and without a WCF Behavior that handles TLS 1.2.


Solution

  • It turns out that the username of the host instance was just not set up for that application.

    I had actually got mixed up which SendPort it was, as this particular application called two totally different in-house web services. Once I saw that it was the other Send Port, I put it under an Application Host that has the older userid, and it worked.

    While installing BizTalk 2020 on our development, we changed the userid of our Host Instances to be inline with what the naming conventions used in QA and PROD. So we have had to create numerous help desk tickets to get the proper security.

    I don't know why the error couldn't just say "Username=xxxxxx is not authorized", it would have been much simpler to identify.