Keycloakとは?メリット・デメリットとAuth0・Okta・Cognito比較で導入を判断【2026年版】
Keycloak(キークローク)は、ログイン・シングルサインオン(SSO)・多要素認証といった「認証・認可」をまとめて担うオープンソースの認証基盤です。Auth0やOkta、AWS Cognitoといった商用サービスと比較検討されることが多く、「自前で持つか、マネージドに任せるか」が導入判断の分かれ目になります。この記事では、Keycloakの基礎をおさえたうえで、メリット・デメリット、他製品との比較表、Dockerでの導入手順、日本語化までを2026年時点の最新仕様で整理します。
まとめ:Keycloakが向いている組織・向かない組織(結論)
先に結論です。製品選定の目安は次のとおりです。
- Keycloakが向く:ライセンス費用をかけず認証基盤を持ちたい/オンプレや自社クラウドにセルフホストしたい/認証フローやログイン画面を細かくカスタマイズしたい/既存のLDAP・Active Directoryと統合したい組織。
- Auth0・Oktaが向く:サーバー運用やバージョンアップの手間を避け、マネージドで素早く始めたい組織。Auth0は2021年にOktaが買収した、開発者体験に強いIDaaSです。
- AWS Cognitoが向く:すでにAWS中心で構築しており、AWSサービスと密に連携したい組織。
KeycloakはApache License 2.0で無償・商用利用も可能な代わりに、構築・運用・セキュリティ更新を自分たちで担う必要があります。「無料」ではなく「ライセンス費はゼロだが運用コストはかかる」と捉えるのが正確です。以下で各論を詳しく見ていきます。
Keycloakとは|オープンソースの認証・認可基盤(IAM)
Keycloakは、WebアプリケーションやAPIに対して認証(誰がアクセスしているか)と認可(何にアクセスしてよいか)を提供する、オープンソースのアイデンティティ/アクセス管理(IAM)ソフトウェアです。読み方は「キークローク」。Red Hatが主導して2014年に初版が公開され、現在も活発に開発が続いています。ライセンスはApache License 2.0で、無償かつ商用利用が可能です。
業界標準のOAuth 2.0・OpenID Connect・SAML 2.0に対応しており、認証機能を一から実装せずに、SSOやソーシャルログイン、多要素認証などを短期間で組み込めるのが最大の特徴です。Javaで動作し、現在はQuarkusベースのディストリビューションに刷新されて起動も高速化しています。プロトコルの基礎はOAuth 2.0とは何か?概要、仕組み、実装メリットや活用事例を初心者にもわかりやすく徹底解説やOpenID Connect(OIDC)の基本概念とOAuth 2.0との違いについて詳しく解説もあわせてご覧ください。なお本記事はAuth0・Okta・Cognitoとの比較・導入判断に特化しているため、各機能やSSO・フェデレーションなどの網羅的な基礎解説はKeycloakとは?IDおよびアクセス管理の包括的なソリューションをご覧ください。
Keycloakの主な機能
Keycloakが標準で備える代表的な機能は次のとおりです。いずれも管理コンソール(GUI)またはREST APIから設定できます。
- シングルサインオン(SSO):一度のログインで連携する複数アプリにアクセス可能。OIDC/SAMLで実現します。
- 多要素認証(MFA):ワンタイムパスワード(OTP)を標準サポート。WebAuthn/パスキー(Passkey)にも対応し、ログイン画面に統合されています。
- ロールベースアクセス制御(RBAC):ユーザーにロールを割り当て、アプリ内の操作範囲を制御。
- ソーシャルログイン/IdP連携:Google・GitHubなどのログインや、外部IdPのブローカリングに対応。
- LDAP・Active Directory連携:User Federation機能で既存のユーザー管理と統合。
- レルム(Realm):ユーザーや設定を分離して管理する単位。1インスタンスで複数テナント/環境を分離できます。
Keycloakが使われる主なユースケース
Keycloakは規模や業種を問わず採用されています。代表的な使われ方は次のとおりです。
- 社内システムの統合SSO:勤怠・ドキュメント共有・チャットなど複数の社内ツールを一度のログインで横断利用。既存のActive DirectoryやLDAPと連携して、現在のユーザー管理を活かしたまま導入できます。
- B2B向けSaaSのマルチテナント:レルムを顧客企業ごとに分けることで、ユーザーや設定を論理的に分離。テナントごとに認証ルールやブランディングを変えられます。
- BtoCサービスのソーシャルログイン:GoogleやLINEなどのアカウントでログインできるようにし、会員登録のハードルを下げて離脱を防ぎます。
- API・マイクロサービスの認可基盤:OAuth 2.0/OIDCのトークンを発行し、複数サービス間で統一した認可を実現します。
Keycloakのメリット・デメリット
導入判断に直結するメリット・デメリットを整理します。
| 観点 | メリット | デメリット |
|---|---|---|
| 費用 | ライセンス無償・商用可 | 運用・保守の人件費は必要 |
| カスタマイズ | 認証フロー/画面を拡張可 | SPI開発にJava知識が必要 |
| ホスティング | オンプレ/自社クラウド可 | インフラを自前で用意 |
| 運用 | 設定を一元管理できる | 更新・脆弱性対応を自分で |
| 学習 | 日本語の情報・書籍が豊富 | 独自用語の習得コスト |
要点は、初期費用を抑えつつ高度な機能を使える一方で、構築・運用・セキュリティ更新の責任を自社が負う点です。特にバージョンアップ時の互換性確認やパフォーマンスチューニングは、商用IDaaSなら不要な作業として発生します。
Keycloak・Auth0・Okta・AWS Cognito比較表
商用IDaaSとの違いを一覧にしました(料金は変動するため最新は各公式で確認してください)。
| 項目 | Keycloak | Auth0 | Okta | AWS Cognito |
|---|---|---|---|---|
| 提供形態 | OSS | IDaaS | IDaaS | AWSマネージド |
| ホスティング | セルフホスト | クラウド | クラウド | クラウド |
| ライセンス費 | 無償 | 有償(無料枠あり) | 有償 | 従量課金 |
| カスタマイズ性 | 高い | 中〜高 | 中 | 中 |
| 運用負荷 | 高い | 低い | 低い | 低い |
| 得意領域 | 自前構築・拡張 | 開発者体験 | 大企業の統合認証 | AWS連携 |
判断のポイントはシンプルで、運用負荷を自社で引き受けてでも自由度とコストを取るならKeycloak、運用を任せて立ち上げ速度を取るならAuth0・Okta・Cognitoです。AWS中心の構成なら、AWSと統合しやすいAWS Cognitoとは何か?基本的な機能と利用シーンについて解説も有力な選択肢になります。なお商用の手厚いサポートが必要な場合は、Keycloakをベースにした商用版「Red Hat build of Keycloak(RHBK)」という選択肢もあります。
Keycloakの導入方法(Docker最小手順)
最も手軽なのはDockerでの起動です。2026年6月時点の最新は26.6系で、以下のコマンドで開発用サーバーが立ち上がります。
docker run -p 127.0.0.1:8080:8080 \
-e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
-e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:26.6.3 start-dev
起動後、ブラウザで http://localhost:8080 を開き、上で指定した管理者ユーザーでログインします。26系では一時管理者の作成に KC_BOOTSTRAP_ADMIN_USERNAME / KC_BOOTSTRAP_ADMIN_PASSWORD を使います(古い記事にある KEYCLOAK_ADMIN 系の環境変数は現行では非推奨です)。ZIP版の場合は次のように起動します。
bin/kc.sh start-dev \
--bootstrap-admin-username admin \
--bootstrap-admin-password admin
動作にはJavaが必要で、推奨はOpenJDK 21または25です(OpenJDK 17でも動作しますが非推奨となっており、将来のリリースで削除予定です。公式コンテナイメージはOpenJDK 21)。なお start-dev はTLS無効など開発向けの設定のため、本番環境では start コマンドとHTTPS・本番DB(PostgreSQLなど)を用いた構成にしてください。
開発モードから本番運用(構築)へ進む際は、最低限おさえておきたい設定があります。いずれもコマンドライン引数または設定ファイルで指定します。
- 起動コマンド:
start-devではなくstartを使う。事前にビルド最適化したイメージなら--optimizedを付けて起動を高速化する。 - HTTPS必須:
--https-certificate-fileなどでTLS証明書を設定する。前段のロードバランサーでTLS終端する場合は--proxy-headersを指定する。 - 本番DB:開発用の組み込みDBではなく、
--db postgresのように外部DB(PostgreSQLなど)と接続情報を指定する。 - ホスト名:
--hostnameで公開URLを明示し、リダイレクトやトークン発行のURLを正しく揃える。 - 冗長化・運用:複数ノードでのクラスタ構成、ヘルスチェック(
health-enabled)の有効化、バージョン更新時の移行確認を計画する。
これらの考え方はコンテナイメージ・ZIP配布版のどちらでも共通です。規模や可用性要件に応じて構成を設計してください。
KeycloakのUIを日本語化する方法
Keycloakの管理コンソールやログイン画面は日本語に切り替えられます。最も簡単なのはブラウザの言語設定(Accept-Languageヘッダー)を日本語にする方法で、これだけで多くの画面が日本語表示になります。
翻訳の範囲を広げたい、または自社用語に合わせたい場合は、テーマ内の翻訳ファイル messages_ja.properties を配置してカスタマイズします。標準テーマをコピーしてカスタムテーマを作成し、その中に翻訳ファイルやロゴ・CSSを置くことで、ブランディングと日本語化を両立できます。変更の反映には再起動またはキャッシュクリアが必要です。
よくある質問(FAQ)
Keycloakは商用利用しても無料ですか?
はい。Apache License 2.0のオープンソースで、ライセンス費用なしで商用利用できます。ただし構築・運用・セキュリティ更新は自社負担です。手厚いサポートが必要なら商用版のRed Hat build of Keycloakを検討します。
読み方は?
「キークローク」と読みます。
Auth0との一番の違いは?
Keycloakはセルフホスト型のOSS、Auth0(Okta傘下)はクラウド型のマネージドサービスです。自由度とコストを重視するならKeycloak、運用の手間を減らしたいならAuth0が向きます。
多要素認証(MFA)は使えますか?
ワンタイムパスワード(OTP)を標準でサポートし、WebAuthnやパスキー(Passkey)にも対応しています。特定のユーザーやクライアントにのみMFAを強制することも可能です。
パスワードポリシーは設定できますか?
はい。レルム設定から最小文字数・文字種・履歴・有効期限などを細かく設定できます。
構築は難しいですか?
試すだけならDockerで数分で起動できます。一方、本番運用ではHTTPS化・本番DB・冗長構成・バージョン更新などの設計が必要で、相応の運用スキルが求められます。まずは開発モードで触れてから本番構成を検討するのがおすすめです。
日本語のドキュメントや書籍はありますか?
公式ドキュメントは英語が基本ですが、日本語の解説記事や書籍が複数あり、コミュニティも活発です。情報量が多いため、学習や運用の調べ物で困りにくいのも実務上のメリットです。より詳しくは、midPointの記事で整理しています。