首页 > 解决方案 > KeyCloak 服务器的自省端点

问题描述

我正在尝试探索 KeyCloak 服务器的功能,并希望通过使用 /openid-connect/token/introspect 端点来获取有关访问令牌的信息。

所以,我正在向这个端点发送下一个请求

curl -v --data "token_type_hint=access_token&client_id=product- 
app&username=user&token=MY ACCESS TOKEN" 
http://localhost:8080/auth/realms/springdemo/protocol/openid- 
connect/token/introspect

所以这就是我的回应:

{"error":"invalid_request","error_description":"Client not allowed."}* 
Connection #0 to host localhost left intact

这就是我在 KeyCloak 的日志中看到的:

12:00:18,045 WARN  [org.keycloak.events] (default task-13) 
type=INTROSPECT_TOKEN                                     _ERROR, 
realmId=springdemo, clientId=product-app, userId=null, ipAddress=127.0.0                                     
.1, error=invalid_request, detail='Client not allowed.', 
client_auth_method=client-secret

所以,我不明白 - 在这种情况下,关于该产品应用程序具有公共访问权限,我应该如何正确地向 keycloak 提出请求。请解释!

标签: oauth-2.0openidkeycloak

解决方案


当您的客户端具有公共访问类型时,您似乎无法使用 /openid-connect/token/introspect 端点。

因此,切换到机密访问类型并使用

curl -v --data "client_secret=YOUR_SECRET9&client_id=product- 
app&username=user&token=YOUR_TOKEN" 
http://localhost:8080/auth/realms/springdemo/protocol/openid- 
connect/token/introspect

它工作正常。


推荐阅读