SAML対応WordPressをSSLクライアント認証で運用する

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台で運用

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif 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クライアント認証をリバースプロキシに付与することも対応可能です。

https://www.mubit.co.jp/sub/products/ca/img2/ca-rev-1.png

 

構築の手順

  • 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サーバー証明書の登録も出来ます。

https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif Powered BLUE への Let’s Encrypt のインストール方法

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/setup15.png

プライベートCAの設定

  • CA証明書の有効期限を設定

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2017/05/ca-test2.png

SSLクライアント証明書の発行

SSLクライアント証明書を個別発行の場合(1枚発行の場合)

例 suzuki@mubit.com ユーザーのクライアント証明書を作成

有効期限などを指定して発行します

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/setup16.png

SSLクライアント証明書を個別発行の場合(1枚発行の場合)

例 suzuki@mubit.com ユーザーのクライアント証明書を作成

有効期限などを指定して発行しますhttps://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/owncloud-ca-1.png

SSLクライアント証明書をダウンロードしますhttps://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/setup17.png

SSLクライアント認証の有効化

[クライアント認証を有効にする] ことで、このPowered BLUE のプライベートCAを運用する仮想サイトへは、有効なSSLクライアント証明書がインストールされた ブラウザのみ、WoredPressの運用するサイトへアクセスが出来ます。

例 https://PrivateCA の仮想サイト/xx

https://www.mubit.co.jp/plugin/ownCloud/images/setup23.png

SSLクライアント認証時のアクセスコントロール

有効なSSLクライアント証明書を有している場合でも、Webサイト毎に各種のアクセスコントロールが設定出来ます
失効リスト(CRL)に関わらず、ただちにWebへのアクセス禁止を設定できます
SSLクライアント証明書を失効させることなく、Webへのアクセスを禁止できます

  • 組織や部門でのアクセス制限
  • 曜日や時間帯でのアクセス制限
  • 特定ユーザーでのアクセス制限
  • 端末を紛失したので、ただちにAさんのSSLクライアント証明書でのアクセスを禁止

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/ssl-access-3-1.png

SSLクライアント認証のログ

SSLクライアント認証時のアクセスログの出力先を指定出来ます。Webサーバー側でアクセスログを取得出来ます。

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/12/ssl-access-2.png

SSLクライアント証明書の発行

SSLクライアント証明書を個別発行の場合(1枚発行の場合)

例 suzuki@mubit.com ユーザーのクライアント証明書を作成

有効期限などを指定して発行します

SSLクライアント証明書のブラウザへのインストール(Firefoxの場合)

「証明書を表示」をクリック

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/firefox-1.png

「あなたの証明書」のインポートをクリック

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/firefox-2.png

SSLクライアント証明のパスワード入れてインストールします

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/firefox-3.png

正常にインポート時の表示

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/firefox-4.png

証明書マネージャーにインストールしたクライアント証明書が表示されます

https://www.mubit.co.jp/pb-blog/wp-content/uploads/2015/01/firefox-5.png

WordPressのインストール

Powered BLUE のフリープラグイン機能によりWordPressは、管理画面から簡単にインストール&セットアップが出来ます

 

フリープラグインを選択

入手可能性を調べるを選択

リストアップされた WordPress の メガネ マークをクリック

インストールボタンをクリック

 

MariaDB のパスワードを設定

MariaDBを有効にします

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へのアクセスが出来ません

 

終わりに

SSOやiDaaSを利用しているが、一部のWebサイトへSSLクライアント認証を付与したい。リバースプロキシにSSLクライアント認証を付与したい。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの https://www.mubit.co.jp/sub/products/blue/img2/arrow-finger.gif お問い合わせフォーム からご連絡ください。