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のアーキテクチャの概要

クライアントがHTTPリクエストを送信すると、Quarkus Securityは、 HttpAuthenticationMechanismIdentityProviderSecurityIdentityAugmentor などのいくつかの組み込みコアコンポーネントと相互作用することによって、セキュリティ認証と認可をオーケストレートします。

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

  • HTTPリクエストの認証と認可が行われ、Quarkusアプリケーションへのアクセスが許可されます。

  • HTTP リクエストの認証に失敗すると、リクエスト元は認証メカニズム固有のチャレンジ( 401 エラー、再認証のための URL リダイレクト、その他のカスタム認証チャレンジレスポンスなど)を受け取ります。 チャレンジレスポンスの実用的な例については、Quarkus Security Tips and Tricks ガイドを参照してください。

  • HTTPリクエストの認可に失敗すると、Quarkusアプリケーションへのアクセスが拒否されます。

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

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

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

HttpAuthenticationMechanism

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

Quarkus Securityが認証要求を拒否すると、 HttpAuthenticationMechanism はクライアントに認証チャレンジを返却します。 チャレンジのタイプは認証メカニズムによって異なります。 たとえば、OIDC OpenID Connect(OIDC)の認可コードフローメカニズムでは、リダイレクトURLが生成され、クライアントはOpenID Connectプロバイダに返されて認証されます。

IdentityProvider

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

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

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

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

SecurityIdentityAugmentor

Quarkus Securityはカスタマイズ可能であるため、たとえば、認可ロールを SecurityIdentity に追加したり、1つまたは複数の SecurityAugmentor 実装を登録し、優先順位を付けることができます。

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

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

Quarkusセキュリティフレームワークは、複数の認証メカニズムをサポートしており、それらを組み合わせることもできます。 サポートされている認証メカニズムの中には、Quarkusに組み込まれているものもあれば、エクステンションを追加する必要があるものもあります。

Quarkusのセキュリティ認証と、サポートされているメカニズムやプロトコルについては、 Quarkusの認証メカニズム を参照してください。

プロアクティブ認証

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

Quarkus Securityのカスタマイズ

Quarkus Security はカスタマイズ可能です。Quarkusの以下のコアセキュリティコンポーネントをカスタマイズできます:

  • HttpAuthenticationMechanism

  • IdentityProvider

  • SecurityidentityAugmentor

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

関連コンテンツ