Keycloakのデフォルトの認証形式は、ID/パスワードの認証です。ワンタイムパスワード認証(OTP)で2要素認証を設定する方法もありますが、毎回異なるパスワードの入力が嫌われる場合もあります。
SSLクライアント証明書による認証の場合には、毎回異なるパスワードの入力は不要になり多要素認証 ( MFA )としての使い勝手が向上します。
Keycloakの認証強化
SSLクライアント認証により第三者による不正アクセス(なりすまし対策)や悪意のあるボットからのアクセスも防止できます(悪性Bot対策)。
リスト攻撃対策
Keycloakでのワンタイムパスワード認証やCAPTCHA認証と比較すると、SSLクライアント認証はSSLクライアント証明書の無い場合には、KeycloakへのアクセスをブロックできるのでID/パスワードのリスト攻撃も防ぐことが出来ます。
SSLクライアント認証 | ワンタイムパスワード認証 | CAPTCHA認証 |
Keycloakへのアクセス前に判定 | Keycloakへのアクセス後に判定 | Keycloakへのアクセス後に判定 |
リスト攻撃 ブロック 〇 | リスト攻撃 ブロック ✖ | リスト攻撃 ブロック ✖ |
SSLクライアント認証の組合せ
ユーザー端末側には、CAで発行のSSLクライアント証明書をインストールします。
SSLクライアント証明書 | SSLサーバー証明書 |
Keycloakサーバー側には、SSLサーバー証明書をインストールすることで「SSLクライアント認証」を構成出来ます。
プライベートとパブリックの組合せ
プライベート | パブリック | |
SSLクライアント証明書 | ✔ | ✔ |
SSLサーバー証明書 | ✔ | ✔ |
証明書としては、プライベートやパブリックのいずれの組みわせでもSSLクライアント認証で動作します。ただしプライベートなSSLサーバー証明書を使うとブラウザでワーニングが出る (*1) ので
- SSLクライアント証明書(プライベート)
- SSLサーバー証明書(パブリック)
の組合せで使うのが、費用を抑えることが出来る組み合わせです。
*1 プライベートなSSLサーバー証明書でブラウザのワーニングを抑制するには、サーバー証明書をブラウザの「信頼されたルート証明機関」に登録します
Keycloak
一般的なKeycloakにもSSLクライアント認証を対応できます
Keycloakアプライアンス
SSLクライアント認証に対応のKeycloakとしては、idPアプライアンス
「Powered BLUE idP for Keycloak」
での利用も可能です。
Keycloakアプライアンスの構成
- OS RockyLinux 8.x / RedHat 8.x
- Keycloak(アプリ)
- GUIでのサーバーやアプリの設定
KeycloakアプライアンスのGUI設定
GUIからKeycloakやサーバー設定に対応しています
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシとKeycloak 連携機能(1台での運用に対応)
- SSLクライアント認証
- SSLサーバー証明書の登録
- アクティブモニタ(サービス監視・再起動・管理者への通知)
コマンドラインからのプログラムのインストールや設定は不要
① リバースプロキシ構成(有無)
ダイレクトアクセス・モード Client ⇒ ( 443 / Keycloak )
リバースプロキシ・モード Client ⇒ ( 443 / リバースプロキシ ⇒ 8080 / Keycloak ) 1台で運用
② パス設定
https:// idp.keycloak.com / auth /
③ ポート設定
443 / 8080 / 80 /etc
SSLサーバー証明書の登録
- 自己証明書やパブリックなSSLサーバー証明書の登録
DBセットアップやスタンドアローンやクラスター構成
クラスター構成
keycloak バージョン管理
例 ver 18.0.1 から19.0.1 へアップグレード
keycloak バックアップ
keycloakサーバーの監視やパッチの自動適用
- サーバーの自己監視やサービスの自動再起動機能
- パッチのスケジュールアップデート機能
- 管理者への通知機能
Private-CA
SSLクライアント証明書の発行及びSSLクライアント認証局として
を利用します。
* パブリックなCAで発行のSSLクライアント証明書での認証も出来ます
Private-CAとKeycloakの構成
- 利用者側には、Private-CAからSSLクライアント証明書を配布します
失効リストの入手&自動同期
Private-CAの失効リストをKeycloak側で入手&自動同期する設定をします
SSLクライアント認証のアクセス手順
Web (SP) へアクセス時のSSO
SSLクライアント証明書が有効の場合
- ターゲットWeb(SP)にアクセス
- idP / Keycloakの認証
(初回のみ・シングルサインオン・SSLクライアント認証) - 認証の成功後 ターゲットWeb(SP)を表示
有効なSSLクライアント証明書の無い場合
アクセスコントロール
有効なSSLクライアント証明書の場合でも、時間や曜日などでのKeycloakへのアクセスコントロールが可能です。
- 組織や部門でのアクセス制限
- 曜日や時間帯でのアクセス制限
- 特定ユーザーでのアクセス制限
- 端末を紛失したAさんのアクセス禁止
アプライアンスの提供形態や運用先
運用環境に対応のアプライアンスでの提供
- VMware / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O(富士通) / IndigoPro(NTTPC) / VPSなど
お問合せ