【问题标题】:Cannot Authenticate AzureAD native client application无法验证 AzureAD 本机客户端应用程序
【发布时间】:2020-05-19 10:29:21
【问题描述】:

我已经注册了一个 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);
    }

         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();

返回的错误是;

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

按照 AzureAD 中的 I for example read here and in most places,我已将默认类型更改为公共客户端。

我仍然遇到同样的错误。

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

信息:(错误)MSAL 4.13.0.0 MSAL.Desktop Microsoft Windows NT 6.2.9200.0(UnknownClient:0.0.0.0)从 /authorize 端点检索到授权代码。 信息:(错误)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)=== InteractiveParameters Data === 提供的登录提示:假 用户提供:假 UseEmbeddedWebView:未指定 ExtraScopesToConsent: 提示:select_account HasCustomWebUi:错误

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

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

有人可以帮我理解这个吗?

【问题讨论】:

  • 还没有。我不管理 AzureAD,所以必须等待管理员回复我。
  • 我正在回到这个问题。我仍然收到相同的错误消息。老实说,我不知道该怎么做。
  • 我不这么认为。如果您已经添加了移动和桌面应用程序平台,会有一些延迟(几分钟)。如果您仍有网络平台,您可以将其删除并重试。

标签: azure-active-directory msal


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 2020-05-14
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    相关资源
    最近更新 更多