1. Keycloakとは何ですか?
キークロークは、オープンソースの ID およびアクセス管理 (IAM) ソリューションであり、当初は Red Hat によって開発され、現在はCNCFインキュベーション(クラウド ネイティブ コンピューティング財団)。 Keycloakは、WebシステムとRESTful Webサービスにシングル・サインオン(SSO)、アイデンティティ管理、アプリケーション・セキュリティを提供します。
Keycloak の目標は、セキュリティをシンプルにすることです。通常、開発者が自分で作成する必要があるセキュリティ機能は、すぐに利用でき、組織のニーズに合わせてカスタマイズできます。
開発の歴史
2014: Keycloak は JBoss/Red Hat プロジェクトとして誕生しました
2018: Keycloak 4.0 — 認可サービス、UMA 2.0をサポート
2020: Keycloak.X (Quarkus ベース) プレビュー
2022: Keycloak 20 — WildFly ディストリビューションが削除され、正式に Quarkus に切り替えられました
2024: KeycloakがCNCFインキュベーションプロジェクトになる
2026: Keycloak 26.5.x — ワークフロー、パスキー、MCP をサポートする現在のバージョン
2. ID とアクセス管理が必要なのはなぜですか?
最新のエンタープライズ システムでは、次の場合に ID とアクセスの管理が複雑になります。
多くのアプリケーションは共通認証 (SSO) を必要とします。
外部 ID プロバイダー (Google、Azure AD、LDAP) との統合が必要
高度なセキュリティのために多要素認証 (MFA) が必要
複雑な権限管理 (RBAC、ABAC、きめ細かい権限)
セキュリティ標準(OAuth 2.0、OIDC、SAML 2.0、FAPI 2.0)に準拠
SaaS アプリケーションのマルチテナンシー
Keycloak IAM/SSO の概要: アプリケーション → Keycloak → アイデンティティプロバイダー
3. Keycloakの主な機能
シングル サインオン (SSO) とシングル サインアウトブラウザアプリケーション用
OpenID コネクトそしてOAuth 2.0サポート
SAML 2.0サポート
ID ブローカーリング— 外部 OIDC または SAML ID プロバイダー経由で認証する
ソーシャルログイン— Google、GitHub、Facebook、Apple、Microsoft でサインインします
ユーザーフェデレーション— LDAP と Active Directory からユーザーを同期します
ケルベロスブリッジ— Kerberosサーバーにログインしたユーザーを自動的に認証します
管理コンソール— ユーザー、ロール、クライアント、構成の一元管理
アカウントコンソール— ユーザーが自分のアカウントを管理できるようにします
テーマのサポート— ログイン、アカウント、管理者、電子メールインターフェイスをカスタマイズします
二要素認証— TOTP/HOTP、WebAuthn、パスキー
認可サービス— ポリシーと権限による詳細な承認
組織— CIAM のマルチテナント (B2B、B2B2C)
ワークフロー— 管理自動化 (IGA)
トークンマッパー— トークン内のクレームをカスタマイズする
イベントと監査— 監査ログとイベント リスナー
4. 中心となる概念
レルム
レルムは、一連のユーザー、認証情報、ロール、およびグループを管理します。各ユーザーはレルムに属し、レルムにログインします。レルムは互いに分離されており、そのレルムに属するユーザーのみが管理および認証されます。
クライアント
クライアントは、Keycloakによるユーザーの認証を必要とするエンティティ(アプリケーション、サービス)です。クライアントは、Web アプリ、モバイル アプリ、REST API、または他のサービスを呼び出すためにトークンを必要とするサービスです。
ユーザー
ユーザーはシステムにログインできるエンティティです。ユーザーには属性 (電子メール、ユーザー名、電話番号など) があり、グループに属し、役割が割り当てられます。
役割
ロールによって、ユーザーのタイプまたはカテゴリ (管理者、ユーザー、マネージャー) が決まります。アプリケーションは、個々のユーザーではなくロールに基づいてアクセス権を割り当てます。
グループ
グループはユーザーのグループを管理します。グループには属性と役割のマッピングがあります。ユーザーはグループから属性とロールのマッピングを継承します。
セッション
ユーザーがログインすると、ログイン時間や SSO に参加したアプリケーションに関する情報など、ログイン セッションを管理するためのセッションが作成されます。
5. Quarkus の Keycloak アーキテクチャ
バージョン 20 以降では、Keycloak は完全に Quarkus フレームワーク上で実行され、以下を提供します。
起動時間が非常に速い— コンテナおよびサーバーレスに適しています
メモリ使用量が小さい— クラウドネイティブの導入向けに最適化
ビルド時の最適化— プリコンパイル済み構成
ネイティブイメージのサポート— GraalVM をネイティブで実行する機能
Keycloak アーキテクチャ: Quarkus ランタイム、Infinispan キャッシュ、Hibernate ORM、管理者/アカウント コンソール
| 成分 | 説明する |
|---|---|
| Quarkus ランタイム | アプリケーション サーバー (WildFly を置き換える) |
| インフィニスパン | セッション、トークンの分散キャッシュ |
| 休止状態 ORM | データベース永続性のための ORM 層 |
| データベース | PostgreSQL (推奨)、MySQL、MariaDB、Oracle、MSSQL |
| 管理コンソール | React ベースの SPA (PatternFly 5) |
| アカウントコンソール | ユーザーのセルフサービスのための React ベースの SPA |
6. Keycloak、Auth0、Okta、Azure AD の比較
| 基準 | キークローク | 認証0 | オクタ | Azure AD |
|---|---|---|---|---|
| ライセンス | Apache 2.0 (FOSS) | コマーシャル | コマーシャル | コマーシャル |
| 導入 | 自己ホスト型 | クラウドSaaS | クラウドSaaS | クラウドSaaS |
| 費用 | 無料(自己運営) | 月額 35 ドルから | ユーザーあたり月額 2 ドルから | ユーザーあたり月額 6 ドルから |
| カスタマイズ | 非常に高い (オープンソース) | 中くらい | 中くらい | 短い |
| OIDC/OAuth2 | 満杯 | 満杯 | 満杯 | 満杯 |
| SAML | 満杯 | 持っている | 満杯 | 満杯 |
| LDAP/AD | 満杯 | 企業 | 満杯 | ネイティブ |
| MFA | TOTP、WebAuthn、パスキー | 満杯 | 満杯 | 満杯 |
7. 実際の使用例
エンタープライズ SSO: すべての内部アプリケーションに対するシングル サインオン
顧客 IAM (CIAM): 組織で顧客 ID を管理
APIセキュリティ: OAuth 2.0 トークンを使用した安全な REST API
マイクロサービス認証: クライアント資格情報を使用したサービス間認証
ソーシャルログイン: ユーザーが Google、Facebook、GitHub でログインできるようにします
LDAP/ADフェデレーション: 既存のディレクトリ システムを統合する
コンプライアンスのためのMFA: PCI-DSS、HIPAA、SOC 2 要件に適合
8. コース概要
コースに含まれるもの25レッスンに分けられる7部、すべての Keycloak 26.x モジュールをカバーします。
パート 1: プラットフォーム (レルム、ユーザー、グループ、ロール、権限)
パート 2: SSO プロトコル (OIDC、SAML、クライアント スコープ、トークン、DPoP)
パート 3: 認証と MFA (フロー、OTP、WebAuthn、パスキー、ID ブローカリング)
パート 4: フェデレーションと認可 (LDAP/AD、組織、認可サービス、ワークフロー)
パート 5: セキュリティとカスタマイズ (テーマ、イベント、強化、ボールト)
パート6: 実践的な統合 (Spring Boot、React/Angular、Node.js、API Gateway)
パート 7: 本番運用 (デプロイメント、HA、Kubernetes、モニタリング)