今までと同じポリシーで利用したいということで、Exchange Online で IP アドレス制限を掛けたいという話は良く聞きます。これまでは、AD FSを利用したクレームルールを構成するか、Azure AD Premiumの条件付きアクセスの機能を利用する、あるいはサードパーティのツールを利用するなどして制御するしかありませんでした。
いずれも新規でサーバを立てるなり、追加でライセンスを購入するということでコストの掛かるソリューションでしたが、Exchange Onlineに実装された(現在、まだ全てのテナントで利用可能ではありませんが)クライアントアクセスルールを利用する事により、標準機能としてこれを実装できるようになりました。
Exchange Online のクライアント アクセス規則
また、この機能は現在 AD FS などを利用してIPアドレス制限を掛けている環境においても、その不足する部分を補完する存在になり得ますので、是非この機能は注目して頂ければと思います。
Exchange Online では認証を自身で行わずに Azure Active Directory(Azure AD) で行っています。アクセス制御についてもAzure AD側で実施をしており、認証のタイミングでの条件でアクセストークンが発行されます。トークンのあるユーザーに対しては既定で Exchange Online は無条件でアクセスを受け入れますので、例え、クライアント側でその条件が途中で満たされなくなっても理論上アクセスは継続されます。
簡単なイメージですが、モバイル PC を WiFi で社内 LAN につないで Exchange Online に接続したとします。AD FS を利用して社内からしかアクセスできないように制限をしていたとしても、この PC をそのまま外に持ち出してWiFiをスマートフォンのテザリングなどに切り替えても、アクセスが継続可能です。
これを、クライアントアクセスルールを併用して社内 LAN からインターネットに出ていく際のグローバルIPアドレスのみ許可するような設定をしていた場合、WiFiを切り替えた瞬間に利用できなくなります。
今までは、こういったケースに関しては「社内PCを外に持ち出す」「外で利用するPCを社内LANに接続させる」など別次元のセキュリティリスクの話として片付けるしか無かったのですが、クライアントアクセスルールの併用でそういった穴を塞ぐことができます。
また、注意事項が1つ。
クライアントアクセスルールの IP アドレス制限は、中間層アプリケーション、平たく言えば Outlook for iOS や Outlook for Android など、クライアントからの接続を中継するアプリケーションに関しては機能しません。
まあ、そもそも何処でも使えるモバイル環境に安全に、キャッシュを残さずに利用できるようにという思想の物ですので、社内だけで利用できてもあまり意味は無いですよね。どうしてもクライアントアクセスルールで塞ぎたければプロトコル(REST)ごと塞ぐという感じになるかと思います。
大変有益な情報ありがとうございます。
この機能でADFSから解法されそうです。
ご存じであれば教えていただきたのですが
ルールはテナント全体に適用されてしますのでしょうか?それともアカウント毎にルール設定が可能なのでしょうか?
New-ClientAccessRuleには、ルールの対象となる範囲を限定するために UserRecipientFilter、UsernameMatchesAnyOfPatterns(UserIsMemberOfは予約になっているので使えないかもしれません)などのパラメータが用意されており、優先順位と組み合わせて特定ユーザーの設定と全体の設定を分けることが可能です。
大変参考になりました、
うまくいかなかった点について質問させていただきます。
手持ちの2012R2ADFS環境に下記のコマンドを掛けました。
New-ClientAccessRule -Name “test” -Action DenyAccess -AnyOfProtocols ExchangeAdminCenter,OutlookWebApp -ExceptAnyOfAuthenticationTypes AdfsAuthentication -ExceptAnyOfClientIPAddressesOrRanges 10.1.1.1/24
Test-ClientAccessRuleコマンドでは予想通りに動作できましたが、
実環境でADFS認証したユーザーは拒否されました。
ADFS認証タイプを除外したのに、どうして拒否されたでしょうか?
こちらで試した限りでは上記ルールでも問題なくADFSユーザーのみアクセスできるような状況になりますね…。
例えば、ExceptAnyOfClientIPAddressesOrRangesの部分を削除しても同じ動作になりますでしょうか?
こんにちは。
iPhone+ADFS+Office365という環境で発生するエラーについて調べていて、
こちらに辿り着きました。
以下、よろしければご教授頂けないでしょうか?
(知っていれば一瞬でわかりそうなことなのですが、知識が不足しており、、、)
■背景
・iPhone(ActiveSync) + ADFS(on Cloud) + ExchangeOnline の環境でメールを利用している。
・イントラを経由しないアクセスは、ADFSのクレームルールで拒否している。(IPベース)
・VPNオフ(=インターネットから直接の)アクセスがADFSの上記クレームルールで拒否された際、
iPhoneにはメッセージ「不正なパスワード」が表示される。
※実際にはパスワードは間違っていない※
・上記のメッセージは混乱を招くので避けたいが、インターネット直接の接続は許可したくない。
■質問
①ADFSの設定で「クレームルールで拒否した際にエラーを返却しない」方法はないでしょうか?
・設定のイメージとしては、
・条件に合致した際のアクションを「accept」「reject」「ignore」から選択できる
・現在は「reject」なのでiPhoneにエラーを返す
・これを「ignore」に変更すれば良い
・iPhone側から見た場合、「VPNオフだと反応がない」といった動作になるイメージです。