idPとしてKeycloakとSAML認証やOpenID Connect / OIDC 認証に対応したリバースプロキシを組み合わせることで、社内Webアプリケーションに対してのアクセス環境を構成できます。
リバースプロキシからの既存Webへの「ID・パスワードの代理入力」によりシングルサインオンで既存Webへアクセスが可能です。
SSLクライアント認証を組み合わせることでKeycloakを多要素認証(ID・パスワード+SSLクライアント認証やワンタイムパスワード認証)の多要素認証での運用にも対応しています。
![]() |
![]() ![]() |
Keycloakの多要素認証 / ワンタイムパスワードとSSLクライアント認証
Keycloakへのアクセスには、ワンタイムパスワードを選択する方法もあります。ワンタイムパスワードの場合、毎回ワンタイムパスワードの入力が必要になり手間が増えます。SSLクライアント証明書は、一度インストールしてしまえばアクセス時の手間は増えません。
多要素認証
- ID・パスワード+ワンタイムパスワード認証
- ID・パスワード+SSLクライアント認証
多要素認証の比較
認証 | ![]() |
![]() |
認証操作 | 不要 | 毎回必要 |
判定のタイミング | ID / passwd 入力前に判定 | ID / passwd 入力後に判定 |
リスト攻撃への対応 | ブロック 〇 | ブロック ✖ |
SAMLやOIDC認証対応のリバースプロキシ
社内などのWebへのアクセスに際して
- ターゲットWeb側を改修することなくシングルサインオンで運用したい
- 終端のWebまでSSL通信でアクセスしたい(End-to-EndでのSSL通信)
- SSLクライアント認証で認証機能を強化したい
などでは、KeycloakはSAMLやOIDC認証対応リバースプロキシと組み合わせることで、ターゲット側のWebを修正することなくSSOでのアクセス環境を構築できます。
「Keycloak」と「SAMLやOIDC認証対応のリバースプロキシ」で構成します。
idP/Keycloak
idPとして、SAML認証やOIDC認証に対応のkeycloakを利用します。
Keycloakのアプライアンスを利用することもできます
Powered BLUE idP for Keycloak
Keycloakを自社で簡単に運用が出来るidPアプライアンスです
「Powered BLUE idP for Keycloak」
Powered BLUE idP for Keycloak 構成
- OS RedHat 8.x / RockyLinux 8.x 対応
- Keycloak (アプリ)
- リバースプロキシ(アプリ)
- GUIでのサーバーやアプリの設定
- アプライアンス
GUIからサーバーや idP / Keycloak の操作や設定
GUIからのサーバーの基本設定およびKeycloakの構成(スタンドアロン・クラスター・バックアップ)などの設定に対応しています。
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ内蔵&Keycloak連携機能(1台で運用)
- SSLクライアント認証
- SSLサーバー証明書の登録
- OSなどのパッチ適用
- アクティブモニタ(サーバーやサービス監視・再起動・管理者への通知)
などに対応しており、コマンドラインからのプログラムのインストールや設定は不要
( 画面のイメージをクリックで拡大表示 )
Keycloakのバックアップ 例
Keycloakのアップグレード
ver 18.0.1 から ver 19.0.1 へ 変更 ( WildflyからQuarkus 対応版へアップグレード)
アクセスポート 80 / 443
リバースプロキシ経由やダイレクトにKeycloak (443 port) へのアクセスのどちらの構成にも対応
1) リバースプロキシ経由でKeycloakへアクセス(1台で運用)
- Client ⇒ (443 / リバースプロキシ ⇒ 80 / Keycloak)
- KeycloakへのアクセスにSSLクライアント認証の設定
2) ダイレクトにKeycloak へアクセス(https/443)
- Client ⇒ 443 / Keycloak (SSLサーバー証明書インストール)
SSLサーバー証明書機能
- 自己証明のSSL証明書の作成機能
- パブリックなSSL証明書のインポート機能
サーバーの自己監視機能
- サーバーのモニタリングやサービスの自動再起動
- パッチの自動適用機能
- 管理者への通知機能
Keycloakへのアクセス
https://xxx.yyy.zzz.ttt/
SAMLやOIDC認証対応のリバースプロキシ
SSO対応のリバースプロキシとして、SAML認証やOpenID Connect / OIDC認証に対応のリバースプロキシ・アプライアンス 「Powered BLUE Reverse-Proxy for SSO / IDaaS」を利用します。
特徴としては
- SAML認証対応リバースプロキシ機能
- OpenID Connect / OIDC 認証対応リバースプロキシ機能
- ID/パスワードの代理入力&代理認証機能
- SSLクライアント認証機能
などの機能を有しているアプライアンスです。
リバースプロキシ機能
- SAML2.0 / SP機能
- リバース先のポート ( http / https / ポート番号 ) を指定に対応
- ターゲットWebまでSSL通信での運用に対応 (全経路でのSSL通信)
- リバースプロキシーに Let’s Encrypt の利用に対応
リバースプロキシパラメータ設定
パス調整 (ヘッダー置換 / URL置換 / 文字列置換 / 画像パス置換)
クッキー調整 (クッキーのドメイン置換)
バックエンドの接続調整 (接続再利用の有効 / 無効 )
セッション維持 / タイムアウト時間設定
HA構成時 / パラメータ同期 / SSLクラアント証明書同期
KeycloakのSSLクライアント認証のパスを指定
Keycloakを運用するサーバーのURL
- 例 https://auth.powered.blue/
このサーバーの keycloakのログイン dir /auth 以下にSSLクライアント認証を設定の場合
- https://auth.powered.blue/auth
Private-CA
Private -CA / SSLクライアント証明書の発行及びCRL公開サーバーとして
を利用します。
- Keycloakとの認証連携に対応
Private-CAとKeycloakの構成
- 利用者側には、Private-CAからSSLクライアント証明書を配布
- CRLを公開
- SSLクライアント認証
失効リストの入手&自動同期
Private-CAの失効リスト(CRL)をKeycloak側で入手&自動同期する設定をします
SSLクライアント認証対応のKeycloakへのアクセス手順
SSLクライアント証明書が有効の場合
1)SPにアクセス
2)idP / Keycloakの認証
(初回のみ・シングルサインオン・SSLクライアント認証)
3)認証の成功後 リバースプロキシ先のWebを表示
有効なSSLクライアント証明書の無い場合
ターゲットWebへユーザー情報の代理入力でのSSO
社内にあるSAML / OIDC認証に未対応のWebをシングルサインオンに対応する方法です。
![]() |
SAML / OIDC認証に未対応のWeb |
代理認証
SAML認証やOIDC認証(Open ID Connect)に未対応のターゲットWebへリバースプロキシから 「ユーザー情報 を代理入力」してシングルサインオンにします。
- ユーザーからのターゲットWebへの「 ID / パスワード」の入力は不要
- ターゲットWebの改修は不要
- ブラウザのみで利用(プラグインは不要)
![]() |
![]() |
Keycloak連携でリバースプロキシから代理入力時の構成
SAML認証やOIDC認証に未対応のターゲットWebをシングルサインオンのメンバーとして構成。
ターゲットWebは LAN / WAN / DMZ の任意の場所に設置が出来ます。
代理入力・SSOでの認証ステップ
- SAML / OIDC認証対応のリバースプロキシへアクセス
- 初回のみ idP / Keycloak へアクセス
- Keycloak の認証後にリバースプロキシからターゲットWebへユーザー情報を代理入力
- ターゲットWebへ自動ログイン
各種Web システムへのSSO
一度のKeycloak / idP認証で、複数のWebシステムへSSOでアクセスできます
SSLクライアント認証の併用(SSOの認証強化)
SSLクライアント認証でKeycloakやリバースプロキシへの認証を強化
- Keycloak とのSAML / OIDC認証
- SSLクライアント認証
クライアント証明書 〇 | クライアント証明書 ✕ |
デモサーバー
お問合せ