Basic 認証


Red Hat build of Quarkus 3.8

Red Hat Customer Content Services

概要

このガイドでは、Quarkus アプリケーションのエンドポイントを保護するための最小限のリソース手法として、HTTP Basic 認証を紹介します。Base64 でエンコードされた認証情報を送信するための Authorization ヘッダーの使用について詳しく説明し、送信中にこれらの認証情報を保護するには HTTPS が必要であることを強調します。認証情報の暗号化の欠如、リクエストごとに認証情報を送信する必要性、アプリケーション内での認証情報の管理の複雑さの増大などの制限を説明します。Basic 認証とロールベースのアクセス制御 (RBAC) の有効化を含む、実装ガイダンスと追加のセキュリティーリソースへの参照も提供します。

Red Hat build of Quarkus ドキュメントへのフィードバックの提供

エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. 次のリンクをクリックして チケットを作成します
  2. Summary に課題の簡単な説明を入力します。
  3. Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
  4. Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Basic 認証

HTTP Basic 認証は、Web リソースへのアクセス制御を実施し、リソースを最も必要としない手法の 1 つです。HTTP Basic 認証を使用して、Quarkus アプリケーションエンドポイントを保護できます。Quarkus には、Basic 認証用の組み込み認証メカニズムが含まれています。

Basic 認証では、HTTP ヘッダー内のフィールドが使用され、HTTP Cookie、セッション識別子、またはログインページには依存しません。

1.1. 認証ヘッダー

Web ブラウザーなどの HTTP ユーザーエージェントは、Authorization ヘッダーを使用して各 HTTP リクエストにユーザー名とパスワードを提供します。ヘッダーは Authorization: Basic <credentials> として指定されます。ここで、credentials はコロンで結合されたユーザー ID とパスワードの Base64 エンコードです。

例:

ユーザー名が Alice で、パスワードが secret の場合、HTTP 認証ヘッダーは Authorization: Basic QWxjZTpzZWNyZXQ= になります。ここで、QWxjZTpzZWNyZXQ= は、Alice:secret 文字列を Base64 でエンコードした表現です。

Basic 認証メカニズムでは、送信されたクレデンシャルの機密性は保護されません。認証情報は、転送中に Base64 でエンコードされ、暗号化またはハッシュ化されません。そのため、機密性を提供するには、HTTPS で Basic 認証を使用します。

基本認証は、すべての Web ブラウザーとほとんどの Web サーバーが理解できる、明確に指定されたシンプルなチャレンジと応答のスキームです。

1.2. Basic 認証の使用時の制限

次の表は、Quarkus アプリケーションを保護するために HTTP Basic 認証を使用する場合のいくつかの制限を示しています。

Expand
表1.1 HTTP Basic 認証の制限
制限説明

認証情報がプレーンテキストとして送信される

認証情報が公開されないようにするには、HTTPS Basic 認証を使用します。リクエストが HTTP 経由で Quarkus に転送されるため、ロードバランサーが HTTPS を終了すると、認証情報がプレーンテキストとして公開されるリスクが高まります。さらに、マルチホップデプロイメントでは、クライアントと最初の Quarkus エンドポイントの間でのみ HTTPS が使用され、認証情報が HTTP 経由で次の Quarkus エンドポイントに伝播されると、認証情報が公開される可能性があります。

認証情報がリクエストごとに送信される

Basic 認証では、各リクエストでユーザー名とパスワードを送信する必要があるため、認証情報が公開されるリスクが高まります。

アプリケーションの複雑さが増す

Quarkus アプリケーションは、ユーザー名、パスワード、およびロールが安全に管理されていることを検証する必要があります。ただし、このプロセスにより、アプリケーションが著しく複雑になる可能性があります。ユースケースによっては、ユーザー名、パスワード、およびロール管理を特殊なサービスに委譲する他の認証メカニズムの方が安全である可能性があります。

1.3. Quarkus での Basic 認証の実装

Basic 認証を使用して Quarkus アプリケーションを保護する方法の詳細は、以下の資料を参照してください。

1.4. ロールベースのアクセス制御

Red Hat build of Quarkus には、REST エンドポイントと CDI Bean 上の共通セキュリティーアノテーション @RolesAllowed@DenyAll@PermitAll に基づくロールベースアクセス制御 (RBAC) を可能にする組み込みセキュリティーも含まれています。詳細は、Quarkus の Web エンドポイントの認可 ガイドを参照してください。

1.5. 参考資料

第2章 Basic 認証を有効にする

Quarkus プロジェクトの Basic 認証 を有効にし、ユーザーがユーザー名とパスワードで認証できるようにします。

2.1. 前提条件

以下の手順では、elytron-security-properties-file エクステンションを使用してアプリケーションの Basic 認証を有効にする方法を説明します。

2.2. 手順

  1. application.properties ファイルで、quarkus.http.auth.basic プロパティーを true に設定します。

    quarkus.http.auth.basic=true
    Copy to Clipboard Toggle word wrap
  2. オプション: 非実稼働環境のみで、アプリケーションで Quarkus セキュリティーをテストする場合は、以下を行います。

    1. 埋め込みレルムの認証を有効にするには、quarkus.security.users.embedded.enabled プロパティーを true に設定します。

      security.users.embedded.enabled=true
      Copy to Clipboard Toggle word wrap
    2. 必要なユーザー認証情報、ユーザー名、シークレット、およびロールを設定することもできます。以下に例を示します。

      quarkus.http.auth.basic=true
      quarkus.security.users.embedded.enabled=true
      quarkus.security.users.embedded.plain-text=true
      quarkus.security.users.embedded.users.alice=alice 
      1
      
      quarkus.security.users.embedded.users.bob=bob 
      2
      
      quarkus.security.users.embedded.roles.alice=admin 
      3
      
      quarkus.security.users.embedded.roles.bob=user 
      4
      Copy to Clipboard Toggle word wrap
      1 3
      ユーザー alice のパスワードは alice、ロールは admin です。
      2 4
      ユーザー bob のパスワードは bob、ロールは user です。

      必要なユーザー認証情報を設定するために使用できるその他の方法は、Quarkus の「セキュリティーテスト」ガイドの ユーザー情報の設定 セクションを参照してください。

      重要

      application.properties ファイルでユーザー名、シークレット、およびロールを設定するのは、テストシナリオにのみ適しています。実稼働環境のアプリケーションを保護するには、データベースを使用してこの情報を保存する必要があります。

2.3. 次のステップ

ユーザー認証情報をデータベースに保存するために、Basic 認証と Jakarta Persistence を一緒に設定する方法を示す詳細なチュートリアルは、Basic 認証と Jakarta Persistence を使用したセキュリティーの開始 ガイドを参照してください。

2.4. 参考資料

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat