Keycloakを活用した認証・認可基盤統合による運用効率化とコスト削減事例
導入部
多くの組織において、システムやサービスごとに認証・認可の仕組みが個別に構築されているケースは少なくありません。これは、導入時期や目的の違い、あるいは特定のアプリケーション要件などに起因することが一般的です。しかし、システム数が増えるにつれて、分散した認証・認可基盤は運用管理の複雑性を増大させ、非効率性やコスト増加、さらにはセキュリティリスクの温床となることがあります。
本記事では、このような課題を抱えていたあるエンタープライズ組織が、オープンソースソフトウェア(OSS)であるKeycloakを活用して認証・認可基盤を統合し、どのように運用効率化とコスト削減を達成したか、その具体的な事例をご紹介します。
導入前の状況
事例の組織では、オンプレミス環境および複数のクラウドサービス上に展開された約50種類のアプリケーションやシステムが稼働していました。これらのシステムは、それぞれ異なる認証方式(フォーム認証、Digest認証など)や、個別のアカウント管理データベースを持っていました。一部の重要なシステムでは商用のID管理ソリューションが利用されていましたが、高額なライセンス費用が継続的な負担となっていました。
このような状況下で、技術部門は以下のような課題に直面していました。
- 運用管理の煩雑さ: ユーザーアカウントの追加、削除、更新、パスワードリセットなどがシステムごとに異なり、管理者の負担が非常に大きい。
- セキュリティリスク: アカウント管理ポリシーがシステム間で統一されておらず、脆弱性が存在する可能性。また、退職者のアカウント削除漏れといったリスクも存在する。
- 開発効率の低下: 新規アプリケーション開発のたびに認証・認可機能をゼロから、あるいは既存の断片的な仕組みに合わせて実装する必要があり、開発工数が膨らむ。
- コストの増大: 商用ID管理ソリューションのライセンス費用に加え、分散したシステムそれぞれの認証・認可基盤の維持・運用コストが高い。
- ユーザーエクスペリエンスの低下: 複数のシステムでそれぞれログインが必要となり、ユーザーにとって利便性が低い。
これらの課題は、組織全体のITガバナンス強化、セキュリティレベル向上、そしてコスト最適化という経営層からの要求を満たす上で、抜本的な解決が必要であることを示していました。
導入の意思決定と選定
技術部門では、上記の課題を解決するために、認証・認可基盤の統合プロジェクトを立ち上げました。統合基盤に求められる要件は以下の通りです。
- 複数の認証プロトコル(OpenID Connect, OAuth 2.0, SAMLなど)に対応できること。
- 既存の各種システムとの連携が容易であること。
- スケーラビリティが高く、将来のシステム増加やユーザー数増加に対応できること。
- 高いセキュリティ基準を満たしていること。
- 運用管理が容易になること。
- コスト効率に優れていること。
当初、商用IDaaS(Identity as a Service)や既存の商用ID管理製品のアップグレードも検討されました。しかし、既存システムとの複雑な連携要件や、継続的なライセンスコスト、将来的なカスタマイズの自由度などを考慮した結果、OSSの活用が有力な選択肢として浮上しました。
OSSの中から選定を進めるにあたり、Keycloakが有力視されました。Keycloakは、Red HatがスポンサーとなっているActive DirectoryやLDAP、各種アプリケーションの認証・認可機能を提供する包括的なIdentity and Access Management (IAM) ソリューションです。Keycloakが選定された主な理由は以下の点です。
- 対応プロトコルの豊富さ: OpenID Connect、OAuth 2.0、SAMLなどの標準プロトコルに幅広く対応しており、様々な既存システムとの連携が見込めた。
- アクティブなコミュニティと開発: 継続的な機能改善やセキュリティパッチが提供される見込みが高かった。
- 豊富な機能: シングルサインオン(SSO)、ソーシャルログイン、多要素認証、ユーザー管理、ロールベースアクセス制御(RBAC)など、必要な機能が網羅されていた。
- 拡張性: 標準機能で対応できない場合でも、プロバイダーを開発することでカスタム要件に対応できる柔軟性があった。
- コスト優位性: ライセンス費用がかからず、運用にかかるコストのみで済むため、大幅なコスト削減が見込めた。
導入における懸念点としては、OSSであることによるサポート体制、組織内での運用スキル習得コスト、大規模環境での安定性などが挙げられましたが、これらについては、実績のあるOSSインテグレーターとの連携、PoC(Proof of Concept)による事前検証、内部エンジニアへのトレーニング実施といった対策を講じることで、リスクを低減できると判断されました。
具体的な導入・活用
Keycloakの導入は、影響範囲を考慮し、段階的に進められました。まず、比較的小規模なシステムや新規開発システムから連携を開始し、徐々に重要な基幹システムへと対象を広げていく戦略が採用されました。
アーキテクチャとしては、Keycloakを冗長化構成で構築し、可用性を確保しました。既存のActive Directoryとの連携、および一部の部門別LDAPサーバーとの連携もKeycloak経由で行うことで、ユーザー情報の集約と管理をKeycloakを中心に行えるように設計しました。
既存アプリケーションとの連携は、主にOpenID ConnectまたはSAMLアダプターを利用して行われました。アプリケーション側には、Keycloakが提供するアダプターを組み込むか、標準的なプロトコルに沿った認証ライブラリを実装することで、Keycloakへの認証要求を転送する仕組みを構築しました。これにより、アプリケーション側で個別に認証ロジックを持つ必要がなくなり、大幅なシンプル化が実現しました。
移行プロセスにおいては、既存システムからのユーザーデータ移行が大きな課題となりましたが、Keycloakのインポート機能を活用し、スクリプトによる自動化と複数回のテスト実行を経て、慎重に進められました。
導入によって得られた成果
Keycloakの導入により、この組織は以下のような具体的成果を達成しました。
- コスト削減:
- 高額な商用ID管理ソリューションのライセンス費用が年間で約30%削減されました。
- 分散していた各システムでのアカウント管理にかかっていた運用工数が大幅に削減され、人件費換算で年間約15%の運用コスト削減に寄与しました。
- 新規アプリケーション開発における認証・認可機能の実装工数が削減された結果、開発コストの低減にも繋がりました。
- 効率化:
- ユーザーアカウント管理がKeycloakに一元化されたことで、アカウント作成、権限変更、削除といった作業が大幅に効率化されました。管理者の作業時間は約40%削減されました。
- シングルサインオン(SSO)が実現されたことで、ユーザーは一度のログインで複数のシステムにアクセスできるようになり、業務効率と利便性が向上しました。
- 新規開発における認証・認可機能の実装がKeycloak連携に集約されたため、開発リードタイムが短縮されました。
- 定性的な成果:
- ID管理ポリシーの一元化とKeycloakのセキュリティ機能活用により、組織全体のセキュリティレベルが向上しました。
- アクセス制御の一元管理により、コンプライアンス対応や監査証跡の収集が容易になりました。
- 技術部門内でOSS(特にKeycloak)に関する知見と運用スキルが蓄積され、技術力の向上に繋がりました。
- これらの成果は、経営層への説明材料としても有効であり、IT投資の正当性を示すことができました。
直面した課題と克服
Keycloak導入プロジェクトでは、いくつかの課題に直面しました。
- 既存システムとの連携: 特にレガシーなシステムでは、標準的な認証プロトコルに対応していない場合があり、カスタムアダプターの開発やアプリケーション側の改修が必要となりました。これについては、対象システムの特性を詳細に分析し、改修コストとKeycloak連携によるメリットを比較検討した上で、優先順位を付けて対応しました。
- Keycloak自体の運用・監視: Keycloakサーバー自体の可用性確保やパフォーマンス監視、ログ管理などの運用体制構築が必要でした。これには、既存の監視ツール(Prometheus, Grafanaなど)との連携強化や、OSSを活用したログ分析基盤(Elasticsearch, Kibanaなど)の導入・活用を進めることで対応しました。
- 組織内での教育・啓蒙: 新しい認証基盤への移行に伴い、開発チームや運用チーム、そしてエンドユーザーへの説明とトレーニングが必要でした。丁寧なドキュメント作成、ワークショップ開催、問い合わせ窓口の設置などにより、スムーズな移行を促進しました。
これらの課題は、計画的な準備と、関係部門との密な連携、そしてOSSインテグレーターの専門知識を活用することで、一つずつ克服していきました。
まとめと今後の展望
本事例は、KeycloakというOSSを活用することで、複雑化した認証・認可基盤を統合し、運用効率の大幅な向上と明確なコスト削減を実現した成功事例です。単なる技術導入に留まらず、組織全体のID管理戦略を見直し、セキュリティやガバナンス強化といったビジネス的な成果にも繋がっています。
Keycloakのような成熟したOSSは、適切な計画と導入・運用体制を構築することで、商用製品に匹敵、あるいはそれ以上の柔軟性とコストメリットをもたらす可能性があります。特に、複数のシステムを抱え、ID管理に課題を感じている組織にとって、Keycloakは有力な選択肢となりうるでしょう。
今後は、外部パートナーや顧客との連携においてもKeycloakをIDプロバイダーとして活用したり、KeycloakのGroupやRole機能を活用したよりきめ細やかなアクセス制御を実装したりするなど、さらなる活用拡大を検討しています。OSS活用は、単なるコスト削減手段ではなく、変化に強い柔軟なITインフラを構築し、ビジネスイノベーションを加速させるための重要な戦略であると言えます。