mac*_*ie3 5 adfs fiddler azure adal uwp
我们正在使用使用 Azure Active Directory 身份验证的 Xamarin.Forms 开发跨平台移动应用程序。对于这种情况,我们使用Microsoft.IdentityModel.Clients.ActiveDirectory nuget。它适用于除此以外的任何情况:
UWP 用户在连接到托管 ADFS 的网络时尝试使用公司帐户登录 - 键入user@domain 后,adal 页面尝试重定向到组织登录页面并失败并显示消息 -我们无法连接到您的服务现在需要。检查您的网络连接或稍后再试。
当我们从 Visual Studio 运行应用程序时,问题不会出现。它仅在通过 .appx 安装应用程序时出现。
当用户连接到其他网络时,问题不会出现 - 我尝试在连接到我的 Android 手机上设置的热点时登录,我成功登录。
当用户连接到公司网络,但使用不在我们 ADFS 中的帐户登录时,问题不会出现。
我们用来登录的方法:
AuthenticationContext.AcquireTokenAsync(resource, clientId, RedirectUri, platformParameters)
我们将platformParameters 的参数useCorporateNetwork设置为 true,在项目属性 -> 包清单 -> 功能中,我们设置诸如专用网络(客户端和服务器)之类的标志
当尝试在不设置 RedirectUri 的情况下登录时,将出现公司登录页面,您将能够输入密码/登录名并对其进行验证,但这对我们来说没有用,因为我们需要将登录名重定向到我们的 API - 当像这样登录,您将遇到错误,指出指定的 redirectUri 不是为使用的 clientId 配置的。
我一直在尝试不同的方法,比如使用本机 WebAuthenticationCoreManager,但它不支持 RedirectUri(如果它支持并且可以工作,请写下如何操作!),为我们的应用程序和 AuthHost.exe 设置 Loopback Exempts(没有改变)。
我很高兴使用任何可行的方法,它可以是原生 UWP 方法,因为我们可以使用平台依赖项。
编辑
当我尝试通过 VPN 连接时,在登录时我收到消息 -我们现在无法连接到您需要的服务。检查您的网络连接或稍后再试。- 即使我从 Visual Studio 运行应用程序。
至于试图找到 Fiddler 问题的原因,我惊呆了——当我用 fiddler 监视 authhost.exe 进程时(我选择身份验证弹出窗口作为目标进程)——然后身份验证成功完成。我停止使用提琴手进行监控的那一刻 - 它再次失败。
小智 5
有趣的是,你让它与附加到 AuthHost 的 Fiddler 一起工作。在您的故障排除中,您是否尝试过以下选项?
在 AppPackage 清单中启用功能
添加环回豁免
CheckNetIsolation.exe LoopbackExempt -a -n=<YourPackageFamilyName>
CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.windows.authhost.a_8wekyb3d8bbwe
CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.windows.authhost.a.p_8wekyb3d8bbwe
CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.windows.authhost.sso_8wekyb3d8bbwe
CheckNetIsolation.exe LoopbackExempt -a -n=microsoft.windows.authhost.sso.p_8wekyb3d8bbwe
Run Code Online (Sandbox Code Playgroud)
为 AuthHost 启用专用网络
REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\authhost.exe" /v EnablePrivateNetwork /t REG_DWORD /d 1 /f
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |