2016/11
Amazon Web Services BIG-IPセットアップガイド ~ SAML フェデレーション ~
F5 Networks Japan V1.0
2
目次
1. はじめに ................................................................................................................................................................. 4
2. AWSマネージメントコンソールとの SAML フェデレーション ...................................................................................... 5
2.1. VPC設定 ........................................................................................................................................................ 6
VPCウィザード ......................................................................................................................................... 6
インターネットゲートウェイ ......................................................................................................................... 7
サブネットの追加 ...................................................................................................................................... 7
ルートテーブルの設定............................................................................................................................... 8
2.2. EC2で BIG-IP インスタンスを起動 ................................................................................................................... 9
AWS Marketplaceからインスタンスを生成 ............................................................................................... 9
Virtual Server用のセカンダリプライベート IPアドレス設定 ...................................................................... 13
Elastic IPの発行と割り当て ................................................................................................................... 14
2.3. BIG-IPの SAML IdP設定 ............................................................................................................................. 16
BIG-IPへの SSHログイン(PuTTY利用) ................................................................................................ 16
CLIでの初期設定 .................................................................................................................................. 19
WebUIでの初期設定 ............................................................................................................................. 19
ネットワーク設定 ..................................................................................................................................... 21
Local User DBの設定 ........................................................................................................................... 23
証明書とキーの作成 ............................................................................................................................... 25
SAML IdP設定 ...................................................................................................................................... 26
SAML Resource設定 ............................................................................................................................ 32
Webtop設定 .......................................................................................................................................... 33
Access Profileの設定 ........................................................................................................................ 34
Virtual Serverの設定 ......................................................................................................................... 39
2.4. AWS IAMの SAML SP設定 ......................................................................................................................... 40
IDプロバイダーの作成 ........................................................................................................................... 40
ロールの設定 ......................................................................................................................................... 41
2.5. SAML動作確認 ............................................................................................................................................ 43
2.6. アクセス権限のコントロール ........................................................................................................................... 44
Local User DBへのユーザ追加 ............................................................................................................. 44
Local IdP Serviceの設定変更 ............................................................................................................... 45
Access Profile(Access Policy)の設定変更............................................................................................. 46
AWS IAMロールの設定追加.................................................................................................................. 49
動作確認 ................................................................................................................................................ 50
3. BIG-IPを SAML SP とした SAML フェデレーション ................................................................................................ 51
3.1. VPC設定 ...................................................................................................................................................... 52
VPCウィザード ....................................................................................................................................... 52
サブネットの追加 .................................................................................................................................... 53
ルートテーブルの設定............................................................................................................................. 54
Elastic IPの発行 ................................................................................................................................... 55
3.2. EC2で BIG-IP インスタンスを起動 ................................................................................................................. 56
AWS Marketplaceからインスタンスを生成 ............................................................................................. 56
管理インタフェースへの EIPの割り当て .................................................................................................. 60
Virtual Server用のセカンダリプライベート IPアドレス設定と EIPの割り当て ........................................... 61
[参考] EIPのメモ .................................................................................................................................... 62
3.3. EC2でWordPress インスタンスを起動 .......................................................................................................... 63
AWS Marketplaceからインスタンスを生成 ............................................................................................. 63
WordPressへの SSHログイン (PuTTY と Pageantの利用) ................................................................. 67
WordPressの SSLオフロード用の設定変更 .......................................................................................... 69
3.4. 既設 BIG-IPの SAML IdP設定(1) ................................................................................................................ 70
3.5. 新設 BIG-IPの SAML SP設定 ..................................................................................................................... 73
CLIでの初期設定 .................................................................................................................................. 73
WebUIでの初期設定 ............................................................................................................................. 73
ネットワーク設定 ..................................................................................................................................... 75
サーバロードバランシングの設定 ............................................................................................................ 77
3
サーバロードバランシグの動作確認 ........................................................................................................ 79
SAML SPの設定 ................................................................................................................................... 80
Access Profileの設定 ............................................................................................................................ 84
Virtual Serverの設定変更 ..................................................................................................................... 87
3.6. 既設 BIG-IPの SAML IdP設定(2) ................................................................................................................ 88
External SP Connector設定 ................................................................................................................. 88
Local SP Services設定 ......................................................................................................................... 89
SAML Resource設定 ............................................................................................................................ 90
Access Profileの設定 ............................................................................................................................ 91
3.7. SAML動作確認 ............................................................................................................................................ 93 IdP Initiated ........................................................................................................................................... 93 SP Initiated ............................................................................................................................................ 94
3.8. WordPressへのシングルサイオン ................................................................................................................. 96
WordPressへのユーザ登録................................................................................................................... 96
BIG-IPのシングルサインオン設定 .......................................................................................................... 98
Access Profileの設定 ............................................................................................................................ 99
シングルサインオン動作確認 ................................................................................................................ 101
[参考]APMのセッション変数について .................................................................................................. 102
4. 終わりに ............................................................................................................................................................. 103
5. [Appendix] SAMLのセキュリティ設定の強化 ...................................................................................................... 104
5.1. 証明書とキーの作成 .................................................................................................................................... 105
5.2. アサーションの AES暗号化 ......................................................................................................................... 106
5.3. SAML リクエストへの署名 ............................................................................................................................ 108
4
1. はじめに
本ガイドでは、Amazon Web Services (以降、AWS) 上での BIG-IPの SAML (Security Assertion Markup
Language) 設定方法をご紹介します。
SAMLを利用することで、企業が持つ ID情報 (例:Active Directoryなど) を利用して、様々なアプリケーションへのシ
ングルサインオンを実現できます。
BIG-IPは、SAML フェデレーションを実現するために必要な IdP と SPの両方の機能を実装できます。
本ガイドでは、大きく 2つのセクションに分かれています。
① AWSマネージメントコンソールとの SAML フェデレーション
② BIG-IPを SAML SP とした SAML フェデレーション
以降、豊富なスクリーンショットを用いて、ステップ byステップで設定できる形でご紹介していきます。
5
2. AWSマネージメントコンソールとの SAML フェデレーション
SAML フェデレーションを使って、AWSマネージメントコンソールへのシングルサインオンを実現します。
SAML IdP用に、VPC:IDP-VPC を一つ生成し、その中で BIG-IPを SAML IdP として動作させます。
SAML SPは AWSマネージメントコンソールです。
リージョンは Tokyo を選択しています。
Availability Zoneは ap-northeast-1c を選択しています。
VPC:IDP-VPCの CIDRブロックは 10.0.0.0/16 とし、VPC内の各サブネットを以下の位置づけとして作成します。
BIP-mgt-1c: BIG-IP管理用サブネット
BIP-ext-1c: BIG-IPの外部サービス用(Virtual Server用)サブネット
IdPでは一般的に Active Directoryや LDAPを使いますが、本ガイドでは簡易的に BIG-IPの内部 DBを使うことに
します。
6
2.1. VPC設定
まず、Amazon Virtual Private Cloud (VPC) を設定します。
VPCウィザード
(1) AWSへのログイン後に表示されるマネージメントコンソールのポータル画面から、VPC を選択します。
(2) VPCウィザードの開始ボタンを押します。
(3) 本ガイドでは、「1個のパブリックサブネットを持つ VPC」を選択します。
(4) VPC名、アベイラビリティーゾーン、サブネット名、を指定します。
(5) OKを押します。
VPC内で利用する CIDRブロックを指定
任意の名称を入力 (例:IDP-VPC)
IP CIDRブロック内からサブネットを指定
Availability Zone を選択
任意の名称を入力 (例:BIP-mgt-1c)
7
インターネットゲートウェイ
ナビゲーションペイン(左側メニュー)で「インターネットゲートウェイ」を選択します。
VPCウィザードによって、インターネットゲートウェイ(インターネットでの出入り口となるコンポーネント。図中の Internet
Gateway)が自動的に生成されていることがわかります。(ここは確認のみです。)
サブネットの追加
ネットワーク構成に合わせるためには、サブネットの追加が必要です。
その追加手順を示します。
(1) ナビゲーションペインで「サブネット」を選択します。
VPCウィザードによって生成されたサブネット(BIP-mgt-1c)が 1つだけ存在しています。
「サブネットの作成」ボタンを押します。
(2) BIP-ext-1cサブネットを追加します。
作成した VPCを選択
任意の名称を入力 (例:BIP-ext-1c)
作成した VPCを選択
AZを選択
サブネットを指定
8
ルートテーブルの設定
VPCウィザードによって、2つのルートテーブルが生成されています。
① VPC内のサブネットとインターネットゲートウェイのルート(0.0.0.0/0→igw-XXXX)を持つルートテーブル
② VPC内のサブネット(10.0.0.0/16)だけを持つルートテーブル
①のルートテーブルに関連付けらたサブネットだけが、インターネットとの通信が可能になります。
BIP-mgt-1cおよび BIP-ext-1cはそれぞれインターネットからのアクセスを必要とするので、①に関連付けます。
(1) ナビゲーションペインで「ルートテーブル」を選択します。
(2) 「ルート」タブ内にインターネットゲートウェイのルート (0.0.0.0/0→igw-XXXX) を持つ方のルートテーブルを選択しま
す。
(3) 「サブネットの関連付け」を見ると、VPCウィザードによって BIG-mgt-1cだけが関連付けられています。
「編集」ボタンを押して現れた以下の画面で、BIP-ext-1cにもチェックを入れて、「保存」ボタンを押します。
(4) これで、BIP-mgt-1cに加え、BIP-ext-1c もインターネットアクセスが可能になりました。
VPC内のルーティング
インターネットゲートウェイへのルート
関連付けにチェックを入れる
9
2.2. EC2で BIG-IPインスタンスを起動
Amazon Elastic Compute Cloud (Amazon EC2)で BIG-IP インスタンスを起動するまでの手順を示します。
AWS Marketplaceからインスタンスを生成
(1) AWSへのログイン後に表示されるマネージメントコンソールのポータル画面から、EC2を選択します。
(2) 表示された画面で「インスタンスの作成」ボタンを押します。
(3) ナビゲーションペインで AWS Marketplace を選択し、検索フォームに"BIG-IP"と入力して Enterキーを押します。
[パターン 1: 従量課金の場合]以下を選んで、「選択」ボタンを押します。
[パターン 2: BYOL(ライセンス持込み)の場合] BYOLの文字が入った BIG-IPを選んで、「選択」ボタンを押します。
※OS Versionが「12.1.0~」のものを選択してください。
(4) インスタンスタイプは、本ガイドでは「m4.2xlarge」を選択しました。
「次の手順:インスタンス詳細の設定」ボタンを押します。
BIG-IP と入力して、「Enter」キーを押す
BYOL
12.1.0~
時間毎の課金の記載があるもの
“Best”を選択
10
(5) 作成した VPC:IDP-VPCを選択し、サブネット:BIP-mgt-1c を選択します。
ネットワークインターフェイスで、eth0に BIG-IPの管理インタフェース用のプライベート IPアドレスを設定します。
画面下の「デバイスの追加」ボタンを押すと eth1が現れます。
サブネットは BIP-ext-1c を選択し、BIG-IPの外部インタフェース用のプライベート IPアドレスを設定します。
「次の手順:ストレージの追加」ボタンを押します。
~略~
(6) EBSのボリュームタイプで「汎用 SSD(GP2)」を選択します。
「次の手順:インスタンスのタグ付け」ボタンを押します。
作成した VPCを選択
BIP-mgt-1c を選択
無効化を選択
プライマリ IPにプライベートアドレスを入力
サブネットで「BIP-ext-1c」を選択
プライマリ IPにプライベートアドレスを入力
汎用 SSD(GP2)を選択
11
(7) Name タグに「BIP-IDP」と入力します。
「次の手順:セキュリティグループの設定」ボタンを押します。
(8) 「新しいセキュリティグループを生成する」が選択された状態になっているはずです。
セキュリティグループ名と説明はそのまま利用してもよいですが、短めのほうが分かりやすいと思います。
SSHに関しては、送信元 IPアドレスを限定しておくことが推奨されています。
「確認と作成」ボタンを押します。
(9) 一通り内容を確認し、「作成」ボタンを押します。
名称を入力
デフォルトで選択されている
任意の名称および説明を入力
(例:BIG-IP)
限定することを推奨
12
(10) 新しい Key Pair を作ります。
「新しいキーペアの作成」が選択されていることを確認してください。
キーペア名に名称(任意)を入力します。
「キーペアのダウンロード」ボタンを押します。
BIG-IPにアクセスするための PCにキーをダウンロードします。
キーがダウンロードできたら、「インスタンスの作成」ボタンを押します。
(11) 「インスタンスの表示」ボタンを押します。
(12) ステータスチェックが「2/2のチェックに合格しました」になれば、BIG-IP インスタンスの生成は完了です。
新しいキーペアの作成を選択
任意の名称を入力 (例:F5J-AWS-Key)
キーペアのダウンロードを押す
13
Virtual Server用のセカンダリプライベート IPアドレス設定
BIP-ext-1cのインタフェースに、セカンダリプライベート IPアドレスを追加します。
このアドレスが Virtual Serverのアドレスとなり、このアドレスを Elastic IP と関連付けます。
(1) ナビゲーションペインで「ネットワークインターフェイス」を選択します。
表示された画面で、プライマリプライベート IP として 10.0.11.212のアドレスを持つインタフェースを見つけます。
そのインタフェースを右クリックし、「プライベート IPアドレスの管理」を選択します。
(2) 「新しい IPの割り当て」をクリックして、Virtual Server用の IPアドレスを入力します。
「更新する」ボタンを押します。
もう一度同じ画面が現れるので、今度は「キャンセル」をクリックします。
(3) 以下のようにセカンダリプライベート IPアドレスが割り当てられます。
10.0.11.212
プライベート IPの管理を選択
Virtual Server用 IPを設定
14
Elastic IPの発行と割り当て
BIG-IPの管理インタフェース用の IP と、Virtual Server用 IPの 2つのパブリック IP を Elastic IP として用意しておきま
す。
2.2.3.1. EIPの発行
(1) ナビゲーションペインから「Elastic IP」を選択して表示された画面で、「新しいアドレスの割り当て」ボタンを押します。
(2) 「関連付ける」ボタンを押します。
(3) 「閉じる」ボタンを押します。
(4) もう一度同じ操作を繰り返し、EIPを 2つ用意します。
2.2.3.2. 管理インタフェースへの EIPの割り当て
BIG-IPの管理用インタフェース(BIP-mgt-1cに接続されたインタフェース)に、EIPを割り当てます。
(1) ナビゲーションペインで「Elastic IP」を選択します。
何も割り当てられていない 2つの EIPのうち、1つを右クリックし、「アドレスの関連付け」を選択します。
アドレスの関連付けを選択
15
(2) 「インスタンス」で、生成した BIG-IPを選択します。
「プライベート IPアドレス」で、管理インタフェース側(BIP-mgt-1c側=10.0.10.212)の IPを選択します。
「関連付ける」ボタンを押します。
2.2.3.3. Virtual Serverへの EIPの割り当て
もう一つの関連付けされていない EIPを右クリックし、「アドレスの関連付け」を選択します。
表示された以下の画面の「インスタンス」で、生成した BIG-IPを選択します。
「プライベート IPアドレス」で、外部インタフェース側(BIP-ext-1c側)のセカンダリプライベート IP(10.0.11.112)を選択しま
す。
「関連付ける」ボタンを押します。
2.2.3.4. [参考] EIPのメモ
Elastic IPアドレスおよびパブリック DNSは BIG-IPの設定でも利用するので、メモしておくと設定がスムーズです。
例)
インスタンス名 Interface Elastic IP パブリック DNS
BIP-IDP 管理用 52.197.57.39 ec2-52-197-57-39.ap-northeast-1.compute.amazonaws.com
Virtual Server 用 52.193.153.104 ec2-52-193-153-104.ap-northeast-1.compute.amazonaws.com
プルダウンから選択 or
インスタンス IDを入力。
IPを選択
プルダウンから選択 or
インスタンス IDを入力。
セカンダリプライベート IPを選択
16
2.3. BIG-IPの SAML IdP設定
BIG-IPが SAML IdP として動作するまでの設定を示します。
BIG-IPへの SSHログイン(PuTTY利用)
BIG-IPの管理用インタフェースに割り当てた EIP([参照]管理インタフェースへの EIPの割り当て)に対して、SSHでロ
グインします。
以降、PuTTYを使った場合の手順を示します。
2.3.1.1. キーの変換 (PuTTYgen)
インスタンス生成時に Key Pair を生成&ダウンロードしましたが、その Keyは.pem形式なので、そのままでは PuTTY
では使えません。よって、PuTTYgen を使って、PuTTYで使える形式(.ppk)に変換します。
(1) PuTTYgen を起動します。
(例:Windowsの[スタート] メニュー→[すべてのプログラム]→[PuTTY]→[PuTTYgen] をクリック。)
(2) Parametersの Type of key to generate:で RSAが選択されていることを確認し、「Load」ボタンを押します。
(3) ファイルを選択するWindowで、「All Files (*.*)」を選択します。
(4) BIG-IP インスタンス生成時に生成したキーペアの.pem ファイル(例:F5J-AWS-key.pem)を選択し、「開く」ボタンを押
します。このことで、PuTTY が使用できる形式(.ppk)に変換されます。
17
(5) [Save private key] ボタンを押して、その変換後のキーを保存します。
(パスフレーズなしでキーを保存することに関する警告が表示されますが、[Yes]ボタンを押します。)
2.3.1.2. Pageantの利用
Pageantに、変換したキー(.ppk)を登録しておくことで、SSHログインの際のキー指定を省略できます。
(1) Pageant を起動します。
(例:Windowsの[スタート] メニュー→[すべてのプログラム] → [PuTTY] → [Pageant] をクリック。)
(2) 「Add Key」ボタンを押します。
(3) ファイルを選択するWindowで、先ほど「.pem」から「.ppk」へ変換したファイルを選択し、「開く」ボタンを押します。
以下のように、キーが追加されます。
18
2.3.1.3. PuTTYでの SSHログイン
(1) PuTTYを起動します。
(2) Host Name (or IP address)に、BIG-IPの管理インタフェースに割当てた EIP を指定して「Open」ボタンを押します。
(3) "login as:"と表示されます。
ユーザ名:adminを入力するだけで、キーを指定することなくログインできます。
BIG-IPの管理インタフェースの EIP
19
CLIでの初期設定
まず、CLIから初期設定を行っていきます。 以下のコマンドを実行します。
(1) [※※BYOLの場合のみ※※]以下のコマンドで、Registration Key(例:FQHBF-XXXXX-YYYYY-ZZZZZ-PXWNFLH)を使っ
て、ライセンスファイルを取得します。(従量課金の場合はこの設定は不要です。)
admin@(ip-10-0-10-212)(cfg-sync Standalone)(NO LICENSE)(/Common)(tmos)# install sys license license-
server activate.f5.com registration-key FQHBF-XXXXX-YYYYY-ZZZZZ-PXWNFLH
(2) WebUIログイン用の adminパスワードを変更します。
admin@(ip-10-0-10-212)(cfg-sync Standalone)(Active)(/Common)(tmos)# modify auth password admin
changing password for admin
new password: <パスワード(任意)>
confirm password: <パスワード(任意)>
(3) WebUIの初期ウィザードを停止します。
admin@(ip-10-0-10-212)(cfg-sync Standalone)(Active)(/Common)(tmos)# modify sys global-settings gui-
setup disabled
(4) 設定を保存します。
admin@(ip-10-0-10-212)(cfg-sync Standalone)(Active)(/Common)(tmos)# save sys config
Saving running configuration...
/config/bigip.conf
/config/bigip_base.conf
/config/bigip_user.conf
Saving Ethernet mapping...done
(5) [※※従量課金の場合のみ※※] 約 10分程度経過しても「(NO LICENSE)」を維持しているような場合には、以下の
コマンドで、BIG-IPを再起動してください。
admin@(ip-10-0-10-212)(cfg-sync Standalone)(NO LICENSE)(/Common)(tmos)# reboot
WebUIでの初期設定
WebUIから初期設定を行っていきます。
(1) 管理インタフェースに割り当てた EIPに、Webブラウザで HTTPSアクセスします。
Usernameは"admin"で、Passwordは先ほど CLIで設定した文字列でログインします。
admin
CLIで設定したパスワード
20
(2) 「System」→「Platform」を選択し表示された画面で、以下のように設定変更します。
(3) 「System」→「Resource Provisioning」を選択して表示された画面で「Access Policy (APM)」にチェックを入れます。
~略~
~略~
(4) 確認が出ます。OKボタンを押します。
Time Zone を選択
21
(5) 「Continue」ボタンが出るまで、約 1分程度待ちます。
「Continue」ボタンを押します。
ネットワーク設定
2.3.4.1. VLAN設定
まず、インタフェースに VLANを割り当てます。
「Network」→「VLANs」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
任意の名称を入力 (例:external)
Interface: 1.1 Tagging: Untagged
を選んで「Add」ボタンを押す
22
2.3.4.2. Self IP設定
作成した VLANに、IPアドレスを割り当てます。
「Network」→「Self IPs」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
2.3.4.3. Routes設定
インターネットへのデフォルトゲートウェイを設定します。
「Network」→「Routes」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
任意の名称を入力 (例:external-ip)
ネットワーク図中の external-ipアドレスと
Netmask を入力
作成済み VLANを選択
任意の名称を入力 (例:default-gw)
宛先および Netmaskに 0.0.0.0 を入力
AWSのゲートウェイのアドレスを入力
23
Local User DBの設定
ユーザ認証に使う BIG-IP内部の Local User DBを設定します。
ユーザ認証には Active Directoryや LDAPを使うのが一般的ですが、本ガイドでは簡易的に BIG-IP APMに標準で用
意されている Local User DBを利用することにします。
2.3.5.1. インスタンスの作成
Local User DBは、インスタンスを分けることで、複数のユーザ DBを持つことができるようになっています。
本ガイドでは 1つしか利用しませんが、その場合もインスタンスの設定が必要です。
(1) 「Access Policy」→「Local User DB」→「Manage Instances」で表示された画面で、「Create New Instance」ボタンを
押します。
(2) 現れた画面で以下のように設定します。
任意の名前を入力 (例:saml-user)
24
2.3.5.2. ユーザの作成
作成済みインスタンスへ、ユーザを作成することにします。
本ガイドではユーザ名を「test1001」としました。
(1) 「Access Policy」→「Local User DB」→「Manage Users」で表示された画面で、「Create New User」ボタンを押しま
す。
(2) 「User Information」で、ユーザ名とパスワードを設定します。
(3) 「User Group」で、グループ名を指定しておきます。(後の権限割り当ての際に、ユーザ属性として利用します。)
ユーザ名(test1001)を入力。
パスワード(任意)を入力
作成したインスタンス
①
②”ec2readonly”と入力
③
④
25
証明書とキーの作成
SAML IdP用の証明書とキーを作ります。
(1) 「System」→「File Management」→「SSL Certificate List」で表示された画面で、「Create」ボタンを押します。
(2) 表示された画面で、以下のように設定します。
(どのような値でも SAML動作に影響はありません。)
任意の名称を入力 (例:idp-saml)
任意の Common Name を指定 (例:idp.saml.lab)
部署、組織、所在地など(任意)を入力
26
SAML IdP設定
BIG-IPが SAML IdP として動作するための設定を行います。
2.3.7.1. External SP Connector設定
SAML SP となる AWSマネージメントコンソール用の Metadata をインポートして、External SP Connector として設定し
ます。
(1) Amazonの以下 Linkから、Metadata をダウンロードします。
https://signin.aws.amazon.com/static/saml-metadata.xml
(2) 「Access Policy」→「SAML」→「BIG-IP as IdP」で表示された画面で、「External SP Connectors」タブをクリックしま
す。 「Create」横の▼をクリックし、「From Metadata」を選択します。
(3) 現れた画面で、以下のように設定します。
AmazonからダウンロードしたMetadata を指定
任意の名前を指定 (例:aws.amazon.com)
27
2.3.7.2. Local IdP Services設定
SAML IdP として必要な設定を行っていきます。
(1) 「Local IdP Services」タブをクリックして表示された画面で、「Create」ボタンを押します。
(2) 「General Settings」で、以下のように設定します。
[参考] IdP Entity ID = https://ec2-52-193-153-104.ap-northeast-1.compute.amazonaws.com
任意の名称を入力 (例:AWS_Portal_SAML)
Virtual Serverの EIPに
紐付いた DNS名を指定
28
(3) 「Assertion Settings」で、以下のように設定します。
(4) 「SAML Attributes」で「Add」ボタンを押します。
(5) 一つ目のアトリビュート設定です。
[Name] https://aws.amazon.com/SAML/Attributes/Role
[Value(s)] arn:aws:iam::999999999999:role/test-saml-ec2readonly,arn:aws:iam::999999999999:saml-provider/ec2-52-193-153-104.ap-northeast-1.compute.amazonaws.com
999999999999の部分には、AWSの Account番号を"-"なしで指定します。
AWSマネージメントコンソールへのログイン後に、ユーザ IDをクリックすると、"Account:"の下に"-"ありの 12桁の番
号が表示されます。それが Account番号です。
AWSの IAMロール名(後で AWS側で設定します)を「test-saml-ec2readonly」としますので、その値をここで指定し
ます。
最後に BIG-IPの Virtual Serverに紐付いた EIPの FQDN(ec2-52-193-153-104.ap-northeast-
1.compute.amazonaws.com)を指定します。
Entity Identifier を選択
%{session.logon.last.username}を選択
9999-9999-9999
29
上記の値を使って、以下のように設定します。
(6) 二つ目のアトリビュートです。
[Name] https://aws.amazon.com/SAML/Attributes/RoleSessionName
[Value(s)] %{session.logon.last.logonname}
上記の値を使って、以下のように設定します。
上記の Name値を入力
②上記の Value(s)値を入力
①
③
④
上記の Name値を入力
②上記の Value値を入力
①
③
④
30
(7) 「Security Settings」で、作成済みの証明書とキーを選択します。
(8) External SP Connectorsで作成した aws.amazon.com とバインドします。
AWS_Portal_SAMLが選択された状態で、「Bind/Unbind SP Connectors」ボタンを押します。
(9) /Common/aws.amazon.com を選んで、「OK」ボタンを押します。
作成済みのキーを選択
作成済みの証明書を選択
31
(10) 設定した IDPの Metadata をエクスポートします。
AWS_Portal_SAMLが選択された状態で、「Export Metadata」ボタンを押します。
(11) 「Download」ボタンを押して、ファイルをローカル PCへダウンロードしておきます。
32
SAML Resource設定
AWSマネージメントコンソールを、BIG-IPの SAML リソースとして設定します。
「Access Policy」→「SAML」→「SAML Resources」で表示された画面右上の「Create」ボタンを押して現れた画面で、以
下のように設定します。
任意の名称を入力 (例:AWS_management_console)
設定した Local SP Service を選択
33
Webtop設定
IdPへログイン後に表示されるWebアプリケーション用のオブジェクト(Webtop)を生成します。
「Access Policy」→「Webtops」で表示された画面右上の「Create」ボタンを押して表示された画面で、以下のように設定
します。
任意の名称を入力 (例:saml_webtop)
Full を選択
34
Access Profileの設定
Access Profile を生成します。
SAML IdP として振る舞いを、この Profileで指定します。
(1) 「Access Policy」→「Access Profiles」で表示された画面右上の「Create」ボタンを押して表示された画面で、以下の
ように設定します。
~略~
(2) 作成した Access Profileの Edit をクリックします。
任意の名称を入力 (例:IDP_profile)
言語を選択
All を選択
35
(3) 新しくWebページが立ち上がり、以下の画面が現れます。「+」をクリックします。
(4) 「Logon」タブで、「Logon Page」にチェックを入れて、「Add Item」ボタンを押します。
~略~
(5) 何も変更せず、そのまま「Save」ボタンを押します。
~略~
36
(6) 「Logon Page」の後ろの「+」をクリックします。
「Authentication」タブで「LocalDB auth」にチェックを入れて、「Add Item」ボタンを押します。
~略~
(7) 作成した Local User DBのインスタンスを選択して「Save」ボタンを押します。
(8) 「LocalDB Auth」の Successfulの後ろにある「+」をクリックします。
「Assignment」タブで「Advanced Resource Assign」にチェックを入れて、「Add Item」ボタンを押します。
~略~
作成した Local User DBのインスタンスを選択
37
(9) 「Add new entry」ボタンを押します。現れた部分で「Add/Delete」をクリックします。
(10) 「SAML x/x」タブで、「/Common/AWS_management_console」にチェックを入れます。
(11) 「Webtop x/x」タブで、「/Common/saml_webtop」にチェックを入れ、「Update」ボタンを押します。
(12) 「Save」ボタンを押します。
(13) Advanced Resource Assignの後ろの「Deny」をクリックします。
「Allow」にチェックを入れて、「Save」ボタンを押します。
38
(14) 以下のようなフローチャートが出来上がります。
「Apply Access Policy」をクリックして設定を適用します。
39
Virtual Serverの設定
SAML IdPへの HTTP リクエストを処理するためには、Access Profileが割当てられた Virtual Serverが必要です。
「Local Traffic」→「Virtual Servers」で現れた画面右上の「Create」ボタンを押して、以下のように設定します。
~略~
~略~
BIG-IPの SAML SP としての設定は以上です。
任意の名称を入力 (例:IDP-vs)
Virtual Serverの IPアドレスと
ポート番号を指定
http を選択
clientssl を選択
作成した Access Profile を選択
40
2.4. AWS IAMの SAML SP設定
AWSマネージメントコンソールが SAML SP として動作するよう、AWSの Identity and Access Management (IAM) の
設定を行います。
IDプロバイダーの作成
SAML IDプロバイダーとして、BIG-IP を AWSに登録します。
(1) AWSへのログイン後に表示されるマネージメントコンソールのポータル画面から、IAM を選択します。
(2) ナビゲーションペインで「ID プロバイダー」を選択し、「プロバイダーの作成」ボタンを押します。
(3) 以下のように設定します。
(4) 「作成」ボタンを押します。
この後、「ロールの設定が必要」というメッセージが出ますので、ロールの設定に移ります。
SAML を選択
BIG-IPの Virtual Serverに割当てた EIPの DNS名を指定
BIG-IPから Export した Metadata を指定
41
ロールの設定
作成した IDプロバイダーで認証されたユーザへ、どのような権限を与えるかを指定します。
(1) ナビゲーションペインで「ロール」を選択し、「新しいロールの作成」ボタンを押します。
(2) BIG-IPの SAML IdP設定の際に使った値:「test-saml-ec2readonly」をロール名に指定し、「次のステップ」ボタンを
押します。
(3) 「IDプロバイダアクセス用ロール」をチェックし、「SAMLプロバイダーへのウェブシングルサインオン~」の「選択」ボタ
ンを押します。
(4) 作成した IDプロバイダーが選択されていることを確認し、「次のステップ」ボタンを押します。
test-saml-ec2readonly
作成した IDプロバイダーが選択されていることを確認
42
(5) そのまま「次のステップ」ボタンを押します。
(6) "ポリシータイプ"の横のフォームに"ec2readonly"と入れてポリシーを検索します。
「AmazonEC2ReadOnlyAccess」にチェックを入れて、「次のステップ」ボタンを押します。
(7) 一通り内容を確認し、「ロールの作成」ボタンを押します。
以上で AWS IAM設定は完了です。
43
2.5. SAML動作確認
AWSマネージメントコンソールへ SAMLでログオンできることを確認します。
(1) クライアント PCから、BIG-IPの Virtual Serverへアクセスし、「test1001」ユーザでログインします。
(2) 「AWS_management_console」アイコンをクリックします。
(3) 自動的に AWSマネージメントコンソールへログインができ、「test1001」ユーザに「test-saml-ec2readonly」ロールが
割当てられていることを確認します。
test1001
クリック
44
2.6. アクセス権限のコントロール
ユーザが所属するグループ単位に、アクセス権限を制御したい、というニーズに対する設定です。
本ガイドでは BIG-IPの Local User DBの Group値を利用しますが、Active Directoryや LDAP を認証サーバとして設
定すれば、それらが持つ Group も利用できます。
本ガイドでは、以下のように制御することにします。
ユーザ名 グループ AWSロール名 AWSポリシー
test1001 ec2readonly test-saml-ec2readonly AmazonEC2ReadOnlyAccess
test1002 ec2fullaccess test-saml-ec2fullaccess AmazonEC2FullAccess
「test1001」ユーザは既に作成済みですので、「test1002」ユーザ用の設定を行います。
Local User DBへのユーザ追加
test1002ユーザを Local User DBへ追加します。
(1) 「Access Policy」→「Local User DB」→「Manage Users」で表示された画面で、「Create New User」ボタンを押しま
す。
(2) 「User Information」で、ユーザ名(test1002)とパスワードを設定します。
(3) 「User Groups」で、グループ名:「ec2fullaccess」を指定します。
ユーザ名(test1002)を入力。
パスワード(任意)を入力
作成したインスタンス
①Add Group
②ec2fullaccess
③
④
45
Local IdP Serviceの設定変更
Local SP Servicesで AWS_Portal_SAMLを生成する際に、AWSロール名:「test-saml-ec2readonly」を直接アトリビ
ュートに指定しました。この部分を変数に変更します。
(1) 「Access Policy」→「SAML」→「BIG-IP as IdP」で表示された画面で「AWS_Portal_SAML」を選択し、「Edit」ボタンを
押します。
(2) 「SAML Attributes」で、Value(s)に DNS名が指定されているほうにチェックを入れ、「Edit」ボタンを押します。
(3) Value(s)の「test-saml-ec2readonly」を、「%{session.samlresource.aws.role}」に書き換えます。
arn:aws:iam::999999999999:role/%{session.samlresource.aws.role},arn:aws:iam::999999999999:saml-provider/ec2-52-193-153-104.ap-northeast-1.compute.amazonaws.com
46
Access Profile(Access Policy)の設定変更
Local User DBの Group名を読み取って、変数:「session.samlresource.aws.role」に、AWSの IAMロール名を代入
するための設定を行います。
(1) 「Access Policy」→「Access Profiles」で表示された、作成済みの Access Profile(IDP_Profile)の Editをクリックしま
す。
(2) 以下の画面で、LocalDB Authの Successfulの後ろにある「+」をクリックします。
(3) 「General Purpose」タブで、「Local Database」にチェックを入れて、「Add Item」ボタンを押します。
~略~
47
(4) 作成済みの Local DB インスタンスを選択します。
「Add new entry」ボタンを押して、以下のように設定し、「Save」ボタンを押します。
(5) 作成した「Local Database」の後ろの「+」をクリックします。
「Assignment」タブで「Variable Assign」にチェックを入れて、「Add Item」ボタンを押します。
~略~
(6) 「Add new entry」ボタンを押して現れた行で、「Change」をクリックします。
作成した Local User DBのインスタンスを選択
"session.localdb.groups"に変更 " groups"を選択
48
(7) 以下のように指定して、「Finished」ボタンを押します。
[Custom Variable] session.samlresource.aws.role
[Custom Expression]
※ TCL形式です。TCLの特性上、空白文字が重要ですので、注意してください。
if {[mcget {session.localdb.groups}] equals "ec2readonly"} { return "test-saml-ec2readonly"} elseif
{[mcget {session.localdb.groups}] equals "ec2fullaccess"} { return "test-saml-ec2fullaccess"} else
{ return "NULL"}
(8) 「Save」ボタンを押します。
(9) 「Apply Access Policy」をクリックして、設定を適用します。
追加分
49
AWS IAMロールの設定追加
ロール名を「test-saml-ec2fullaccess」とした、AmazonEC2FullAccessポリシーを持つロールを追加します。
(1) AWSの IAMに入ります。
(2) ナビゲーションペインで「ロール」を選択し、「新しいロールの作成」ボタンを押します。
(3) BIG-IPの SAML IdP設定の際に使った値:「test-saml-ec2fullaccess」をロール名に指定し、「次のステップ」ボタンを
押します。
(4) 「IDプロバイダアクセス用ロール」をチェックし、「SAMLプロバイダーへのウェブシングルサインオン~」の「選択」ボタ
ンを押します。
(5) 作成した IDプロバイダーが選択されていることを確認し、「次のステップ」ボタンを押します。
test-saml-ec2fullaccess
作成した IDプロバイダーが選択されていることを確認
50
(6) そのまま「次のステップ」ボタンを押します。
(7) "ポリシータイプ"の横のフォームに"ec2full"と入れてポリシーを検索します。
「AmazonEC2FullAccess」にチェックを入れて、「次のステップ」ボタンを押します。
(8) 一通り内容を確認し、「ロールの作成」ボタンを押します。
動作確認
(1) クライアント PCから、BIG-IPの Virtual Serverへアクセスし、「test1002」ユーザでログインします。
(2) 「AWS_management_console」アイコンをクリックします。
(3) IAMロールが「test-saml-ec2fullaccess」になることを確認してください。
51
3. BIG-IPを SAML SP とした SAML フェデレーション
BIG-IPを SAML SP として設定して、SAML フェデレーションが行えることを確認します。
SAML SP用の VPC:F5JP-VPC を生成し、その中で BIG-IPを SAML SP として動作させます。
SAML SPのWebアプリケーションとして、WordPressを使うこととします。
F5JP-VPCの CIDR ブロックは 10.0.0.0/16 とし、VPC内の各サブネットを以下の位置づけとして作成します。
BIP-mgt-1a: BIG-IP管理用サブネット
BIP-ext-1a: BIG-IPの外部サービス用(Virtual Server用)サブネット
BIP-int-1a: BIG-IPのロードバランシング対象のサーバ用サブネット
本ガイドでは、AZ1に ap-northeast-1a を選択していますが、以降の設定ステップにおいては、どの Availability Zone
を選んでも問題ありません。
例えば、Availability Zone毎に選択可能なインスタンスタイプが異なる場合がある(選びたいインスタンスタイプがない
場合がある)ようですので、そのような Availability Zone固有の問題が発生した場合には、VPC作成からやり直して、
別の Availability Zone を指定してください。(AZ1 と AZ2が同じ Availability Zoneでも構いません。)
52
3.1. VPC設定
まず、Amazon Virtual Private Cloud (VPC) を設定します。
VPCウィザード
(1) AWSマネージメントコンソールのポータル画面から、VPCを選択します。
(2) VPCウィザードの開始ボタンを押します。
(3) 本ガイドでは、「1個のパブリックサブネットを持つ VPC」を選択します。
(4) VPC名、アベイラビリティーゾーン、サブネット名、を指定します。
(5) OKを押します。
VPC内で利用する CIDRブロックを指定
任意の名称を入力 (例:F5JP-VPC)
IP CIDRブロック内からサブネットを指定
Availability Zone を選択
任意の名称を入力 (例:BIP-mgt-1a)
53
サブネットの追加
ネットワーク構成に合わせるためには、あと 2つのサブネットの追加が必要です。
その追加手順を示します。
(1) 「VPCでフィルタリング:」プルダウンで、作成した VPC を選択します。
(2) ナビゲーションペインで「サブネット」を選択します。
VPCウィザードによって生成されたサブネット(BIP-mgt-1a)が 1つだけ存在しています。
「サブネットの作成」ボタンを押します。
(3) BIP-ext-1aサブネットを追加します。
(4) BIP-int-1aサブネットを追加します。
作成した VPCを選択
任意の名称を入力 (例:BIP-ext-1a)
作成した VPCを選択
AZを選択
サブネットを指定
任意の名称を入力 (例:BIP-int-1a)
作成した VPCを選択
AZを選択
サブネットを指定
54
(5) 以下のように 3つのサブネットが生成されました。
ルートテーブルの設定
VPCウィザードによって、ルートテーブルとして 2つのルートが生成されています。
① VPC内のサブネットとインターネットゲートウェイのルート(0.0.0.0/0→igw-XXXX)を持つルートテーブル
② VPC内のサブネット(10.0.0.0/16)を持つルートテーブル
BIP-mgt-1aおよび BIP-ext-1aはそれぞれインターネットからのアクセスを必要とするので、①に関連付けます。
(1) ナビゲーションペインで「ルートテーブル」を選択します。
(2) 「ルート」タブ内にインターネットゲートウェイのルート (0.0.0.0/0→igw-XXXX) を持つ方のルートテーブルを選択しま
す。
(3) 「サブネットの関連付け」を見ると、VPCウィザードによって BIG-mgt-1aだけが関連付けられています。
「編集」ボタンを押します。
VPC内のルーティング
インターネットゲートウェイへのルート
BIG-IP管理用(BIP-mgt-1a)
55
(4) BIP-ext-1aの関連付けにチェックを入れて、「保存」ボタンを押します。
(5) これで、BIP-mgt-1aに加え、BIP-ext-1a もインターネットアクセスが可能になりました。
Elastic IPの発行
BIG-IPのマネージメントインタフェース用の IP と、Virtual Server用 IPの 2つのパブリック IPを Elastic IP として用意し
ておきます。
(1) ナビゲーションペインから「Elastic IP」を選択して表示された画面で、「新しいアドレスの割り当て」ボタンを押します。
(2) 「はい、割り当てる」ボタンを押します。
(3) もう一度同じ操作を繰り返し、EIPを 2つ用意します。
(4) 以下は、まだ関連付けが行われていない 2つの EIPが割り当てられた状態です。
関連付けにチェックを入れる
56
3.2. EC2で BIG-IPインスタンスを起動
Amazon Elastic Compute Cloud (Amazon EC2)で BIG-IP インスタンスを起動するまでの手順を示します。
AWS Marketplaceからインスタンスを生成
(1) AWS マネージメントコンソールのポータル画面から、EC2を選択します。
(2) 表示された画面で「インスタンスの作成」ボタンを押します。
(3) AWS Marketplaceを選択し、検索フォームに"BIG-IP"と入力して Enterキーを押します。
[パターン 1: 従量課金の場合]以下を選んで、「選択」ボタンを押します。
[パターン 2: BYOL(ライセンス持込み)の場合] BYOLの文字が入った BIG-IPを選んで、「選択」ボタンを押します。
※OS Versionが「12.1.0~」のものを選択してください。
(4) インスタンスタイプは、本ガイドでは「m4.2xlarge」を選択しました。
「次の手順:インスタンス詳細の設定」ボタンを押します。
BIG-IP と入力して、「Enter」キーを押す
BYOL
12.1.0~
時間毎の課金の記載があるもの
57
(5) 作成した VPC:F5JP-VPC を選択し、サブネット:BIP-mgt-1aを選択します。
ネットワークインターフェイスで、eth0に BIG-IPの管理インタフェース用のプライベート IPアドレスを設定します。
「デバイスの追加」ボタンを押すと eth1が現れます。
サブネットは BIP-ext-1a を選択し、BIG-IPの外部インタフェース用のプライベート IPアドレスを設定します。
「次の手順:ストレージの追加」ボタンを押します。
~略~
(6) EBSのボリュームタイプで「汎用 SSD(GP2)」を選択します。
「次の手順:インスタンスのタグ付け」ボタンを押します。
作成した VPCを選択
BIP-mgt-1a を選択
無効化を選択
プライマリ IPにプライベートアドレスを入力
サブネットで「BIP-ext-1a」を選択
プライマリ IPにプライベートアドレスを入力
汎用 SSD(GP2)を選択
58
(7) Name タグに「BIP-VE001」と入力します。
「次の手順:セキュリティグループの設定」ボタンを押します。
(8) 「新しいセキュリティグループを生成する」が選択された状態になっているはずです。
セキュリティグループ名と説明はそのまま利用してもよいですが、短めのほうが分かりやすいと思います。
SSHに関しては、送信元 IPアドレスを限定しておくことが推奨されています。
「確認と作成」ボタンを押します。
(9) 一通り内容を確認し、「作成」ボタンを押します。
名称を入力
デフォルトで選択されている
任意の名称および説明を入力
(例:BIG-IP SP)
限定することを推奨
59
(10) 既存の Key Pair を使います。
(11) 「インスタンスの表示」ボタンを押します。
(12) ステータスチェックが「2/2のチェックに合格しました」になれば、BIG-IP インスタンスの生成は完了です。
「既存のキーペア選択」を選択
作成済みの Keyを選択
60
管理インタフェースへの EIPの割り当て
BIG-IPの管理用インタフェース(BIP-mgt-1aに接続されたインタフェース)に、EIPを割り当てます。
(1) ナビゲーションペインで「Elastic IP」を選択します。
何も割り当てられていない 2つの EIPのうち、1つを右クリックし、「アドレスの関連付け」を選択します。
(2) 「インスタンス」で、生成した BIG-IPを選択します。
「プライベート IPアドレス」で、マネージメント側(BIP-mgt-1a側=10.0.0.201)の IPを選択します。
「関連付ける」ボタンを押します。
(3) BIG-IPの管理用インタフェースに EIPが割り当てられました。
アドレスの関連付けを選択
プルダウンから選択 or
インスタンス IDを入力。
IPを選択
61
Virtual Server用のセカンダリプライベート IPアドレス設定と EIPの割り当て
BIP-ext-1aのインタフェースに、セカンダリプライベート IPアドレスを追加します。
このアドレスが Virtual Serverのアドレスとなり、このアドレスを EIP と関連付けます。
3.2.3.1. セカンダリプライベート IPアドレスの割り当て
(1) ナビゲーションペインで「ネットワークインターフェイス」を選択します。
表示された画面で、プライマリプライベート IP として 10.0.1.201のアドレスを持つインタフェースを見つけます。
そのインタフェースを右クリックし、「プライベート IPアドレスの管理」を選択します。
(2) 「新しい IPの割り当て」をクリックして、Virtual Server用の IPアドレスを入力します。
「更新する」ボタンを押します。
もう一度同じ画面が現れるので、今度は「キャンセル」をクリックします。
(3) 以下のようにセカンダリプライベート IPアドレスが割り当てられます。
10.0.1.201
プライベート IPの管理を選択
Virtual Server用 IPを設定
62
3.2.3.2. セカンダリプライベート IPへ EIPを割り当て
この Virtual Server用に割り当てたセカンダリプライベート IPアドレスに EIPを割り当てます。
(1) ナビゲーションペインで「Elastic IP」を選択します。
何も関連付けられていない EIPを右クリックして、「アドレスの関連付け」をクリックします。
(2) 「インスタンス」で、生成した BIG-IPを選択します。
「プライベート IPアドレス」で、Virtual Server用のセカンダリプライベート IPアドレス(10.0.1.101)を選択します。
「関連付ける」ボタンを押します。
(3) BIG-IPの Virtual Server用プライベート IPに EIPが割り当てられました。
これで EC2での BIG-IP インスタンス設定は完了です。
[参考] EIPのメモ
EIPのアドレスおよび FQDNは BIG-IPの設定でも利用するので、メモしておくと設定がスムーズです。
例)
インスタンス名 Interface Elastic IP FQDN
BIP-VE001 管理用 52.198.119.5 ec2-52-198-119-5.ap-northeast-1.compute.amazonaws.com
Virtual Server 用 52.198.125.126 ec2-52-198-125-126.ap-northeast-1.compute.amazonaws.com
アドレスの関連付けを選択
プルダウンから選択 or
インスタンス IDを入力。
IPを選択
63
3.3. EC2でWordPressインスタンスを起動
BIG-IPのロードバランシング対象となるWordPress インスタンスを 2つ起動します。
AWS Marketplaceからインスタンスを生成
(1) ナビゲーションペインで「インスタンス」を選択します。
「インスタンスの作成」ボタンを押します。
(2) AWS Marketplaceをクリックし、検索フォームに"wordpress"と入力し Enterキーを押します。
(3) 本ガイドでは以下のWordPress を選択しました。
(4) インスタンスタイプは、本ガイドでは「t2.micro」を選択しました。
wordpress と入力して、「Enter」キーを押す
64
(5) インスタンス数は 2 とします。ここではひとまず、Auto Scalingは設定しません。
作成した VPC:F5JP-VPC とプライベートサブネット:BIG-int-1aを選択します。
ネットワークインターフェイスはデフォルトのままとします。
~略~
(6) ストレージはデフォルトのままとします。
(7) Name タグには「wordpress」と入力しておきます。
作成した VPCを選択
BIP-int-1a を選択
無効 (デフォルト)
デフォルトのまま
インスタンス数:2
名称を入力
65
(8) プライベートサブネットのWordPressへの SSHアクセスが必要な場合は、BIG-IP を踏み台としてアクセスすることに
します。よって、SSHでアクセスできる送信元を、VPC内に限定します。
(9) 一通り内容を確認し、「作成」ボタンを押します。
(10) 作成済みのキーペアを選択し、「インスタンスの作成」ボタンを押します。
デフォルトで選択されている
任意の名称および説明を入力
(例:WordPress)
VPC内に限定
「既存のキーペアの選択」を選択
作成済みキーを選択
チェックを入れる
66
(11) 「インスタンスの表示」ボタンを押します。
(12) wordpress インスタンスが 2つ生成されます。
(13) WordPressの管理画面にログインするためのパスワードを、起動ログで確認しておきます。
(14) 以下の値をメモしておいてください。(後のWordpressへのユーザ設定時に必要になります。)
67
WordPressへの SSHログイン (PuTTY と Pageantの利用)
WordPressには Public IP を割り当てていないので、インターネットから直接ログインすることはできません。
よって、ここでは BIG-IPを踏み台としてWordPressへ SSHログインする方法を示します。
BIG-IP には OpenSSHがデフォルトでインストールされているので、SSH-agentが利用できます。
よって、PuTTY と Pageant を使うことで、キーファイルを指定することなく、BIG-IPを踏み台としたWordPressへの
SSHログインができます。
3.3.2.1. Pageantの起動
(1) Pageant を起動して、SSH ログイン用のキーファイルを指定しておきます(参照:Pageantの利用)。
(一度起動しておけば、常駐プログラムとなり、タスクバーに表示されます。)
3.3.2.2. PuTTYで BIG-IPを踏み台にしてWordPressへ SSHログイン
(1) PuTTYを起動します。
(2) Pageantが持つキーを BIG-IPを経由してWordPressまでフォワーディングするための設定です。
Category: Connection→SSH→Authで、Authentication parametersの「Allow agent forwarding」にチェックを入れま
す。
(3) Category: Sessionで、"Load, save or delete a stored session"の下の"Default Settings"を選択して、「Save」ボタ
Allow agent forwardingにチェック
68
ンを押します。これで設定が保存されます。
(4) Host Name (or IP address)に、BIG-IPの管理インタフェースに割当てた EIP を指定して「Open」ボタンを押します。
(5) "login as"プロンプトに、"admin"と入力して Enterすることで、BIG-IPにログインできます。
(6) "run util bash"コマンドを実行し、bashに入ります。
admin@(ip-10-0-0-201)(cfg-sync In Sync)(Standby)(/Common)(tmos)# run util bash
[admin@ip-10-0-0-201:Standby:In Sync] ~ #
(7) "ssh -A ユーザ名@WordPressの IPアドレス"で、キーを指定することなくWordPressへログインできます。
(WordPressに自動的に割当てられたプライベート IPアドレスは、AWSマネージメントコンソールで確認して下さい。)
[admin@ip-10-0-0-201:Standby:In Sync] ~ # ssh -A [email protected]
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-95-generic x86_64)
___ _ _ _
| _ |_) |_ _ _ __ _ _ __ (_)
| _ \ | _| ' \/ _` | ' \| |
|___/_|\__|_|_|\__,_|_|_|_|_|
*** Welcome to the Bitnami WordPress 4.6-1 ***
~略~
BIG-IPの管理インタフェースの EIP
69
WordPressの SSLオフロード用の設定変更
本ガイドの BIG-IPでは、Virtual Serverで HTTPS(TCP/443)を終端し、Pool Members(WordPress)には
HTTP(TCP/80)で通信する、SSLオフロードの形態にしています。
この場合、WordPressは HTTP(TCP/80)で HTTP リクエストを受け取るので、クライアントに対して、HTMLボディ内の
Link を"http://~"として HTTPレスポンスを返します。
本ガイドでは HTTPS(TCP/443)の Virtual Serverだけしか設定していないので、"http://~"宛の HTTP リクエストはレス
ポンスを得られない=エラーになります。
よって、WordPressの HTML内の Linkが"https://~"となるよう、WordPressの設定変更を行います。
(1) WordPressへ SSHで接続します。
(2) WordPressの設定ファイル:wp-confg.phpへ、以下赤文字 3行を、"<?php"の直下に追加します。
bitnami@wordpress001:~$ sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
<?php
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS'] = 'on';
70
3.4. 既設 BIG-IPの SAML IdP設定(1)
先に、既設 BIG-IP(BIP-IDP)の設定を行います。
新設される SAML SP(BIP-VE001)用の SAML IdP設定を行います。
(1) 「Access Policy」→「SAML」→「BIG-IP as IdP」で表示された画面で、「Create」ボタンを押します。
(2) 「General Settings」で、以下のように設定します。
[参考] IdP Entity ID = https://ec2-52-193-153-104.ap-northeast-1.compute.amazonaws.com
任意の名称を入力 (例:idp_for_wordpress)
自身の Virtual Serverの EIPに
紐付いた DNS名を指定
71
(3) 「Assertion Settings」で、以下のように設定します。
(4) 「Security Settings」で、作成済みの証明書とキーを選択します。
(5) 設定した IDPの Metadata をエクスポートします。
Idp_for_wordpressが選択された状態で、「Export Metadata」ボタンを押します。
Unspecified を選択
%{session.logon.last.username}を選択
作成済みのキーを選択
作成済みの証明書を選択
72
(6) 「Download」ボタンを押して、ファイルをローカル PCへダウンロードしておきます。
73
3.5. 新設 BIG-IPの SAML SP設定
このセクションでは、新設した BIG-IPに対して、大きく以下 2つを実施します。
① サーバロードバランシング設定
② SAML SP としての設定
CLIでの初期設定
BIG-IPへ SSHでログインして、CLIでの初期設定を行います。
手順は、CLIでの初期設定を参照してください。
WebUIでの初期設定
WebUIから初期設定を行っていきます。
(1) 管理インタフェースに割り当てた EIPに、Webブラウザで HTTPSアクセスします(例 https://52.198.119.5)
Usernameは"admin"で、Passwordは先ほど CLIで設定した文字列でログインします。
admin
CLIで設定したパスワード
74
(2) 「System」→「Platform」を選択し表示された画面で、以下のように設定変更します。
(3) 「System」→「Resource Provisioning」を選択して表示された画面で、「Access Policy (APM)」にチェックを入れま
す。
~略~
Time Zone を選択
75
(4) 確認が出ます。OKボタンを押します。
(5) 「Continue」ボタンが出るまで、約 1分程度待ちます。
「Continue」ボタンを押します。
ネットワーク設定
3.5.3.1. VLAN設定
まず、インタフェースに VLANを割り当てます。
「Network」→「VLANs」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
任意の名称を入力 (例:external)
Interface: 1.1 Tagging: Untagged
を選んで「Add」ボタンを押す
76
3.5.3.2. Self IP設定
作成した VLANに、IPアドレスを割り当てます。
「Network」→「Self IPs」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
3.5.3.3. Routes設定
インターネットへのデフォルトゲートウェイを設定します。
「Network」→「Routes」で表示される画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
任意の名称を入力 (例:external-ip)
ネットワーク図中の BIP-VE001の external-ipアドレスと
Netmask を入力
作成済み VLANを選択
任意の名称を入力 (例:default-gw)
宛先および Netmaskに 0.0.0.0 を入力
AWSのゲートウェイのアドレスを入力
77
サーバロードバランシングの設定
3.5.4.1. Pool設定
ロードバランシング対象の 2つのWordPress を Pool として設定します。
※Pool設定前に、WordPress×2台のプライベート IPアドレスを確認しておいてください。
[確認方法] 「EC2」→「インスタンス」で表示されたWordPress インスタンスを選択→「説明」タブ内の"プライベート IP"
(1) 「Local Traffic」→「Pool」で表示された画面右上の「Create」ボタンを押して現れた画面で、以下のように設定します。
(2) 確認のみです。
作成された Pool名をクリックして、「Members」タブをクリックすると、登録された Pool Membersが確認できます。
Statusがグリーンであれば、ヘルスモニターは成功しています。
任意の名称を入力 (例:wp-pool)
ヘルスモニターを選択。
Address と Portを指定して、
「Add」ボタンを押す。
2つのサーバ分実施する。
78
3.5.4.2. Virtual Serverの設定
インターネットからのトラフィックを受け付ける Virtual Serverの設定です。
「Local Traffic」→「Virtual Servers」で表示された画面右上の「Create」ボタンを押して現れた画面で、以下のように設定
します。
~略~
任意の名称を入力 (例:WP-vs001)
Virtual Serverの IPアドレス(AWSのセカンダリプライベート IP)と
TCPポート番号(443)を設定
http を選択
Auto Map を選択
作成した Pool を選択
clientssl を選択
79
サーバロードバランシグの動作確認
Virtual Server用のプライベート IPに割り当てた Elastic IPにWebブラウザでアクセスし、WordPress画面が表示され
ることを確認してください。
例) https://52.198.125.126
80
SAML SPの設定
BIG-IPが SAML SP として動作するための設定を行います。
3.5.6.1. External IdP Connector設定
SAML IdP(BIP-IDP)からダウンロードした Metadataをインポートします。
(1) 「Access Policy」→「SAML」→「BIG-IP as SP」で表示された画面で、「External IdP Connectors」タブをクリックしま
す。 「Create」横の▼をクリックし、「From Metadata」を選択します。
(2) 現れた画面で、以下のように設定します。
BIP-IDPからダウンロードした Metadata を指定
任意の名称を指定 (例:idp_for_wordpress)
81
3.5.6.2. Local SP Services設定
SAML SP として必要な設定を行っていきます。
(1) 「Local SP Services」タブをクリックして表示された画面で、「Create」ボタンを押します。
(2) 「General Settings」で、以下のように設定します。
[参考] IdP Entity ID =https://ec2-52-198-125-126.ap-northeast-1.compute.amazonaws.com
任意の名称を入力 (例:SP_for_wordpress)
自身の Virtual Serverの EIPに
紐付いた DNS名を指定
82
(3) 「Security Settings」を確認します。デフォルトのまま「OK」ボタンを押します。
(4) External IdP Connectorsで作成した idp_for_wordpresss とバインドします。
SP_for_wordpressが選択された状態で、「Bind/Unbind IdP Connectors」をクリックします。
(5) 「Add New Row」ボタンを押して、作成済みの SAML IdP Connector を選択します。
「Update」ボタンを押します。
①Add New Row
②選択 ③
83
(6) 以下の状態になります。「OK」ボタンを押します。
(7) 設定した SPの Metadataをエクスポートします。
SP_for_wordpressが選択された状態で、「Export Metadata」ボタンを押します。
(8) 「Download」ボタンを押して、ファイルをローカル PCへダウンロードしておきます。
84
Access Profileの設定
Access Profile を生成します。
SAML SP として振る舞いを、この Profileで指定しますが、SP側で必要となる設定は、SAML Authのみです。
(1) 「Access Policy」→「Access Profiles」で表示された画面右上の「Create」ボタンを押して表示された画面で、以下の
ように設定します。
~略~
任意の名称を入力 (例:SP_profile)
言語を選択
All を選択
85
(2) 作成した Access Profileの Edit をクリックします。
(3) 新しくWebページが立ち上がり、以下の画面が現れます。「+」をクリックします。
(4) 「Authentication」タブで、「SAML Auth」にチェックを入れて、「Add Item」ボタンを押します。
~略~
(5) 作成した Local SP Service を選択して、「Save」ボタンを押します。
作成した Local SP Service を選択
86
(6) 最後の「Deny」をクリックします。
「Allow」にチェックを入れて、「Save」ボタンを押します。
(7) 以下のようなフローチャートが出来上がります。
「Apply Access Policy」をクリックして設定を適用します。
87
Virtual Serverの設定変更
Virtual Serverが SAML処理を行うためには、作成した Access Profile を Virtual Serverへ割り当てる必要がありま
す。
「Local Traffic」→「Virtual Servers」で現れた作成済み Virtual Server をクリックして、以下の設定変更を行います。
~略~
~略~
以上で SAML SP としての設定は完了です。
作成済み Virtual Server名
作成した Access Profile を選択
88
3.6. 既設 BIG-IPの SAML IdP設定(2)
再び、IdP側(BIG-IDP)の設定に移ります。
External SP Connector設定
SAML SPの Metadataを SMAL IdPへインポートします。
(1) 「Access Policy」→「SAML」→「BIG-IP as IdP」で表示された画面で、「External SP Connectors」タブをクリックしま
す。 「Create」横の▼をクリックし、「From Metadata」を選択します。
(2) 現れた画面で、以下のように設定します。
BIG-VE001(SAML SP)からダウンロードした Metadata を指定
任意の名称を指定 (例:SP_for_wordpress)
89
Local SP Services設定
Extern SP Connectorsで作成した SP_for_wordpress とバインドします。
(1) 「Local IdP Services」タブを選択し、idp_for_wordpressが選択された状態で、「Bind/Unbind SP Connectors」ボタ
ンを押します。
(2) 「/Common/SP_for_wordpress」にチェックを入れて、「OK」ボタンを押します。
90
SAML Resource設定
BIP-VE001 を、SAML SPのリソースとして設定します。
「Access Policy」→「SAML」→「SAML Resources」で表示された画面右上の「Create」ボタンを押して現れた画面で、以
下のように設定します。
任意の名称を入力 (例:wordpress)
設定した Local SP Service を選択
91
Access Profileの設定
Access Profileの Advanced Resource Assignに、作成した SAML Resource を追加します。
(1) 作成済みの Access Profile(IDP_Profile)の Editをクリックします。
(2) 「Advanced Resource Assign」をクリックします。
(3) 「Add/Delete」をクリックします。
92
(4) 作成した SAML Resource(/Common/wordpress)を選び、「Update」ボタンを押します。
(5) SAML Resourceが 2つになったことを確認し、「Save」ボタンを押します。
(6) 「Apply Access Policy」をクリックして、設定を適用します。
以上で IDPの設定は完了です。
93
3.7. SAML動作確認
BIP-VE001(SAML SP)へ、SAMLでログオンできることを確認します。
IdP Initiated
最初に SAML IdPへアクセスして、SPへシングルサインオンできるかを確認します。
(1) クライアント PCから、SAML IdP(BIP-IDP)の Virtual Serverへアクセスし、「test1001」ユーザでログインします。
(2) 「wordpress」アイコンをクリックします。
test1001
クリック
94
(3) WordPressにアクセスできます。
SP Initiated
今度は、先に SAML SP側にアクセスしても、SAML認証が成功することを確認します。
(1) 一旦、ブラウザを全て閉じます(前に実施した Idp Initiatedのセッション情報を消すため)。
(2) BIP-VE001(SAMP SP)の Virtual Serverへアクセスします。
SAML SPの VSの EIPの DNS名
95
(3) IdPへリダイレクトされます。「test1001」ユーザでログインします。
(4) WordPressにアクセスできます。
test1001
96
3.8. WordPressへのシングルサイオン
WordPressへのログインも自動で行われるように設定します。
具体的には、以下を実施します。
① WordPressに test1001および test1002ユーザを登録しておく。
② SAMLアサーション内に存在するユーザ名(test1001/test1002)を使って、WordPressにシングルサインオンできる
ように BIG-IPを設定。
WordPressへのユーザ登録
(1) この環境では 2台のWordPressがロードバランシグ対象として動作しています。
両方のサーバに同じ設定を行うのは少し大変ですので、どちらか 1台を停止します。
(方法: 「EC2」→「インスタンス」で、どちらかのWordPress を選択→右クリック→インスタンスの状態→停止)
(2) SAML経由で、WordPressにアクセスします。
「Manage」と書かれた画面右下のアイコンをクリックします。
(3) Wordpressの起動ログからメモしておいた Passwordを使います。
Passwordは、「EC2→インスタンス→wordpress を右クリック→インスタンスの設定→システムログの取得」をスクロー
ルして、確認できます。 以下はその出力例です。
(4) WordPress画面上の「Login」をクリックします。
クリック
97
(5) 「ユーザ名:user,パスワード:システムログから取得したもの」でログインします。
(6) 左側ペインの「Users」→「Add New」をクリックします。
(7) 「test1001」ユーザを登録します。
本ガイドでは簡易的に、パスワードも「test1001」にしておきます。
(8) 「test1002」ユーザも同様の方法で登録しておきます。以下の状態になります。
test1001
(なんらか入力が必要)
test1001
チェックを入れる
チェックを外す
98
BIG-IPのシングルサインオン設定
3.8.2.1. SSO Configuration設定
WordPressは Form認証(POST)が使われているので、そのための設定を行います。
「Access Policy」→「SSO Configurations」→「Forms」で表示された画面右上の「Create」ボタンを押して現れた画面で、
以下のように設定します。
① シングルサインオン開始のトリガーとなるWordPressの URIを指定します。
WordPressへのアクセスと同時に発動させたいので、「/」としています。
② ユーザ名/パスワードを POSTする URIを指定します。WordPressでは「wp-login.php」が該当します。
③ POST時にユーザ名が格納されている変数です。WordPressでは「log」が該当します。
④ POST時にパスワードが格納されている変数です。WordPressでは「pwd」が該当します。
任意の名称を入力 (例:SSO_for_wordpress)
「None」を選択
① 「/」 を入力
② 「/wp-login.php」を入力
③ 「log」を入力
④ 「pwd」を入力
99
Access Profileの設定
作成したWordPress用の SSO Configurationを Access Profileに適用します。
(1) 「Access Policy」→「Access Profiles」で表示された、作成済みの Access Profile(SP_Profile)をクリックします。
(2) 「SSO/Auth Domains」タブをクリックします。
「SSO Configuration」で、作成した SSO Configuration を選択します。
(3) 「Access Policy」タブをクリックし、「Edit Access Policy~」をクリックします。
(4) 「SAML Auth」の Successfulの後ろにある「+」をクリックします。
作成したWordPress用 SSO Configuration を選択
100
(5) 「Assignment」タブで、「SSO Credential Mapping」にチェックを入れて、「Add Item」ボタンを押します。
~略~
(6) 以下のように設定し、「Save」ボタンを押します。
※「mcget {session.saml.last.nameIDValue}」については、「[参考]APMのセッション変数について」で解説します。
(7) 「Apply Access Policy」をクリックして設定を適用します。
Custom を選択
mcget {session.saml.last.nameIDValue}
同上
101
シングルサインオン動作確認
test1001,test1002それぞれでログインを実施し、WordPressへのシングルサインオンが実現できていることを確認しま
す。
(1) クライアント PCから、SAML IdP(BIP-IDP)の Virtual Serverへアクセスし、「test1001」ユーザでログインします。
(2) 「wordpress」アイコンをクリックします。
(3) test1001ユーザがWordPressへログインした状態の画面が出力されます。
(4) test1002ユーザでも同様の結果になることを確認します。
test1001
クリック
test1001
test1002
102
[参考]APMのセッション変数について
BIG-IP APMは、ユーザがアクセスしたタイミングで、ユーザから得られる情報を「セッション変数」という形で格納してい
ます。そのセッション変数を使うことで、ユーザ毎に様々なアクションを指定できるようになっています。
例えば、上記の SSO Credential Mappingで利用した「session.saml.last.nameIDValue」という変数は以下の方法で確
認できます。
(1) 「Access Policy」→「Manage Sessions」で表示された画面には、APMを使ってログイン中のユーザセッションが表示
されます。そのうちの一つの Variablesの下にある「View」をクリックします。
(2) BIG-IP APMが取得できているセッション変数とその値の一覧が表示されます。
その中に、session.saml.last.nameIDValue とその値を確認することができます。
~略~
mcget {session.saml.last.nameIDValue} の「mcget { }」というコマンドは、このセッション変数一覧から値を取得する、
というコマンドです。
ログイン中の
ユーザセッション
session.saml.last.nameIDValue
103
4. 終わりに
AWS上での基本的な BIG-IPセットアップに関しては以上で終了となります。
BIG-IPには、送信元 IPや Cookie を用いたセッション維持、外部 Syslogサーバへの詳細な通信ログ送信、iRule と呼
ばれるスクリプティング機能を利用したトラフィック処理のカスタマイズなど、本セットアップガイドにてカバーしきれない豊富
な機能が実装されています。使い方次第で単純な負荷分散から高度なトラフィックコントロールまで、様々にご利用頂けま
す。
詳細は各種WEBサイトにてご確認いただくか、購入元にお問い合わせください。
<F5ネットワークスWEBサイトの紹介>
F5ネットワークスジャパン総合サイト
https://f5.com/jp/homepage
F5 Tech Depot:エンジニア向け製品関連情報サイト
http://www.f5networks.co.jp/depot/
AskF5:ナレッジベース総合サイト(英語) http://support.f5.com/kb/en-us.html
DevCentral:F5ユーザコミュニティサイト(英語:アカウント登録が必要です) https://devcentral.f5.com/ F5ネットワークスジャパン合同会社
〒107-0052東京都港区赤坂 4-15-1 赤坂ガーデンシティ 19階
本資料は F5ネットワークスジャパンのエンジニアが特定のソフトウェアバージョンの動作仕様に基づいて作成した構築・設計を補助するための資料であり、メーカー公式資料とは異なります。資料の記載内
容に誤りがあった際には指摘に基づいて修正を行いますが、内容についての責任は一切負いません。また、修正、変更、改訂は予告無く行われます。
104
5. [Appendix] SAMLのセキュリティ設定の強化
ここでは、SAMLのセキュリティをより強固にする設定について、記載します。
本ガイドの本編では、SAML IdPが自身の秘密鍵でアサーションに署名し、SP側でそれを検証できれば、SAML認証は
OK と判断する、という設定だけを行っています。
本編では、以下の緑囲み部分だけが設定されています。
105
この状態では、SPは IdPからのアサーション署名を検証することで、IdPを信頼することはできます。
しかし、IdPからすると、ただ単に IdP自身が署名したアサーションを一方的に SPに送っただけなので、確実にその SP
だけに届けることができたのか、第三者へ送ってしまっていないかという判断ができません。また、盗聴も気になるところで
す。
これを回避するために SAMLでは、公開鍵とブロック暗号を使ったアサーションの暗号化ができるようになっています。
次のセクションで、その設定ポイントを記載します。
5.1. 証明書とキーの作成
本編では IdPの証明書とキーは生成しました。それはそのまま利用します。
しかし、SAML SP用は証明書とキーは生成していませんので、それらを生成します。
(1) 「System」→「File Management」→「SSL Certificate List」で表示された画面で、「Create」ボタンを押します。
(2) 表示された画面で、以下のように設定します。
(どのような値でも SAML動作に影響はありません。)
任意の名称を入力 (例:sp_for_wordpress)
任意の Common Name を指定 (例:sp.saml.lab)
部署、組織、所在地など(任意)を入力
106
5.2. アサーションの AES暗号化
IdPがアサーションを暗号化して送り出す設定について記載します。
AESはブロック暗号=共通鍵暗号なので、IdP と SPの間で鍵を共有しなければなりません。
よって、IdPは、SPからインポートしたメタデータ内の証明書の公開鍵を使って、AES鍵を暗号化して SPに送ります。
SPは秘密鍵で AES鍵を取り出すことで、IdP と SPの両者で AES暗号を共有できます。
以下の紫囲み部分の①と②の設定をすることで、アサーションの AES暗号化を実現できます。
107
上記の設定状態にするためには、以下のステップが必要です。
(1) SPで①の設定を行います。
(2) SPの Metadata をダウンロードして、コンソール PCへコピーします。
(3) IdPの「External SP Connectors」へ、その SPの Metadataをインポートして、任意の名称を付けて保存します。
本ガイドでは名称を「SP_for_wordpress2」とします。
(4) 保存したその「External SP Connectors」を開いて、「Security Settings」で②の設定を行います。
(5) 「Local IdP Services」で、「SP_for_wordpress2」と Bind します。
AES暗号化のための設定は以上です。
WordPress用 Virtual Serverへのアクセスを実施してみてください。
IdP Initiated/SP Initiated どちらでも構いません。
Webブラウザの SAML解析用プラグイン (例:Chromeの SAML message Decoder, Firefoxの SAML Tracer等)
を使って、AES暗号化前の SAMLレスポンスとどのような違いがあるかを確認してみてください。
AES 暗号化前は、"<saml2 :Assertion ~"だったタグが、" <saml2 :EncryptedAssertion ~"に変わり、
Assertion として読み取れていた情報が AES 暗号化により読み取れなくなっていることが分かると思います。
108
5.3. SAML リクエストへの署名
SP Initiated (SPへアクセスしてから IdPへリダイレクトされて認証する形) の場合には、SPから IdPに対して、SAML
リクエストが発行されます。SAML リクエストは、デフォルトでは発行元を保障する情報を持っていないので、成りすまし攻撃
ができてしまう可能性があります。
そこで、SAML リクエストの発行元を特定するために、SPによる署名/IDPによる検証ができるようになっています。
以下の赤囲み部分の①と②の設定をすることで、SAML リクエストの署名を実現できます。
109
上記の設定状態にするためには、以下のステップが必要です。
(1) SPで①の設定を行います。
(2) SPの Metadata をダウンロードして、コンソール PCへコピーします。
(3) IdPの「External SP Connectors」へ、その SPの Metadataをインポートして、任意の名称を付けて保存します。
本ガイドでは名称を「SP_for_wordpress3」とします。
(4) 保存したその「External SP Connectors」を開いて、「Security Settings」で②の設定を行います。
(5) 「Local IdP Services」で、「SP_for_wordpress3」と Bind します。
SAML リクエストへの署名およびその検証の設定は以上です。
SP Initiated=WordPressの Virtual Serverへ先にアクセスしてみてください。
Webブラウザの SAML解析用プラグイン (例:Chromeの SAML message Decoder, Firefoxの SAML Tracer等)
を使って、署名追加前の SAML リクエストとどのような違いがあるかを確認してみてください。
SAML リクエストに、SPによる署名が追加されていることが分かると思います。