openid-connect - 带有 oidc-client-js 的 Azure B2C 接收“错误:令牌中的颁发者无效”
问题描述
我正在尝试在 React Web 应用程序中使用oidc-client-js设置 OIDC 身份验证,并针对 Azure B2C 进行身份验证。
完成登录后,我收到此错误:
Problem with authentication endpoint: Error: Invalid issuer in token: https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/v2.0
.
B2C 元数据中的颁发者如下所示:
"issuer": "https://login.microsoftonline.com/{tenantid}/v2.0"
. 我用来获取元数据的链接是https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
我查看了 oidc-client-js 中的验证代码,我认为他们只是在两个值之间进行字符串比较。
有没有人将 oidc-client-js 与 B2C IDP 一起使用?
我需要在客户端上配置一些东西才能使其工作吗?
有没有办法从其中包含租户 ID 的 B2C 获取元数据?
解决方案
问题在于使用公共端点而不是特定于租户的端点。
租户特定:https://login.microsoftonline.com/12345678-1234-1234-1234-123456789012/v2.0/.well-known/openid-configuration
常见的:https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
-juunas 是正确的,尽管不是出于所述原因,但 url 是错误的。
推荐阅读
- electron - 如何使用电子存储存储本地数据并在渲染器进程中获取这些数据?
- bash - 在 Azure Devops 中连接 Postgresql 数据库的 Bash 脚本
- postgresql - 根据 postgresql 中的交换记录更新组号
- python - 如何全自动运行代码?虚拟桌面或我的主板“通过 RTC 开机”?
- android - Android:如何在 CoordinatorLayout 和 LayoutBehaviour 中翻译和展开视图
- webpack - TypeError:无法读取未定义的属性(读取“你好”)
- excel - 在excel中将字符串转换为时间
- java - Spring Data JDBC 中的字段特定转换器
- reactjs - 当页面重定向到另一个页面时,React toastify 不起作用。但它在同一页面上工作
- javascript - Webpack 通过不捆绑特定库来减少包大小