AD認証」カテゴリーアーカイブ

Keycloakで代理認証を行い既存Webへシングルサインオン(SSO)を実現する方法 / リバースプロキシの利用でWebの改修不要

Keycloakは、複数のアプリケーションやサービスへのログインを一度で行う、シングルサインオン(SSO;Single Sign On) 機能を提供する為に、Red Hat社が開発したJavaベースのオープンソースのソフトウエアです。

SAMLやOIDC認証に対応のWebアプリケーションの場合には、簡単にKeycloakとSSOの構成を組むことができます。

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

 

その場合、既存WebのSSO化への対応方法は2通りあります。

既存WebのSSO化 対応策
Webの改修で対応 WebをSAML / OIDC 認証へ対応させる改修を行う  *1
Webは未改修で対応 SAML / OIDC認証のリバースプロキシ経由の代理認証を行う

*1 クライアントアダプターなどをWeb側に組み込む改修が必要です

 

リバースプロキシでSSO

既存の「SAML / OIDC認証に未対応のWebアプリ」を Keycloakと連携してシングルサインオンで運用する場合には、リバースプロキシを利用することで「既存Webの改修不要」でSSOに対応させる方法をとることができます。

Keycloakで代理認証を実現するには、KeycloakとSAMLやOIDC認証で連携するID認識型のリバースプロキシを経由して、既存のWebシステムへ 「ID / パスワード」 などのユーザー情報を代理入力&代理認証を行いSSOを構成します。

 

共有アカウントでSSO

また、複数のユーザーで同一のアカウントを利用する 「共有アカウント」 でWebアクセスする際の認証についても、代理認証を利用してのSSO対応が可能です。

 

 

 

 

代理認証でのシングルサインオン

SAML / OIDC認証に未対応のWeb

 

社内のSAML / OIDC認証に未対応の「ID / パスワード認証」のWebサーバーへ、Keycloak / idP 連携のリバースプロキシで代理認証を行いSSOでアクセスさせます。

 

代理認証

SAML/OIDC認証対応のリバースプロキシからWebへ「ID / パスワード」を代理入力&代理認証

  1. ユーザー操作でのWebへの「ID / パスワード」の入力不要
  2. SAML / OIDC認証に未対応のWebをSSOのメンバーとして構成

 

 

Keycloak連携の代理認証対応のリバースプロキシ経由でWebへSSO

SAML認証やOIDC認証に「未対応のWeb」や「レガシーなWeb」を

  1. シングルサインオンのメンバーとして構成
  2. バックエンドの「Webシステム」は 改修不要  *1
  3. バックエンドの「Webシステム」は LAN / WAN / DMZ  の任意の場所に設置

で運用できます

*1  サードパーティのWebアプリやサービスも改修不要でSSOに対応できます

 

SSOでの必要な機器構成

 

 

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

 

 

 

 idP / Keycloak

 

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

 

 

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

 

 

 

 

 

Keycloakアプライアンスの機能

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

 

 

代理認証対応の リバースプロキシ・アプライアンス

 

 

 

 

SAML / OIDC認証に対応の代理入力機能のID認識型リバースプロキシ

Powered BLUE ReverseProxy for SSO / IDaaS

で構築運用します。

 

 

アプライアンスの機能としては

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

 

 

代理入力・SSOでの認証ステップ

 

 

 

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

 

 

 

 

 

 

 

各種WebへのSSO

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

 

 

 

 

KeycloakとActive Directory連携でのSSO

 

 

 

Active DirectoryとKeycloakを連携

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

 

 

Keycloakの多要素認証( MFA)

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

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

 

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

 

 

 

 

 

 

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

 

 

 

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

 

多要素認証の比較

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

 

 

共有IDや特権IDでのSSO

例えば、取引先の会社で提供するサービスのアカウントを総務部で共有する場合、Keycloak連携の代理認証対応リバースプロキシを利用することで、Webアプリは改修不要で「共有アカウント」のSSOを実現します。

複数人で同じアカウント情報を共有するケースでは、SSOに対応することで

  1. セキュリティを強化
  2. トレーサビリティの強化
  3. ユーザーの負担軽減

を図ることが可能です。

 

 

 

 

 

共有アカウントでWebアプリをSSOで構成する場合の要件

  • Keycloak / idP ではユーザーごとの個人認証
  • 既存のWebアプリは「共有アカウント」を利用
  • 既存のWebアプリは、改修不要でSSOに対応
  • アカウントは 「N:1 」 や 「N:M」での紐付け
  • ユーザーには、Webアプリへの ID / パスワードの入力をさせない
  • ユーザーには、Webアプリの ID / パスワードを公開しない
  • ブラウザのみでの利用(プラグイン不要)
  • 多要素認証に対応
  • 利用状況や利用者を特定できること

 

 

 

idP連携のリバースプロキシから代理認証で共有アカウントへSSO

ID / パスワード認証の共有アカウントの「既存のWebサービス」を

  1. SAMLやOIDC認証のシングルサインオンのメンバーとして構成
  2. バックエンドの「Webサービス」は 改修不要  *2
  3. バックエンドの「Webサービス」は LAN / WAN / DMZ  の任意の場所に設置

に対応で運用する構成です。

*2  サードパーティ製 Webアプリ や他社の サービス も改修不要で共有アカウントのSSO対応

 

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

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

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

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

 

 

 

 

 

ID / パスワード認証 SSO

 

 

Keycloakと代理認証対応リバースプロキシでの構成時のポイント

  • Keycloakで代理認証を構成できる
  • SAMLやOIDC認証に未対応のWebアプリを改修不要でSSO化できる
  • ユーザーからの Webアプリの ID / パスワード入力不要
  • ユーザーへの Webアプリの ID / パスワード公開不要
  • Webアプリ の OS不問で導入
  • ターゲットWebを隠蔽できる
  • Webへ多要素認証を適用できる
  • 他のWebアプリとSSOでアクセスできる
  • 一般的なブラウザから利用できる(プラグイン不要)
  • 共有アカウントや特権アカウントでのSSOに対応
  • 既存の ID/パスワード 認証とSSO認証を併用できる

 

 

お問合せ

 

 

 

ご質問やご相談など