KeycloakをSAML認証やOIDC認証対応のリバースプロキシ連携 / 改修不要で既存WebへのSSOや多要素認証にも対応

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アプライアンスです

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gifPowered 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認証に対応のリバースプロキシ・アプライアンス https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gifPowered 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公開サーバーとして

Powered BLUE プライベートCA

を利用します。

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

 

 

 

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

 

 

 

 

 

 

各種Web システムへのSSO

一度のKeycloak / idP認証で、複数のWebシステムへSSOでアクセスできます

 

 

 

 

SSLクライアント認証の併用(SSOの認証強化)

 

 

 

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

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

 

 

クライアント証明書 〇 クライアント証明書 ✕

 

 

 

 

 

 

 

 

デモサーバー

 

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif デモサーバー

 

お問合せ

 

 

 

製品についての、ご質問やご相談など