第1章 OpenID Connect (OIDC) と Keycloak を使用して認証を一元化する
保護されたリソースへ安全にアクセスできるように、Keycloak Authorization Services を使用して Quarkus アプリケーションでベアラートークン認可を有効にする方法を説明します。
1.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
Keycloak Authorization エクステンション (quarkus-keycloak-authorization
) は、OpenID Connect エクステンション (quarkus-oidc
) を拡張して、高度な認可機能を提供します。保護されたリソースへのアクセスを動的に管理するポリシーエンフォーサーを備えています。アクセスは Keycloak で定義された権限によって管理され、柔軟で動的なリソースベースのアクセス制御 (RBAC) をサポートします。
Keycloak を使用しており、認可決定を処理するために環境で Keycloak Authorization Services が有効になっている場合にのみ、quarkus-keycloak-authorization
エクステンションを使用します。
Keycloak を使用していない場合、または Keycloak が Keycloak Authorization Services なしで設定されている場合は、代わりに quarkus-oidc
エクステンションを使用します。
仕組み
quarkus-keycloak-authorization
エクステンションは、Keycloak の認可責任を一元化し、セキュリティーを強化して、アプリケーションのメンテナンスを簡素化します。
-
ベアラートークンを検証するために
quarkus-oidc
エクステンションを使用します。 - 検証されたトークンを Keycloak Authorization Services に送信します。
- これにより、Keycloak はリソース名、識別子、URI などの属性を使用して、リソースベースの権限を動的に評価できるようになります。
認可決定を外部化することで、次のことが可能になります。
- アプリケーションコードを変更せずに、多様なアクセス制御ストラテジーを実装できます。
- セキュリティー要件が進化するにつれ、再デプロイの必要性を軽減できます。
互換性
このエクステンションは、Quarkus OIDC サービスアプリケーション とのみ互換性があります。ロールベースのアクセス制御などの明示的なメカニズムを動的認可ポリシーで補完します。
主な特長
- 集中管理: アプリケーション間で一貫したセキュリティーポリシーを実現するために、認可の決定を Keycloak に委譲します。
- 動的権限: リソース属性を使用してアクセス制御を動的に定義します。
- メンテナンスの簡素化: アクセスポリシーが変更されたときにアプリケーションを更新して再デプロイする必要性を軽減します。
セットアップ
このエクステンションを使用する前に、次の点を確認してください。
- Keycloak インスタンスで Keycloak Authorization Services が有効化されている。
-
Quarkus アプリケーションに
quarkus-keycloak-authorization
エクステンションが含まれている。
詳細な手順は、OIDC ベアラートークン認証 ガイドを参照してください。
関連情報
Keycloak Authorization Services とポリシーエンフォーサーの詳細は、公式ドキュメント Keycloak Authorization Services ドキュメント を参照してください。