【リバースプロキシ】
ID管理のKeycloakとOIDC認証対応のリバースプロキシ機能の組み合わせで、認証連携を行う場合の構成例です。ターゲットのWebサイトには、OIDC認証に対応のリバースプロキシ経由で既存Webへアクセスさせることが出来ます。
従来から運用のWebアプリは、SSOに対応していないことがほとんどです。その場合にはリバースプロキシを経由することで、既存のWeb側の改修は不要で OpenD Connect 認証機能や代理入力&代理認証によりシングルサインオンでの運用に対応します。
- ID管理 Keycloak ( OpenID Provider / OP )
- 認証対応のリバースプロキシ(Relying Party / RP)
【こんな用途に対応】
- Keycloakの利用でidPの費用を抑えたい
- SAML / OIDC未対応のWebを改修不要でSSOしたい
- 自社WebをSaaS対応にしたい
- メーカー製Webアプリを改修不要でSSOで利用したい
- ユーザーにWebアプリの ID / パスワードを入力させたくない
- ユーザーにWebアプリの ID / パスワードを公開したくない
- ブラウザのみで利用したい
- Active Directoryで認証したい(社内ADと連携)
- 既存のWebサイトを多要素認証に対応させたい
- VPNは負荷が高いので利用は避けたい
【Keycloak / OP】
一般的なKeycloakを利用できます。
またKeycloakとしては、 「Powered BLUE for idP 」のKeycloakアプライアンスを利用することも出来ます。
Keycloakアプライアンスの機能
Keycloakのアプライアンスは、GUIからのサーバーの基本設定およびKeycloakの構成(スタンドアロン・クラスター・バックアップ)などの設定に対応しています。
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ連携機能
- SSLクライアント認証
- SSLサーバー証明書の登録
- OSなどのパッチ適用
- アクティブモニタ(サーバーやサービス監視・再起動・管理者への通知)
コマンドラインからのプログラムのインストールや設定は不要
構成 例
① リバースプロキシ構成(有・無)
ダイレクトアクセス・モード Client ⇒ ( 443 / Keycloak )
- Keycloakを直接443番ポートで運用します
リバースプロキシ・モード Client ⇒ ( 443 / リバースプロキシ ⇒ 8080 / Keycloak ) 1台で構成
- リバースプロキシ経由でKeycloakへアクセスする運用です
② パス設定 (Quarkusでも任意のパスを指定できます)
https:// idp.keycloak.com / auth /
③ http・https ポート設定
443 / 8080 / 80 /etc
スタンドアローンやクラスター構成 DBセットアップ
クラスター構成
keycloak バージョン管理
例 ver 18.0.1 から19.0.1 へアップグレード
keycloak バックアップ
【認証対応のリバースプロキシ(RP)】
リバースプロキシとしては、OIDC認証やSAML認証に対応の 「Powered BLUE Reverse-Proxy for SSO / iDaaS」を利用することが出来ます。
- マルチドメイン・マルチサイトでのリバースプロキシでの運用に対応
- サイト毎にOIDC認証やSAML認証の異なる認証での運用に対応
- サイト毎に個別のサイト管理者に権限を委譲での運用に対応
- 代理認証機能
- ヘッダー認証機能
【構成例】
今回のOIDC認証連携の構成パターンです
- Keycloak / OP ⇔ Reverse-Proxy / RP ⇔ Web
- OpenID Connect / OIDCでの認証
【設定手順の概要】
- Keycloak / OP の設定
- 1.1. レルムの作成
- 1.2. クライアントの作成
- 1.3. ロールの作成
- 1.4. ユーザーの作成とロールの割り当て
- 1.5. OIDC設定ファイル(json)のダウンロード
- リバースプロキシ / RP の設定
- 2.1. リバースプロキシの仮想サイトの作成
- 2.2. KeycloakのOIDC設定ファイル(json)のアップロード
- 2.3. OIDC認証の適用ディレクトの指定
- 2.4. リバースプロキシの設定
【Keycloakの設定】
【レルムの作成】
名称設定 例 rev-o
作成後 rev-o
【クライアントの作成】
- クライアントID 例 oidc-demo-client (名称は適宜付与)
- クライアントプロトコル 選択 openid-connect
- アクセスタイプ 選択 confidential
- 有効なリダイレクトURL 例 https://www.example.jp/oidc/redirect_uri
* リダイレクトURLは、リバースプロキシ / RP側のOIDCのURLを記載します
【ロールの追加】
ロールを割り当てられたユーザーのみがアクセスできます
例 oidc-demo-role
【ユーザーの作成】
- ユーザー名 demo
- メールアカウント demo@example.jp
【パスワードの設定】
作成したユーザーの「グレデンシャル」を選択してパスワードを設定します
【ユーザーへロールをアサイン】
例 oidc-demo-role
【OIDCの設定ファイル】
Keycloak からOIDC設定ファイルのダウンロード
例 oidc-demo-client 編集をクリック
例 インストール を選択
【JSONファイルのダウンロード】
keycloak / OP側 のjson形式の設定ファイルをダウンロードします
【 RPの設定】
Keycloakアプライアンス 「Powered BLUE Reverse-Proxy for SSO / iDaaS」でのOIDCの設定例です
【リバースプロキシのサイト作成】
リバースプロキシの仮想サイト www.example.jp を作成します
【KeycloakからダウンロードのJSONファイルの読み込み】
【データのインポート】
「初期設定 」ボタンでデータを保存します
【OIDCの有効化】
「OIDCを有効にする」に ✔ を入れて「保存」ボタンを押して設定を適用します
【認証ディレクトリ】
OIDC認証を適用するディレクトリを設定します
例 /test にOIDC認証を設定
https://www.example.jp/test ディレクトリにOIDC認証を設定
【リバースプロキシを設定】
- リバース元 https://www.example.jp/test/ (OIDC認証)
- リバース先 https://www.xyz.com/
「変更を適用する」ボタンを押して適用します
client ⇒ https://www.example.jp/test/ ⇒ https://www.xyz.com/
【アクセス手順】
① https://www.example.jp/test にアクセス
② 初回は、Keycloak へリダイレクトされて認証を求められます
- アカウント demo@example.jp
- パスワード xxxxxxxx
③ 認証後にリバースプロキシ先の https://www.xyz.com/ のWebページが表示
【keycloak連携 / SAMLやOIDC認証に非対応のWebを改修不要でSSO化】
KeycloakとSAML認証やOIDC認証(Open ID Connect)に未対応の既存Webへ、リバースプロキシから ユーザー情報 ( ID / パスワード )を代理入力してシングルサインオンで運用する構成。
![]() ![]() |
SAML / OIDC 未対応のWeb |
【ID認識型リバースプロキシ】
リバースプロキシは、SAML / OIDC認証に対応の「ID認識型リバースプロキシ」
「Powered BLUE ReverseProxy for SSO / IDaaS」
で構築運用します。
アプライアンスの機能
- リバースプロキシ機能
- SAMLやOIDC認証(SP / RP 機能 *1 )
- バックエンドのWebへユーザー情報の代理入力機能&代理認証機能
- ヘッダー認証機能
- SSLクライアント認証
- GUIから設定や運用
を有しており、任意の場所で自社管理でオールインワンでの運用を行うことが出来ます。
*1 SAML認証時はSP (Service Provider) OIDC認証時はRP(Relying Party)という名称です
【代理認証】
SAML / OIDC認証対応の「ID認識型リバースプロキシ」から、既存のWebサービスへ「ID / パスワード」を代理入力&代理認証を行います。 *2
- ユーザー操作でのWebサービスへの「ID / パスワード」の入力不要
- ID / パスワード認証のWebサービスをSSOのメンバーとして構成
![]() |
![]() |
*2 SP機能のリバースプロキシと代理入力のリバースプロキシを分離して多段構成での運用にも対応
【idP連携での既存Webの構成】
idPと連携してSAML認証やOIDC認証に未対応のレガシーな既存Webをシングルサインオンのメンバーとして構成。
- idPとリバースプロキシの認証連携(SAML / OIDC)
- リバースプロキシとWebでの代理認証
- 既存のWebシステムは WANやLAN の任意の場所に設置可能
【SSOに必要な機器】
- idP / Keycloak
- SAML / OIDC認証機能のID認識型リバースプロキシ( ユーザー情報の代理入力機能 )
- 既存のWebサービス ( Webの改修は不要 / エージェント不要 )
- ブラウザ(プラグイン不要)
![]() |
![]() |
【Keycloakとの代理認証・SSOでのステップ】
- SAML / OIDC認証対応のリバースプロキシへアクセス
- 初回のみ idP / Keycloak へアクセス
- Keycloak の認証後にリバースプロキシからバックエンドWebへユーザー情報を代理入力
- バックエンドのWebへ自動ログイン
【各種WebへのSSO】
一度のidP / Keycloakの認証で、複数のWebへシングルサインオン
【SSLクライアント認証の併用(多要素認証/MFA)】
SSLクライアント認証でKeycloak / idPやリバースプロキシへの認証を強化
- idPとのSAML / OIDC認証
- SSLクライアント認証
クライアント証明書 〇 | クライアント証明書 ✕ |
【KeycloakとActive Directory連携でのSSO】
Active DirectoryとKeycloakを連携
- keycloakとActive Directoryの連携
- Keycloakとリバースプロキシは、SAML / OIDC認証
- リバースプロキシとWebは代理認証
【アプライアンスの簡単運用】
情シスの負担軽減での運用に対応
![]() |
![]() |
- サーバーの自己監視やサービスの自動再起動機能
- パッチのスケジュールアップデート機能
- 管理者への通知機能
【運用先】
対応の環境
- VMwareESXi / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPSなど
【お問合せ】