web-dev-qa-db-fra.com

Point de terminaison d'introspection du serveur KeyCloak

J'essaie d'explorer les fonctionnalités du serveur KeyCloak et je souhaite obtenir des informations sur le jeton d'accès en utilisant le point de terminaison/openid-connect/token/introspect.

Donc, j'envoie la prochaine demande à ce point de terminaison

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

Voici donc ce que j'ai comme réponse:

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

et voici ce que je vois dans les journaux de 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

Donc, je ne peux pas l'obtenir - comment dois-je faire correctement la demande de keycloak dans ce cas concernant cette application de produit a un accès public. S'il vous plaît, expliquez!

7
Alfred Moon

Il semble que vous ne puissiez pas utiliser le point de terminaison/openid-connect/token/introspect lorsque votre client a un type d'accès public.

Alors, passez au TYPE D'ACCÈS CONFIDENTIEL et utilisez

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

Ça fonctionne bien.

7
Alfred Moon