SAML対応のWordPressを構築する際に、SSLクライアント認証を併用して運用する場合の構成例です。WordPressのサーバーをSAMLのSPとして運用します。
SSLクライアント認証は、WordPressを運用するWebサーバーにのみ適用が可能です。既存のiDPやiDaaSなどを利用の場合でも、iDP側の設定を変更することなくターゲットのWebサーバーのみに個別にSSLクライアント認証機能の導入が出来ます。
SSOの運用時に、特定のWebサーバのみにSSLクライアント認証の機能を付加することが出来ます。
前提事項
- SAML 2.0 対応のiDPを構築済み もしくは iDaaSなどでiDPを利用している
今回は、iDPとしてkeycloakを利用します
利用する機器
- Powered BLUE Private CA
- Private CA / SSLクライアント認証 / WordPress / SAML-SPを1台で運用
Powered BLUE Private CAはCA / Webサイト / SSLクライアント認証/ WordPress / SAML-SPまでの機能をオールインワンで運用が出来るWebアプライアンスです。AWS / VMwareなどの仮想環境で運用にも対応しています。
Powered BLUE Private CAの機能
機能 | 有無 |
Web サーバー機能 | 〇 |
SSLクライアント認証 | 〇 |
リバースプロキシ | 〇 |
インターネットサーバー機能 / Mail / DNS / ftp | 〇 |
Let’s Encrypt & 自動更新 | 〇 |
WordPress (CMS) | 〇 |
Roundcube (WebMail) | 〇 |
ownCloud (オンラインストレージ) | 〇 |
php 7.x 対応 | 〇 |
サードパーティソフト 対応 | 〇 |
CentOS / RedHat 7.x 対応 | 〇 |
リバースプロキシの運用も出来ます。SSLクライアント認証をリバースプロキシに付与することも対応可能です。
構築の手順
- AWSにPowered BLUE Private CA 構築
- Private CA 設定
- 仮想サイト 設定
- SSLクライアント認証設定
- WordPress 設定
- iDP / Keycloak 構築
- SAML SP 設定
AWSでの構築
Powered BLUE のAMI はAWSへ登録済です。 AWSへのセットアップは
を‘ご参照ください。
仮想サイトのSSL設定
Powered BLUE上のプライベートCAを運用する仮想サイトのSSL及びプライベートCAを有効化します。SSLのサーバー証明書としてはLet’s Encryptに対応しています。また商用で販売されているSSLサーバー証明書の登録も出来ます。
Powered BLUE への Let’s Encrypt のインストール方法
プライベートCAの設定
- CA証明書の有効期限を設定
SSLクライアント証明書の発行
SSLクライアント証明書を個別発行の場合(1枚発行の場合)
例 suzuki@mubit.com ユーザーのクライアント証明書を作成
有効期限などを指定して発行します
SSLクライアント証明書を個別発行の場合(1枚発行の場合)
例 suzuki@mubit.com ユーザーのクライアント証明書を作成
有効期限などを指定して発行します
SSLクライアント証明書をダウンロードします
SSLクライアント認証の有効化
[クライアント認証を有効にする] ことで、このPowered BLUE のプライベートCAを運用する仮想サイトへは、有効なSSLクライアント証明書がインストールされた ブラウザのみ、WoredPressの運用するサイトへアクセスが出来ます。
例 https://PrivateCA の仮想サイト/xx
SSLクライアント認証時のアクセスコントロール
有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます
- 組織や部門でのアクセス制限
- 曜日や時間帯でのアクセス制限
- 特定ユーザーでのアクセス制限
- 端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止
SSLクライアント認証のログ
SSLクライアント認証時のアクセスログの出力先を指定出来ます。Webサーバー側でアクセスログを取得出来ます。
SSLクライアント証明書の発行
SSLクライアント証明書を個別発行の場合(1枚発行の場合)
例 suzuki@mubit.com ユーザーのクライアント証明書を作成
有効期限などを指定して発行します
SSLクライアント証明書のブラウザへのインストール(Firefoxの場合)
「証明書を表示」をクリック
「あなたの証明書」のインポートをクリック
SSLクライアント証明のパスワード入れてインストールします
正常にインポート時の表示
証明書マネージャーにインストールしたクライアント証明書が表示されます
WordPressのインストール
Powered BLUE のフリープラグイン機能によりWordPressは、管理画面から簡単にインストール&セットアップが出来ます
フリープラグインを選択
入手可能性を調べるを選択
リストアップされた WordPress の メガネ マークをクリック
インストールボタンをクリック
WordPress を設定します
WordPressから通知を受けるメールアドレスなどを入力して、保存します
blogを作成
- ブログを追加する サイトのパブリックなブログ
- ユーザーブログを追加する 個人のブログ
ブログを追加するを選択 ( 例 パブリックなブログを作成 )
ブログのパラメータの設定
- ブログのパス
- ブログのユーザー名
- メールアドレス
- ブログのタイトル
などを指定して保存します
ブログをサイトへインストール
ブログのコントロール画面へアクセス
鉛筆マークをクリック
ブログのコントロール画面
ブログの管理画面へのアクセス
- コンソールを開く をクリック
- 初期パスワードは自動生成されています
- メールで通知されたURLからのアクセスも出来ます
ブログの管理画面
ブログのカスタマイズ
- パスワードなどは、適宜修正して下さい
複数のブログを作成の場合には、ブログを追加する 以降の作業を繰り返します
個人のブログの場合
ユーザーブログを追加する を選択 ( 例 個人のブログを作成 )
作成するユーザーを選択
例 ootani
blogのパスなどを適宜設定(例 /angels ) して 保存
インストールの状況 完了で インストール終了
ユーザー ootani の鉛筆マークをクリックで管理画面へアクセス
ブログの管理画面へのアクセス
- コンソールを開く をクリック
- 初期パスワードは自動生成されています
- メールで通知されたURLからのアクセスも出来ます
ブログのカスタマイズ
iDP / Keycloak 構築
iDPとしてKeycloakを利用します.
KeycloakでSAMLを使ってみる(WordPress編)を参考にしてiDPを設定します
https://qiita.com/katakura__pro/items/1e65e0bde7fda75332a1
WordPress / SP の設定
KeycloakでSAMLを使ってみる(WordPress編)を参考にして、WordPressにOneLogin SAML SSOプラグインを適用してSAMLのSPを設定します
https://qiita.com/katakura__pro/items/1e65e0bde7fda75332a1
WordPress / SP へアクセス
SSLクライアント認証が有効な場合
iDP側での認証
WordPress / SPへのログイン
WordPress / SP へアクセス
SSLクライアント認証が拒否された場合
iDPへのアクセスが出来ません
IDaaS連携
IDaaS/idPとの連携でSSO/SAML認証でWordPressを利用の設定例
WebサイトをSAML2.0のSSO/シングルサインオンで構築(WordPress対応)
終わりに
SSOやiDaaSを利用しているが、一部のWebサイトへSSLクライアント認証を付与したい。リバースプロキシにSSLクライアント認証を付与したい。詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。