Basic 認証
概要
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章 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 認証を使用する場合のいくつかの制限を示しています。
制限 | 説明 |
---|---|
認証情報がプレーンテキストとして送信される | 認証情報が公開されないようにするには、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. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
ユーザー名とパスワードに基づいて
IdentityProvider
を提供する拡張機能を少なくとも 1 つインストールしている。以下に例を示します。
以下の手順では、elytron-security-properties-file
エクステンションを使用してアプリケーションの Basic 認証を有効にする方法を説明します。
2.2. 手順 リンクのコピーリンクがクリップボードにコピーされました!
application.properties
ファイルで、quarkus.http.auth.basic
プロパティーをtrue
に設定します。quarkus.http.auth.basic=true
quarkus.http.auth.basic=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 非実稼働環境のみで、アプリケーションで Quarkus セキュリティーをテストする場合は、以下を行います。
埋め込みレルムの認証を有効にするには、
quarkus.security.users.embedded.enabled
プロパティーをtrue
に設定します。security.users.embedded.enabled=true
security.users.embedded.enabled=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なユーザー認証情報、ユーザー名、シークレット、およびロールを設定することもできます。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なユーザー認証情報を設定するために使用できるその他の方法は、Quarkus の「セキュリティーテスト」ガイドの ユーザー情報の設定 セクションを参照してください。
重要application.properties
ファイルでユーザー名、シークレット、およびロールを設定するのは、テストシナリオにのみ適しています。実稼働環境のアプリケーションを保護するには、データベースを使用してこの情報を保存する必要があります。
2.3. 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
ユーザー認証情報をデータベースに保存するために、Basic 認証と Jakarta Persistence を一緒に設定する方法を示す詳細なチュートリアルは、Basic 認証と Jakarta Persistence を使用したセキュリティーの開始 ガイドを参照してください。