[16.0.0.4 以降]

Liberty での JSON Web Token のコンシューム

サーバー構成に 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 の資料を参照してください。

手順

  1. server.xml ファイルに jwt-1.0 フィーチャーを追加します。
    <featureManager>
        <feature>jwt-1.0</feature>
        ...
    </featureManager>
  2. jwtConsumer エレメントを変更して JWT コンシューマーを構成します。

    構成可能な jwtConsumer 属性については、JWT コンシューマー (jwtConsumer)を参照してください。

    jwt-1.0 フィーチャーを追加し、変更を保存すると、Liberty は以下のデフォルト jwtConsumer エレメントを追加します。
    <jwtConsumer id="defaultJWTConsumer">
    </jwtConsumer>
    このデフォルト構成では、以下の値が想定されています。
    • コンシュームされた JWT の alg ヘッダーは RS256 です。この値は、signatureAlgorithm 属性に構成できます。
    • JWT は、expnbf、および iat の各クレームの 5 分以内で有効と見なされます。この値は、clockSkew 属性に構成できます。

    このデフォルト jwtConsumer エレメントを再構成するか、1 つ以上の他の jwtConsumer エレメントを作成できます。各 jwtConsumer エレメントは、id 属性として指定される、固有で URL セーフのストリングを持っている必要があります。この ID がない場合、jwtConsumer は処理されません。

    RS256 と X.509 証明書を使用して署名された JWT トークンの場合、署名検証鍵を見つけられるように、trustStoreRef 属性と trustAliasName 属性を構成する必要があります。
    1. JWT 発行者の X.509 証明書をトラストストアにインポートします。
    2. jwtConsumer エレメントにトラストストア ID と証明書別名を指定します。
      <jwtConsumer id="defaultJWTConsumer" trustStoreRef="truststore_id" trustAliasName="certificate_alias">
      </jwtConsumer>
  3. com.ibm.websphere.security.jwt.JwtConsumer API と com.ibm.websphere.security.jwt.JwtToken API をアプリケーション内に実装して、JWT トークンをプログラマチックに検証および解析します。

    詳しくは、JSON Web Token Java の資料を参照してください。

    1. 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");
    2. com.ibm.websphere.security.jwt.JwtToken API を実装して JWT トークンを検証および解析します。
      JwtToken jwtToken = jwtConsumer.createJwt("Base64_encoded_JWT_token>");

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_sec_consume_jwt
ファイル名: twlp_sec_consume_jwt.html