Quarkus Security の概要
Quarkus Security は、セキュアでプロダクション品質の Java アプリケーションを構築するためのアーキテクチャ、複数の認証および認可メカニズム、その他のツールを提供するフレームワークです。
Quarkus アプリケーションにセキュリティーを組み込む前に、 Quarkus Security アーキテクチャ と、利用可能なさまざまな認証メカニズムおよび機能について学習してください。
Quarkus Security の主な機能
Quarkus Security フレームワークは、Basic 認証、フォームベース認証、および相互 TLS (mTLS) 認証のための組み込みセキュリティー認証メカニズムを提供します。OpenID Connect (OIDC) や WebAuthn など、その他のよく知られた 認証メカニズム も使用できます。認証メカニズムは、アイデンティティープロバイダー に依存して認証クレデンシャルを検証し、それらをユーザー名、ロール、元の認証クレデンシャル、およびその他の属性を持つ SecurityIdentity インスタンスにマッピングします。
Quarkus には、REST エンドポイント、および Contexts and Dependency Injection (CDI) Bean での共通のセキュリティーアノテーション @RolesAllowed、@DenyAll、@PermitAll に基づくロールベースアクセス制御 (RBAC) を可能にするための組み込みセキュリティーも含まれています。詳細については、Quarkus の Web エンドポイントの認可 ガイドを参照してください。
Quarkus Security は以下の機能もサポートしています。
Quarkus Security は高度なカスタマイズも可能です。詳細については、Quarkus の セキュリティーのヒントとコツ ガイドを参照してください。
Quarkus Security 入門
Quarkus でセキュリティーを使い始めるには、組み込みの Quarkus Basic 認証 と Jakarta Persistence アイデンティティープロバイダーを使用して Quarkus アプリケーションのエンドポイントを保護し、ロールベースアクセス制御を有効にすることを検討してください。
Basic 認証と Jakarta Persistence を使用したセキュリティー入門 チュートリアルの手順を完了してください。
Basic 認証を使用して Quarkus アプリケーションを正常に保護した後は、より高度な認証メカニズムを追加することでセキュリティーをさらに強化できます。例えば、Quarkus の OpenID Connect (OIDC) 認可コードフローメカニズム ガイドを参照してください。
Quarkus Security のテスト
Quarkus Security 機能をテストし、Quarkus アプリケーションが安全に保護されていることを確認するためのガイダンスについては、 セキュリティーテスト ガイドを参照してください。
Quarkus のセキュリティー機能の詳細
WebSockets Next のセキュリティー
quarkus-websockets-next エクステンションは、WebSocket API のモダンで効率的な実装を提供します。また、Quarkus セキュリティーとの統合も提供します。詳細については、Quarkus の 「WebSockets Next リファレンス」ガイドの Security セクションを参照してください。
クロスオリジンリソース共有
Quarkus アプリケーションを別のドメインで実行されている別のアプリケーションからアクセスできるようにするには、オリジン間リソース共有 (CORS) を設定する必要があります。Quarkus が提供する CORS フィルターの詳細については、Quarkus の 「オリジン間リソース共有」ガイドの CORS フィルター セクションを参照してください。
クロスサイトリクエストフォージェリ (CSRF) 防止
Quarkus Security は、 クロスサイトリクエストフォージェリ 攻撃からアプリケーションを保護できる Quarkus REST (旧 RESTEasy Reactive) フィルターを提供します。詳細については、Quarkus の クロスサイトリクエストフォージェリ防止 ガイドを参照してください。
SameSite クッキー
Quarkus エンドポイントによって設定される任意のクッキーに SameSite クッキープロパティーを追加できます。詳細については、Quarkus の 「HTTP リファレンス」ガイドの SameSite クッキー セクションを参照してください。
シークレットエンジン
Quarkus でシークレットエンジンを使用して、データの保存、生成、または暗号化を行うことができます。
Quarkus は、クレデンシャルを安全に保存するために、Quarkiverse で追加のエクステンションを提供しています。例えば、 Quarkus と HashiCorp Vault などがあります。
環境プロパティー内のシークレット
Quarkus は、環境プロパティーにシークレットを保存するためのサポートを提供しています。詳細については、Quarkus の 環境プロパティーファイルへのシークレットの保存 ガイドを参照してください。
セキュアなシリアライゼーション
Quarkus Security アーキテクチャに Quarkus REST (旧 RESTEasy Reactive) と Jackson が含まれている場合、Quarkus は設定されたセキュリティーに基づいて JSON シリアライゼーションに含まれるフィールドを制限できます。詳細については、Quarkus の 「Quarkus REST (旧 RESTEasy Reactive) による REST サービスの作成」ガイドの JSON シリアライゼーション セクションを参照してください。
REST Data with Panache による自動生成リソースの保護
REST Data with Panache エクステンションを使用してリソースを自動生成する場合でも、 jakarta.annotation.security パッケージ内のセキュリティーアノテーションを使用できます。詳細については、Quarkus の 「Panache による Jakarta REST リソースの生成」ガイドの エンドポイントの保護 セクションを参照してください。
セキュリティー脆弱性の検出
ほとんどの Quarkus タグは、米国の National Vulnerability Database (NVD) に報告されます。セキュリティー脆弱性に関する情報については、Quarkus の Quarkus におけるセキュリティー脆弱性の検出と報告 ガイドを参照してください。