从容器化的应用程序访问Windows Server上的本地Web API

时间:2019-05-29 14:31:22

标签: windows docker asp.net-core azure-active-directory windows-authentication

我具有以下设置:

  1. 新的有角度的Web应用程序-在docker化并作为容器化Web应用程序部署在Azure中。 -启用了Azure AD身份验证。

  2. 新的Asp.net核心Web API-在docker化并作为容器化Web应用程序部署在Azure中。 -启用了Azure AD身份验证。

以上两个应用程序都位于容器中的桥接网络上。我正在使用Docker compose。

  1. 通过Windows身份验证在Windows服务器计算机上的IIS中部署的旧式本地Web API

Windows AD和Azure AD已集成。

问题:

我想从容器化的Web API调用本地API。 当我使用用于API的cli和vs代码运行新应用程序时,我可以使用Windows Auth连接到旧版IIS API-它可能正在使用我的登录凭据(默认)。

但是,当我在PC上的本地docker容器上运行新应用程序时,IIS旧版API不会对我的请求进行身份验证,并返回错误:

“此平台上的默认凭据无法进行NTLM身份验证”

我能够在MVC ControllerBase的User属性(ClaimsPrincipal用户)中获取用户详细信息 我需要以某种方式在请求的标题中发送此信息,以便可以将用户映射到Windows AD。

这是我的要求:

        using (HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
        {              
            client.BaseAddress = new Uri(_legacyOnPremAppUrlBase); 
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //ACCEPT header

            var url = "/controllerPath";
            HttpResponseMessage response = client.GetAsync(url);

0 个答案:

没有答案