セキュリティーの概要
概要
Red Hat build of Quarkus ドキュメントへのフィードバックの提供
エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 次のリンクをクリックして チケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Quarkus Security の概要
Quarkus Security は、安全で本番品質の Java アプリケーションを構築するためのアーキテクチャー、複数の認証および承認メカニズム、およびその他のツールを提供するフレームワークです。
Quarkus アプリケーションにセキュリティーを組み込む前に、Quarkus Security アーキテクチャー と、使用できるさまざまな認証メカニズムと機能について理解する必要があります。
1.1. Quarkus Security の主な機能
Quarkus Security フレームワークは、基本認証、フォームベース認証、相互 TLS (mTLS) 認証用の組み込みセキュリティー認証メカニズムを提供します。OpenID Connect (OIDC) などの他のよく知られた 認証メカニズム を使用することもできます。認証メカニズムは、認証情報を検証し、ユーザー名、ロール、元の認証情報、およびその他の属性を使用して SecurityIdentity
インスタンスにマッピングするために、アイデンティティープロバイダー に依存します。
Red Hat build of Quarkus には、REST エンドポイントの一般的なセキュリティーアノテーション @RolesAllowed
、@DenyAll
、@PermitAll
と、コンテキストと依存性注入 (CDI) Bean に基づくロールベースのアクセス制御 (RBAC) を可能にする組み込みセキュリティーも含まれています。詳細は、Quarkus の Web エンドポイントの認可 ガイドを参照してください。
Quarkus Security は次の機能もサポートしています。
Quarkus Security も高度にカスタマイズ可能です。詳細は、Quarkus Security tips and tricks ガイドを参照してください。
1.2. Quarkus Security を使い始める
Quarkus でセキュリティーを開始するには、組み込みの Quarkus Basic 認証 と Jakarta Persistence アイデンティティープロバイダーを使用して Quarkus アプリケーションエンドポイントを保護し、ロールベースのアクセス制御を有効にすることを検討してください。
Basic 認証と Jakarta Persistence を使用したセキュリティーの開始チュートリアル の手順を完了します。
Basic 認証を使用して Quarkus アプリケーションを正常に保護した後、Quarkus OpenID Connect (OIDC) 認可コードフローメカニズム ガイドなどのより高度な認証メカニズムを追加することで、セキュリティーをさらに強化できます。
1.3. Quarkus Security のテスト
Quarkus Security の機能のテストと Quarkus アプリケーションが安全に保護されていることを確認するためのガイダンスについては、セキュリティーテスト ガイドを参照してください。
1.4. Quarkus のセキュリティー機能の詳細
1.4.1. Cross-Origin Resource Sharing
Quarkus アプリケーションを別のドメインで実行している別のアプリケーションからアクセスできるようにするには、Cross-Origin Resource Sharing (CORS) を設定する必要があります。Quarkus が提供する CORS フィルターの詳細は、Quarkus の「Cross-Origin Resource Sharing 共有」ガイドの CORS フィルター のセクションを参照してください。
1.4.2. クロスサイトリクエストフォージェリ (CSRF) 防止
Quarkus Security は、クロスサイトリクエストフォージェリ 攻撃からアプリケーションを保護できる RESTEasy Reactive フィルターを提供します。詳細は、Quarkus の クロスサイトリクエストフォージェリ防止 ガイドを参照してください。
1.4.3. SameSite クッキー
Quarkus エンドポイントによって設定された任意の Cookie に SameSite Cookie プロパティーを追加できます。詳細は、Quarkus の「HTTP リファレンス」ガイドの SameSite Cookie セクションを参照してください。
1.4.4. シークレットエンジン
Quarkus でシークレットエンジンを使用して、データを保存、生成、または暗号化できます。
Quarkus は、Quarkus や HashiCorp Vault など、認証情報を安全に保存するための追加の拡張機能を Quarkiverse に提供します。
1.5. 環境プロパティーの秘密
Quarkus は、環境プロパティーにシークレットを保存するためのサポートを提供します。詳細は、Quarkus の 環境プロパティーファイルにシークレットを保存する ガイドを参照してください。
1.5.1. 安全なシリアル化
Quarkus Security アーキテクチャーに RESTEasy Reactive と Jackson が含まれている場合、Quarkus は設定されたセキュリティーに基づいて JSON シリアル化に含まれるフィールドを制限できます。詳細は、「Writing REST services with RESTEasy Reactive」ガイドの JSON serialization セクションを参照してください。
1.5.2. Panache による REST Data による自動生成リソースの保護
REST Data with Panache エクステンションを使用してリソースを自動生成する場合でも、パッケージ jakarta.annotation.security
内のセキュリティーアノテーションを使用できます。詳細は、Quarkus の「Generating Jakarta REST resources with Panache」ガイドの Securing endpoints セクションを参照してください。
1.6. セキュリティー脆弱性検出
ほとんどの Quarkus タグは、米国の National Vulnerability Database (NVD) に報告されます。セキュリティーの脆弱性の詳細は、Quarkus でのセキュリティーの脆弱性の検出とレポート ガイドを参照してください。