C# msal集成windows身份验证&x2B;用于设备身份验证的条件接收策略

C# msal集成windows身份验证&x2B;用于设备身份验证的条件接收策略,c#,msal,C#,Msal,我们有一个.Net 4.6 framework应用程序,其中我们尝试使用Microsoft.Identity.Client库(版本4.22.0.0)对用户进行身份验证 当我们尝试使用集成windows auth获取令牌时,会收到一个异常 Microsoft.Identity.Client.MsalUiRequiredException:“AADSTS50097:需要设备身份验证 当我们捕获此异常并尝试获取令牌交互时,此操作成功,我们获得令牌。 下面是代码(为简洁起见省略了作用域,但在两种情况下都

我们有一个.Net 4.6 framework应用程序,其中我们尝试使用Microsoft.Identity.Client库(版本4.22.0.0)对用户进行身份验证

当我们尝试使用集成windows auth获取令牌时,会收到一个异常 Microsoft.Identity.Client.MsalUiRequiredException:“AADSTS50097:需要设备身份验证

当我们捕获此异常并尝试获取令牌交互时,此操作成功,我们获得令牌。 下面是代码(为简洁起见省略了作用域,但在两种情况下都是相同的)

我们在AD中设置了条件接收策略,我们要求用户在经过身份验证的设备上

当我们检查AD日志时,我们看到设备信息没有与第一次调用(集成Windows身份验证调用)一起发送,因此AD拒绝身份验证,因为它无法验证设备

对于第二次呼叫,即交互式呼叫,将发送设备信息,以便AD可以批准此呼叫

这是库的已知限制,还是有办法使集成的windows auth调用在此设置中工作

            string authority = "https://login.microsoftonline.com/" + applicationConfig.TenantID + "/v2.0";
            Application.PublicClient = PublicClientApplicationBuilder.Create(applicationConfig.ClientID)
                .WithAuthority(authority)
                .WithDefaultRedirectUri()
                .Build();

            try
            {
                Application.AuthenticationResult = await Application.PublicClient.AcquireTokenByIntegratedWindowsAuth(scopes).ExecuteAsync();
            }
            catch (MsalUiRequiredException)
            {
                Application.AuthenticationResult = await Application.PublicClient.AcquireTokenInteractive(apiScope).WithExtraScopesToConsent(clientScopes).ExecuteAsync();
            }