The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.
このページを編集

Basic認証

HTTP Basic authentication is one of the least resource-demanding techniques that enforce access controls to web resources. You can secure your Quarkus application endpoints by using HTTP Basic authentication. Quarkus includes a built-in authentication mechanism for Basic authentication.

Basic authentication uses fields in the HTTP header and does not rely on HTTP cookies, session identifiers, or login pages.

Authorization ヘッダー

An HTTP user agent, like a web browser, uses an Authorization header to provide a username and password in each HTTP request. The header is specified as Authorization: Basic <credentials>, where credentials are the Base64 encoding of the user ID and password, joined by a colon.

例:

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

Basic認証メカニズムは、送信されるクレデンシャルの機密性保護を提供しません。 クレデンシャルは転送時に Base64 でエンコードされるだけで、暗号化もハッシュ化もされません。 したがって、機密性を提供するには、HTTPS で Basic 認証を使用してください。

Basic認証は、すべてのウェブブラウザとほとんどのウェブサーバが理解できる、よく規定された単純なチャレンジとレスポンスのスキームです。

Basic認証を使用した場合の制限事項

次の表は、Quarkusアプリケーションを保護するためにHTTP Basic認証を使用する際の制限事項をまとめたものです:

Table 1. HTTP Basic認証の制限事項
制限 説明

認証情報がプレーンテキストで送信されます

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

認証情報はリクエスト毎に送信されます

Basic認証では、ユーザー名とパスワードをリクエストごとに送信しなければならず、クレデンシャルが漏洩するリスクが高まります。

アプリケーションの複雑性の増大

Quarkusアプリケーションは、ユーザー名、パスワード、ロールが安全に管理されていることを検証する必要があります。 しかし、このプロセスはアプリケーションに大きな複雑さをもたらす可能性があります。 ユースケースによっては、ユーザー名、パスワード、ロールの管理を専用のサービスに委譲する他の認証メカニズムの方がより安全かもしれません。

QuarkusでのBasic認証の実装

Basic認証を使用してQuarkusアプリケーションを保護する方法の詳細については、次のリソースを参照してください:

ロールベースのアクセスコントロール

Quarkus also includes built-in security to allow for role-based access control (RBAC) based on the common security annotations @RolesAllowed, @DenyAll, @PermitAll on REST endpoints and CDI beans. For more information, see the Quarkus Authorization of web endpoints guide.

関連コンテンツ