2.3. サポート対象のその他の認証メカニズム
Quarkus Security はエクステンションを使用して次の認証メカニズムもサポートします。
2.3.1. OpenID Connect 認証
OpenID Connect (OIDC) は、OAuth 2.0 プロトコル上で動作するアイデンティティーレイヤーです。OIDC を使用すると、クライアントアプリケーションは、OIDC プロバイダーによって実行される認証に基づきユーザーのアイデンティティーを確認し、そのユーザーに関する基本情報を取得できます。
Quarkus の quarkus-oidc
エクステンションは、ベアラートークンと認可コードフローの認証メカニズムをサポートする、リアクティブで相互運用可能なマルチテナント対応の OIDC アダプターを提供します。ベアラートークン認証メカニズムは、HTTP 認証ヘッダーからトークンを展開します。
認可コードフローメカニズムは、ユーザーを OIDC プロバイダーにリダイレクトして、ユーザーのアイデンティティーを認証します。ユーザーが Quarkus にリダイレクトされた後、メカニズムにより ID、アクセストークン、およびリフレッシュトークンに付与された提供コードを交換して認証プロセスを完了します。
更新可能な JSON Web Key (JWK) セットを使用して ID の検証と JSON Web Token (JWT) トークンへのアクセスを行うか、リモートでそれらをイントロスペクトできます。ただし、バイナリートークンとも呼ばれる不透明トークンは、リモートでのみイントロスペクトできます。
Quarkus OIDC エクステンションを使用すると、ベアラートークンと認可コードフロー認証メカニズムは SmallRye JWT 認証 を使用して、JWT トークンを MicroProfile JWT org.eclipse.microprofile.jwt.JsonWebToken
として表します。
2.3.1.1. OIDC 認証に使用する追加の Quarkus リソース
Quarkus アプリケーションの保護に使用できる OIDC 認証および認可方法の詳細は、次のリソースを参照してください。
OIDC トピック | Quarkus 情報リソース |
---|---|
ベアラートークン認証メカニズム | |
認可コードフロー認証メカニズム | |
OIDC と SAML アイデンティティーブローカー | |
ベアラートークン認証または認可コードフローメカニズムをサポートできるマルチテナント | |
一般的に使用される OpenID Connect プロバイダーを使用して Quarkus を保護する | |
Keycloak を使用して認証を一元化する |
実行時に Quarkus OIDC エクステンションを有効にするには、ビルド時に quarkus.oidc.tenant-enabled=false
を設定します。次に、システムプロパティーを使用して実行時に再度有効にします。
マルチテナント OIDC デプロイメントにおける個別のテナント設定の管理の詳細は、"OpenID Connect (OIDC) マルチテナントの使用" ガイドの テナント設定の無効化 セクションを参照してください。
2.3.1.2. OpenID Connect クライアントとフィルター
quarkus-oidc-client
エクステンションは、次のトークングラントをサポートする OpenID Connect および OAuth2 プロバイダーからアクセストークンを取得し、更新するための OidcClient
を提供します。
-
client-credentials
-
password
-
refresh_token
quarkus-oidc-client-filter
エクステンションには quarkus-oidc-client
エクステンションが必要です。これは、OidcClient
によって取得されたアクセストークンを HTTP Authorization
ヘッダーの Bearer
スキーム値として設定する JAX-RS RESTful Web サービス OidcClientRequestFilter
を提供します。このフィルターは、現在の Quarkus エンドポイントに注入された MicroProfile REST クライアント実装に登録できますが、このサービスエンドポイントの認証要件とは関係ありません。たとえば、パブリックエンドポイントにしたり、mTLS で保護したりできます。
このシナリオでは、Quarkus OpenID Connect アダプターを使用して Quarkus エンドポイントを保護する必要はありません。
quarkus-oidc-token-propagation
エクステンションには quarkus-oidc
エクステンションが必要です。これは、OpenID Connect ベアラートークンまたは認可コードフローアクセストークンを HTTP Authorization
ヘッダーの Bearer
スキーム値として設定する Jakarta REST TokenCredentialRequestFilter
を提供します。このフィルターは、現在の Quarkus エンドポイントに注入された MicroProfile REST クライアント実装に登録できます。これは、Quarkus OIDC アダプターを使用して保護する必要があります。このフィルターは、アクセストークンをダウンストリームサービスに伝播できます。
詳細は、OpenID Connect クライアントとトークンの伝播のクイックスタート と、OpenID Connect (OIDC) および OAuth2 クライアントとフィルターのリファレンス ガイドを参照してください。
2.3.2. SmallRye JWT 認証
quarkus-smallrye-jwt
エクステンションは、MicroProfile JSON Web Token (JWT) 2.1 実装と、署名および暗号化された JWT
トークンを検証するための複数のオプションを提供します。これらは org.eclipse.microprofile.jwt.JsonWebToken
として表されます。
quarkus-smallrye-jwt
は、quarkus-oidc
ベアラートークン認証メカニズムの代替手段であり、Privacy Enhanced Mail (PEM) キーまたは更新可能な JWK
キーセットのいずれかを使用して JWT
トークンのみを検証します。quarkus-smallrye-jwt
は JWT 生成 API も提供しており、これを使用することで signed
、inner-signed
、encrypted
の JWT
トークンを簡単に作成できます。
詳細は、JWT Using JWT RBAC ガイドを参照してください。