C# 身份验证在公司网络内不起作用

C# 身份验证在公司网络内不起作用,c#,azure,xamarin,xamarin.forms,adal,C#,Azure,Xamarin,Xamarin.forms,Adal,对于一家公司来说,我们正在使用Xamarin与ADAL.NET相结合来访问连接到Azure Active Directory的web api。当用户登录时,它工作正常。然而,当我们在公司的网络中时,当我们被重定向到相应的ADFS服务器时,我们会得到404响应 经过一些研究,我们知道该公司使用两个不同的服务器登录。一个用于处理内部请求,另一个用于处理网络外的流量 因此,我们使用模拟器来测试应用程序。我们将hosts文件更改为重定向到使登录正常工作的外部服务器。(我们将adfs.*****.nl重定

对于一家公司来说,我们正在使用
Xamarin
ADAL.NET
相结合来访问连接到
Azure Active Directory
的web api。当用户登录时,它工作正常。然而,当我们在公司的网络中时,当我们被重定向到相应的
ADFS
服务器时,我们会得到
404
响应

经过一些研究,我们知道该公司使用两个不同的服务器登录。一个用于处理内部请求,另一个用于处理网络外的流量

因此,我们使用模拟器来测试应用程序。我们将
hosts
文件更改为重定向到使登录正常工作的外部服务器。(我们将
adfs.*****.nl
重定向到外部服务器的
IP

现在的问题是,如何在我们的应用程序中解决这个问题?该公司不想更改重定向,因为它将破坏更多的应用程序,如Sharepoint和其他应用程序

我读到一些关于这方面的东西:

但这只适用于
Windows

以下是我们如何处理当前请求:

public static async Task<string> Login()
{
    AuthenticationContext authContext = new AuthenticationContext(_authority);
    authContext.TokenCache.Clear();
    return (await authContext.AcquireTokenAsync(_resourceId, _clientId, _redirect, PlatformParameters)).AccessToken;
}
公共静态异步任务登录()
{
AuthenticationContext authContext=新的AuthenticationContext(\u权限);
authContext.TokenCache.Clear();
返回(等待authContext.AcquireTokenAsync(_resourceId,_clientId,_redirect,PlatformParameters)).AccessToken;
}

它不需要打开端口就可以与azure ADI对话吗?我知道你说过,当前infra没有任何更改。然而,我的猜测是,如果你能得到一个DNS记录,在外部查询时可以解析外部ADF,在内部查询时可以解析内部ADF,那么就可以解决你的问题。也就是说,假设ADFS服务器的设置使这成为可能。另一种选择是使用其他东西进行身份验证,比如ws-fed,并明确告诉它使用外部ADFS服务器。Azure AD的问题在于它只知道外部ADF,如果它不可用,则身份验证失败。Ws-Fed会绕过Azure广告,我打赌你不会want@kim这正是现在发生的事情。那个DNS记录已经存在了。@GiovanniTerlingen我想的是这里解释的,它被称为“分裂大脑”DNS部署。这样,内部用户获得内部服务器的IP,外部用户获得其他ADF的外部IP。这就是它目前的配置方式吗?是的,正是现在发生的情况,导致了问题。