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-resteasy-client-oidc-filter エクステンションには、quarkus-oidc-client エクステンションが必要です。これは、OidcClient によって取得されたアクセストークンを HTTP Authorization ヘッダーの Bearer スキーム値として設定する JAX-RS RESTful Web サービス OidcClientRequestFilter を提供します。このフィルターは、現在の Quarkus エンドポイントに注入された MicroProfile REST クライアント実装に登録できますが、このサービスエンドポイントの認証要件とは関係ありません。たとえば、パブリックエンドポイントにしたり、mTLS で保護したりできます。
このシナリオでは、Quarkus OpenID Connect アダプターを使用して Quarkus エンドポイントを保護する必要はありません。
quarkus-resteasy-client-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 RBAC の使用 ガイドを参照してください。