node.js - NodeJS Express 中的 Passport 无法访问 B2C 联合元数据
问题描述
我在 NodeJS 上为 Azure B2C 使用以下 Microsoft 示例,并收到以下错误:
ERROR: AzureAD: Metadata Parser/59044 on DESKTOP1: cannot get AAD Federation metadata from endpoint you specified
INFO: AzureAD: OIDC Passport Strategy/59044 on DESKTOP1: authentication failed due to: Cannot get AAD Federation metadata
我假设这是指 config.js/exports/creds/IdentityMetadata,但是我可以直接访问以下两个 B2C URL。
- https://TENANT.b2clogin.com/TENANT.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1_TestUserFlowSignUp
- https://login.microsoftonline.com/TENANT.onmicrosoft.com/v2.0/.well-known/openid-configuration
问题
- 如何调试 Passport 的库无法访问 FederationMetadata?(提琴手没有显示任何网络 IO)
- 它是否存储或缓存在某处?
- 它何时以及如何使用(用于故障排除)?
解决方案
- 在元数据缓存在内存中之后,您应该看到至少一个初始请求。
- 节点可能没有连接到互联网。确保您可以成功连接的节点和浏览器共享并允许相同的互联网访问配置(直接、代理等)。
您可以在此处调试设置的 url: https ://github.com/AzureAD/passport-azure-ad/blob/fcf9b755a1bbe7a70c7340e2fdd36e8813aa8546/lib/bearerstrategy.js#L582
推荐阅读
- python - 如果字典中未声明字符,如何从用户输入中输出特殊字符
- laravel - 安装作曲家时无法加载 php_mcrypt.dll
- javascript - 无法使用 wavesurfer 播放大型 m4a 音频文件
- hive - Hive ACID 表锁死锁永不过期
- javascript - 水平滚动的桌子上的“粘性”标题......完全不可能?
- lotus-notes - 为什么我的表单按钮无法正常工作
- ruby-on-rails - Rails 中上一个完整完成周(即周一到周日)的记录?
- vb.net - 我怎样才能将这两个语句组合成一个
- angular - 如何在 Firestore 上获取集合的每个文档的一个字段?
- r - 如何在不被覆盖的情况下将值写入文件?使用 Rscript