无法验证 AzureAD 本机客户端应用程序

dar*_*bid 3 azure-active-directory azure-ad-msal

我已经注册了一个 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);
    }
Run Code Online (Sandbox Code Playgroud)

         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();
Run Code Online (Sandbox Code Playgroud)

返回的错误是;

“AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret”。

例如,按照我在此处和 AzureAD 中的大多数地方阅读的内容,我已将默认类型更改为公共客户端。

我仍然遇到同样的错误。

我已启用日志记录,我认为我有下面的相关部分

信息:(错误)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient:0.0.0.0)从 /authorize 端点检索到授权代码。信息:(False) MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0 (UnknownClient: 0.0.0.0) 交换令牌的身份验证代码信息:(False) MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0 ( UnknownClient: 0.0.0.0) === InteractiveParameters Data === 提供的 LoginHint: False 用户提供的: False UseEmbeddedWebView: NotSpecified ExtraScopesToConsent: 提示: select_account HasCustomWebUi: False

信息:(False)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient:0.0.0.0)响应状态代码不指示成功:401(未经授权)。警告:(错误)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient:0.0.0.0)请求重试失败。信息:(假)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient:0.0.0.0)HttpStatusCode:401:未经授权错误:(真)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient) : 0.0.0.0) MSAL.Desktop.4.13.0.0.MsalServiceException: ErrorCode: invalid_client Microsoft.Identity.Client.MsalServiceException: 配置问题正在阻止身份验证 - 检查来自服务器的错误消息以了解详细信息。您可以在应用程序注册门户。有关详细信息,请参阅https://aka.ms/msal-net-invalid-client。原始异常:AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret”。

我似乎获得了授权码,但未能获得令牌。错误为 401(未经授权)。

有人可以帮我理解这一点吗?

Ton*_* Ju 5

有两个步骤可以解决此问题。

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

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

在此输入图像描述