Search code examples
authenticationasp.net-corebiztalkasp.net-core-webapibiztalk-2013

BizTalk is not submitting required credentials to ASP.Net Core Web.API service


We are trying to use Biztalk as a client to a Web.API service which is written using ASP.net Core w/ .Net Framework 4.6.2. The service uses Windows Authentication and does not allow anonymous access. At this point we are unable to send the Windows Credentials with our request from Biztalk. We are able to get the Windows credentials when addressing another test service written without .Net Core. It uses .Net Framework 4.5.2. We've thought that we could write a kind of adapter service, something that would forward the needed credentials on behalf of the Biztalk server, but that seems kludgey. The Biztalk developer tells me he is using a WCF-WebHttp adapter.

WCF-WebHttp Transport Properties:

HTTP Method and URL Mapping
    <BtsHttpUrlMapping>
    <Operation   Method="POST" Url=""  />
    EndPoint Identity (Default settings)
    Binding Tab settings (Default settings )
    Security Mode:  TransportCredentialOnly
    Transport client credential type: Windows
    Behavior Tab (Default Settings)
    Proxy:  Use Send handler proxy settings
    Outbound HTTP Headers:  Content-Type: application/json
    Outbound Message: GET

Send Pipeline: XmlToJSONSendPipeline
    RemoveOuterEnvelope: True
Receive Pipeline: JSONToXmlReceivePipeline
    RootNode: Response
    Allow UnrecognizedMessage: False
    REcoveraleInterchangeProcessing: False
    ValidateDocument: False

Solution

  • In WCF-WebHttp Behavior->EndpointBehavior add clientCredentials->Windows->allowedImpersonationLevel change Identity to Impersonation

    Here is a reference link: Using IIS Authentication with ASP.NET Impersonation