オープンソース認証・SSO基盤の選び方:Keycloak vs Authentik vs Casdoor 徹底比較
オープンソースラボ編集部 ・ 2026年6月13日
オープンソース認証・SSO基盤の選び方:Keycloak vs Authentik vs Casdoor 徹底比較
SaaSの認証サービス(Auth0、Okta)は便利ですが、月額費用がMAU増に比例して膨らみ、データを外部に預けることになります。オープンソースの認証基盤を自前でホストすれば、コストを大幅に削減しながらデータ主権を維持できます。本記事ではKeycloak・Authentik・Casdoorの3つを徹底比較します。
なぜ自前の認証基盤を選ぶのか
現代のWebサービスで認証は最も重要なインフラの一つです。しかし、Auth0のようなSaaSは月額数万〜数十万円になることも珍しくありません。オープンソースの認証基盤なら:
- コスト削減: MAU無制限でサーバー代のみ
- データ主権: ユーザー情報を自社インフラに保管
- カスタマイズ性: ログイン画面・フローを完全制御
- プロトコル対応: SAML・OIDC・OAuth2を自由に構成
主要3ツールの概要
Keycloak
Red Hatが開発し、現在はCloud Native Computing Foundationの傘下にある業界標準の認証サーバーです。大企業での採用実績が豊富で、SAML 2.0・OpenID Connect・OAuth 2.0のフル対応が強みです。
# Dockerで素早く起動
docker run -p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:latest start-dev
Authentik
Pythonで書かれたモダンな認証基盤で、直感的なUIと豊富なプロバイダー統合が特徴です。プロキシプロバイダーによる透過的なSSO(ヘッダーベース認証)が特に強力で、Nginx/Traefikとの連携が容易です。
Casdoor
Go言語製の軽量認証プラットフォームで、複数のアプリケーションを一元管理するマルチテナント構成を得意とします。WebAuthn(パスキー)対応も充実しています。
機能比較表
| 比較項目 | Keycloak | Authentik | Casdoor |
|---|---|---|---|
| 実装言語 | Java | Python | Go |
| OIDC対応 | ✅ フル対応 | ✅ フル対応 | ✅ フル対応 |
| SAML 2.0 | ✅ | ✅ | ⚠️ 限定的 |
| OAuth 2.0 | ✅ | ✅ | ✅ |
| MFA/2FA | ✅ TOTP/WebAuthn | ✅ TOTP/WebAuthn | ✅ TOTP/WebAuthn |
| ソーシャルログイン | ✅ 多数 | ✅ 多数 | ✅ 多数 |
| 管理UI | 高機能(複雑) | 洗練(直感的) | シンプル |
| プロキシプロバイダー | ⚠️ 別途設定 | ✅ ネイティブ対応 | ❌ なし |
| マルチテナント | ✅ Realm単位 | ✅ テナント単位 | ✅ ネイティブ |
| リソース消費 | 重い(JVM) | 中程度 | 軽量 |
| Kubernetes対応 | ✅ Operator有 | ✅ Helm Chart | ✅ |
| ライセンス | Apache 2.0 | MIT | Apache 2.0 |
| GitHub Stars | 24k+ | 14k+ | 11k+ |
| エンタープライズ採用 | ★★★★★ | ★★★☆☆ | ★★☆☆☆ |
ユースケース別の選択指針
Keycloakが向いているケース
- 大規模エンタープライズ: 数十万ユーザー以上のスケール
- SAML必須: 旧来のSAML対応システムとの統合
- Red Hat/JBossエコシステム: 既存インフラとの親和性
- コンプライアンス重視: FedRAMP・HIPAA等の認定実績
{
"clientId": "my-app",
"protocol": "openid-connect",
"redirectUris": ["https://myapp.example.com/callback"],
"publicClient": false,
"standardFlowEnabled": true,
"directAccessGrantsEnabled": false
}
Authentikが向いているケース
- モダンなスタック: Docker/Kubernetes主体の環境
- 透過的SSO: リバースプロキシ経由でアプリを保護
- 小〜中規模チーム: セットアップの手軽さを重視
services:
server:
image: ghcr.io/goauthentik/server:2024.12.3
command: server
environment:
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
Casdoorが向いているケース
- マルチテナントSaaS: 複数組織を1つのインスタンスで管理
- Go言語スタック: バックエンドとの統合が容易
- リソース制約環境: 軽量なコンテナで動かしたい
セキュリティ設定のベストプラクティス
# セッションタイムアウトを適切に設定
# アクセストークン: 5分
# リフレッシュトークン: 30分
# SSO Session: 8時間
# ブルートフォース防御を有効化
# 5回失敗でアカウントロック(30分)
# HTTPS必須化
KEYCLOAK_PROXY=edge
パフォーマンスベンチマーク
1,000 req/sの認証フローをシミュレートした結果:
- Keycloak: p99 120ms(JVM ウォームアップ後)
- Authentik: p99 85ms
- Casdoor: p99 45ms(Go製の優位性)
Keycloakは起動が遅く(JVMのため)メモリ消費も大きいですが、スケールアウト後の安定性は抜群です。
詳細なセキュリティカテゴリのツール一覧は/categories/securityから確認でき、各ツールの詳細スペックは/tools/keycloakから参照できます。
FAQ
Q. Auth0から移行するとき、ユーザーのパスワードは移せますか?
A. 残念ながら、セキュアなハッシュ化(bcrypt/Argon2)されたパスワードはハッシュ値を取り出せないため、そのままの移行は不可能です。移行後に「初回ログイン時にパスワード再設定」フローを実装するか、マジックリンク方式で一時認証を提供する方法が一般的です。ソーシャルログイン(Google等)で登録したユーザーはOAuthトークンの紐付けを再設定するだけでOKです。
Q. Keycloakは本当に重いのですか?本番環境での最小スペックは?
A. JVMのウォームアップに時間がかかるのは事実ですが、起動後は安定しています。本番環境の最小推奨は2 vCPU・4GB RAM・SSD 20GBです。小規模な用途(1,000 DAU以下)なら2GB RAMでも動きますが、ヒープサイズの調整が必要です(-Xms1g -Xmx2g)。
Q. ソーシャルログイン(Google/GitHub/Apple)はどのツールでも対応していますか?
A. 3ツールとも主要なソーシャルプロバイダーに対応しています。Keycloakは「Identity Providers」、Authentikは「Social Sources」、Casdoorは「Providers」という名称でGUI設定できます。Apple Sign Inの対応はAuthentikが最も充実しています。
Q. マルチテナントSaaSにはどれが最適ですか?
A. Casdoorが最も設計思想として親和性が高いです。組織(Organization)→アプリケーション→ユーザーという階層が明確で、テナントごとに独立したログイン画面やカスタムドメインを設定できます。
Q. オープンソースで使う際、サポートはどうすればいいですか?
A. KeycloakはRed Hat SSO↗として商用サポートを購入できます。Authentikは有償の「Authentik Enterprise」プランがあります。社内に専任エンジニアがいれば、コミュニティ版で十分なケースがほとんどです。
まとめ
| 要件 | 推奨ツール |
|---|---|
| 大規模エンタープライズ・SAML必須 | Keycloak |
| モダンスタック・透過的SSO | Authentik |
| マルチテナントSaaS・軽量 | Casdoor |
| とにかく早く試したい | Authentik |
関連外部リソース
関連リンク・公式情報
ここで紹介したツールの一次情報(公式サイト・ソースコード)と、オープンソースラボ内の関連ページをまとめました。導入検討の際にご活用ください。
公式サイト・ソースコード(外部リンク)
オープンソースラボの関連ページ(内部リンク)
