我的 Azure AD B2C 令牌的密钥在哪里?

Where's the Key for My Azure AD B2C Token?

我是 following this guide and using the jwt.io chrome 插件,但我找不到我的密钥,所以我可以手动验证签名。

智威汤逊Header

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "c9HOlAkfaBs4YSKZ7RoMnZlKrVzdkXHB2QoLv1fETQ8"
}

OpenID Connect metadata document leads me to https://login.microsoftonline.com/common/discovery/v2.0/keys不过那个反应没有这个孩子。

我也参考过这个blog post

检索 Azure AD B2C 租户密钥的 URL 格式如下:

https://login.microsoftonline.com/te/<tenantName>.onmicrosoft.com/b2c_1_<policyName>/discovery/v2.0/keys

例如:

https://login.microsoftonline.com/te/fabrikamb2c.onmicrosoft.com/b2c_1_edit_profile/discovery/v2.0/keys

请注意,密钥和 URL 都不同于常规 Azure AD 和 Azure AD 的 v2.0 端点(后者是您在问题中引用的 URL)。

此时,所有 built-in policies (even across tenants) use the same keys, however in the case of custom policies 您会看到每个租户的密钥不同,甚至在某些情况下,根据策略。

重要说明:鉴于 Azure AD B2C 中的密钥是以不同的格式。 参见

这个答案很旧,URL 截至 2021 年 10 月现在是:

https://<tenantName>.b2clogin.com/<tenantName>.onmicrosoft.com/b2c_1_<policyName>/discovery/v2.0/keys