サーバー構成に JWT コンシューマー・エレメントを構成し、com.ibm.websphere.security.jwt.JwtConsumer API と com.ibm.websphere.security.jwt.JwtToken API をアプリケーション内で実装することにより、JSON Web Token (JWT) トークンをプログラマチックに検証および解析することができます。
このタスクについて
JWT API について詳しくは、JSON Web Token の Java の資料、または製品の ${wlp.install.dir}/dev ディレクトリーに含まれている API の資料を参照してください。
手順
- server.xml ファイルに jwt-1.0 フィーチャーを追加します。
<featureManager>
<feature>jwt-1.0</feature>
...
</featureManager>
- jwtConsumer エレメントを変更して JWT コンシューマーを構成します。
構成可能な jwtConsumer 属性については、JWT コンシューマー (jwtConsumer) を参照してください。
jwt-1.0 フィーチャーを追加し、変更を保存すると、
Liberty は以下のデフォルト
jwtConsumer エレメントを追加します。
<jwtConsumer id="defaultJWTConsumer">
</jwtConsumer>
このデフォルト構成では、以下の値が想定されています。
- コンシュームされた JWT の alg ヘッダーは RS256 です。この値は、signatureAlgorithm 属性に構成できます。
- JWT は、exp、nbf、および iat の各クレームの 5 分以内で有効と見なされます。この値は、clockSkew 属性に構成できます。
このデフォルト jwtConsumer エレメントを再構成するか、1 つ以上の他の jwtConsumer エレメントを作成できます。各 jwtConsumer エレメントは、id 属性として指定される、固有で URL セーフのストリングを持っている必要があります。この ID がない場合、jwtConsumer は処理されません。
RS256 と X.509 証明書を使用して署名された JWT トークンの場合、署名検証鍵を見つけられるように、
trustStoreRef 属性と
trustAliasName 属性を構成する必要があります。
- JWT 発行者の X.509 証明書をトラストストアにインポートします。
- jwtConsumer エレメントにトラストストア ID と証明書別名を指定します。
<jwtConsumer id="defaultJWTConsumer" trustStoreRef="truststore_id" trustAliasName="certificate_alias">
</jwtConsumer>
- com.ibm.websphere.security.jwt.JwtConsumer API と com.ibm.websphere.security.jwt.JwtToken API をアプリケーション内に実装して、JWT トークンをプログラマチックに検証および解析します。
詳しくは、JSON Web Token Java の資料を参照してください。
- JwtConsumer オブジェクトを作成します。
構成 ID を指定しないと、オブジェクトはデフォルトの
jwtConsumer 構成に結合されます。
com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create();
構成 ID を指定すると、オブジェクトは、指定された ID の
jwtConsumer 構成に結合されます。
com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create("jwtConsumer_configuration_id");
- com.ibm.websphere.security.jwt.JwtToken API を実装して JWT トークンを検証および解析します。
JwtToken jwtToken = jwtConsumer.createJwt("Base64_encoded_JWT_token>");