Keycloakと認証対応のリバースプロキシ経由でターゲットWebへアクセスをさせます。Keycloakとリバースプロキシの認証連携としては、
- SAML認証
- OpenID Connect / OIDC 認証
などが利用できます。
リバースプロキシ経由でのアクセスに際しては、ターゲットWeb側の改修は不要です。ターゲットWeb側の認証が脆弱もしくは認証機能が無い場合でも、リバースプロキシ側で認証を追加できます。今回はSAML認証で連携します。
【こんな場合に】
- iDはKeycloak で管理をしたい
- Azure ADやiDaaSは高額なので利用が出来ない
- ターゲットWeb側の改修無しで導入したい
- ブラウザのみで利用したい(VPNは利用したくない)
【リバースプロキシを中継してターゲットWebへアクセス】
必要な機器構成
Keycloak ⇔ < SAML > ⇔ リバースプロキシ ⇔ Web
- Keycloak / idP
- リバースプロキシ / SP
- ターゲットWeb
【Keycloak / idP】
一般的なKeycloakを利用できます。
また
Keycloakとしては、 「Powered BLUE for idP 」のKeycloakアプライアンスを利用することも出来ます。
Keycloakのアプライアンスは、GUIからのサーバーの基本設定およびKeycloakの構成(スタンドアロン・クラスター・バックアップ)などの設定に対応しています。
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ内蔵&連携
- SSLクライアント認証
- SSLサーバー証明書の登録
- OSなどのパッチ適用
- アクティブモニタ(サーバーやサービス監視・再起動・管理者への通知)
コマンドラインからのプログラムのインストールや設定は不要
( 画面のイメージをクリックで拡大表示 )
【認証対応のリバースプロキシ(RP)】
リバースプロキシとしては、OIDC認証やSAML認証に対応の 「Powered BLUE Reverse-Proxy for SSO / iDaaS」を利用することも出来ます。
- マルチドメイン・マルチサイトでのリバースプロキシでの運用に対応
- サイト毎にOIDC認証やSAML認証の異なる認証での運用に対応
- サイト毎に個別のサイト管理者に権限を委譲での運用に対応
- ユーザーアカウント無しでの認証に対応
- GUIからの設定の対応
- 自社環境での運用に対応
- アプライアンスでの‘提供
- OS RockyLinux 8.x / RedHat 8.x に対応
【構成例】
今回のSAML認証連携の構成パターンです
- Keycloak / idP ⇔ Reverse-Proxy / SP ⇔ Web
- SAMLでの認証
【設定手順の概要】
-
- リバースプロキシ / SP の設定
- 1.1. リバースプロキシの仮想サイトの作成
- 1.2. SP / SAML設定ファイルのダウンロード
- Keycloak / idP の設定
- 2.1. レルムの作成
- 2.2. クライアントの作成
- 2.3. ロールの作成
- 2.4. ユーザーの作成とロールの割り当て
- 2.5. idP / SAML設定ファイルのダウンロード
- リバースプロキシ / SP の設定
- 3.1. idP / SAML設定ファイルのアップロード
- 3.2. SAML認証の適用ディレクトの指定
- 3.3. リバースプロキシの設定
- リバースプロキシ / SP の設定
【 SP / 仮想サイトの作成 】
リバースプロキシを運用する仮想サイト 「www.example.jp」 を作成します
【 SP / SAMLの初期設定】
認証方式としてSAML 2.0を設定します
- 設定例 認証ルート / に設定
* この例では認証ルート https://www.example.jp/ にSAML認証が設定されます
【SPメタデータのダウンロード】
- リバースプロキシのSPのメタデータをダウンロードしてidPへ登録
【 idP / Keycloakの設定】
【設定のパラメータ】
- レルム名 saml-demo
- クライアントID https://www.example/saml/endpoint/metadata
- レルムロール saml-demo-role
- ユーザー名 demo
【レルムの作成】
レルム設定 例 「saml-demo」
作成後
【クライアントの作成】
クラアントメニューの右上を作成クリックして「クライアント」を作成します
ファイル選択をクリックして、ダウンロードしておいたSPのメタデータを指定して、アップロードします。
「アップロード」すると読み込んだファイルの保存します。SP側の情報が登録されます
【ロールの追加】
ロールを割り当てられたユーザーのみがアクセスできます
ロール名 例 「saml-demo-role」
【ユーザーの作成】
- ユーザー名 「demo」
- メールアカウント 「demo@example.jp」
【パスワードの設定】
作成したユーザーの「グレデンシャル」を選択してパスワードを設定します
【ユーザーへロールをアサイン】
例 ロール「saml-demo-role」を「demo 」ユーザーにアサインします
【idPメタデータのダウンロード】
idP側のエンドポイント情報が格納された「IdP メタデータファイル」をダウンロードします。
「クライアント」メニューの 「クライアントID 」の https://xxx.—–/metadata の項を選択 「インストール」の「Mod Auth Mellon files]を選択してzipファイルをダウンロードします。
ダウンロードしたzip ファイルを展開します。
以下の3ファイルが含まれています
- client-cert.pem
- idp-metadata.xml
- sp-metadata.xml
【SP側へのidPメタデータの登録】
上記でダウンロード&展開した、Keycloak側の「 idp-metadata.xml 」ファイルをインポートします
【SP側のSAML認証の有効化】
SAML 2.0 を有効にするに ✔ を入れて 「保存」 ボタンを押します
【SAML認証パスの設定】
【リバースプロキシを設定】
- リバース元 / (SAML認証)
- リバース先 https://www.xyz.com/
「変更を適用する」ボタンを押して適用します
client ⇒ https://www.example.jp/ ⇒ https://www.xyz.com/
【アクセス手順】
① https://www.example.jp/ にアクセス
② 初回は、Keycloak へリダイレクトされて認証を求められます
- アカウント demo@example.jp
- パスワード xxxxxxxx
③ 認証後にリバースプロキシ先の https://www.xyz.com/ のWebページが表示
【AD連携の構成パターン】
Keycloak とActive Directoryの連携
【Keycloakの多要素人認証】
Keycloak へのアクセス認証強化として、ID / パスワード認証に加えて
- ワンタイムパスワード認証
- SSLクライアント認証
などでの運用が可能です
SSLクライアント認証の構成
有効なSSLクライアント証明書の場合
① SP (リバースプロキシ) にアクセス
② idP / Keycloakの認証
(初回のみ / SSO / SSLクライアント認証)
③ 認証の成功後 ターゲットSPのWebを表示
有効なSSLクライアント証明書の無い場合
ワンタイムパスワードの認証手順
① ワンタイムパスワードの表示
② SP(リバースプロキシ)にアクセス
③ idp / Keycloakの認証(初回のみ)
ID / パスワード / ワンタイムパスワード入力
④ 認証の成功後 ターゲットWebを表示
【Keycloakの冗長構成】
リバースプロキシの冗長化やKeycloakのクラスター構成での運用
【ターゲットWebへのユーザー情報の代理入力でのSSO】
SAML認証やOIDC認証(Open ID Connect)に未対応のターゲットWebへリバースプロキシから 「ユーザー情報 を代理入力」してシングルサインオンで運用する構成。
ユーザー操作でのターゲットWebへの「 ID / パスワード」の入力は不要。
【Webの改修不要でSSO】
SAML認証やOIDC認証に未対応のレガシーなターゲットWebを、改修不要でシングルサインオンのメンバーとして構成。
ターゲットWebは LAN / WAN の任意の場所に設置が出来ます。
【代理入力・SSOでの認証ステップ】
- SAML / OIDC認証対応のリバースプロキシへアクセス
- 初回のみ idP / Keycloak へアクセス
- Keycloak の認証後にリバースプロキシからターゲットWebへユーザー情報を代理入力
- ターゲットWebへログイン
【Active DirectoryとKeycloakを連携】
Active DirectoryとKeycloakを連携
- keycloakとActive Directoryの連携
- Keycloakとリバースプロキシは、SAML / OIDC認証
- リバースプロキシとWebは代理認証
【SSLクライアント認証の併用(多要素認証 / MFA)】
SSLクライアント認証でidPやリバースプロキシへの認証を強化
- idPとのSAML / OIDC認証
- SSLクライアント認証
【各種WebへのSSO】
一度のidP / Keycloakの認証で、複数のWebへシングルサインオン
【アプライアンスの簡単運用】
情シスの負担軽減での運用に対応
- サーバーの自己監視やサービスの自動再起動機能
- パッチのスケジュールアップデート機能
- 管理者への通知機能
【アプライアンスの運用先】
- VMwareESXi / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPSなど
【お問合せ】