概要

今回から複数回に渡り、2015年2月25日に行われたF5のイベントAgility 2015の中のテクニカル講座「APM実践応用編」の最後に出題されたAPMの5つの課題とその回答について紹介させていただきます。

BIG-IP APMを利用する、あるいはお客様にご提案する上で、一見製品機能としては持ち合わせていないように見えるものであっても、わずかな設定のみで専用製品に引けを取らない高度なソリューションを容易に実現できることもあります。こうしたちょっとした設定を知っているだけで使い勝手が良くなったり、別途高額な開発を行わずにすむことのあるTIPSとしてご活用いただけると幸いです。

今回は、まず「エンジニアのはまらない話」の読者の方にも実際に手を動かして回答を考えていただくということで、実際に出題された「APM実践応用編」の内容について紹介させていただき、次回以降でその回答について紹介させていただきます。

課題1 ~グループごとに接続元のアクセス制御~

あるお客様で、LDAP Attributeの特定のグループ “MyGroup” に属するユーザーのアクセスは特定のネットワークアドレス 10.24.0.0/12 からのみ許可したい。

グループ属性情報は

session.ldap.last.attr.grp = “MyGroup”

のセッション変数に書かれている。

これを実現するVPEアクセスポリシーを作成せよ。

課題2 ~自社の配布端末からのアクセスのみを許可~

あるお客様がNetwork Access (SSLVPN)接続において、自社ドメイン ”F5HOME” に参加しているWindows PCからのアクセスのみを許可する設定にしたいと考えている。認証はADの資格情報で行う。

ドメイン ”F5HOME” に参加しているPCであることの確認をするために、ログオン前にWindowsクライアントの参加しているドメイン名を取得し、そのコンピュータ名がADに存在するかのチェックを行い、さらにWindowsログオンユーザー名をあらかじめログオンユーザー名欄に記入した状態にするVPEアクセスポリシーを作成せよ。

ただしOS X (Mac)およびLinuxからのアクセスに対しては許可するものとする。

課題3 ~LDAP Attributeに基づく高度なアクセス制御~

あるお客様においてLDAP AUTHの後LDAP Queryを投げて得られたAttributeによりNetwork Access (SSLVPN)のACLを動的に割り当てたい。あるユーザーのLDAP Attributeはgrp1~grp8の8種類があり0~8個の項目がAllowになる。最も優先度が低いDeny Allとして割り当てているACLに対してそれぞれ下記のようにACLを追加で割り当てたい。

session.ldap.last.attr.grp1 = “Allow” であれば ACL /Common/MyGrp1 を追加

session.ldap.last.attr.grp2 = “Allow” であれば ACL /Common/MyGrp2 を追加

session.ldap.last.attr.grp3 = “Allow” であれば ACL /Common/MyGrp3 を追加

session.ldap.last.attr.grp4 = “Allow” であれば ACL /Common/MyGrp4 を追加

session.ldap.last.attr.grp5 = “Allow” であれば ACL /Common/MyGrp5 を追加

session.ldap.last.attr.grp6 = “Allow” であれば ACL /Common/MyGrp6 を追加

session.ldap.last.attr.grp7 = “Allow” であれば ACL /Common/MyGrp7 を追加

session.ldap.last.attr.grp8 = “Allow” であれば ACL /Common/MyGrp8 を追加

各ユーザーにおいて、grp1~grp8のこれをできるだけメンテナンス性を良く同等の項目を複数回作成することなく簡潔に実現するAPMのVPEアクセスポリシーを作成せよ。

ヒント: 分岐リストが最終的に2^8=256個になるVPEはNG。
ヒント: iRulesを使用しても構わないが、使用せずに実現できる。

課題4 ~シングルサインオン製品をAPMに置き換え その1~

あるお客様において既存のシングルサインオン製品をBIG-IPに置き換えたいと考えている。

クライアント証明書認証を行い、得られたクライアント証明書のSubject情報

例) emailAddress=bad@batsumaru.com,CN=BAD BATSUMARU,OU=World,O=My Hello Company,L=Minato-ku,ST=Tokyo,C=JP

の中の2番目の要素として含まれるCN名“BAD BATSUMARU”をsession.ldap.last.attr.ssouidに割り当て、それを使用してLDAP Queryを行い得られたAttributeに含まれる情報をWebサーバーに対してCookieで付加して渡す形にしたい。

これを実現するために、クライアント証明書認証情報を取得しCN名を取得し、LDAP Queryを送出しAttribute情報を取得するVPEアクセスポリシーを作成せよ。

ヒント: クライアント証明書Subject情報は、APMのセッション変数 session.ssl.cert.subject に入っている。
ヒント: エンジニアコラム「F5エンジニアのはまらない話」にもヒントがある。 http://www.f5networks.co.jp/depot/column/index.html

課題5 ~シングルサインオン製品をAPMに置き換え その2~

4で得られたセッション変数 session.ldap.last.attr.ssouid をCookie名SSOUIDに付加してWebサーバーに渡すiRulesを作成せよ。

ヒント: ACCESS_ACL_ALLOWEDイベントを使い、合計4行以内で作成可能。

以上の5問、Agility 2015の「APM実践応用編」にご参加いただき、全問正解された方には二度と手に入らない素敵なF5オリジナルレアグッズをプレゼントさせていただきましたが、まだ若干プレゼントに余裕がありますため、特別に全問正解された方の先着1名様にプレゼントを用意させていただきます。チームでの参加でも構いませんので、ふるってご参加ください。

回答の宛先:
To: AGILITY_JAPAN_2015@f5.com
Subject: Agility 2015 テクニカル講座 APMのプロの回答

回答の締切:
2015年 5月 15日

上記メールアドレスまでお送りください。回答方法はAPMのポリシーをexportしたものやiRulesのテキストなど、回答内容を見れば何をどうしているのかを理解できる内容であればファイル形式は問いません。