Keycloak
OIDC / OAuth 2.0 / SAML を話すアプリ向けのオープンソース ID 管理・アクセス制御サーバ。
- カテゴリ: Identity & Policy
- CNCF 成熟度: Incubating
- 言語: Java (
maven.compiler.release17) - ライセンス: Apache-2.0
- リポジトリ: keycloak/keycloak
- ドキュメント基準コミット:
e733440(2026-06-24、タグ26.6.3近傍)
何をするものか
Keycloak は単独で動く ID プロバイダ (IdP) である。アプリは自前でログインを実装せず、ログイン・シングルサインオン・トークン発行を Keycloak に委譲する。OpenID Connect / OAuth 2.0 / SAML 2.0 を話すため、Web アプリ・モバイルクライアント・バックエンドサービスが標準プロトコル経由でユーザ認証とトークン取得を行える。
トークン発行にとどまらず、ユーザ自体も管理する。アカウントを自前の DB に保存することも、LDAP・Active Directory・Kerberos からフェデレーションすることも、外部 IdP やソーシャルログインから identity をブローカリングすることもできる。さらに User-Managed Access (UMA) 2.0 ベースのきめ細かい Authorization Services を備え、ポリシー駆動のアクセス判定を一箇所に集約したいプロジェクトに対応する。
ランタイムは Quarkus アプリケーションである。同一サーバがログインフロー・admin REST API・React 製の Admin / Account コンソール・(任意の) Kubernetes Operator を提供する。
いつ使うか
- トークンエンドポイントだけでなく、ユーザストレージ・SSO・トークン発行まで備えた本格的な IdP が要るとき。
- エンタープライズディレクトリ (LDAP・Active Directory・Kerberos) と統合する、または外部・ソーシャル IdP をブローカリングする必要があるとき。
- OIDC・OAuth 2.0・SAML をプロトコルごとに別コンポーネントへ分けず、1 つのサーバで賄いたいとき。
- 集中管理されたポリシー駆動の認可 (UMA 2.0 Authorization Services) が要るとき。
ユーザ管理を持たない軽量な OAuth2/OIDC トークンサーバだけが欲しい場合は重すぎる。そこは専用のトークンサーバの方が合う。
このディープダイブの構成
- 歴史: 起源・マイルストーン・存在理由。
- アーキテクチャ: コンポーネントとリクエストの流れ。
- 採用事例・エコシステム: 誰が動かし、周囲に何があるか。
- 内部実装: ソースから読んだ重要なコードパス。
- はじめに: インストールと最初の動く構成。
出典
- keycloak/keycloak (GitHub)
- Keycloak (CNCF プロジェクトページ)
- Keycloak joins CNCF as an incubating project
- Migrating to Quarkus distribution
- Keycloak 17 is out, Quarkus is now the default (n-k.de)
- Getting started with Keycloak on Docker
- Keycloak releases
- ADOPTERS.md (リポジトリ内)
- Keycloak (Wikipedia)
- Best Keycloak Alternatives & Competitors 2025 (Oso)
- State of Open-Source Identity 2025 (House of FOSS)