OpenID连接-在没有呼叫身份提供者(IdP)的客户端上进行令牌验证



我正在寻找一种方法来验证ID令牌而不调用IdP。客户端应用程序和IdP在受控环境中运行。出于这个原因,我想在我的中间件中直接验证由Keycloak提供的OIDC的访问令牌。出于性能原因,我不想再次从Keycloak中调用OIDC端点来验证现有的id/访问令牌。

这可能吗?中间件需要哪些信息?

PS我正在寻找一个PHP实现:)

如果您可以在客户端中包含公共签名密钥,那么您可以离线验证所有令牌。有很多jwt -令牌库可以为您做到这一点。

最常见的情况是客户机下载了公钥,但是没有什么可以阻止您将其包含在客户机中。只是要小心,如果您更新Keycloak中的密钥,您也要更新客户端密钥。

为了识别用户,通常使用经典会话cookie。在用户登录后,使用cookie是一种经过验证的安全的识别用户的方法。前提是你保护饼干的方法正确。(samesite, secure, httponly)

这是关于这个话题的一个很好的视频:

  • alert ' oauth 20 ';//XSS对spa中OAuth值的影响

最新更新