6.4. [VPEサンプル-2] Active DirectoryのGroupでACLを割当てる

Active Directoryのユーザが属するGroup毎に、アクセスできるサーバを制限したい (=Access Control Listを適用したい)、という要件があると仮定します。
本例では、「"CorpA-Group"に属するユーザ"test1001"に対してACLを適用し、"CorpB-Group"に属するユーザ"test1002"にはACLを適用しない」、という設定を行います。

6.4.1. ACLの作成

ACLの作成 参照。

6.4.2. Active Directoryユーザ: test1001 (F5 UDF Labの場合の例)

F5 UDF Labでは、Active Directoryのユーザー設定は以下の通りとなっています。

  • 「全般」タブ
../../_images/mod6-4-2-1.png
  • 「所属するグループ」タブ: ユーザー"test1001"は、グループ"CorpA-Group"に属しています。このCorpA-Groupグループに対して、ACLを割当てる設定を行います。
../../_images/mod6-4-2-2.png

6.4.3. VPEの設定

  • ここまでの設定では、VPEは以下のようになっています。一旦、On-Demand Cert AuthとEmpty以降をすべて削除します。ボックスの右上の「×」をクリックします。
../../_images/mod6-4-3-1.png
  • 以下のような画面が現れます。そのまま、「Delete」を押します。
../../_images/mod6-4-3-2.png
  • 同様の手順で、「Empty」「ACL Assign」「Advanced Resource Assign」も削除し、以下の状態にします。「AD Auth」のSuccessful分岐上の「+」をクリックします。
../../_images/mod6-4-3-3.png
  • 「Autentication」タブの「AD Query」を選択し、「Add Item」ボタンを押します。
../../_images/mod6-4-3-4.png
  • 「Server」として、既に設定したActive Directory設定 (NetAccess-001_aaa_srvr)を選択します。「SerchFilter」には、以下を入力します。
sAMAccountName=%{session.logon.last.username}
../../_images/mod6-4-3-5.png

SearchFilterに入力した「sAMAccountName」は、Active Directoryで定義されている、ユーザ名の変数です。この変数にAPMにログインしたときのユーザ名 (例: test1001)を代入して、AD Queryを実施するという定義です。

APMにログインしたときのユーザ名は、セッション変数:「session.logon.last.username」の値として格納されていますので、「=%{session.logon.last.username}」で代入を行います。

  • 「Branch」タブで、「Change」をクリックします。
../../_images/mod6-4-3-6.png
  • 「Simple」タブ上で、デフォルトで設定されている「User's Primary Group ID is 100」を「×」ボタンを押して削除します。
../../_images/mod6-4-3-7.png
  • 「Add Expression」ボタンをクリックすると、以下の画面が現れます。ここでは単純に「AD Queryが成功したら、次のBOXに移動する」定義にしています。以下の状態にして、「Add Expression」ボタンを押します。
../../_images/mod6-4-3-8.png
  • 以下の状態になります。「Finished」ボタンを押します。
../../_images/mod6-4-3-9.png
  • 「Name」に区別しやすい名称 (ここでは、Query_Passedとしました)を入力し、「Save」ボタンを押します。
../../_images/mod6-4-3-10.png
  • 以下の状態になりますので、「AD Query」の「Query_Passed」分岐上にある「+」をクリックします。
../../_images/mod6-4-3-11.png
  • 「Assignment」タブの「AD Group Resource Assign」を選択し、「Add Item」ボタンを押します。
../../_images/mod6-4-3-12.png
  • 登録済みのAD Serverを選択し、Groupsの下にある行の「edit」をクリックします。
../../_images/mod6-4-3-13.png
  • 「Groups」タブで、「New Group」にActive Directoryのグループ名を入力し、「Add group manually」ボタンを押します。
../../_images/mod6-4-3-14.png
  • 以下の状態になります。
../../_images/mod6-4-3-15.png
  • 「Static ACL」タブで、既に設定したACLのチェックボックスにチェックを入れます。
../../_images/mod6-4-3-16.png
  • 「Network Access」タブで、既に設定したNetwork Accessのチェックボックスにチェックを入れます。
../../_images/mod6-4-3-17.png
  • 「Webtop」タブで、既に設定したWebtopのラジオボタンを選択し、Updateボタンを押します。
../../_images/mod6-4-3-18.png
  • 以下の状態になりますので、CorpB-Group設定を追加するために「Add new entry」ボタンを押します。
../../_images/mod6-4-3-19.png
  • 同様の手順でCorpB-Groupの設定を行いますが、こちらはACLを割り当てない設定にしています。また、必要に応じてACLの順番を入れ替えます。
../../_images/mod6-4-3-20.png
  • 以下の状態になります。「Apply Access Policy」を押して、設定を適用します。
../../_images/mod6-4-3-21.png

6.4.4. クライアントからのアクセス

  • クライアントPCから、CorpA-Groupに属するユーザ: "test1001"で、APMのVirtual Serverへアクセスします。
  • アクセス完了後、10.1.20.201のSSH (Port 22)へのアクセスだけがRejectされることを確認します。
  • クライアントPCから、CorpB-Groupに属するユーザ: "test1002"で、APMのVirtual Serverへアクセスします。
  • CorpB-GroupにはACLが割り当てられていないので、すべてのアクセスが通過する (=何もRejectされない)ことを確認します。

6.4.5. [ご参考] AD Queryがうまく行かない場合: AAA設定の変更

Active Directory設定またはそのユーザ設定によっては、Administrator権限が必要となる場合があります。その場合には、以下の部分を追加してみてください。

注釈

F5 UDF Lab環境では必要ありません。あくまでご参考情報となります。

「Access」 → 「Authentication」 → 「Active Directory」 → 設定済みのAAAサーバをクリックすることで、以下の画面が現れます。以下の赤囲み部分を追加してみてください。

../../_images/mod6-4-5.png

また、以下のKBに記載されているadtest toolを使うことによってADサーバとのクエリテストを行うことができます。

K11308: Overview of the adtest tool