BIG-IP APMのLogon Pageのユーザ名フィールドに

BIG-IP APMのLogon Pageのユーザ名フィールドにあらかじめ
ユーザ名を入力しておく方法
す~さん, 2015-06-11
概要
BIG-IP APMのAccess Profileが設定されているVirtual Serverにブラウザによるアクセスをしたときに現れるログオンページで、あらかじめ
ユーザ名を固定しておきたい場合があります。
たとえば、クライアント証明書+パスワード認証(RADIUSやLDAP等)の二要素認証の時にも、クライアント証明書のSubject情報の
一部をユーザ名として使用していて、ユーザ名の入力は二度手間になるため省略したいということがあるでしょう。
また、別のケースとしてActive Directoryのドメインに参加しているWindows PCクライアントにログオンしているユーザ名でログオン
し、Active Directoryで認証している場合、パスワードはともかく、わざわざWindowsのログオン名を入力し直すのは不要な手間とな
り、できれば省略したいということがあるでしょう。
今回は、ユーザ名を入力済みとした特別なログオンページを出す方法について紹介いたします。今回も以前と同じく
session.logon.last.usernameを使ったTIPSです。
詳細手順
BIG-IP APMで普通にLogon Pageを設定すると
のようなログオンページになります。この「ユーザ名」のフィールドにあらかじめ値を入れておき、
のようにユーザはパスワードの入力だけですむようにする方法をご紹介します。
BIG-IP APMでは、Access Profileを構成するAccess Policyの設定を行うVPE(ビジュアルポリシーエディタ)を使用します。この中の
Logon Pageアイテムの手前にあらかじめsession.logon.last.usernameというセッション変数に値を入れておき、Logon Pageアイテム
のusernameフィールドのオプション設定のRead OnlyをYesにすることで、ログオンページにsession.logon.last.usernameに代入した
文字列を入力済みの状態にすることができます。
文字列を入力済みの状態にすることができます。
このVariable Assignアイテムで
※ クリックすると拡大します
のようにsession.logon.last.usernameにMy Nameという文字列を入れてApply Access Policyとしてからブラウザを使用してログオン
画面を見ると、あらかじめ入力された値になっています。以前のコラムにもあったように、必要に応じて同時に
session.logon.last.logonnameも設定しておくとよいでしょう。
session.logon.last.username : Reportの部分に表示されるユーザ名
session.logon.last.logonname : Max sessions per userの設定で識別されるユーザ名
この例では固定のテキスト文字列を割り当てましたが、Variable Assignでは他のセッション変数の値を加工して割り当てることも可能
です。ここでは、クライアント証明書のSubject情報からCN情報を切り出して使う例と、Windows Infoアイテムで得られるWindowsへ
のログオンユーザ名を取り出して使う例を紹介します。
クライアント証明書のSubject情報のCNを使用する場合
ユーザ名フィールドに固定値ではなく、クライアント証明書のSubject情報の中のCNを使用する場合は、例えば、クライアント証明書の
Subject情報が
[email protected],CN=Hello Kitty,OU=IT,O=HELLO KITTY COMPANY,ST=TOKYO,C=JP
となっているとセッション変数session.ssl.cert.subjectにクライアント証明書のSubject情報が入ります。このSubject情報のうち、2つめ
の要素の Hello Kitty をユーザ名として入力させておきたい場合、
session.logon.last.username
expr { [lindex [split [lindex [split [mcget {session.ssl.cert.subject}] ,] 1] =] 1] }
と必要に応じて
session.logon.last.logonname
expr { [lindex [split [lindex [split [mcget {session.ssl.cert.subject}] ,] 1] =] 1] }
のセッション変数を定義します。この青字の部分は、Subject情報のうち ,(カンマ)区切りして2つ目の要素(CN=Hello Kitty)を取り出
します。次にオレンジ色の部分は CN=Hello Kitty から =(等号)区切りして2つ目の要素(Hello Kitty)を取り出します。
します。次にオレンジ色の部分は CN=Hello Kitty から =(等号)区切りして2つ目の要素(Hello Kitty)を取り出します。
※ クリックすると拡大します
Access Policyの例としてはたとえばClient Cert Inspectionの後にVariable Assign、Logon Pageのように続けます。
Windowsログオン名を使用する場合
Windowsにログオンしているユーザ名をあらかじめLogon Pageに入れたい場合は、Variable Assignの前にWindows Infoというアイ
テムも入れます。ここで、Access Policy作成時にTypeとしてLTM-APMを選択していると、Client Side Inspectionが一切選択できま
せんので、AllあるいはSSL-VPN等を選択します。このWindows Infoを設定すると、さまざまなOSへの分岐(Branch Rule)が表示さ
れますが、特に分岐する必要がない場合はそれらを削除しfallbackのみとしても問題ありません。
session.logon.last.username
expr { [lindex [split [mcget {session.windows_info_os.last.user}] |] 1]}
のようにすることで、Windows Infoアイテムで取得された情報の中のログオンユーザ名が抜き出されて使用できます。
※ クリックすると拡大します
Access Policyの例としてはWindows Infoの後にVariable Assign、Logon Pageのように続けます。
実際には、Windowsドメイン名もWindows Infoで取得できるので、ドメイン名を確認し、自社ドメインに参加しているPCの場合のみ
ユーザ名を入力済みにしておくなど工夫することで、会社支給PCと私物PCのログオン要件を変更し、エンドポイントセキュリティのチェッ
ク項目を変更することも可能となります。
このようにBIG-IP APMの基本機能プラスわずかな調整で、ユーザ名を入力済みとしたログオンページを提供することができます。リモー
トアクセスにおけるセキュリティは大切ですが、同時に使い勝手(ユーザビリティ)もできる限り向上させておくことで、利用者の負担を軽減
し、快適なリモートアクセス環境を構築することができます。
トアクセスにおけるセキュリティは大切ですが、同時に使い勝手(ユーザビリティ)もできる限り向上させておくことで、利用者の負担を軽減
し、快適なリモートアクセス環境を構築することができます。
F5 Networks, Inc. | 401 Elliot Avenue West, Seattle, WA 98119 | 888-882-4447 | f5.com
F5 Networks, Inc.
Corporate Headquarters
[email protected]
F5 Networks
Asia-Pacific
[email protected]
F5 Networks Ltd.
Europe/Middle-East/Africa
[email protected]
F5 Networks
Japan K.K.
[email protected]
©2016 F5 Networks, Inc. All rights reserved. F5, F5 Networks, and the F5 logo are trademarks of F5 Networks, Inc. in the U.S. and in certain other countries. Other F5
trademarks are identified at f5.com. Any other products, services, or company names referenced herein may be trademarks of their respective owners with no
endorsement or affiliation, express or implied, claimed by F5. CS04-00015 0113