解释一下 Open ID connect 中的离线令牌验证与在线令牌验证?优点、局限性和权衡

Sun*_*jan 9 access-token oauth-2.0 jwt openid-connect keycloak

在为现有应用程序和后端服务开发 Open ID 连接模型时,我很困惑是否要选择 ID 令牌和访问令牌的离线还是在线 JSON 令牌验证。

我的开放 ID 提供商:KeyCloak

我的问题是关于令牌验证的想法,所以我不讨论实现细节。

根据 OIDC(开放 ID 连接),

经过身份验证后,ID 令牌将颁发给请求资源的服务

现在在资源服务器端是否确实需要使用 Open ID Provider (Keycloak)验证 Token ,或者根据公钥离线验证 Token。

如果我选择令牌验证的离线模型 - 我必须面对的潜在影响/限制是什么。

我正在寻找理想的情况来选择合适的模型并进行权衡讨论。

and*_*ija 9

在线验证的唯一优点是用户权限可能同时被撤销。通过离线验证,您可以证明令牌是由您的 Keycloak 颁发的并且没有人篡改它。对每个请求进行在线验证会太多。

\n

例如,前端中的单击可能会导致许多 api 调用,并且在同一秒内向 Keycloak 创建数十个休息请求没有任何好处。建议缩短令牌的生命周期。

\n

您可以在短时间内实现令牌缓存并在线验证令牌,但是如果您可以缩短 Keycloak 中的令牌生命周期,那么还有什么意义呢?

\n

因此,总而言之,在超时持续时间内(例如 5 分钟 - 应根据用例进行配置)离线验证令牌,并在超时后发布新令牌。

\n