Azure active directory 无法对AzureAD本机客户端应用程序进行身份验证

Azure active directory 无法对AzureAD本机客户端应用程序进行身份验证,azure-active-directory,msal,Azure Active Directory,Msal,我已经注册了一个AzureAD应用程序,它是一个公共客户端/本机客户端 我正在门户中使用Azure生成的标准代码 重要的是 static App() { _clientApp = PublicClientApplicationBuilder.Create(ClientId) .WithLogging((level, message, containsPii) => { Syste

我已经注册了一个AzureAD应用程序,它是一个公共客户端/本机客户端

我正在门户中使用Azure生成的标准代码

重要的是

    static App()
    {
        _clientApp = PublicClientApplicationBuilder.Create(ClientId)
            .WithLogging((level, message, containsPii) =>
            {
                System.Diagnostics.Debug.WriteLine("*************************");
                System.Diagnostics.Debug.WriteLine($"{level}: {message}");
            }, LogLevel.Verbose, true, true)
            .WithAuthority($"{Instance}{Tenant}")
            .WithRedirectUri(RedirectURI)
            .Build();
        TokenCacheHelper.EnableSerialization(_clientApp.UserTokenCache);
    }

返回的错误为

“AADSTS7000218:请求正文必须包含以下参数: “客户端断言”或“客户端机密”

按照AzureAD中的操作,我将默认类型更改为Public client

我仍然得到同样的错误

我已经启用了日志记录,我想我有下面的相关部分

信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)从/authorize端点检索到授权代码。 信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)将身份验证代码交换为令牌 信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)==交互式参数数据=== 提供的登录提示:False 用户提供:False UseEmbeddedWebView:未指定 外部同意: 提示:选择您的帐户 HasCustomWebUi:False

信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)响应状态代码不表示成功:401(未经授权)。 警告:(False)MSAL 4.13.0.0 MSAL。桌面Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)请求重试失败。 信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)HttpStatusCode:401:未经授权 错误:(True)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(未知客户端:0.0.0.0)MSAL.Desktop.4.13.0.0.MsalServiceException: 错误代码:无效的\u客户端 Microsoft.Identity.Client.MsalServiceException:配置问题正在阻止身份验证-有关详细信息,请检查来自服务器的错误消息。您可以在应用程序注册门户中修改配置。有关详细信息,请参阅。原始异常:AADSS7000218:请求正文必须包含以下参数:“客户端”“客户机密”或“客户机密”

似乎我正在获取授权代码,但未能获取令牌。错误为401(未经授权)


有人能帮我理解一下吗?

解决这个问题有两个步骤

1.将默认客户端类型更改为公共客户端

2.添加移动和桌面应用程序平台


还没有。我没有管理AzureAD,因此必须等待管理员回复我。我正在回复此问题。我仍然收到相同的错误消息。我真的不知道该怎么办。我不这么认为。如果您已经添加了移动和桌面应用程序平台,将会有一些延迟(几分钟)。如果您仍有web平台,则可以删除该平台,然后重试。
         authResult = await app.AcquireTokenInteractive(scopes)
                    .WithAccount(accounts.FirstOrDefault())
                    .WithParentActivityOrWindow(new WindowInteropHelper(this).Handle) // optional, used to center the browser on the window
                    .WithPrompt(Prompt.SelectAccount)
                    .ExecuteAsync();