BIG-IP Forward Proxy構成でのBASIC認証の設定例を紹介します。 Forward Proxy構成では、SSLOの使用有無によって適用方法が異なる点に注意が必要です。
認証の連携先は、BIG-IP自身が内部的に保持しているLocal DBを使用します。
- 対象バージョンの情報
- 設定の流れ
- 設定手順
対象バージョンの情報
本記事に記載の情報は、下記のバージョンで調査を行っております。
F5 BIG-IP Virtual Edition Version 16.1.2
BIG-IPのモジュールは、LTM, APM, SSLOを有効化しております。SSL Orchestrator Package Version 16.1.0
SSLOはiApps LXのパッケージとして提供されているため、個別のバージョン情報があります。
設定の流れ
Local DBの設定を先に行い、BASIC認証の認証フロー (Per-Session Policy)を作成する際にLocal DBを認証連携先として登録します。そして、認証フロー (Per-Session Policy)をVirtual Serverに適用します。
最後のVirtual Serverへの認証フローの適用は下記の2種類のパターンがあります。
SSLOを使用している場合 (SSLO実装)は、SSLOのGuided Configurationから認証フローの紐付けを行います。
SSLOのGuided ConfigurationからHTTP Forward Proxy向けVirtual Serverに間接的に紐付けが行われます。SSLOを使用していない場合 (標準実装)は、HTTP Forward Proxy向けVirtual Serverに直接紐付けを行います。
設定手順
Local User DB Instanceの作成
メニュー:
Access > Authentication > Local User DB > Instances
に移動します。Create New Instance...
ボタンを押下して、任意のパラメータでLocal User DBのInstanceを作成します。
本記事では下記のパラメータを指定しています。設定項目 設定値 備考 Name LocalUserDB 任意の名称で Local User DBのInstanceを作成します。
Local Userの作成
メニュー:
Access > Authentication > Local User DB > Users
に移動します。Create New User...
ボタンを押下して、任意のパラメータでLocal Userを作成します。
本記事では下記のパラメータを指定しています。設定項目 設定値 備考 User Name testuser 任意のLocal User名で作成します。 Password / Confirm Password PASSWORD 任意のPasswordを指定します。筆者は検証環境であったので PASSWORD の文字列を指定しています。 Instance /Common/LocalUserDB 先ほど作成していたLocal User DBのInstanceを指定します。
BASIC認証のPer-Session Policyの作成
メニュー:
Access > Profiles / Policies > Access Profiles (Per-Session Policies)
に移動して、Create...
ボタンを押下して下記のパラメータを参考にAccess Profile (Per-Session Policy)を作成します。設定項目 設定値 備考 Name BASIC_Auth 任意の名称で作成します。 Profile Type SWG-Explicit L3 Explicit Forward Proxy構成のため SWG-Explicit
を指定しています。Languages (Accepted Languages) English (en) 任意の言語を指定します。 Default Language English (en) 任意の言語を指定します。 Access Profiles (Per-Session Policies) と Per-Request Policies と似たような名前なので、設定対象を間違えないように注意してください。
メニュー:
Access > Profiles / Policies > Access Profiles (Per-Session Policies)
に移動して、先ほど作成したAccess Profile (Per-Session Policy)をEdit...
します。
Visual Policy Editorの画面が開かれるため、この後は認証フローを編集します。
Visual Policy EditorでAccess Profiles (Per-Session Policies)`の編集
BASIC認証のAccess Profiles (Per-Session Policies)の全容
BASIC認証のPer-Session Policyの全容は下記の画面の通りとなります。 順を追ってVisual Policy Editorの各Itemの設定を示していきます。
Access Profiles (Per-Session Policies)の初期状態
Access Profiles (Per-Session Policies)の初期状態は下記の画面のようになっています。
HTTP 407 ResponseのItemの設定
HTTP 407 Response
のItemは下記のパラメータで作成しています。
設定項目 | 設定値 | 備考 |
---|---|---|
Name | HTTP 407 Response | |
Basic Auth Realm | Realmは指定が必須ではないため、この例では省略しています。 | |
HTTP Auth Level | basic | BASIC認証を指定します。 |
Language | en | 言語設定は適宜指定します。 |
LocalDB AuthのItemの設定
LocalDB Auth
のItemは下記のパラメータで作成しています。
設定項目 | 設定値 | 備考 |
---|---|---|
Name | LocalDB Auth | |
LocalDB Instance | /Common/LocalUserDB | 事前に作成していたLocal User DBのInstanceを指定します。 |
Ending (Allow, Deny)の設定
Local User DBによる認証成功時に許可を行いたいため、
LocalDB Auth
のItemの Successful
の分岐に対応するEnding (Allow, Deny)を Allow
に指定します。
Apply Access Policyの実行
Visual Policy Editorでの設定が完了したら、画面の左上にある Apply Access Policy
を押下します。
Per-Session Policyの適用 (2パターンあり)
SSLOを使用している場合 (SSLO実装)
と SSLOを指定しない場合 (標準実装)
の2パターンあるので適切な手順を参照してください。
↓↓↓↓ ここからが SSLOを使用している場合 (SSLO実装)
です。 ↓↓↓↓
SSLOを使用している場合 (SSLO実装)
筆者は下記の記事をベースに作成した設定に紐付けております。
SSLOで設定をデプロイし直すと、バージョンや設定状況に応じて既存設定が上書きされる可能性があります。
設定が上書きされるのを忌避する場合は、SSLOを指定しない場合 (標準実装)
の手順を参考にしてください。
設定の同期
冗長構成の場合はSSLOのGuided Configuration
の設定を始める前に、設定の同期漏れによる設定崩壊を避けるために事前にConfigSyncをしてください。
SSLOの設定変更対象への移動
メニュー: SSL Orchestrator > Configuration
の Topologies
タブより、設定変更対象を開きます。
Interception RuleのAccess Profileの指定
Interception Rule
の設定画面を開きます。Proxy Server Settings
セクションのAccess Profileの設定に、今回作成したAccess Profile (Per-Session Policy)を指定します。
SSLOの設定変更後のデプロイ
Summary
の画面を開いて、Preview Merge Config
もしくはDeploy
の適切な方を選んでデプロイします。
↑↑↑↑ ここまでが SSLOを使用している場合 (SSLO実装)
です。 ↑↑↑↑
↓↓↓↓ ここからが SSLOを指定しない場合 (標準実装)
です。 ↓↓↓↓
SSLOを指定しない場合 (標準実装)
HTTP Forward Proxy向けのVirtual Serverに適用します。
筆者は下記の記事をベースに作成した設定に紐付けております。
設定対象のHTTP Forward Proxy向けVirtual Serverに移動
設定対象のHTTP Forward Proxy向けVirtual Serverに移動します。
筆者の環境の下記の画面キャプチャでは、Service Port
が 8080 で受け付けているVirtual Serverが設定対象になります。
Access Profileの指定
Access Policy
のセクションから Access Profile
の設定に、今回作成したAccess Profile (Per-Session Policy)を指定します。
↑↑↑↑ ここまでが SSLOを指定しない場合 (標準実装)
です。 ↑↑↑↑
ConfigSync (冗長構成の場合)
冗長構成の場合はConfigSyncで設定変更後の同期を行ってください。
疎通確認
curl
コマンドを用いる場合は、下記を例に引数を環境に応じて調整してください。
curl --proxy ADDRESS:PORT --proxy-user 'testuser:PASSWORD' http://www.example.com