【发布时间】:2020-08-12 21:03:23
【问题描述】:
我在 Azure AD B2C 中设置了一个用户流。生成的 id_token 是一个 jwt。但是如何在需要受此 JWT 保护的 API 上验证该 JWT 的签名?
这是一个 JWT 示例:
{
"typ": "JWT",
"alg": "RS256",
"kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}
{
"exp": 1587973546,
"nbf": 1587969946,
"ver": "1.0",
"iss": "https://appmanager2020.b2clogin.com/903e0c59-0e1d-4769-8a57-0caba1f56999/v2.0/",
"sub": "f11eaa2e-0bad-400a-864f-57f9daa70999",
"aud": "8ab24fa8-a5f2-4f7d-a1ad-31f21d7f999",
"nonce": "123456",
"iat": 1587969946,
"auth_time": 1587969946,
"idp": "https://sts.windows.net/903e0c59-0e1d-4769-8a57-0caba1f56999/",
"oid": "f11eaa2e-0bad-400a-864f-57f9daa70999",
"emails": [
"some@email.com"
],
"tfp": "B2C_1_some_employee_flow"
}
我尝试了这个 URL 没有运气:
【问题讨论】:
-
该 URL 似乎是一个密钥库(看不到,因为您 'xxx'ed 了 id)。通常,您需要一个发布公钥的 URL(您可能已经得到了)。从那里读取 JWKS 并找到 ID(孩子)与令牌标题中的孩子相同的密钥。类似于this
标签: jwt azure-ad-b2c