Keycloak とは?

Keycloak

Keycloak最新情報

NRIのOpenStandiaが提供するKeycloak最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Keycloakの実際・翻訳プロジェクト紹介

翻訳した日本語ドキュメント(Keycloakのインストール方法や使い方ガイド)のリンク集は日本語ドキュメントにございます。

Keycloakバージョンアップ情報

■2023-05-09
[VerUP]Keycloak 21.1.1(リリース日:2023/04/26)
■2023-05-09
[VerUP]Keycloak 21.1.0(リリース日:2023/04/20)
■2023-04-11
[VerUP]Keycloak 21.0.2(リリース日:2023/03/30)
■2023-03-07
[VerUP]Keycloak 21.0.1(リリース日:2023/03/01)
■2023-03-07
[VerUP]Keycloak 21.0.0(リリース日:2023/02/23)
■2023-03-01
[VerUP]Keycloak 20.0.5(リリース日:2023/02/21)
■2023-01-25
[VerUP]Keycloak 20.0.3(リリース日:2023/01/12)
■2022-12-21
[VerUP]Keycloak 20.0.2(リリース日:2022/12/13)
■2022-11-15
[VerUP]Keycloak 20.0.1(リリース日:2022/11/01)
■2022-11-08
[VerUP]Keycloak 20.0.0(リリース日:2022/11/01)

すべてを見る

更新日:2021-07-26

Keycloakの概要

Keycloak(キークローク)とは、Web上でのシングルサインオン(SSO)(※1)を実現するためのJavaベースのIAM (Identity and Access Management) のソフトウェアで、2014年にバージョン1.0.0がリリースされた、競合他社製品に比較すると後発のものとなります。Keycloakは、Red Hat JBossプロジェクトが開発を進めているOSS(オープンソースソフトウェア)であり、Apacheライセンスとしてソースコードが公開されています。Keycloakは、アプリケーションやサービスとの連携を目的としており、SAML、OpenID Connectに対応した認証・認可だけではなく、多要素認証やSNS認証、LDAP連携等の多くの機能が備わっています。

また、Red Hat社は、公式サブスクリプションの「Red Hat JBoss EAP」に付属する製品として(※2)、Keycloakをベースとした「Red Hat SSO」を販売しています。「Red Hat JBoss EAP」および「Red Hat SSO」の保守サポートやマイグレーションについても、弊社までお気軽にお問い合わせください。

※1 シングルサインオン (Single Sign-On:SSO) とは、複数の情報システムのユーザIDを統合管理し、利用するシステム毎にユーザID/パスワード等の入力による認証を必要とせず、一度だけの認証(一つのユーザIDとパスワード)で複数のシステムを利用できる仕組みです。シングルサインオンはユーザやシステム管理者の ID管理の手間を軽減するだけでなく、個人情報の漏洩防止やセキュリティ対策、アクセス制御を統合・強化といった観点からも現在多くの企業にとって欠かせないものになっています。
※2Keycloak 17.0.0からJBoss EAPではなく、Quarkusに付属する製品として提供されています。

Keycloakの業界標準仕様対応

Keycloakは、業界標準の、以下の仕様をサポートしています。

  • SAML 2.0
    標準化団体OASISによって策定された、IDやパスワードなどの認証情報を安全に交換するためのXML仕様です。歴史あるプロトコルのため、多くのアイデンティティ管理ベンダーによって実装されており、提供されているサービスやソフトウェアが多く、GoogleやSalesforceなどのクラウドサービス、学認(Shibboleth)などとの連携が可能です。
  • OpenID Connect
    標準化団体OpenID Foundationによって策定されたREST/JSONベースのプロトコルです。OAuth 2.0をベースに認証目的でも利用できるように拡張しています。野村総合研究所、グーグルなどにより開発が開始され、2014年2月に最終承認された現在最も新しいフェデレーションプロトコルです。グーグル、マイクロソフト、セールスフォースなど多くの企業がサポートしており、現在はデファクトスタンダードとなっています。
  • OAuth 2.0
    OAuth 2.0は仕様が簡略化され使いやすくなった次世代のOAuthプロトコルであり、クライアントとなるWebアプリ、デスクトップアプリ、スマートフォン、リビングデバイス等のクライアントプロファイルを仕様化しています。認証ではなく、認可(どのリソースにアクセスできるか)について規定している点で他のプロトコルとは異なります。Facebook、Google、Microsoftなどの多くの企業のさまざまなサービスで実装されています。

TOPに戻る

KeycloakとOpenAMの機能比較

OpenAMは、Keycloakと同じくシングルサインオンを実現するためのOSSであり、数多くの導入実績があります。KeycloakとOpenAMの機能比較は以下となります。

モジュール 機能 Keycloak OpenAM
認証 多要素認証
ワンタイムパスワード
クロスドメイン・シングルサインオン認証
認可 ユーザ属性アクセス制御 ○[1]
権限アクセス制御(ロール) ○[1]
その他アクセス制御
(URL、IPアドレス、時間帯)
○[1]
連携 各種フェデレーションへの対応
(SAML/OIDC/OAuth2.0)
デスクトップ認証連携
代理認証連携 ×[2] △[2]
外部IDP認証連携
リスクベース認証 アダプティブ認証
(非常習アクセスに対する追加認証)
×
デバイスプリント認証 ×
スクリプト認証
(事前定義を基に多要素認証へ切り替え)
×
セルフサービス ユーザ自身によるアカウント登録
ユーザ自身によるパスワードリセット
ユーザ自身によるユーザ属性の変更

[1] Javaクライアントアダプタを利用していることが前提となります。
[2] 実装されていない機能のため、別途、個別のカスタマイズが必要となります。OpenAMは、OpenAMと連携可能なOpenIGというソフトウェアにより代理認証が実現できます。

TOPに戻る

Keycloakの主な機能

シングルサインオン機能

Keycloakで認証されたユーザは、Keycloakで管理したリソースに再度認証(パスワードを再入力)する必要なくアクセスできます。

<実現方式>

パターンA:アダプタ方式 パターンB:リバースプロキシ方式
連携システムのサーバ内に、シングルサインオンするためのモジュール(クライアントアダプタ)を組み込む方式です。 ユーザからのアクセスを一度、クライアントアダプタを導入したサーバが受け、そのリクエストを連携システムへ中継する方式です。
Keycloakの主な機能1 Keycloakの主な機能2

フェデレーション(連携)機能

ID管理が独立した複数のサイト間でのシングルサインオンができる機能です。例えば、Salesforce CRM、Google Workspaceのような他社の異なるドメインのWebアプリケーションに対しても自分のID/パスワードでシングルサインオンが可能です。フェデレーションを実現するための、業界標準の認証プロトコル「SAML」や「OpenID Connect」に対応しています。また、KeycloakはFacebook、Google、Twitter等のソーシャルネットワーキングサービスや、既存のOpenID Connectプロバイダ、もしくはSAML 2.0プロバイダと連携させることで、それらに登録されているIDによりKeycloakにログインさせることが可能です。連携させるにはコードやアプリケーション側の修正は不要で、Keycloakの管理コンソールで設定を追加するだけです。

ID管理機能

Keycloakは以下の属性を管理できます。

ユーザ(User) 認証(ログイン)単位です。
グループ(Group) ユーザを配属させることができます。
Keycloak内では、階層による管理が可能です。
ロール(Role) 権限を表現したものです。
ユーザ・グループに付与することができます。

管理者は上記属性を一般ユーザに割り振る権限を持ちます。

イベントロギング機能

監査の目的で、ログインイベント(ログインやログアウト、メールアドレスの変更やパスワードリセット等の操作)と管理イベント(管理コンソール上で行った操作)を記録・閲覧することができます。

マルチテナント機能

Keycloakはレルムという単位ごとに設定を管理しています。レルムを複数作成することによりマルチテナントでの利用が可能です。

セルフサービス機能

ユーザ自身によるアカウント管理ができます。管理機能は以下の通りです。

  • アカウントの登録
    ログイン画面のリンクから新規ユーザ登録が可能です。
  • パスワードリセット
    ログイン画面のリンクからパスワード変更が可能です。入力したメールアドレス宛に送られたメールに記載されたリンクをクリックすることで登録が完了します。
  • ユーザ属性の変更
    自身のユーザ属性(ユーザ名やメールアドレス等)を変更することが可能です。

タイムアウト機能

システムを一定期間使用していない場合に、自動的にログオフします。

管理コンソール機能

Keycloakの管理コンソールにより、管理者は前述の機能を集中管理することができます。

TOPに戻る

Keycloakの主な特徴

Keycloakは、次のような特徴があります

高い安定性と信頼性 商用サポートあり Keycloakには、商用製品のRed Hat SSOも提供されており、導入から運用までワントップでサポートします。
汎用性 Javaベース KeycloakはJavaで開発されているため、多くの企業情報システム間でのシングルサインオン環境を構築できる汎用性がありま す。
拡張性 マルチプラットフォーム KeycloakはRed Hat Enterprise Linux、CentOS、Microsoft Windowsなどの様々なOSプラットフォームに対応しています。
様々な認証方式に対応 多要素認証やOTP(ワンタイムパスワード)認証、統合Windows認証など様々な認証方式と連携できます。
SAML 2.0に対応 Keycloakは国際標準の認証プロトコルSAML 2.0に対応しているため、同一の認証プロトコルに対応したSaaS系アプリ ケーション(例えばSalesforceやGoogle等)とも連携ができます。
OpenID Connectに対応 野村総合研究所、Googleなどにより開発が開始され、2014年2月に最終承認された最も新しく、すでに多くのサービスで利用されているフェデレーションプロトコルに対応しており、各種SaaSサービスとのシングルサインオンにも対応が可能です。
クロスドメイン・シングルサインオン 複数のDNSドメインをまたがるシングルサインオンであるクロスドメイン・シングルサインオンに対応しています。
SPI JavaのSPI (service provider interface) という仕組みを利用して、標準では対応していないソーシャルプロバイダを追加したり、お客様固有の認証処理やユーザー・ストレージ、RESTエンドポイントなどを組み込んだりすることが可能です。
柔軟性 顧客要件に応じた細かいカスタマイズが容易 Webサーバやデータベースなどの基盤ミドルウェアと異なり、認証基盤には様々な顧客要件を組み入れる必要があります。例えば、連携先となる業務システムの認証方式や、ID管理の業務運用、IDデータの取り込み方式など、様々なパターンを個別設計する必要があります。OSSのKeycloakは、商用製品と比較して顧客要件に応じた細かいカスタマイズが容易であることが大きなメリットとなります。
長期利用 継続的な安定利用 OSSは、商用製品のように開発企業の買収などによってサポートが打ち切られる心配が少ないと言えます。

TOPに戻る

Keycloakのユースケース(連携事例)

Keycloakは、SAML 2.0とOAuth 2.0/OpenID Connect 1.0を実装しており、これらのプロトコルを使って、様々なサービスやソフトウェアと連携することができます。

サービス、ソフトウェア名連携プロトコルロールカスタマイズ備考
AWSマネージメントコンソールSAML 2.0IdP不要
Office 365SAML 2.0/ OpenID Connect 1.0IdP / OP不要
Google Workspace(G Suite)SAML 2.0IdP不要
SlackSAML 2.0IdP不要
OneloginOpenID Connect 1.0OP不要
SalesforceOpenID Connect 1.0OP不要
BoxSAML 2.0IdP不要
JIRASAML 2.0IdP不要※有償プラグイン利用
ConfluenceSAML 2.0IdP不要※有償プラグイン利用
MiroSAML 2.0IdP不要
AWS ConsoleSAML 2.0IdP不要
Mattermost (Enterprise版)SAML 2.0IdP不要
NextCloudSAML 2.0IdP不要
GitLabSAML 2.0IdP不要
DatadogSAML 2.0IdP不要
PeerTubeOpenID Connect 1.0OP不要
NextAuth.js (Next.js用の認証ライブラリ)OpenID Connect 1.0OP不要
AWS ALBのOIDC連携機能OpenID Connect 1.0OP不要
HENNGESAML 2.0IdP不要
NextSetSAML 2.0IdP不要
SeciossLink SAML 2.0IdP不要

Keycloakとともに開発されているクライアントアダプターなどの連携用ソフトウェアを使用すれば、前述のプロトコルに対応していない以下と連携することもできます。

サービス、ソフトウェア名連携ソフトウェア連携プロトコルロールカスタマイズ備考
Spring BootベースのアプリケーションSpring BootアダプターOpenID Connect 1.0OP必要
Spring SecurityベースのアプリケーションSpring SecurityアダプターOpenID Connect 1.0OP必要
Tomcat上で動作するWebアプリTomcatアダプターOpenID Connect 1.0OP必要
Jboss/WildFly上で動作するWebアプリJboss/WildFlyアダプターOpenID Connect 1.0OP必要
Jetty上で動作するWebアプリJettyアダプターOpenID Connect 1.0OP必要
Fuse上で動作するWebアプリFuseアダプターOpenID Connect 1.0OP必要
任意のサーブレットコンテナー上で動作するWebアプリServlet FilterアダプターOpenID Connect 1.0OP必要
JavaScriptアプリ(クラアントサイド)JSアダプターOpenID Connect 1.0OP必要
Node.js上で動作するWebアプリNode.jsアダプターOpenID Connect 1.0OP必要
Apacheのバックで動作するアプリmod_auth_openidcOpenID Connect 1.0OP必要
任意のWebアプリGatekeeperOpenID Connect 1.0OP必要
任意のWebアプリOAuth2 ProxyOpenID Connect 1.0OP必要

以下のサービスのアカウントを使ったログイン(ソーシャルログイン)を実現することもできます。

サービス、ソフトウェア名連携プロトコルロールカスタマイズ備考
BitbucketOAuth 2.0クライアント不要
FacebookOAuth 2.0クライアント不要
GitHubOAuth 2.0クライアント不要
GitLabOpenID Connect 1.0RP不要
GoogleOpenID Connect 1.0RP不要
LinkedInOAuth 2.0クライアント不要
MicrosoftOAuth 2.0クライアント不要
OpenShift 3OAuth 2.0クライアント不要
OpenShift 4OAuth 2.0クライアント不要
PayPalOpenID Connect 1.0RP不要
Stack OverflowOAuth 2.0クライアント不要
TwitterOAuth 2.0クライアント不要
InstagramOAuth 2.0クライアント不要
LINEOpenID Connect 1.0RP必要
Azure ADSAML 2.0SP必要
ADFSSAML 2.0SP必要

以下のユーザーストレージと連携することもできます。

サービス、ソフトウェア名連携プロトコルカスタマイズ備考
Active DirectoryLDAP不要
Red Hat Directory ServerLDAP不要
Tivoli Directory ServerLDAP不要
Novel DirectoryLDAP不要
その他LDAPサーバーLDAP一部必要
任意のRDBMSSQL必要

他にも多数のサービスやソフトウェアと連携することができます。

TOPに戻る

Keycloakの動作環境

ハードウェア
・RAM 最低512M以上
・HDD 最低 1GB以上
プラットフォーム   
・Javaが動作するOS(Linuxや Windows等)
Java
・Java 11以上
データストア
・Active Directory(およびKerberos)
・LDAP 
クライアントアダプタ対応Webコンテナ

OpenID Connect
  • Java
    ・Apache Tomcat 7, 8, 9
    ・Fuse 6, 7
    ・JBoss Enterprise Application Platform 6, 7
    ・Jetty 9.2.x, 9.3.x, 9.4.x
    ・Servlet Filter
    ・Spring Security (community)
    ・Spring Boot (community)
    ・WildFly 9以上
  • JavaScript(client-side)
    ・JavaScript
  • Node.js(server-side)
    ・Node.js
  • JavaScript
    ・JavaScript
  • Node.js
    ・Keycloak Connect (community)
    ・Keycloak Auth Utils (community)
  • Go
    ・Keycloak Gatekeeper
  • C#
    ・OWIN (community)
  • Python
    ・python-opneid (generic)
  • Android
    ・AppAuth (generic)
    ・AeroGear (generic)
  • iOS
    ・AppAuth (generic)
    ・AeroGear (generic)
  • Apache HTTP Server
    ・mod_auth_openidc
SAML
  • Java
    ・Apache Tomcat 7, 8, 9
    ・JBoss Enterprise Application Platform 6, 7
    ・Jetty 9.x
    ・WildFly 9以上
  • Apache HTTP Server
    ・mod_auth_mellon
参照:https://www.keycloak.org/docs/latest/securing_apps/index.html#supported-platforms

TOPに戻る

Keycloakのライセンス

Keycloakは、Apache 2.0ライセンスです。Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。Keycloakのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

Keycloakのダウンロード

Keycloakダウンロードページ
(リンク:http://www.keycloak.org/

TOPに戻る

関連OSS

OpenAM
(リンク:https://openstandia.jp/oss_info/openam/index.html

TOPに戻る

Keycloakのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO