Keycloakのデフォルトの認証形式は、ID/パスワードの認証です。ワンタイムパスワード認証(OTP)で2要素認証を設定する方法もありますが、毎回異なるパスワードの入力が嫌われる場合もあります。SSLクライアント証明書による認証の場合には、毎回異なるパスワードの入力は不要になり多要素認証 ( MFA )としての使い勝手が向上します。
またSSLクライアント証明書は、Keycloakとは別のCAシステムで発行させることによりワンタイムパスワード認証時に比べて、セキュリティ上のリスクを軽減できます。ワンタイムパスワード認証とSSLクライアント認証の併用での運用も可能です。
【SSLクライアント認証の組合せ】
ユーザー端末側には、CAで発行のSSLクライアント証明書をインストールします。
![]() |
![]() |
|
SSLクライアント証明書 | SSLサーバー証明書 |
Keycloakサーバー側には、SSLサーバー証明書をインストールすることで「SSLクライアント認証」を構成出来ます。
プライベートとパブリックの組合せ
プライベート | パブリック | |
SSLクライアント証明書 | ✔ | ✔ |
SSLサーバー証明書 | ✔ | ✔ |
証明書としては、プライベートやパブリックのいずれの組みわせでもSSLクライアント認証で動作します。ただしプライベートなSSLサーバー証明書を使うとブラウザでワーニングが出る (*1) ので
- SSLクライアント証明書(プライベート)
- SSLサーバー証明書(パブリック)
の組合せで使うのが、費用を抑えることが出来る組み合わせです。
*1 プライベートなSSLサーバー証明書でブラウザのワーニングを抑制するには、サーバー証明書をブラウザの「信頼されたルート証明機関」に登録します
【Keycloakアプライアンス】
SSLクライアント認証に対応のKeycloakとしては、idPアプライアンス
「Powered BLUE idP for Keycloak」
を利用します。
【アプライアンスの構成】
- OS RockyLinux 8.x / RedHat 8.x
- Keycloak(アプリ)
- GUIでのサーバーやアプリの設定
【Keycloakの構成やDB設定】
GUIからKeycloakやサーバー設定に対応しています
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ連携機能
- SSLクライアント認証
- SSLサーバー証明書の登録
- アクティブモニタ(サービス監視・再起動・管理者への通知)
コマンドラインからのプログラムのインストールや設定は不要
( 画面のイメージをクリックで拡大表示 )
【Keycloakのバックアップ】
- バックアップやリストア
【Keycloakのバージョンアップ】
- ver 13.0.1 から ver 15.0.2 へ 変更 (例)
【SSLサーバー証明書機能】
自己証明のSSLサーバー証明書やパブリックなSSLサーバー証明書を登録できます。
【SSLクライアント認証のパスを指定】
Keycloakを運用するサーバーのURL
- 例 https://auth.powered.blue/
このサーバーの keycloakのdir /auth 以下にSSLクライアント認証を設定の場合
- https://auth.powered.blue/auth
【Private-CA】
SSLクライアント証明書の発行及びSSLクライアント認証局として
を利用します。
* パブリックなCAで発行のSSLクライアント証明書での認証も出来ます
Private-CAとKeycloakの構成
- 利用者側には、Private-CAからSSLクライアント証明書を配布します
【失効リストの入手&自動同期】
Private-CAの失効リストをKeycloak側で入手&自動同期する設定をします
【SSLクライアント認証のアクセス手順】
Web (SP) へアクセス時のSSO
SSLクライアント証明書が有効の場合
1)ターゲットWeb(SP)にアクセス
2)idP / Keycloakの認証
(初回のみ・シングルサインオン・SSLクライアント認証)
3)認証の成功後 ターゲットWeb(SP)を表示
有効なSSLクライアント証明書の無い場合
【アクセスコントロール】
有効なSSLクライアント証明書の場合でも、時間や曜日などでのKeycloakへのアクセスコントロールが可能です。
- 組織や部門でのアクセス制限
- 曜日や時間帯でのアクセス制限
- 特定ユーザーでのアクセス制限
- 端末を紛失したAさんのアクセス禁止
【対応の運用先】
- VMware / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O(富士通) / IndigoPro(NTTPC) / VPSなど
【アプライアンスの提供形態】
- 運用環境に対応のアプライアンスでの提供
ご不明な点などは、ムービットの お問い合わせフォーム からお問い合わせください