我的Azure AD B2C令牌的关键在哪里?

时间:2017-08-10 20:45:18

标签: jwt azure-ad-b2c

我是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

1 个答案:

答案 0 :(得分:2)

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

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(即使是跨租户)的密钥都使用相同的密钥,但是在custom policies的情况下,您会看到每个租户不同的密钥,甚至在某些密钥中个案,按政策。

重要提示:鉴于Azure AD B2C中的密钥格式不同,您无法使用开箱即用的jwt.io来验证Azure AD B2C令牌。 见Azure AD B2C - Token validation does not work