パート 1: Keycloak プラットフォーム
レッスン 1: Keycloak の紹介 - エンタープライズにおける IAM と SSO
キークロークとは何ですか?開発経緯(JBossからCNCFインキュベーションまで)
Identity and Access Management (IAM) が必要な理由は何ですか?
中心的な概念: レルム、クライアント、ユーザー、ロール、グループ、セッション
Quarkus (26.x) の Keycloak アーキテクチャ
Keycloak、Auth0、Okta、Azure AD の比較
使用例: SSO、ソーシャル ログイン、LDAP フェデレーション、MFA、API セキュリティ
レッスン 2: Keycloak のインストール - スタンドアロン、Docker、Kubernetes
Ubuntu/CentOS (ベアメタル) に Keycloak をインストールする
Docker および Docker Compose を使用して Keycloak を実行する
Kubernetes Operator のデプロイメント
データベース バックエンドの構成 (PostgreSQL、MySQL、MariaDB)
HTTPS/TLS セットアップとホスト名 v2 構成
開発モードと運用モード
レッスン 3: 管理コンソールと最初のレルムの作成
最初の管理者ユーザーを作成します (管理者ブートストラップとリカバリ)
管理コンソール UI の概要
レルムの作成と構成 (全般、ログイン、電子メール、テーマ、キー)
マスター レルムとカスタム レルム
基本的な管理 CLI (kcadm.sh)。
管理者 REST API の概要
レッスン 4: ユーザー、グループ、およびユーザー プロファイルの管理
ユーザーの作成と管理、資格情報の設定
ユーザープロファイル: カスタム属性、バリデータ、注釈
プログレッシブプロファイリング
グループとサブグループ、グループ属性、役割マッピング
ユーザーの自己登録と必要なアクション
なりすまし、アカウント削除、個人データ
レッスン 5: 役割、権限、およびアクセス制御
レルムの役割とクライアントの役割
複合ロールとデフォルトのロール
ユーザーとグループの役割マッピング
きめ細かい管理者権限 V2
レルム管理の委任
専用レルム管理コンソール
パート 2: SSO プロトコル - OpenID Connect と SAML
レッスン 6: OpenID Connect クライアント - A から Z までの構成
クライアントの種類: パブリック、機密、ベアラーのみ
一般設定、アクセス設定、機能構成
OIDC 認証フロー: 認証コード、暗黙的、クライアント認証情報、デバイス認証
PKCE (コード交換用の証明キー)
CIBA (クライアント開始バックチャネル認証)
OIDC クライアントを React、Spring Boot、Node.js と統合する
レッスン 7: SAML クライアントとプロトコル マッパー
SAML 2.0 クライアント、SAML バインディング (POST、リダイレクト、アーティファクト) の作成
SAML アサーション、XML 署名および暗号化
エンティティ記述子のインポート
OIDC プロトコル マッパー: ユーザー属性、セッション ノート、ハードコード、スクリプト
SAML プロトコル マッパー
Lightweight アクセス トークンとペアワイズ サブジェクト識別子
レッスン 8: クライアント スコープ、トークン管理、および DPoP
クライアント スコープ: デフォルトとオプション、同意設定
レルムのデフォルトのクライアント スコープ、スコープの評価
アクセストークン、IDトークン、リフレッシュトークンのライフサイクル
セッションとトークンのタイムアウト構成
オフラインアクセス、トークン取り消し
DPoP (所有証明の実証)
レッスン 9: クライアント ポリシーと高度なクライアント構成
クライアントポリシーのアーキテクチャ: ポリシー、プロファイル、条件、エグゼキュータ
FAPI 2.0 セキュリティ プロファイルとメッセージ署名
クライアント シークレットのローテーション
サービスアカウントと対象ユーザーのサポート
トークン交換 (標準、JWT 認可付与 RFC 7523)
MCPサーバーの認可サーバーとしてのKeycloak
パート 3: 認証、MFA、および ID ブローカリング
レッスン 10: 認証フロー - 認証フローのカスタマイズ
組み込みフロー: ブラウザ、直接付与、登録、認証情報のリセット
カスタム認証フローの作成
条件付きオーセンティケーター (実行されるサブフロー、クライアント スコープ)
ステップアップ認証とACR/LoAマッピング
セッション制限 (レルムレベル、クライアントレベル)
クライアントポリシーによる動的な認証フローの選択
レッスン 11: 多要素認証 - OTP、WebAuthn、およびパスキー
Google Authenticator、FreeOTP による TOTP/HOTP 設定
OTP ポリシーの構成と回復コード
WebAuthn (FIDO2 セキュリティ キー) のセットアップ
パスキーの統合 (条件付き UI、モーダル UI)
ケルベロス認証
X.509 クライアント証明書認証
レッスン 12: ID ブローカリングとソーシャル ログイン
ソーシャルログイン: Google、Facebook、GitHub、Apple、Microsoft
OpenID Connect および SAML ID プロバイダー
OAuth v2 および Kubernetes ID プロバイダー
初回ログインフローとアカウントリンク
ID プロバイダー マッパーと同期モード
クライアント提案の IdP と IdP ログアウト
パート 4: ユーザー フェデレーション、組織、および認可
レッスン 13: ユーザー フェデレーション - LDAP と Active Directory
LDAP/AD フェデレーションの構成 (ストレージ モード、編集モード)
接続設定: SSL、接続プール、紹介
LDAP マッパー: ユーザー属性、フルネーム、グループ、ロール
MSAD ユーザー アカウント制御マッパー
SSSD/FreeIPAの統合とKerberosブリッジ
カスタム ユーザー ストレージ SPI
レッスン 14: 組織 - マルチテナンシーと CIAM
Keycloakの組織機能をオンにする
組織、ドメイン、属性の作成/管理
メンバー管理: 管理対象、非管理対象、招待
ID プロバイダーを組織に関連付ける
ID ファーストのログイン フロー
組織のクレームをトークンにマッピングする
レッスン 15: 認可サービス - 詳細な認可
リソースサーバー、リソース、スコープ、権限、ポリシー
ポリシーの種類: ロール、ユーザー、グループ、クライアント、時間、JS、集約
UMA 2.0 と許可 API
ポリシー執行者と請求情報ポイント
認可を Spring Boot / Node.js に統合する
評価 API とトラブルシューティング権限
レッスン 16: ワークフロー - IGA による管理の自動化
Keycloakワークフローエンジン(プレビュー)
ワークフロー定義と表現言語
条件とステップの定義
Joiner-Mover-Leaver (JML) プロセス
自動化されたオンボーディング/オフボーディング
レビューと一般的な使用例にアクセスする
パート 5: テーマ、イベント、セキュリティ、および Vault
レッスン 17: カスタム テーマ - ログイン、アカウント、管理者、電子メール
テーマ システム: ログイン、アカウント、管理コンソール、電子メールのテーマ
カスタム テーマ、Freemark テンプレートを作成する
ダークモードのサポート、国際化
PatternFly 5 コンポーネント
ホットデプロイテーマ、テーマリソース
アカウントコンソールv3のカスタマイズ
レッスン 18: イベントの監査とログ記録
ユーザーイベントと管理者イベントの構成
イベントタイプとイベントリスナー
カスタム イベント リスナー SPI
監視用のイベントメトリクス
ロギング: コンソール、ファイル、JSON、ECS 形式、syslog
ELK スタック/Loki との統合
レッスン 19: セキュリティ強化とブルート フォース保護
SSL/HTTPS および管理エンドポイント保護
ブルート フォース保護 (永続的、一時的、複合ロックアウト)
パスワードポリシー
セキュリティヘッダー: CSP、X-Frame-Options、HSTS
reCAPTCHA セットアップ (v2 および Enterprise)
Vault の統合 (ファイルベース、Kubernetes Secret)
パート 6: 実際のアプリケーションの統合
レッスン 20: Keycloak と Spring Boot の統合
Spring Security OAuth2 リソースサーバー
Spring Security OAuth2 クライアント
認可クライアントライブラリ
@PreAuthorize によるロールベースの承認
トークンリレーとサービス間通信
マルチテナンシーとテスト戦略
レッスン 21: Keycloak と React/Angular および Node.js の統合
Keycloak JavaScript アダプター (スタンドアロン ライブラリ)
React の統合 (keycloak-js、react-oidc-context)
Angular の統合 (angular-auth-oidc-client)
Node.js バックエンド (Passport.js、express-openid-connect)
トークン管理、サイレント SSO、保護されたルート
SPA 認証のベスト プラクティス
レッスン 22: Nginx、API ゲートウェイ、マイクロサービスを使用した Keycloak
auth_request / OAuth2 プロキシを使用した Nginx リバース プロキシ
API ゲートウェイ: Kong、Traefik、Keycloak OIDC を使用した APISIX
マイクロサービスの認証パターン
トークンイントロスペクションエンドポイント
Docker レジストリ v2 認証
検証可能な資格情報 (OID4VCI) - 実験的
パート 7: 実稼働、高可用性、および Kubernetes
レッスン 23: Keycloak 本番環境のデプロイとデータベースのチューニング
本番準備チェックリスト
ビルドの最適化 (kc.sh ビルド)
データベースのチューニング: PostgreSQL、接続プール、追加のデータソース
ホスト名 v2、リバース プロキシ、HTTP/HTTPS 設定
JVMチューニング、Argon2ハッシュ、キャッシュ構成
レルムデータのインポート/エクスポート
レッスン 24: 高可用性、クラスタリング、およびマルチサイト展開
Infinispan、jdbc-ping トランスポートを使用した Keycloak クラスタリング
構成不要のセキュアなクラスター通信
セッションレプリケーションと永続的なユーザーセッション
マルチサイトのアクティブ/パッシブ展開
ローリングアップデートとノンブロッキングヘルスチェック
CPU/メモリサイジングガイド
レッスン 25: Kubernetes オペレーター、モニタリング、および管理 CLI
Keycloak オペレーター: Keycloak CR、KeycloakRealmImport CR
オペレーターの詳細構成 (スケジュール、リソース、ネットワークポリシー)
OpenTelemetry: トレース、メトリクス、ロギング
Prometheus メトリクスと Grafana ダッシュボード
管理者 CLI (kcadm.sh) の習得
バックアップ/復元戦略とトラブルシューティング