第2章 JSON Web Token のビルド、署名、暗号化
JSON Web Token (JWT) は、RFC 7519 仕様で、クレームを表すコンパクトで URL セーフな手段として定義されています。これらのクレームは JSON オブジェクトとしてエンコードされ、JSON Web Signature (JWS) 構造のペイロードまたは JSON Web Encryption (JWE) 構造のプレーンテキストとして使用できます。このメカニズムにより、クレームをデジタル署名したり、Message Authentication Code (MAC) を使用して整合性を保護したり、暗号化したりできるようになります。
クレームに署名することが、クレームを確保するための最も一般的な方法です。通常、JWT トークンは、JSON Web Signature (JWS) 仕様で概説されている手順に従って、JSON としてフォーマットされたクレームに署名することによって生成されます。
クレームに機密情報が含まれている場合、JSON Web Encryption (JWE) 仕様を使用して機密性を確保できます。このアプローチでは、暗号化されたクレームを含む JWT が生成されます。
セキュリティーを強化するために、両方の方法を組み合わせることができます。最初にクレームへ署名し、その結果として生成されるネストされた JWT を次に暗号化します。このプロセスにより、クレームの機密性と整合性の両方が確保されます。
SmallRye JWT Build API は、これらすべてのオプションをサポートすることで、JWT クレームの保護を簡素化します。この機能を提供するために、内部では Jose4J ライブラリーを使用します。
2.1. 依存関係 リンクのコピーリンクがクリップボードにコピーされました!
SmallRye JWT Build API を使用するには、プロジェクトに次の依存関係を追加します。
Maven を使用する場合:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-jwt-build</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-jwt-build</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gradle を使用する場合:
implementation("io.quarkus:quarkus-smallrye-jwt-build")implementation("io.quarkus:quarkus-smallrye-jwt-build")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SmallRye JWT Build API は、quarkus-smallrye-jwt エクステンションがサポートする MicroProfile JWT エンドポイントを作成せずに、単独で使用できます。