近年、認証基盤のクラウド化が進み、IDaaSやAzure ADが最も注目を浴びています。しかし、IDaaSの料金設定はユーザー単価という制度上、従業員数が多い大企業にとっては費用負担が重いと感じます。そのため、より安価なオープンソースの認証基盤を求める傾向が続いています。オープンソースの認証基盤といえば、KeycloakとOpenAMが有名ですが、具体的な違いまで認識されていることは少ないです。そこで、本記事では、KeycloakとOpenAMを比較しつつ、どのような共通点や違いが存在するかについて解説いたします。
IDaaSやAzure ADによるSSOについてはこちらの記事をご覧ください。
「近年普及を見せるIDaaSとは?メリット、デメリットを解説」
「Azure ADでSSOを実現するメリットや課題とは」
目次
各サービスの概要
まずは、KeycloakとOpenAM各々の概要やメリット、デメリットについて説明します。
Keycloakとは
Keycloakは、Red Hat社が開発したJavaベースのオープンソースソフトウェア(以下、OSS)で、SSOやAPIベースの認証・認可を実現するものです。2014年と比較的新しいOSSで、今現在でも盛んに開発が行われています。主な機能として、ID管理やフェデレーション方式に対応する認証基盤(IdP)を有しています。
Keycloakの詳しい機能などはこちらの記事をご覧ください。
「Keycloakとは〜シンプルな運用でシングルサインオンを実現するOSS〜」
Keycloakのメリット
- わかりやすいGUIがある
オープンソースを初心者が扱うには難しい場合があります。しかし、Keycloakには初心者でも直感的な操作ができるようにわかりやすいGUIを搭載しているため、コマンド操作をせずに扱うことができます。もちろん開発者のためにCLIもあります。 - 後発のOSSで、現在も開発が活発
新しいOSSなので、現在でも開発が盛んに行われています。また、コードベースが少ないため、メンテナンスや機能拡張がしやすいものになります。
Keycloakのデメリット
- リスクベース認証ができない
認証の確実性を高めるリスクベース認証に対応していないため、セキュリティポリシーの観点から敬遠されるケースがあります。 - 代理認証方式に対応していない
フェデレーション方式に対応していないシステムをSSO環境に組み込むことができないため、利用者・管理者双方の負担軽減が一部にとどまってしまいます。
OpenAMとは
OpenAMは、Sun Microsystems社が開発した製品をOpenSSOとしてオープンソース化した、Javaベースの認証ソフトウェアです。ForgeRock社が開発を引き継ぎましたが、ForgeRock社による開発は終了しており、商用製品として利用できる形式に変化しています。現在では、OpenAMコンソーシアムにより、OSSとしての開発が行われています。
OpenAMの詳細は、こちらをご覧ください。
「OpenAMとは?特徴やコミュニティまで解説」
OpenAMのメリット
- 全4つの認証方式に対応している
- 多要素認証やリスクベース認証を利用できる
社内にあるほぼ全てのシステムをSSO化できる点や、確実性の高い認証を実施できる点は、利用者・管理者双方にとっても非常に大きなメリットです。
OpenAMのデメリット
- OSS開発としてのコミュニティの活発度に劣る
OSSとしての開発は継続していますが、Keycloakと比較すると、あまり活発と言えないのが現状です。そのような現状を受け、オープンソースをもとにした製品を提供する会社は、Keycloakをベースにした製品の提案を増加させています。それにより、OpenAMのサポートを縮小・終了するところもあり、満足できるサポートを受けにくい状況が今後想定されます。
KeycloakとOpenAMの共通点
概要やそれぞれのメリット、デメリットを見たところで、共通点について見ていきましょう。
主要プロトコルに対応している
どちらも、フェデレーション方式に使用する主要プロトコルである「OpenID Connect」「SAML」「OAuth」に対応しています。そのため、 Microsoft365やSalesforce、GoogleAppsのような様々なサービスの連携を簡便にするシステムを構築することができます。
Java開発
KeycloakとOpenAMは、Javaで開発されています。そのため、シングルサインオン環境を複数のアプリケーションにまたがって構築することができます。
顧客要件に応じたカスタマイズ
認証基盤を設計・構築する際には、連携する業務システムの認証方式や、システム運用ルールに基づくID管理など、さまざまな条件や制約を考慮する必要があります。KeycloakとOpenAMはいずれもOSSなので、商用製品と比べて顧客要件に応じた柔軟なカスタマイズをしやすいという強みを持っています。
KeycloakとOpenAMの相違点
続いて、KeycloakとOpenAMの相違点を見ていきましょう。
利用できる認証方式の種類
Keycloakは、代理認証方式によるSSOを実装していません。Keycloakを導入する場合、利用したいアプリケーションの認証方式に対応できるのかを事前に調査する必要があります。その一方、OpenAMは代理認証にも対応しているため、連携できるシステムが多く、使い勝手が良いと言えるでしょう。
※かもめエンジニアリングでは、SAMLやOpenID Connectに非対応のシステムを改修なしでSSOするためのアドオンツールKeygatewayT1を提供しています。
リスクベース認証の可否
Keycloakには、システムのアクセスログなどからユーザーの行動パターンを分析してより確実に本人認証を行うリスクベース認証機能がありません。OpenAMにはリスクベース認証機能が含まれています。そのため、相対的にOpenAMの方が高いセキュリティ性を有していると言えるでしょう。
リスクベース認証の詳細はこちらの記事をご覧ください。
「リスクベース認証とは?|概要やメリットについて解説」
可用性
KeycloakはOpenAMと比べてシンプルな構成である分、より高い可用性を確保しています。実際に、コードベースが小さく、メンテナンスや機能拡張などがしやすい状態です。
将来性
OpenAMは最新版が商用製品になってしまったため、旧バージョンしかオープンソースとして利用できません。他方、Keycloakは最新版もオープンソースとして公開されているため、自由に使用できます。また、コミュニティー自体も非常に活発で、OpenAMと比較すると、将来性という観点では非常に有望と言えます。
比較まとめ
Keycloak | OpenAM | |
代理認証方式 | × | ○ |
リスクベース認証 | × | ○ |
可用性 | ○ | △ |
将来性 | ◎ | △ |
本記事では、OSSの認証基盤として代表的なKeycloakとOpenAMを比較してきました。Keycloakはリスクベース認証や代理認証方式に対応できていないものの、OpenAMよりも将来性や可用性に優れていて、今後も目が離せないと言えるでしょう。
OSSを認証基盤として活用したい場合には、自社に合うものがどちらであるか、じっくりと検討する必要があります。
かもめエンジニアリングでは、KeycloakやOpenAMをベースにしたKAMOME SSOを提供しています。Keycloakにはないリスクベース認証や代理認証も独自開発で機能追加していますので、セキュリティ性やユーザビリティに優れたSSO製品となっております。ご興味やご相談がある方は、ぜひ下記お問い合わせフォームよりご連絡ください。
事業・商品・サービスに関するお問い合わせ
製品に関するお問い合わせはこちら
※フリーメールでのお問い合わせは受け付けておりません。