ID管理のKeycloakとOIDC認証対応のWeb機能の組み合わせで、SSO認証連携を行う場合の構成例です。ターゲットのWebサイトには、OIDC認証でアクセスさせることが出来ます。KeycloakをMFA(多要素認証)で運用することにも対応しています。
- ID管理 Keycloak ( OpenID Provider / OP )
- OpenID 認証対応のWeb( Relying Party / RP )
【こんな用途に】
- Webサイトに認証を設定したい
- IDは一元管理したい
- 管理者の負担を少なくして運用したい
- Active Directoryのデータで認証したい(社内ADと連携)
- SSLクライアント認証やワンタイムパスワードなど多要素認証で運用したい(MFA)
- Azure ADなどは費用が高額になるので利用できない
【Keycloak / OP 】
一般のKeycloakを利用できます。
【Keycloak / アプライアンス 】
またKeycloakとしては、 「Powered BLUE for idP 」のKeycloakアプライアンスを利用することも出来ます。
【GUIからの設定 】
Keycloakアライアンスは、GUIからのサーバーの基本設定およびKeycloakの構成(スタンドアロン・クラスター・バックアップ)などの各種設定に対応しています。
- サーバーの設定(Network / Firewall )
- ウィザードによるKeycloakの構成や設定(スタンドアロンやクラスター)
- DB 設定( H2 / MariaDB )
- DB 構成 ( 内蔵もしくは外部サーバーのどちらの構成にも対応 )
- Keycloak のバックアップ、リストア、バージョンアップ
- keycloak へのアクセスポート( 80 / 443 )
- リバースプロキシ内蔵
- SSLクライアント認証(多要素認証)
- SSLサーバー証明書の登録
- OSなどの自動パッチ適用
- アクティブモニタ(サーバーやサービス監視・再起動・管理者への通知)
コマンドラインからのプログラムのインストールや設定は不要
( 画面のイメージをクリックで拡大表示 )
「Powered BLUE for idP 」では
1)Keycloakを直接443ポートでの運用
2)リバースプロキシとの同居での一体運用
の2方式に対応しています
① リバースプロキシ構成(有・無)
ダイレクトアクセス・モード Client ⇒ ( 443 / Keycloak )
- Keycloakを直接443番ポートで運用します
リバースプロキシ・モード Client ⇒ ( 443 / リバースプロキシ ⇒ 8080 / Keycloak ) 1台で運用
- リバースプロキシ経由でKeycloakへアクセスさせる構成です
② パス設定 (Quarkusでも任意のパスを指定できます)
https:// idp.keycloak.com / auth /
③ httpポート設定
443 / 8080 / 80 /etc
KeycloakのDB設定からHA構成
- DB選択や構成( 内部DB / 外部DB )
- スタンドアローンやクラスター構成
- クラスター構成
【Keycloakのバックアップ】
- Keycloakのデータバックアップやリストアに対応
【Keycloakのバージョンアップ 】
バージョンアップ前 例 18.0.1
バージョンアップ後 例 19.0.1
Keycloakへのアクセス(443)
【認証対応のWeb(RP)】
- 自前でOIDC認証対応のWebを構築して運用
- SaaSでの運用にも対応
Webとしては、OIDC認証やSAML認証に対応のアプライアンス 「Powered BLUE Web for SSO / IDaaS」を利用することも出来ます
- マルチドメイン・マルチサイトでの運用に対応
- サイト毎にOIDC認証やSAML認証の異なる認証での運用に対応
- サイト毎に個別のサイト管理者に権限を委譲での運用に対応
- ユーザーアカウント無しでの認証に対応
- GUIからの設定の対応
- 自社環境での運用に対応
- アプライアンスでの‘提供
- Let’s Encrypt対応
- WordPress対応
- OS RockyLinux 8.x / RedHat 8.x に対応
【構成例】
- Keycloak / OP ⇔ Web / RP
- OpenID Connect / OIDCでの認証
【設定手順の概要】
- Keycloak / OP の設定
- 1.1. レルムの作成
- 1.2. クライアントの作成
- 1.3. ロールの作成
- 1.4. ユーザーの作成とロールの割り当て
- 1.5. OIDC設定ファイル(json)のダウンロード
- Webサイト / RP の設定
- 2.1. 仮想サイトの作成
- 2.2. KeycloakのOIDC設定ファイル(json)のアップロード
- 2.3. OIDC認証の適用ディレクトの指定
- 2.4. Webコンテンツのアップロード
【Keycloakの設定】
- Keycloakの管理GUIへは運用時のFQDN / IP でアクセスします
- IPアドレスでアクセスすると、生成されるURLなどもIPベースとなります
【レルムの作成】
名称設定 例 rev-o
作成後 rev-o
【クライアントの作成】
- クライアントID 例 oidc-demo-client (名称は適宜付与)
- クライアントプロトコル 選択 openid-connect
- アクセスタイプ 選択 confidential
- 有効なリダイレクトURL 例 https://www.example.jp/oidc/redirect_uri
* 有効なリダイレクトURLは、Web / RP側のOIDCのURLを記載します
【ロールの追加】
ロールを割り当てられたユーザーのみがアクセスできます
例 oidc-demo-role
【ユーザーの作成】
- ユーザー名 demo
- メールアカウント demo@example.jp
【パスワードの設定】
作成したユーザーの「クレデンシャル」を選択してパスワードを設定します
【ユーザーへロールのアサイン】
例 oidc-demo-role をアサイン
【OIDCの設定ファイル】
Keycloak からOIDC設定ファイルのダウンロード
例 oidc-demo-client の編集をクリック
「インストール」タブをクリックしてjsonファイルを「ダウンロード」します
【JSONファイルのダウンロード】
【Web / RPの設定】
「Powered BLUE Web for SSO / IDaaS」での設定例です
OIDC認証やSAML認証に対応のWebサイト機能を有したアプライアンスです。
【仮想サイトの作成】
www.example.jp サイトを作成します
【KeycloakからダウンロードのJSONファイルの読み込み】
【データのインポート】
「初期設定」ボタンで読み込みデータを保存します
【OIDCの有効化】
「OIDCを有効にする」に ✔ を入れて「保存」ボタンを押して適用します
【認証ディレクトリ】
OIDC認証を適用するディレクトリを設定します
例 /test にOIDC認証を設定
- https://www.example.jp/ 認証なし
- https://www.example.jp/test に OIDC認証を設定
【OIDC認証対応のWeb サイト】
- 一般的なWebコンテンツのアップロードやWordPerssでのWebサイトの構築・運用に対応
- 任意のディレクトリに認証を設定
一般的なWebコンテンツのWebサイト | WordPressのWebサイト |
【アクセス手順】
① https://www.example.jp/test にアクセス
② 初回は、Keycloak へリダイレクトされて認証を求められます
- アカウント demo@example.com
- パスワード xxxxxxxx
③ 認証後に https://www.example.jp/test のWebページが表示
【アプライアンスの簡単運用】
情シスの負担軽減での運用にも対応
- サーバーの自己監視やサービスの自動再起動機能
- パッチのスケジュールアップデート機能
- 管理者への通知機能
クローズドネットワークでの運用
仮想アプライアンスのイメージでの提供により
- 仮想基盤へ仮想サーバーのイメージインポートでの運用が可能
サーバーの自己監視機能や自動再起動機能により
- 外部の監視サービスを利用しない運用に対応
【アプライアンスの構成や運用先】
- OS RockyLinux 8.x / RedHat 8.x (OSは選択)
- Keycloak(アプリ)
- GUIでのサーバーやアプリの設定
クラウド環境や仮想基盤、及びオンプレなどの自社管理での運用に対応
- VMware / Hyper-V
- AWS / Azure / FUJITSU Hybrid IT Service FJcloud-O (富士通) / VPSなど
【Keycloakを多要素認証で運用】
Keycloakのデフォルト認証は、ID/パスワード認証です。Keycloakの認証を強化する方法としては
- ワンタイムパスワード認証
- SSLクライアント認証
などを設定して多要素認証での運用が可能です。
SSLクライアント認証の構成
有効なSSLクライアント証明書の場合
① SP にアクセス
② idP / Keycloakの認証
(初回のみ / SSO / SSLクライアント認証)
③ 認証の成功後 ターゲットのWebを表示
有効なSSLクライアント証明書の無い場合
ワンタイムパスワードの認証手順
① ワンタイムパスワードの表示
② SPにアクセス
③ idp / Keycloakの認証(初回のみ)
ID / パスワード / ワンタイムパスワード入力
④ 認証の成功後 ターゲットWebを表示