除了检查签名之外,我想知道Keycloak客户端如何验证令牌。 我的意思是,如果用户向OID'/ logout'端点发出了注销请求,令牌签名验证仍将通过,因此如果令牌已被注销使客户端无效,则客户端必须转到KC服务器。所以我的问题是,对于我的应用收到的每个请求,客户端是否都去Keycloak检查令牌是否仍然有效?
答案 0 :(得分:2)
在OIDC中,通常不会每次通过将其发送到密钥斗篷服务器来主动检查令牌。而是仅在本地检查令牌(通过使用服务器公钥进行签名验证)。
您说得对,客户不会立即识别注销。
因此,您经常会有一个流程来区分refresh
和access
令牌。 access_token
的生存期非常短(<= 5分钟),用于验证用户身份并通过签名验证进行检查。
当access_token
不再有效时,客户端需要使用refresh_token
从密钥斗篷中主动获取新的access_token
。在此步骤中,keycloak将在颁发新令牌之前检查用户是否仍在登录。
由于refresh_token
的生存期更长,因此用户不必总是再次输入其凭据。