2.3. クレームの署名


クレームは、すぐに署名することも、JSON Web Signature (JWS) ヘッダーを設定した後に署名することもできます。

import io.smallrye.jwt.build.Jwt;
...

// Sign the claims using an RSA private key loaded from the location specified by the 'smallrye.jwt.sign.key.location' property.
// No 'jws()' transition is required. The default algorithm is RS256.
String jwt1 = Jwt.claims("/tokenClaims.json").sign();

// Set the headers and sign the claims by using an RSA private key loaded in the code (the implementation of this method is omitted).
// Includes a 'jws()' transition to a 'JwtSignatureBuilder'. The default algorithm is RS256.

String jwt2 = Jwt.claims("/tokenClaims.json")
                 .jws()
                 .keyId("kid1")
                 .header("custom-header", "custom-value")
                 .sign(getPrivateKey());
Copy to Clipboard Toggle word wrap

デフォルトの動作:

  • alg (アルゴリズム) ヘッダーはデフォルトで RS256 に設定されます。
  • kid プロパティーを含む単一の JSON Web Key (JWK) が使用される場合、署名鍵の識別子 (kid ヘッダー) を設定する必要はありません。

サポートされているキーとアルゴリズム:

  • クレームに署名するには、RSA 秘密鍵、楕円曲線 (EC) 秘密鍵、対称シークレットキーを使用できます。
  • RS256 はデフォルトの RSA 秘密鍵署名アルゴリズムです。
  • ES256 はデフォルトの EC 秘密鍵署名アルゴリズムです。
  • HS256 はデフォルトの対称鍵署名アルゴリズムです。

署名アルゴリズムをカスタマイズするには、JwtSignatureBuilder API を使用します。以下に例を示します。

import io.smallrye.jwt.SignatureAlgorithm;
import io.smallrye.jwt.build.Jwt;

// Sign the claims using an RSA private key loaded from the location set with a 'smallrye.jwt.sign.key.location' property. The algorithm is PS256.
String jwt = Jwt.upn("Alice").jws().algorithm(SignatureAlgorithm.PS256).sign();
Copy to Clipboard Toggle word wrap

または、次のプロパティーを使用して署名アルゴリズムをグローバルに設定することもできます。

smallrye.jwt.new-token.signature-algorithm=PS256
Copy to Clipboard Toggle word wrap

このアプローチにより、よりシンプルな API シーケンスが実現します。

import io.smallrye.jwt.build.Jwt;

// Sign the claims using an RSA private key loaded from the location set with a 'smallrye.jwt.sign.key.location' property. The algorithm is PS256.
String jwt = Jwt.upn("Alice").sign();
Copy to Clipboard Toggle word wrap

sign ステップと 暗号化 ステップを組み合わせて、inner-signed and encrypted トークンを作成できます。詳細は、クレームに署名し、ネストされた JWT トークンを暗号化する セクションを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る