The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Quarkus Security アーキテクチャー

Quarkus Securityアーキテクチャは、いくつかの組込認証メカニズムを提供し、高度にカスタマイズ可能です。 QuarkusのHTTPアプリケーションを保護する主なメカニズムは、 HttpAuthenticationMechanism インタフェースです。

Quarkus Securityのアーキテクチャの概要

When a client sends an HTTP request, Quarkus Security orchestrates security authentication and authorization by interacting with several built-in core components, including HttpAuthenticationMechanism, IdentityProvider, and SecurityIdentityAugmentor.

順次行われるセキュリティ検証の結果、3つのうち1つの結果が得られます:

  • The HTTP request gets authenticated and authorized, and access to the Quarkus application gets granted.

  • The HTTP request authentication fails, and the requester receives a challenge specific to the authentication mechanism, for example, a 401 error, a URL redirect to reauthenticate, or some other custom authentication challenge response. For practical examples of challenge responses, see the Quarkus Security Tips and Tricks guide.

  • The HTTP request authorization fails, and the requester gets denied access to the Quarkus application.

次の図は、Quarkus Securityアーキテクチャの詳細なプロセスフローを段階的に説明したものです:

Quarkus Security architecture process flow
Figure 1. Quarkus Securityのアーキテクチャとプロセスフロー

Quarkus Securityアーキテクチャのコアコンポーネント

HttpAuthenticationMechanism

Quarkus Securityは、 HttpAuthenticationMechanism を使用してHTTPリクエストから認証クレデンシャルを抽出し、 IdentityProvider に委任して、認証クレデンシャルを SecurityIdentity に変換します。たとえば、クレデンシャルは、 Authorization ヘッダー、クライアントの HTTPS 証明書、または Cookie から取得することができます。

When Quarkus Security rejects an authentication request, HttpAuthenticationMechanism returns an authentication challenge to the client. The type of challenge depends on the authentication mechanism. For example, with the OIDC OpenID Connect (OIDC) Authorization Code Flow mechanism, a redirect URL gets generated, and the client is returned to the OpenID Connect provider to authenticate.

IdentityProvider

IdentityProvider は、認証クレデンシャルを検証し、ユーザー名、ロール、元の認証クレデンシャル、およびその他の属性を持つ SecurityIdentity にマップします。

認証されたリソースごとに SecurityIdentity インスタンスを注入することで、認証された ID 情報を取得することができます。

他のコンテキストでは、同じ情報またはその一部を他の並列表現にすることが可能です。例えば、Jakarta RESTの SecurityContext 、JSON Web Tokens(JWT)の JsonWebToken など。

詳細については、Quarkus Identityプロバイダー ガイドを参照してください。

SecurityIdentityAugmentor

Because Quarkus Security is customizable, you can, for example, add authorization roles to SecurityIdentity and register and prioritize one or more SecurityAugmentor implementations.

登録された SecurityIdentityAugmentor のインスタンスは、セキュリティ認証プロセスの最終段階で呼び出されます。詳細については、「セキュリティのヒントとコツ」ガイドの Security Identityのカスタマイズ セクションを参照してください。

サポートされている認証メカニズム

The Quarkus Security framework supports multiple authentication mechanisms, which can also be combined. Some supported authentication mechanisms are built into Quarkus, while others require you to add an extension.

To learn about security authentication in Quarkus and the supported mechanisms and protocols, see the Quarkus Authentication mechanisms in Quarkus guide.

プロアクティブ認証

Quarkusでは、デフォルトでプロアクティブ認証が有効になっています。 受信リクエストにクレデンシャルがある場合、ターゲットページに認証が必要ない場合でも、リクエストは常に認証されます。 詳細については、Quarkusの プロアクティブ認証 ガイドを参照してください。

Quarkus Securityのカスタマイズ

Quarkus Security is customizable. You can customize the following core security components of Quarkus:

  • HttpAuthenticationMechanism

  • IdentityProvider

  • SecurityidentityAugmentor

リアクティブセキュリティやセキュリティプロバイダーの登録方法など、Quarkus Securityのカスタマイズに関する詳細は、Quarkus Security tips and tricks ガイドを参照してください。

関連コンテンツ