2015年6月19日金曜日

[AzureAD]アクセスルールで社外からのアクセスを制御する

※現在Public Previewとして提供されている機能なので、今後の機能変更などが発生する可能性があります。

Office365やGoogleApps等のSaaSアプリケーションのメリットはどこからでも(社内からも、社外からも)アクセスできるところにあります。
ただ、企業の情報システム部門としてはいつでも、どこでもアクセス出来るからと言って、自宅のPCやネットカフェなどの安全ではない端末からIDとパスワードだけでアクセスされるのはちょっと、、ということもあり、オンプレミスのAD FSなどと組み合わせて信頼できるネットワークからのみのアクセス出来るようにしたり、多要素認証を強制したり、と安全性を何とか確保しようと日々努力をしています。

たとえば以下のような方式です。
・社内ネットワークからしかアクセス出来ないようにする
 方法1:VPNで社内ネットワークへ参加しないとAD FSに到達できないように構成する
 方法2:AD FSのクレーム・ルールを書いてクライアントIPによって承認を制御する 
・社内ネットワーク以外からのアクセスであれば多要素認証を要求する
 方法1:AD FSの多要素認証を構成し、社外ネットワークの場合の認証ポリシーを構成する

これまで、これらの方法はいずれもAD FSが必要でしたが今回紹介するアクセスルールを使うとAzure Active Directory(Azure AD)だけで実装ができるようになるので、より手軽に実装が可能になります。

ちなみに話はそれますが、個人的にはAD FSとWeb Application Proxy(WAP)を使って社内のIdPをDMZに配置してインターネットからでも利用できるようにするくらいなら、素直にAzure ADで認証をしてしまった方が良いと考えています。セキュリティの専門家を自社に抱えていて、DMZのIdPを守る努力を日々継続的に実行できるなら話は別ですが、なかなかあることではないので、Azure ADなりOktaなりの外部のIDaaSに任せてしまった方が安全なのではないかと思います。(さらに多要素認証を使えばより強固になりますし)
この辺りはまた別の機会に書いていこうと思います。


本題に戻ります。

現在、Azure ADのアプリケーション・アクセスルールで出来ることは以下の通りです。

アプリケーション単位で、
・必ず多要素認証を要求する
・社外からのアクセスなら多要素認証を要求する
・社外からのアクセスをブロックする
ことができる。
その際、
・ルール適用対象のグループ
・ルール適用除外のグループ
を設定することができる。


では早速やってみたいと思います。

今回、テスト用アプリケーションにはGoogle Appsを利用し、多要素認証のON/OFF、ルール適用除外グループへの参加/不参加、社内/社外からのアクセスの各パターンでの挙動を確認します。
(ちなみに必ず多要素認証を要求する、というルールは単純すぎるので除外しています。単に多要素認証が要求されるだけなので)

初めに書いてしまいますが、結果は以下の表のようになります。
※External Usersというグループについてルールの適用を除外するように設定をしています。
ルールアクセス元所属グループ多要素認証結果
作業中でない場合、多要素認証が必要です
- 除外:External Users
社内ネットワークExternal UsersYesOK
NoOK
Google UsersYesOK
NoOK
社外ネットワークExternal UsersYesOK
NoOK
Google UsersYesOK
NoNG
※多要素認証設定が要求される
作業中でない場合、アクセスをブロック
- 除外:External Users
社内ネットワークExternal UsersYesOK
NoOK
Google UsersYesOK
NoOK
社外ネットワークExternal UsersYesOK
NoOK
Google UsersYesNG
NoNG



では、順番に行きます。
まずは、「作業中でない場合、多要素認証が必要です」というルールを使います。
※「作業中=社内ネットワークからのアクセス」ととらえてください。翻訳・・・


社内ネットワークの定義は多要素認証プロバイダの管理コンソールで行います。



まずは多要素認証が設定されているユーザでアクセスします。


当然ですが、社内からでも社外からでもアプリケーションが利用できます。


次に、多要素認証が設定されていないユーザで社内ネットワークからアクセスしてみます。
こちらも当然問題ありません。

一方で同じユーザを使って社外ネットワークからアクセスしてみます。
今回は多要素認証が必要となるので、ログオン時に多要素認証のセットアップを要求されます。


ただ、この同じユーザを除外対象のグループ(External Users)へ参加させて再度アクセスすると今度は問題なくアプリケーションが利用できます。


次に、「作業中でない場合、アクセスをブロック」というルールを使います。



ルールに適合するケースは単にアクセス出来てしまうだけなので、条件に適合しない場合の挙動を確認します。
除外対象グループメンバに所属していないユーザが、社外からアクセスした場合が該当しますので試してみます。



見事にブロックされました。
エラーメッセージをよく見ると、「User account 'アカウント名' does not satisfy Access Policy」とある通り、アクセス条件を満たさなかったのでエラーが出ていることがわかります。

内勤の人など、業務上に社外からアクセスする必要がない人についてはこのようなルールを適用して安全にアプリケーションを使う、というのも良いシナリオかも知れませんね。

0 件のコメント: