KeyCloak服务器的自省端点

Alf*_*oon 5 openid oauth-2.0 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
Run Code Online (Sandbox Code Playgroud)

所以这就是我的回应:

{"error":"invalid_request","error_description":"Client not allowed."}* 
Connection #0 to host localhost left intact
Run Code Online (Sandbox Code Playgroud)

这就是我在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
Run Code Online (Sandbox Code Playgroud)

因此,我无法理解-在这种情况下,关于该产品应用具有公共访问权限,我应该如何正确地请求密钥斗篷。请解释!

Alf*_*oon 7

客户端具有公共访问类型时,您似乎无法使用/ 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
Run Code Online (Sandbox Code Playgroud)

工作正常。

  • 那么您最终是否也将“YOUR_SECRET”放入“product-app”中?我正在处理类似的情况,我实际上需要 SPA 的公共访问类型,但仍然想在后端内省令牌...... (3认同)