月別アーカイブ: 2022年8月

KeycloakでSAML認証のリバースプロキシ経由でターゲットWebへSSO / AD認証や多要素認証からHA構成にも対応

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アプライアンスを利用することも出来ます。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2022/02/keycloak-0.png

 

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 に対応

 

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2022/08/pb-880-1.png

 

 

【構成例】

今回のSAML認証連携の構成パターンです

  • Keycloak / idP   Reverse-Proxy / SP    Web
  • SAMLでの認証

 

 

【設定手順の概要】

    1. リバースプロキシ / SP の設定
      • 1.1. リバースプロキシの仮想サイトの作成
      • 1.2. SP / SAML設定ファイルのダウンロード
    2. Keycloak / idP の設定
      • 2.1. レルムの作成
      • 2.2. クライアントの作成
      • 2.3. ロールの作成
      • 2.4. ユーザーの作成とロールの割り当て
      • 2.5. idP / SAML設定ファイルのダウンロード
    3. リバースプロキシ / SP の設定
      • 3.1. idP / SAML設定ファイルのアップロード
      • 3.2. SAML認証の適用ディレクトの指定
      • 3.3. リバースプロキシの設定

 

 

【 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での認証ステップ】

 

 

 

  1. SAML / OIDC認証対応のリバースプロキシへアクセス
  2. 初回のみ idP / Keycloak へアクセス
  3. Keycloak の認証後にリバースプロキシからターゲットWebへユーザー情報を代理入力
  4. ターゲットWebへログイン

 

 

 

 

 

 

【Active DirectoryとKeycloakを連携】

 

 

Active DirectoryとKeycloakを連携

  1. keycloakとActive Directoryの連携
  2. Keycloakとリバースプロキシは、SAML / OIDC認証
  3. リバースプロキシとWebは代理認証

 

 

SSLクライアント認証の併用(多要素認証 / MFA)

 

 

SSLクライアント認証でidPやリバースプロキシへの認証を強化

  1. idPとのSAML / OIDC認証
  2. SSLクライアント認証

 

 

【各種WebへのSSO】

一度のidP / Keycloakの認証で、複数のWebへシングルサインオン

 

 

 

 

 

 

 

 

 

【アプライアンスの簡単運用】

情シスの負担軽減での運用に対応

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2022/02/keycloak-0.png
  • サーバーの自己監視やサービスの自動再起動機能
  • パッチのスケジュールアップデート機能
  • 管理者への通知機能

 

 

【アプライアンスの運用先】

  • VMwareESXi / Hyper-V
  • AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPSなど

 

【お問合せ】

 

 

 

ご質問やご相談など