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

Keycloak(読み方:キークローク)は、ID・パスワードを一本化することでユーザーやシステム管理者の負担を減らすだけではなく、機密情報漏洩の防止やアクセス制御の統合・強化にも有効なソリューションであるシングルサインオン(Single Sign-On、以下SSO)を実現させるためのオープンソースのソフトウェアです。この記事では、2014年にリリースされた比較的新しいソフトウェアで、今認証分野において最も注目されているKeycloakについて説明します。

SSOについてはこちらの記事をご覧ください。
「シングルサインオン(SSO)とは何か?」今さら訊けないSSOの解説

※2020年12月25日に公開した記事を再編集しております。

Keycloakとは

Keycloakとは、シングルサインオン(SSO)やAPIアクセスの認証・認可制御を実現するためにRed Hat社が開発したJavaベースのオープンソースソフトウェアです。ソースコードがApacheライセンスとして公開されていて、2022/8/23現在ではバージョン19.0.1が最新版です。 Keycloakは比較的新しいオープンソースソフトウェアで、今現在最も開発が盛んに行われています。小規模なシステムから導入できるシンプルな機能などを強みとして、さまざまな企業での導入が増えている状況です。主な機能としてはID管理やSAMLで認証連携をする際の認証基盤(IdP)としての機能などがあります。

SAMLについてはこちらの記事をご覧ください。
SSOの実現に必要な「SAML」とは?

Keycloakの主な機能

Keycloakの主な機能は、SSOやID管理、イベントロギングの3つがあります。それぞれについて見ていきましょう。

SSO(シングルサインオン)

SSO機能があるため、Keycloakで認証されたユーザーは、Keycloakで管理しているリソースにパスワードを再入力せずにアクセスできます。以下がSSOの主要機能になります。

  • 外部IdP連携
    これは組織でSSOを導入する際、既存のID管理体型を維持し、管理工数の増加を防ぐために利用される機能になります。
  • フェデレーション認証
    業界水準のSAML2.0やOpenID Connect、OAuth2.0のプロトコルに対応しているため、SAMLなどに対応しているシステムへのSSOを簡単に実現します。
  • 多要素認証(MFA)
    通常のIDとパスワードだけの認証だけでなく、生体認証やワンタイムパスワードなど2つ以上の要素で認証する仕組みのことです。
  • AD連携/LDAP連携
    ADや使用中のディレクトリサービスとのユーザー情報を同期し、ID/パスワードを使用した認証ができるようになります。

多要素認証(MFA)の詳細はこちらの記事をご覧ください。
「多要素認証(MFA)とは|メリット、デメリットについて解説」

ID管理

IDを一元的に管理することで、Keycloakで管理しているリソースへのアクセス権限などを一括で設定できます。ユーザー、グループ、ロールによってIDを管理でき、グループは階層によって管理されます。ID管理の機能は以下の3つです。

  • ユーザー管理
  • グループ管理
  • ロール管理

SSO機能と比較すると、ID管理に関する機能が充実しているとは言い難いです。しかし、なりすましや情報漏洩などの問題を考えると、ID管理はとても重要です。より的確なアクセス制御を実現するためには、ID管理システムの導入が必要です。

ID管理システム製品を知りたい方はこちらの記事をご覧ください。
「ID管理システム4選の機能・特徴を比較!」

イベントロギング

Keycloakでは、ログインやログアウトといったログインイベントや、メールアドレス変更・パスワードのリセットといったアカウントイベント、管理コンソール上で実施したアクションが記録されています。それらのアクションは、Keycloakにある管理コンソール上で確認・閲覧することができます。もし、不正アクセスが行われた場合や何かトラブルが生じた場合などにログを確認して原因を特定することができます。

Keycloakのメリット

オープンソースによるコストパフォーマンス

オープンソースソフトウェア(OSS)を利用することで、商用製品よりコストを抑えて導入・運用できます。Keycloakは比較的新しいオープンソースソフトウェアで、小規模なシステムから導入できるシンプルな機能などを強みとして、さまざまな企業での導入が進んでいます

わかりやすいGUI

オープンソースを初心者が扱うには難しい場合があります。しかし、Keycloakには初心者でも直感的な操作ができるようにわかりやすいGUIを搭載しているため、コマンド操作をせずに扱うことができます。もちろん開発者のためにCLIもあります。

Keycloakのデメリット

代理認証方式に対応していない

Keycloakは代理認証方式のSSOに対応していません。したがって、SAMLやOpenID Connectに非対応なシステムをSSO環境に含めたい場合には、各システムにクライアントアダプターと呼ばれるエージェントを組み込む必要があります。

SSOの認証方式についてはこちらの記事をご覧ください。
「SSOの仕組みと認証方式を解説」

リスクベース認証ができない

リスクベース機能はユーザがログインする際のデバイスやIPアドレスなどに基づいて、本来アクセスしていい人がログインしようとしているのかのリスクの高低を判断する認証方式です。リスクが高いとされた場合にはワンタイムパスワードなどの多要素認証が要求されることが多いです。この機能は特に企業の方から要望が多いものですが、現在Keycloakはこの機能を有していないため、セキュリティポリシーの観点からKeycloakを敬遠している方がいるのも事実です。

リスクベース認証についてはこちらの記事をご覧ください。
「リスクベース認証とは?|概要やメリットについて解説」

※Keycloakをベースとした弊社のKAMOME SSOは独自開発でリスクベース機能を追加しています。また、SAMLやOpenID Connectに非対応のシステムを改修なしでSSOするためのアドオンツールKeygatewayT1を提供しています。

KeycloakとOpenAMの比較

SSOを実現するオープンソースソフトウェアは、Keycloakの他にOpenAMがあります。Keycloakのデメリットであるリスクベース認証や代理認証に対応しているのが強みですが、すでにオープンソースとしての更新が終わっている点が懸念点になります。

OpenAMの解説や、より詳しく比較されたい方はこちらの記事をご覧ください。
「OpenAMとは?特徴やコミュニティまで解説」
「KeycloakとOpenAMを比較|共通点や違いを解説」

まとめ

高度な認証や複雑な連携を必要としないシングルサインオンを実現したい場合は、シンプルな構成で導入できるKeycloakを選択するといいでしょう。商用製品よりコストを抑えやすいので、中小企業やスタートアップ企業にも導入しやすいです。

Keycloakによるシングルサインオンを実装するならば、豊富な導入実績と知見を持つソリューション事業者のサービスを利用すると良いでしょう。かもめエンジニアリングが提供するKAMOME SSOは、KeycloakやOpenAMといったオープンソースをベースに開発されたSSOソリューションです。100万ユーザーを持つECサイトや企業内システムの認証連携など、さまざまな用途で導入されています。詳しくはこちらのユースケースをご覧ください。
不具合や脆弱性に対するパッチ提供や、導入支援などのサービスも含まれているので、オープンソースでも安心して運用できます。構築支援やカスタマイズの相談も可能なので、Keycloak導入を検討中の方は、ぜひ下記お問い合わせフォームよりご相談ください。

事業・商品・サービスに関するお問い合わせ

製品に関するお問い合わせはこちら

※フリーメールでのお問い合わせは受け付けておりません。

必須
必須
必須
必須
必須
必須
必須