Keycloakは、複数のアプリケーションやサービスへのログインを一度で行う、シングルサインオン(SSO;Single Sign On) 機能を提供する為に、Red Hat社が開発したJavaベースのオープンソースのソフトウエアです。
SAMLやOIDC認証に対応のWebアプリケーションの場合には、簡単にKeycloakとSSOの構成を組むことができます。
![]() |
![]() |
ただし、すべてのWebアプリケーションがSSOに対応しているわけではありません。従来から運用のWebアプリは、SSOに対応していないことがほとんどです。
その場合、既存WebのSSO化への対応方法は2通りあります。
既存WebのSSO化 | 対応策 |
Webの改修で対応 | WebをSAML / OIDC 認証へ対応させる改修を行う *1 |
Webは未改修で対応 | SAML / OIDC認証のリバースプロキシ経由の代理認証を行う |
*1 クライアントアダプターなどをWeb側に組み込む改修が必要です
リバースプロキシでSSO
既存の「SAML / OIDC認証に未対応のWebアプリ」を Keycloakと連携してシングルサインオンで運用する場合には、リバースプロキシを利用することで「既存Webの改修不要」でSSOに対応させる方法をとることができます。
Keycloakで代理認証を実現するには、KeycloakとSAMLやOIDC認証で連携するID認識型のリバースプロキシを経由して、既存のWebシステムへ 「ID / パスワード」 などのユーザー情報を代理入力&代理認証を行いSSOを構成します。
共有アカウントでSSO
また、複数のユーザーで同一のアカウントを利用する 「共有アカウント」 でWebアクセスする際の認証についても、代理認証を利用してのSSO対応が可能です。
代理認証でのシングルサインオン
![]() ![]() |
SAML / OIDC認証に未対応のWeb |
社内のSAML / OIDC認証に未対応の「ID / パスワード認証」のWebサーバーへ、Keycloak / idP 連携のリバースプロキシで代理認証を行いSSOでアクセスさせます。
代理認証
SAML/OIDC認証対応のリバースプロキシからWebへ「ID / パスワード」を代理入力&代理認証
- ユーザー操作でのWebへの「ID / パスワード」の入力不要
- SAML / OIDC認証に未対応のWebをSSOのメンバーとして構成
![]() |
![]() |
Keycloak連携の代理認証対応のリバースプロキシ経由でWebへSSO
SAML認証やOIDC認証に「未対応のWeb」や「レガシーなWeb」を
- シングルサインオンのメンバーとして構成
- バックエンドの「Webシステム」は 改修不要 *1
- バックエンドの「Webシステム」は LAN / WAN / DMZ の任意の場所に設置
で運用できます
*1 サードパーティのWebアプリやサービスも改修不要でSSOに対応できます
SSOでの必要な機器構成
- idP / Keycloak
- SAML / OIDC認証機能の代理認証対応の リバースプロキシ( ユーザー情報の代理入力機能 )
- 既存Web ( Webの改修不要 / エージェント不要 )
- ブラウザ( プラグイン不要 )
idP / Keycloak
- 一般的なKeycloakを利用できます
- KeycloakとリバースプロキシはSAMLやOIDC認証で接続します
![]() |
![]() ![]() |
Keycloakのアプライアンス 「Powered BLUE for idP 」も利用できます
Keycloakアプライアンスの機能
- ウィザードによるKeycloakのセットアップ
- DB設定(シングル・クラスター構成)
- Keycloak のリバースプロキシ構成
- バックアップ、リストア、アップグレード
- SSLサーバー証明書登録 ( トラストストア対応 )
- keycloak へのアクセスポート( 80 / 443 )
- アクティブモニタ(サービス監視・再起動・管理者への通知)
- SSLクライアント認証
- GUIからの操作設定
代理認証対応の リバースプロキシ・アプライアンス
SAML / OIDC認証に対応の代理入力機能のID認識型リバースプロキシ
「Powered BLUE ReverseProxy for SSO / IDaaS」
で構築運用します。
アプライアンスの機能としては
- リバースプロキシ機能
- SAMLやOIDC認証(SP / RP 機能)
- バックエンドWebへユーザー情報の代理入力機能
- バックエンドWebへHTTPヘッダーでのユーザー情報の転送機能
- SSLクライアント認証
- GUIからの操作設定
代理入力・SSOでの認証ステップ
- 代理認証対応のリバースプロキシへアクセス
- 初回のみ idP / Keycloak へアクセス
- Keycloak の認証後にリバースプロキシからバックエンドWebへユーザー情報を代理入力
- バックエンドのWebへ自動ログイン
各種WebへのSSO
一度のidP / Keycloakの認証で、複数のWebシステムへのシングルサインオン
KeycloakとActive Directory連携でのSSO
Active DirectoryとKeycloakを連携
- keycloakとActive Directoryの連携
- Keycloakとリバースプロキシは、SAML / OIDC認証
- リバースプロキシとWebは代理認証
Keycloakの多要素認証( MFA)
![]() |
SSLクライアント認証でidPやリバースプロキシへの認証を強化
- idPとのSAML / OIDC認証
- SSLクライアント認証
クライアント証明書 〇 | クライアント証明書 ✕ |
Keycloakではワンタイムパスワード認証も利用が出来ます。
- ワンタイムパスワード認証は、毎回の「入力操作」が必要
- SSLクライアント認証は、SSLクライアント証明書を一度インストールすると操作は不要
多要素認証の比較
認証 | SSLクライアント認証 | ワンタイムパスワード認証 |
認証操作 | 不要 | 毎回必要 |
判定のタイミング | ID / passwd 入力前に判定 | ID / passwd 入力後に判定 |
リスト攻撃 | ブロック 〇 | ブロック ✖ |
共有IDや特権IDでのSSO
例えば、取引先の会社で提供するサービスのアカウントを総務部で共有する場合、Keycloak連携の代理認証対応リバースプロキシを利用することで、Webアプリは改修不要で「共有アカウント」のSSOを実現します。
複数人で同じアカウント情報を共有するケースでは、SSOに対応することで
- セキュリティを強化
- トレーサビリティの強化
- ユーザーの負担軽減
を図ることが可能です。
共有アカウントでWebアプリをSSOで構成する場合の要件
- Keycloak / idP ではユーザーごとの個人認証
- 既存のWebアプリは「共有アカウント」を利用
- 既存のWebアプリは、改修不要でSSOに対応
- アカウントは 「N:1 」 や 「N:M」での紐付け
- ユーザーには、Webアプリへの ID / パスワードの入力をさせない
- ユーザーには、Webアプリの ID / パスワードを公開しない
- ブラウザのみでの利用(プラグイン不要)
- 多要素認証に対応
- 利用状況や利用者を特定できること
idP連携のリバースプロキシから代理認証で共有アカウントへSSO
ID / パスワード認証の共有アカウントの「既存のWebサービス」を
- SAMLやOIDC認証のシングルサインオンのメンバーとして構成
- バックエンドの「Webサービス」は 改修不要 *2
- バックエンドの「Webサービス」は LAN / WAN / DMZ の任意の場所に設置
に対応で運用する構成です。
*2 サードパーティ製 Webアプリ や他社の サービス も改修不要で共有アカウントのSSO対応
既存の認証方法とSSOの併用
アクセス元により認証方法を変えることも出来ます。
- 従来の ID / パスワード認証(社内からのアクセス)
- idP / IDaaS 連携によるSSO(社外からのアクセス)
の併用などの柔軟な運用が可能です。
ID / パスワード認証 | SSO |
Keycloakと代理認証対応リバースプロキシでの構成時のポイント
![]() |
![]() |
- Keycloakで代理認証を構成できる
- SAMLやOIDC認証に未対応のWebアプリを改修不要でSSO化できる
- ユーザーからの Webアプリの ID / パスワード入力不要
- ユーザーへの Webアプリの ID / パスワード公開不要
- Webアプリ の OS不問で導入
- ターゲットWebを隠蔽できる
- Webへ多要素認証を適用できる
- 他のWebアプリとSSOでアクセスできる
- 一般的なブラウザから利用できる(プラグイン不要)
- 共有アカウントや特権アカウントでのSSOに対応
- 既存の ID/パスワード 認証とSSO認証を併用できる
お問合せ