首页 > 解决方案 > 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。

问题

  1. 如何调试 Passport 的库无法访问 FederationMetadata?(提琴手没有显示任何网络 IO)
  2. 它是否存储或缓存在某处?
  3. 它何时以及如何使用(用于故障排除)?

标签: node.jspassport.jsazure-ad-b2cadaladal.js

解决方案


  1. 在元数据缓存在内存中之后,您应该看到至少一个初始请求。
  2. 节点可能没有连接到互联网。确保您可以成功连接的节点和浏览器共享并允许相同的互联网访问配置(直接、代理等)。

您可以在此处调试设置的 url: https ://github.com/AzureAD/passport-azure-ad/blob/fcf9b755a1bbe7a70c7340e2fdd36e8813aa8546/lib/bearerstrategy.js#L582

此处抛出错误: https ://github.com/AzureAD/passport-azure-ad/blob/fcf9b755a1bbe7a70c7340e2fdd36e8813aa8546/lib/metadata.js#L185


推荐阅读