错误:带有“AADSTS700025”的“invalid_client”:客户端是公共的,因此不应显示“client_assertion”和“client_secret”

Posted

技术标签:

【中文标题】错误:带有“AADSTS700025”的“invalid_client”:客户端是公共的,因此不应显示“client_assertion”和“client_secret”【英文标题】:ERROR: "invalid_client" with "AADSTS700025: Client is public so neither 'client_assertion' nor 'client_secret' should be presented 【发布时间】:2022-01-22 15:48:26 【问题描述】:

在使用 msal 库授权 microsoft graph 应用程序期间, 我收到以下错误:

"error": "invalid_client", "error_description": "AADSTS700025: Client is public so neither 'client_assertion' nor 'client_secret' should be presented.
"error_codes": [700025] 

有人可以帮忙吗?

【问题讨论】:

这是什么应用程序? 它是网络应用程序 好的,这是在后端还是前端? 它是 django 的后端 那么要么是应用注册配置有问题,要么是你的代码有问题。重定向 URI 是如何配置的? 【参考方案1】:

由于您的 Web 应用程序将后端用作 Django,将前端用作 Angular,因此您可以将重定向 URI 平台用作单页应用程序

您需要在 SPA 应用程序中使用 MSAL.js 身份验证来获取访问令牌。

然后你的后端 Django 应用程序验证访问令牌

注意:如果您使用的是MSAL.js v2.x,则需要使用授权码流

参考:Migrate javascript single-page app from implicit grant to authorization code flow - Microsoft identity platform | Microsoft Docs

【讨论】:

我已经尝试过这种方法,但坚持为 SPA 平台添加重定向 URI。我的应用程序网址中包含“#”字符。当我将它添加到重定向 URI 字段时,它会给出错误:重定向 URI 中不支持片段。我无法从我的网址中删除“#”,因为它会影响应用程序的其他部分。你有什么解决办法吗? 重定向 uri 不能包含“#”。登录后,您可以重定向到您的应用程序主页。

以上是关于错误:带有“AADSTS700025”的“invalid_client”:客户端是公共的,因此不应显示“client_assertion”和“client_secret”的主要内容,如果未能解决你的问题,请参考以下文章

带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException

MyBatis笔记----报错Exception in thread "main" org.apache.ibatis.binding.BindingException: Inva

[Package Manager Window] Error while getting auth code: System.Inva lidOpera tionException: Failed t

oracle blob 反序列化错误

EGL错误:“纹理资源为NULL,未指定级别”

Python 3.7.x 介绍-5 错误和异常处理