JWTのオンライン検証

🔲 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の復元情報は返送されません。