Keycloak 访问令牌自省,无需显式 REST

问题描述 投票:0回答:1

第一次在这里问并开门见山:我正在使用 Spring 开发一个连接到 Keycloak 实例的 API,出于安全原因,我需要每个端点接受访问令牌,因此,我需要进行反省每次都使用该令牌 a) 确保它是有效的,b) 确保会话在自省时处于活动状态现在我已经构建了一个 Keycloak 管理客户端(org.keycloak.admin.client - Reference)的实例我的主领域凭证,我正在尝试看看是否有可能与这个客户或类似的东西进行内省。我已经花了几个小时在管理客户端上阅读 Keycloak 的docs,但我一生都找不到任何有用的东西。我发现的所有内省显然要么需要与管理客户端不同的东西并且无法弄清楚如何使其工作,要么我认为只能在 SPI 中使用(我已经使用过它,只是这个情况不同)。关于如何解决此问题的任何选项、帮助或建议都被接受,因为这已经消耗了我大量的时间。我只是想在不明确发出 POST 请求的情况下执行此操作(顺便说一句,这是我使用 RestTemplate 发出的)。

我目前正在使用 Keycloak 22.0.1

提前谢谢您:),但我似乎找到的唯一选择是向 keycloak 的内省端点({realm}/protocol/openid-connect/token/introspect)发出 POST 请求。

现在我有一个基于我的主领域凭据构建的 Keycloak 管理客户端实例(org.keycloak.admin.client - Reference),我正在尝试查看是否可以使用此客户端进行内省,或类似的东西。我已经花了几个小时在管理客户端上阅读 Keycloak 的docs,但我一生都找不到任何有用的东西。我发现的所有内省显然要么需要与管理客户端不同的东西并且无法弄清楚如何使其工作,要么我认为只能在 SPI 中使用(我已经使用过它,只是这个情况不同)。关于如何解决此问题的任何选项、帮助或建议都被接受,因为这已经消耗了我大量的时间。我只是想在不明确发出 POST 请求的情况下执行此操作(顺便说一句,这是我使用 RestTemplate 发出的)。

我目前正在使用 Keycloak 22.0.1

提前谢谢您:)

spring rest keycloak introspection
1个回答
0
投票

Keycloak 在其 openid 配置 (

introspection_endpoint
) 中列出了其
${issuer}/.well-known/openid-configuration

spring-oauth2-resource-server
支持内省

顺便说一句,内省对性能有非常糟糕的影响,如果您正确使用 OAuth2(在您信任的服务器上运行“机密”客户端,而不是在最终用户设备上运行“公共”客户端),您应该不必“确保会话在自省时处于活动状态”(会话应该仅是 OAuth2 客户端和 OAuth2 授权服务器的关注点,而不是 OAuth2 资源服务器的关注点)。

© www.soinside.com 2019 - 2024. All rights reserved.