Quarkus Securityの概要
Quarkus Security は、安全で本番品質の Java アプリケーションを構築するためのアーキテクチャー、複数の認証および承認メカニズム、およびその他のツールを提供するフレームワークです。
Quarkus アプリケーションにセキュリティーを組み込む前に、Quarkus Security アーキテクチャー と、使用できるさまざまな認証メカニズムと機能を理解する必要があります。
Quarkus Securityの主な機能
Quarkus Security フレームワークは、Basic 認証、フォームベース認証、相互 TLS (mTLS) 認証用の組み込みセキュリティー認証メカニズムを提供します。
OpenID Connect (OIDC) や WebAuthn など、他のよく知られている 認証メカニズム を使用することもできます。
認証メカニズムは、アイデンティティープロバイダー に依存して認証情報を検証し、ユーザー名、ロール、元の認証情報、およびその他の属性を含む SecurityIdentity
インスタンスに認証情報をマッピングします。
Quarkus また、REST エンドポイントの一般的なセキュリティーアノテーション @RolesAllowed
、@DenyAll
、@PermitAll
と、コンテキストと依存性注入 (CDI) Bean に基づくロールベースのアクセス制御 (RBAC) を可能にする組み込みのセキュリティーも含まれています。
詳細は、Quarkus Web エンドポイントの認可 ガイドを参照してください。
Quarkus Securityは、以下の機能もサポートしています:
Quarkus Securityは、高度なカスタマイズも可能です。詳細については、Quarkus Securityの ヒントとトリック ガイドを参照してください。
Quarkus セキュリティー入門
Quarkusのセキュリティに入門するには、組込のQuarkus Basic認証 とJakarta Persistence IDプロバイダを使用して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 リファレンス」ガイドの セキュリティー セクションを参照してください。
クロスオリジンリソース共有
Quarkus アプリケーションを別のドメインで実行されている別のアプリケーションからアクセスできるようにするには、クロスオリジンリソース共有 (CORS) を設定する必要があります。 Quarkus が提供する CORS フィルターの詳細は、Quarkus 「クロスオリジンリソース共有ガイド」の CORS フィルター セクションを参照してください。
クロスサイト・リクエスト・フォージェリ(CSRF)対策
Quarkus Security は、 クロスサイトリクエストフォージェリー 攻撃からアプリケーションを保護できる Quarkus REST (旧称 RESTEasy Reactive) フィルターを提供します。 詳細は、Quarkus クロスサイトリクエストフォージェリー対策 ガイドを参照してください。
SameSite クッキー
Quarkus エンドポイントによって設定される Cookie に、SameSite Cookie プロパティーを追加できます。 詳細は、Quarkus「HTTP リファレンスガイド」の SameSite Cookie セクションを参照してください。
シークレットエンジン
Quarkus でシークレットエンジンを使用して、データを保存、生成、または暗号化できます。
Quarkus は、Quarkus や HashiCorp Vault など、認証情報をセキュアに保存するための追加のエクステンションを Quarkiverse に提供します。
環境プロパティへのシークレットの保存
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タグは、米国 国家脆弱性データベース(NVD )に報告されます。 セキュリティ脆弱性については、 Quarkusのセキュリティ脆弱性の検出と報告 に関するガイドを参照してください。