web-dev-qa-db-ja.com

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

だから、私はそれを得ることができません-この製品アプリがパブリックアクセスを持っているということに関して、この場合キークロークに適切にリクエストをどのように行うべきですか?説明してください!

7
Alfred Moon

クライアントがパブリックアクセスタイプを使用している場合、/ 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

正常に動作します。

7
Alfred Moon