我有一个自定义的UWP应用程序,该应用程序已在portal.azure.com中注册。该应用程序已配置为支持所有帐户类型(“任何组织目录中的帐户(任何Azure AD目录-Multitenant)和个人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();
然后,我试图像这样获取身份验证令牌:
authResult = await PublicClientApp.AcquireTokenInteractive(Scopes)
.ExecuteAsync()
.ConfigureAwait(false);
这将打开登录弹出窗口,用户可以在其中输入其电子邮件地址和密码。当我使用个人(xyz@outlook.com)帐户时,身份验证可以正常工作,但不适用于工作帐户。输入工作电子邮件并单击“下一步”后,该窗口将尝试重定向到组织登录页面。重定向过程已开始,但始终会因以下错误而结束:
“我们目前无法连接到您需要的服务。请检查您的网络连接或稍后再试”
我尝试将WithRedirecturi值“ urn:ietf:wg:oauth:2.0:oob”添加到PublicClientApplication创建中,但没有帮助。那是我在Azure Portal中配置的唯一重定向URI。
还有其他我不知道的设置吗?如何消除该错误并使工作帐户也正常工作?
编辑:我忘了提到它是一个桌面应用程序。