错误:带有“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