我是following this guide并使用jwt.io chrome插件,但我找不到我的密钥,以便我可以手动验证签名。
JWT标题
{
"typ": "JWT",
"alg": "RS256",
"kid": "c9HOlAkfaBs4YSKZ7RoMnZlKrVzdkXHB2QoLv1fETQ8"
}
OpenID Connect metadata document引导我https://login.microsoftonline.com/common/discovery/v2.0/keys,但该回复没有这个孩子。
我也引用了这个blog post。
答案 0 :(得分:2)
检索Azure AD B2C租户密钥的网址格式如下:
https://login.microsoftonline.com/te/<tenantName>.onmicrosoft.com/b2c_1_<policyName>/discovery/v2.0/keys
例如:
请注意,密钥和URL都与常规Azure AD和Azure AD的v2.0端点(后者是您在问题中引用的URL)不同。
目前,所有built-in policies(即使是跨租户)的密钥都使用相同的密钥,但是在custom policies的情况下,您会看到每个租户不同的密钥,甚至在某些密钥中个案,按政策。
重要提示:鉴于Azure AD B2C中的密钥格式不同,您无法使用开箱即用的jwt.io来验证Azure AD B2C令牌。 见Azure AD B2C - Token validation does not work