我具有以下设置:
新的有角度的Web应用程序-在docker化并作为容器化Web应用程序部署在Azure中。 -启用了Azure AD身份验证。
新的Asp.net核心Web API-在docker化并作为容器化Web应用程序部署在Azure中。 -启用了Azure AD身份验证。
以上两个应用程序都位于容器中的桥接网络上。我正在使用Docker compose。
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);