keycloak」カテゴリーアーカイブ

KeycloakをSSO/SAML認証対応のリバースプロキシ&SSLクライアント認証で運用する

idPとしてKeycloakとSAML認証に対応したリバースプロキシを組み合わせることで、社内Webアプリケーションに対してのアクセス環境を構成できます。SSLクライアント認証を組み合わせることでKeycloakを多要素認証(ID・パスワード+SSLクライアント認証)で運用することが可能です。

 

【ワンタイムパスワードとSSLクライアント認証】

Keycloakへのアクセスには、ワンタイムパスワードを選択する方法もあります。ワンタイムパスワードの場合、毎回ワンタイムパスワードの入力が必要になり手間が増えます。SSLクライアント証明書は、一度インストールしてしまえばアクセス時の手間は増えません。

  • ID・パスワード+ワンタイムパスワード認証
  • ID・パスワード+SSLクライアント認証

 

【SAML認証対応のリバースプロキシ】

社内などのWebへのアクセスに際して

  • ターゲットWeb側を改修することなく運用したい
  • 終端のWebまでSSL通信でアクセスしたい(End-to-EndでのSSL通信)
  • SSLクライアント認証で認証機能を強化したい

などでは、KeycloakはSAML認証対応リバースプロキシと組み合わせることで、ターゲット側のWebを修正することなくセキュアなアクセス環境を構築できます。

 

Keycloak」と「SAML認証対応のリバースプロキシ」で構成します。

 

 

【idP/Keycloak】

idPとして、SAML認証に対応の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 の操作や設定】

  • サーバーの設定(Network / Firewall )
  • ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
  • DB 設定( H2 / MariaDB )
  • DB 構成   ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
  • Keycloak のバックアップ、リストア、バージョンアップ
  • keycloak へのアクセスポート( 80 / 443 )
  • SSLサーバー証明書の登録
  • アクティブモニタ(サービス監視・再起動・管理者への通知)

などに対応しており、コマンドラインからのプログラムのインストールや設定は不要

 

( 画面のイメージをクリックで拡大表示 )

 

【Keycloakのバックアップ 例】

 

【Keycloakのアップグレード】

ver 13.0.1 から ver 15.0.2 へ

 

【アクセスポート 80 / 443 】

リバースプロキシ経由やダイレクトにKeycloak (443 port) へのアクセスのどちらの構成にも対応

 

1) リバースプロキシ経由でKeycloakへアクセス

  • Client  ⇒   443 / リバースプロキシ  ⇒  80 / Keycloak

 

2) ダイレクトにKeycloak へアクセス(https/443)

  • Client   ⇒  443 / Keycloak (SSLサーバー証明書インストール)

 

 

【SSLサーバー証明書機能】

  • 自己証明のSSL証明書の作成機能
  • パブリックなSSL証明書のインポート機能

 

 

【サーバーの自己監視機能】

  • サーバーのモニタリングやサービスの自動再起動
  • パッチの自動適用機能
  • 管理者への通知機能

 

 

 

【Keycloakへのアクセス】

https://xxx.yyy.zzz.ttt/

 

 

【SAML認証対応のリバースプロキシ】

SSO対応のリバースプロキシとして、SAML認証機能のリバースプロキシ・アプライアンス https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gifPowered BLUE Reverse-Proxy for SSO / IDaaS」を利用します。

特徴としては

  • SAML認証対応リバースプロキシ機能
  • HA構成対応
  • End-to-End の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を公開

 

【失効リストの入手&自動同期】

Private-CAの失効リスト(CRL)をKeycloak側で入手&自動同期する設定をします

 

【SSLクライアント認証対応のKeycloakへのアクセス手順】

SSLクライアント証明書が有効の場合

1)リバースプロキシ(SP)にアクセス
2)idP / Keycloakの認証
(初回のみ・シングルサインオン・SSLクライアント認証)
3)認証の成功後 リバースプロキシ先のWebを表示

 

有効なSSLクライアント証明書の無い場合

 

 

◉デモサーバー

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

 

 

終わりに

デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。