什么是jwks?刷新和访问令牌的 jwks 到底是什么?
Posted
技术标签:
【中文标题】什么是jwks?刷新和访问令牌的 jwks 到底是什么?【英文标题】:what is jwks? what actully does jwks with refresh and access tokens? 【发布时间】:2021-07-23 09:38:53 【问题描述】:我正在开发一个具有访问和刷新令牌以及 JWT 和 JWKS 的身份验证系统。我的问题是我不知道 JWKS 的功能是什么。在使用 JWT 并刷新令牌和访问令牌的身份验证系统中,JWKS 的功能是什么?这个系统中的公钥和私钥是什么? JWKS 需要连接数据库吗?
【问题讨论】:
【参考方案1】:您是指JWKS
还是JWKS endpoint
?
JWKS
是 JSON Web 密钥集 - 用于共享公钥的 JSON 表示法,用于验证已签名 JWT 的签名。
JWKS endpoint
是授权服务器公开的端点,您可以从中获取 JWKS。
当您需要处理 JWT 的内容时(例如,您有一个接收 JWT 并需要执行授权决策的 API),您应该验证签名。为了验证它,您需要一个公钥,它对应于授权服务器用来签署 JWT 的私钥。可以通过不同的方式获取此公钥(例如,您可以在 API 中对其进行硬编码),并且从 JWKS endpoint
获取它是一种有效的方式。如果您可以选择从JWKS endpoint
读取公钥,我建议您使用它 - 这大大简化了系统中的密钥管理。每当您需要轮换密钥时,您只需在授权服务器中更改它们。如果您不控制授权服务器,这将特别有用 - 这样您就不必担心密钥轮换。
您可以查看此免费课程的第二部分:OpenID Connect in Details。 JWKS
主题在此处进行了介绍。
【讨论】:
以上是关于什么是jwks?刷新和访问令牌的 jwks 到底是什么?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Dot Net Core 中使用 JWKS 验证 JWT 令牌
OpenID Connect JWT 令牌验证和后端 api 的使用策略 - jwks 还是会话?
jwksError: Not Found 在 GET 请求期间由 jwks-rsa 模块抛出,带有授权不记名令牌到受保护的 api