我尝试使用active-directory-dotnet-native-uwp-v2示例制作一个非常简单的应用程序。
使用我的MSA帐户,它可以正常运行,但是使用我的公司帐户,它无法按预期运行(我使用 @ microsoft.com 帐户)
此帐户是Office 365帐户,实际上它在Graph Explorer中工作得非常好。
问题在于,有时它会起作用......
我在https://apps.dev.microsoft.com中声明的清单文件已正确配置,其中包含原生平台选项,并且“只是”"User.Read"
范围自动化
代码非常简单,以下是示例摘录:
AuthenticationResult authResult = null;
try
{
authResult = await App.PublicClientApp.AcquireTokenSilentAsync(scopes, App.PublicClientApp.Users.FirstOrDefault());
}
catch (MsalUiRequiredException ex)
{
// A MsalUiRequiredException happened on AcquireTokenSilentAsync. This indicates you need to call AcquireTokenAsync to acquire a token
System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");
try
{
authResult = await App.PublicClientApp.AcquireTokenAsync(scopes);
}
catch (MsalException msalex)
{
ResultText.Text = $"Error Acquiring Token:{System.Environment.NewLine}{msalex}";
}
}
catch (Exception ex)
{
ResultText.Text = $"Error Acquiring Token Silently:{System.Environment.NewLine}{ex}";
return;
}
启动后,我可以设置我的帐户,但重定向已被破坏。
从我所看到的,我有一个 Msal Exception :
authentication_ui_failed
如果我更深入地检查调用堆栈,我发现的唯一内容是:
active_directory_dotnet_native_uwp_v2.MainPage.<CallGraphButton_Click>d__3.MoveNext()
有什么想法吗?
答案 0 :(得分:1)
您提到了如何解决此问题,因此我将添加一些其他上下文:通常,您不需要将 privateNetworkClientServer 添加到UWP应用程序,仅针对AD IF进行身份验证您只需要在公司场所之外(或在某些情况下VPN环境)访问您的应用程序。
但是,在某些情况下 - 如果您的设备实际连接到公司网络,那么Windows将尝试使用集成身份验证等功能来帮助以较少的工作量登录用户。在这种情况下,建议将此声明为功能,以便您的应用可以在任何地方运行。