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の記事で整理しています。

関連記事

資料請求

RELATED POSTS 関連記事