🔲 JWTのオンライン検証
受領したJWTトークンのオンライン検証を実行してみましょう。オフライン検証に比べて簡単にJWTトークンを検証することが可能です。APIのエンドポイントとしては、「token/introspect」を使ってPost Methodでアクセスします。
オンライン検証は、プログラム開発のデバック段階としては、有利ですが、大規模な環境や高トラフィックのシステムには適していません。データ量が増えると性能が低下する恐れがありますので、プロダクション環境には適していません。できれば、オフライン検証の実装を推奨します。
JWTトークンのオンライン検証flow
Keycloakリスエスト作成スクリプト
const host_ip = msg.host_ip; const secret_key = msg.secret_key; const token = flow.get('token'); const access_token = token.access_token msg.payload = { "token": access_token, "username": "banana", "client_secret": secret_key, "client_id": "test-client" }; msg.headers = {"Content-Type":"application/x-www-form-urlencoded"}; const endpoint = "/realms/demo/protocol/openid-connect/token/introspect"; msg.url = host_ip + endpoint; return msg;
- オンライン検証で用意するデータ
- secret_key:Realmの「demo」からCredentialのsecret_key
- token:検証するトークンデータ「access_token」
access_tokenデータは、endpointの「token」で取得したデータから、access_tokenを引き出してください。
検証結果は以下の通りです。「active: true」となっています。それとJWTの情報が復元された状態で返ってきます。
トークンがエラーの場合は、非常にシンプルで「active: false」のみです。結果がtureとは異なり、JWTの復元情報は返送されません。