2.10.2. JSON Web Token (JWT) 認証の構成


elytron サブシステムで token-realm を指定することで、JWT のサポートを有効にできます。

token-realm 内で、属性と jwt トークンバリデーターを指定できます。Elytron は次のチェックを完了します。

  • exp クレームおよび nbf クレームで指定された値の自動有効期限チェック。
  • オプション: 次のいずれかの方法で提供される公開鍵に基づく署名チェック:

    • public-key または certificate 属性を使用
    • 名前付き公開鍵での鍵マップの使用
    • client-ssl-context 属性を使用して、jku クレームで指定された URL からリモート JSON Web キー (JWK) セットを取得します。
  • オプション: JWT をチェックして、iss および aud クレームでサポートされている値のみが含まれていることを確認します。issuer 属性と audience 属性を使用して、これらのチェックを実行できます。

次の例は、セキュリティーレルムとして token-realm を示し、属性として principal-claim を示しています。principal-claim 属性は、elytron がプリンシパルの名前を取得するために使用するクレームの名前を定義します。jwt 要素は、トークンを JWT として検証する必要があることを指定します。

構成された token-realm の例

<token-realm name="${token_realm_name}" principal-claim="${principal_claim_key}">
    <jwt issuer="${issuer_name}"
         audience="${audience_name}"
         <public-key="${public_key_in_PEM_format}"/>
 </token-realm>

token-realm のキーマップを定義できます。次に、署名の検証にさまざまなキーペアを使用して、これらのキーペアを簡単にローテーションできます。Elytron はトークンから kid の主張を取得し、検証に対応する公開鍵を使用します。

  • kid クレームが JWT に存在しない場合、token-realmjwtpublic-key 属性で指定された値を使用して署名を検証します。
  • kid クレームが JWT に存在せず、public-key を構成していない場合、token-realm はトークンを無効にします。

token-realm 用に設定されたキーマップの例。

<token-realm name="${token_realm_name}" principal-claim="${principal_claim_key}">
    <jwt issuer="${issuer_name}" audience="${audience_name}">
        <key kid="${key_ID_from_kid_claim}" public-key="${public_key_in_PEM_format}"/>
        <key kid="${another_key_ID_from_kid_claim}" public-key="${public_key_in_PEM_format}"/>
    </jwt>
</token-realm>

手順

  1. keytool を使用して key-store を作成します。

    keytool を使用して key-store を作成する例。

    keytool -genkeypair -alias <alias_name> -keyalg <key_algorithm> -keysize <key_size> -validity <key_validity_in_days> -keystore <key_store_path> -dname <distinguished_name> -keypass <key_password> -storepass  <key_store_password>

    次に、elytron サブシステムに key-store 定義を追加します。

    elytron サブシステムに key-store 定義を追加する例。

    /subsystem=elytron/key-store=<key_store_name>:add(path=<key_store_path> , credential-reference={clear-text=<key_store_password>}, type=<keystore_type>)

  2. elytron サブシステムで token-realm を作成し、token-realm の属性と jwt トークンバリデーターを指定します。

    elytron サブシステムで token-realm を作成する例。

    /subsystem=elytron/token-realm=<token_realm_name>:add(jwt={issuer=[<issuer_name>],audience=[<audience_name>],key-store=<key_store_name>,certificate=<alias_name>},principal-claim=<principal_claim_key>)

次のステップ

関連情報

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る