Keycloakとは~シンプルな運用でシングルサインオンを実現するOSS~

Keycloakは、ID・パスワードを一本化することでユーザーやシステム管理者の負担を減らすだけではなく、機密情報漏洩の防止やアクセス制御の統合・強化にも有効なソリューションであるシングルサインオン( Single Sign-On、SSO )を実現させるためのオープンソースのソフトウェアです。この記事では、2014年にリリースされた比較的に新しいソフトウェアで、今認証分野において最も注目されているKeycloakについて説明します。
➤ KeycloakをベースとしたかもめエンジニアリングのSSO製品 「KAMOME SSO」
Keycloakとは
Keycloakとは、シングルサインオン(SSO)やAPIアクセスの認証・認可制御を実現するためにRed Hat社が開発したJavaベースのオープンソースソフトウェアです。ソースコードがApacheライセンスとして公開されていて、2020/12/24現在ではバージョン11.0.3が最新版です。 Keycloakは比較的新しいオープンソースソフトウェアで、今現在最も開発が盛んに行われています。小規模なシステムから導入できるシンプルな機能などを強みとして、さまざまな企業での導入が増えている状況です。主な機能としてはID管理やSAMLで認証連携をする際の認証基盤(IdP)としての機能などがあります。
SAMLについて詳しくは以下記事をご参照ください。
➤ SSOの実現に必要な「SAML」とは?
Keycloakの主な機能
Keycloakには主な機能として、SSO、ID管理、イベントロギングなどがあります。
SSO(シングルサインオン)
Keycloakで認証されたユーザーは、Keycloakで管理しているリソースにパスワードを再入力せずにアクセスできます。
SSOの主要機能
- 外部IdP連携
- フェデレーション認証
- 多要素認証
- AD連携/LDAP連携
ID管理
IDを一元で管理することで、Keycloakで管理しているリソースへのアクセス権限などを一括で設定できます。ユーザー、グループ、ロールによってIDを管理でき、グループは階層によって管理されます。
ID管理の機能
- ユーザー管理
- グループ管理
- ロール管理
※ SSO機能と比較すると、ID管理に関する機能はさほど充実していません。より的確なアクセス制御を実現するための土台として、Keyspiderの導入も有効です。
イベントロギング
Keycloakでは、ログインやログアウトなどのログインイベントや、メールアドレス変更・パスワードのリセットといったアカウントイベント、管理コンソール上で実施したアクションの記録・閲覧が可能です。 不正アクセスが行われた場合や何かトラブルが生じた場合などにログを確認して原因を特定することができます。
Keycloakのメリット
オープンソースによるコストパフォーマンス
シングルサインオンを実現する方法のひとつが、オープンソースソフトウェア(OSS)の利用です。商用製品よりコストを抑えて導入・運用できるメリットがあります。Keycloakは比較的新しいオープンソースソフトウェアで、小規模なシステムから導入できるシンプルな機能などを強みとして、さまざまな企業での導入が進んでいます。
わかりやすいGUI
オープンソースは初心者が扱うには難しい場合があります。しかし、Keycloakには初心者でも直感的な操作ができるようにわかりやすいGUIを搭載しているため、コマンド操作をせずに扱うことができます。もちろん開発者のためにCLIもあります。
Keycloakのデメリット
認証方式
Keycloakでは代理認証方式のSSOに対応していません。したがって、SAMLやOpenID Connectに非対応なシステムをシングルサインオン環境に含めたい場合には、各システムにクライアントアダプターと呼ばれるエージェントを組み込む必要があります。
リスクベース認証ができない
リスクベース機能はユーザがログインする際のデバイスやIPアドレスなどに基づいて、本来アクセスしていい人がログインしようとしているのかのリスクの高低を判断する認証方式です。リスクが高いとされた場合にはワンタイムパスワードなどの多要素認証が要求されることが多いです。この機能は特に企業の方から要望が多いものですが、現在においてKeycloakはこの機能を持っていないため、セキュリティポリシーの観点からKeycloakを敬遠している方がいらっしゃいます。
※ KeycloakをベースとしたかもめエンジニアリングののSSO製品は独自開発でリスクベース機能を追加しています。また、SAMLやOpenID Connectに非対応のシステムを改修なしで巻き取ってSSOするためのアドオンツールKeygatewayを提供しています。
かもめのSSO製品「KAMOME SSO」
KeycloakとOpenAMの共通点
Keycloakのほか、SSOを実現するオープンソースソフトウェアのひとつに、OpenAMがあります。KeycloakとOpenAMには、どのような共通点があるのでしょうか。
- 主要プロトコルに対応
KeycloakとOpenAMは、フェデレーション方式に使用する主要プロトコル 「OpenID Connect」「SAML」「OAuth」に対応しています。そのため、 FacebookやSalesforce、GoogleAppsのようなさまざまなサービス間の連携を簡便にするシステムを構築することができます。
- Java開発
KeycloakとOpenAMは、Javaで開発されています。そのため、シングルサインオン環境を複数のアプリケーションにまたがって構築することができます。
- 顧客要件に応じたカスタマイズ
認証基盤を設計・構築する際には、連携する業務システムの認証方式や、システム運用ルールに基づくID管理など、さまざまな条件や制約を考慮しなければなりません。KeycloakとOpenAMはいずれもオープンソースソフトウェアなので、商用製品と比べて顧客要件に応じた柔軟なカスタマイズをしやすいという強みを持っています。
KeycloakとOpenAMの相違点
次に、KeycloakとOpenAMの相違点を見ていきましょう。
- 利用できる認証方式の種類
keycloakは、代理認証方式によるシングルサインオンを実装していません。keycloakを導入する場合、利用したいアプリケーションの認証方式に対応できるのかを事前に調査する必要があります。
- リスクベース認証の可否
Keycloakには、システムのアクセスログなどからユーザーの行動パターンを分析してより確実に本人認証を行うリスクベース認証機能がありません。OpenAMにはリスクベース認証機能が含まれています。
- 可用性
KeycloakはOpenAMと比べてシンプルな構成である分、より高い可用性を確保しています。
- 最新版をオープンソースとして利用できるか
OpenAMは最新版が有料のサービスになってしまったため、旧バージョンしかオープンソースとして利用できません。一方でKeycloakは最新版もオープンソースとして公開されているため、自由に使用ができます。
Keycloak導入を検討するならば、実績豊富な事業者に相談を
高度な認証や複雑な連携を必要としないシングルサインオンを実現したい場合は、シンプルな構成で導入できるKeycloakを選択するといいでしょう。商用製品よりコストを抑えやすいので、中小企業やスタートアップ企業にも導入しやすいと言えます。
Keycloakによるシングルサインオンを実装するならば、豊富な導入実績と知見を持つソリューション事業者のサービスを利用するのが賢明です。認証系ベンダーのかもめエンジニアリングが提供する「KAMOME SSO」は、KeycloakやOpenAMなどのオープンソースをベースとして開発されたソリューションです。KAMOME SSOは、100万ユーザーを持つECサイトや企業内システムの認証連携など、さまざまな用途で導入されています。不具合や脆弱性に対するパッチ提供や、導入支援などのサービスも含まれているので、オープンソースであっても安心して運用できるでしょう。構築支援やカスタマイズの相談も可能なので、Keycloak導入を検討する際、まずはかもめエンジニアリングに相談してみてはいかがでしょうか。お問い合わせは以下からお願いします。
事業・商品・サービスに関するお問い合わせ
ご相談・お問い合わせはこちらから
ご相談、資料のご請求など、お気軽にお問い合わせください。