c# - 使用 PublicClientApplication 获取身份验证 token 时无法使用公司帐户登录

标签 c# azure uwp azure-ad-msal

我有一个自定义 UWP 应用程序,已在 Portal.azure.com 中注册。该应用已配置为支持所有帐户类型(“任何组织目录中的帐户(任何 Azure AD 目录 - Multi-Tenancy )和个人 Microsoft 帐户(例如 Skype、Xbox)”)。

在我的应用程序中,我创建了一个 IPublicClientApplication,如下所示:

PublicClientApp = PublicClientApplicationBuilder.Create(appId)
                    .WithAuthority(AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount)
                    .WithLogging((level, message, containsPii) =>
                    {
                        ConfigurationHandler.Log.Info($"MSAL: {level} {message} ");
                    }, LogLevel.Warning, enablePiiLogging: false, enableDefaultPlatformLogging: true)
                    .WithUseCorporateNetwork(true)
                    .Build();

稍后我尝试获取身份验证 token ,如下所示:

authResult = await PublicClientApp.AcquireTokenInteractive(Scopes)
                                                  .ExecuteAsync()
                                                  .ConfigureAwait(false);

这将打开登录弹出窗口,用户可以在其中输入他们的电子邮件地址和密码。当我使用个人 ( [email protected] ) 帐户时,身份验证可以正常工作,但不适用于工作帐户。输入工作电子邮件并单击“下一步”后,该窗口尝试重定向到组织登录页面。重定向过程开始但总是以以下错误结束:

"We can't connect to the service you need right now. Check your network connection or try this again later"

我尝试将值为“urn:ietf:wg:oauth:2.0:oob”的 WithRedirectUri 添加到 PublicClientApplication 创建中,但没有帮助。这是我在 Azure 门户中配置的唯一重定向 URI。

还有其他我不知道的设置吗?我怎样才能摆脱这个错误并使工作帐户也正常工作?

编辑:我忘了提及它是一个桌面应用程序。

最佳答案

我无法在我这边重现您的问题。我的步骤好像和你的一样,不管怎样,这是截图供你引用。另外,这里有一个完整的guide .

enter image description here

顺便说一句,如果您想在联合域上集成身份验证,则需要启用其他功能。

1.打开Package.appxmanifest

2.选择功能并启用以下设置:

  • 企业身份验证

  • 专用网络(客户端和服务器)

  • 共享用户证书

enter image description here

关于c# - 使用 PublicClientApplication 获取身份验证 token 时无法使用公司帐户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58729843/

相关文章:

user-interface - uwp 命令栏总是显示标签

c# - 以相同方式设置 StackPanel 中所有按钮的样式 (UWP)

c# - 具有私有(private) setter 的 UWP DependencyProperty

c# - 在不将整个表加载到内存的情况下检查哪些消息已经存在

c# - specflow 中未命中断点

c# - 将 PDF 文档附加到电子邮件 C# Windows 应用程序 - 电子邮件不发送

ruby-on-rails - 载波/雾 azure : azure is not a recognized provider (ArgumentError)

oracle - 无法从 Azure VM 外部访问 Oracle Enterprise Manager

c# - 将值复制到安全上下文中特定偏移量的字节数组中

java - Spring boot + Hibernate + SqlAzure 分页问题