什么是jwks?具有刷新和访问令牌的 jwks 实际上是做什么的?
what is jwks? what actully does jwks with refresh and access tokens?
我正在开发一个具有访问和刷新令牌以及 JWT 和 JWKS 的身份验证系统。我的问题是我不知道 JWKS 的功能是什么。 JWKS 在使用 JWT 以及刷新令牌和访问令牌的身份验证系统中的功能是什么?这个系统中的 public 和私钥是什么? JWKS 需要连接数据库吗?
你是说 JWKS
还是 JWKS endpoint
?
JWKS
是 JSON Web 密钥集 - 用于共享 public 密钥的 JSON 符号,用于验证已签名 JWT 的签名。
JWKS endpoint
是授权服务器公开的端点,您可以从中获取 JWKS。
每当您需要使用 JWT 的内容时(例如,您有一个 API 接收 JWT 并需要执行授权决定),您应该验证签名。为了验证它,您需要一个 public 密钥,它对应于授权服务器用来签署 JWT 的私钥。这个 public 密钥可以通过不同的方式获得(例如,您可以在 API 中对其进行硬编码)并且从 JWKS endpoint
中获取它是一种有效的方式。如果您可以选择从 JWKS endpoint
中读取 public 密钥,我建议您使用它 - 这会大大简化系统中的密钥管理。每当您需要轮换密钥时,只需在授权服务器中更改它们即可。如果您不控制授权服务器,它会特别有用 - 那么您根本不必担心密钥轮换。
你可以看看这个免费课程的第二部分:OpenID Connect in Details。那里涵盖了 JWKS
主题。
我正在开发一个具有访问和刷新令牌以及 JWT 和 JWKS 的身份验证系统。我的问题是我不知道 JWKS 的功能是什么。 JWKS 在使用 JWT 以及刷新令牌和访问令牌的身份验证系统中的功能是什么?这个系统中的 public 和私钥是什么? JWKS 需要连接数据库吗?
你是说 JWKS
还是 JWKS endpoint
?
JWKS
是 JSON Web 密钥集 - 用于共享 public 密钥的 JSON 符号,用于验证已签名 JWT 的签名。
JWKS endpoint
是授权服务器公开的端点,您可以从中获取 JWKS。
每当您需要使用 JWT 的内容时(例如,您有一个 API 接收 JWT 并需要执行授权决定),您应该验证签名。为了验证它,您需要一个 public 密钥,它对应于授权服务器用来签署 JWT 的私钥。这个 public 密钥可以通过不同的方式获得(例如,您可以在 API 中对其进行硬编码)并且从 JWKS endpoint
中获取它是一种有效的方式。如果您可以选择从 JWKS endpoint
中读取 public 密钥,我建议您使用它 - 这会大大简化系统中的密钥管理。每当您需要轮换密钥时,只需在授权服务器中更改它们即可。如果您不控制授权服务器,它会特别有用 - 那么您根本不必担心密钥轮换。
你可以看看这个免费课程的第二部分:OpenID Connect in Details。那里涵盖了 JWKS
主题。