既存Webを改修不要でKeycloakとSAMLやOIDC認証のシングルサインオンを実現する方法 / クライアントアダプターやリバースプロキシの比較

~ KeycloakとSSO連携できる代理認証のリバースプロキシを利用 ~

Keycloakを利用したシングルサインオンは、利用者が複数のアプリケーションにログインする際に、一度の認証で済むようにする仕組みです。

ただし、すべてのWebアプリケーションがSAMLやOIDC認証に対応しているわけではありません。従来から運用のレガシーWebアプリは、SAMLやOIDC認証などのSSOに対応していないケースがほとんどです。

 

WebのSSO化

KeycloakでSAMLやOIDC認証に未対応の既存Webをシングルサインオンに対応させる場合には

SSOへの対応方法 Webの改修 備考
クライアントアダプター *1 必要 サードパーティのWebアプリには適用しにくい
リバースプロキシ 不要 従来の認証方式との併用での運用が可能

などの方法があります。

新規でWebを作成する場合には、Keycloakクライアントアダプターの選択枝も容易です。既存で運用のWebへのSSO化には、Webの改修が必要となるためクライアントアダプターの導入は敷居が高くなります。

*1 Keycloakのバージョンにより、利用できるクライアントアダプターが異なります

 

既存Webは改修不要でSSO

既存のWebアプリケーションを改修することなく、Keycloak連携のシングルサインオンを構成する手法として、SAMLやOIDC認証に対応の

「代理認証のリバースプロキシ」

を活用したSSO化が有効です。

 

代理認証のリバースプロキシ

SAMLやOIDC認証対応の代理入力機能を持つリバースプロキシは、Webアプリケーションの前に配置された中継サーバーです。

ユーザーがリバースプロキシにアクセスすると、Keycloak / idPがユーザーの認証を行い、認証に成功するとリバースプロキシがWebアプリケーションにユーザー情報「ID / パスワード」を代理入力します。

これにより、Webアプリケーションを改修することなく、SSOに対応させることが可能です。

ポイント

  1. ユーザーは、Webアプリの 「ID / パスワード」 の入力不要
  2. ユーザーには、Webアプリの「ID / パスワード」の公開は不要
  3. 既存で運用のWebアプリを改修をすることなく、SSOを実現

 

Keycloak連携のリバースプロキシからWeb代理認証でのSSO

Keycloak / idP と リバースプロキシはSAMLやOIDCで認証を行います。

「Webシステム」は WAN / DMZ / LAN の任意の場所の設置に対応しています

 

SSOに必要な機器

  1. idP / Keycloak
  2. SAML / OIDC認証のリバースプロキシ( ユーザー情報の代理入力機能 )
  3. 既存のWeb( 変更不要 / エージェント不要 )
  4. ブラウザ( プラグイン不要 )

 

 

 

idP / Keycloak

  • 一般的なKeycloakを利用できます
  • KeycloakとリバースプロキシはSAMLやOIDC認証で接続します

 

Keycloakのアプライアンス 「Powered BLUE for idP 」も利用できます

 

 

 

 

 

Keycloakアプライアンスの機能

  •    ウィザードによるKeycloakのセットアップ
  •  DB設定(シングル・クラスター構成)
  •  Keycloak のリバースプロキシ構成(1台での運用)
  •  バックアップ、リストア、アップグレード
  •  SSLサーバー証明書登録
  •  keycloak へのアクセスポート( 80 / 443 )
  •  アクティブモニタ(サービス監視・再起動・管理者への通知)
  •     SSLクライアント認証
  •  GUIからの操作設定

 

代理認証機能のリバースプロキシ

 

 

 

 

 

idP連携のSAMLやOIDC認証の代理認証対応のID認識型リバースプロキシ

 「Powered BLUE Reverse-Proxy with SSO

を利用します。

 

主な機能

  • リバースプロキシ機能
  • SAMLやOIDC認証(SP / RP 機能 *1 )
  • バックエンドのWebへユーザー情報の代理入力機能
  • バックエンドのWebへHTTPヘッダーでのユーザー情報の転送機能
  • SSLクライアント認証
  • ログの取得
  • GUIから設定や運用

を有しており、任意の場所で自社管理でオールインワンでの運用を行うことが出来ます。

*1  SAML認証時はSP (Service Provider) OIDC認証時はRP(Relying Party)という名称

 

 

SSOの手順

 

 

 

 

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

 

 

 

 

 

 

 

各種WebシステムへSSO

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

 

 

 

 

 

 

 

 

Keycloakへの多要素認証(MFA)

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

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

Keycloakではワンタイムパスワード認証も利用が出来ます。

 

 

 

  1. ワンタイムパスワード認証は、毎回「入力する」必要があります
  2. SSLクライアント認証は、SSLクライアント証明書をインストールすると操作は不要です

 

認証 SSLクライアント認証 ワンタイムパスワード認証
認証操作 不要 毎回必要
判定のタイミング ID / passwd 入力前に判定 ID / passwd 入力後に判定
リスト攻撃  ブロック   ブロック 

 

 

KeycloakとActive Directory連携でのSSO

 

 

 

Active DirectoryとKeycloakを連携

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

 

 

既存の認証方法とSSOの併用

アクセス元により認証方法を変えることも出来ます。

  1. 従来の ID / パスワード認証(社内からのアクセス)
  2. idP / IDaaS 連携によるSSO(社外からのアクセス)

の併用などの柔軟な運用が可能です。

 

 

 

 

ID / パスワード認証 SSO

 

代理入力のリバースプロキシ導入のポイント

 

 

  • SAMLやOIDC認証に未対応のWebをSSO化できる
  • Webの改修不要
  • WebのOS不問
  • ユーザーからWebアプリへの ID / パスワード の入力操作は不要
  • ユーザーへのWebアプリの ID / パスワードの公開は不要
  • 一般的なブラウザで利用できる(プラグイン不要)
  • 多要素認証に対応できる

 

アプライアンスの運用先

クラウド環境や仮想基盤など、自社管理で運用できます

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

 

お問合せ

 

 

 

ご質問やご相談など