Microsoft 365 / Azure Portal のIPアドレス制限

2022-01-15 | コメント(0)

Microsoft 365 および Azure Portal で、ユーザー毎での接続元IPアドレス制限を行う必要があったので、その設定方法を調べました。

IPアドレス制限を行うには、条件付きアクセスのポリシーを作成することで実現可能です。

条件付きアクセスについては以下リンクで説明されています。

Microsoft Docs
条件付きアクセス ポリシーの構築
条件付きアクセス ポリシーを作成する

リンク先の説明には、色々なことが含まれているので理解しにくいところがありますが、具体的なポリシー設定としては、次のルールを作成することになります。

  • ネームドロケーションを作成(許可するIPアドレスの定義)
  • アクセスのブロックとして、基本は拒否のルールにする。
  • ユーザー割り当てに、アクセスさせたい対象ユーザーを含める。
  • 例外条件として、ネームドロケーションを選択。

ポリシー作成時のメニューの並び順が、論理的にこのような順番では無いので、最初は戸惑うかもしれませんが、要は拒否のルールを作って、例外条件で許可するというポリシーを作成します。

これによって、設定ユーザーが特定IPアドレスからだけ許可されるということになります。

なお、条件付きアクセスのポリシーを作成するには、テナントのライセンスに Azure AD Premiun P1 が必要です。

以下、ここではAzure AD上に kanri01@******.onmicrosoft.com というクラウドユーザーを事前に作成しておき、そのユーザーをIPアドレス制限する想定として記載しています。AD同期ユーザーは AD FS を構成して、AD FS 側でIPアドレス制限していることが多いと思いますが、ポリシーの対象にはAD同期ユーザーも選択できるので、ポリシーでAD同期ユーザーもIPアドレス制限を掛けることが出来ます。

それではまず、Azure ADのセキュリティに行きます。
※下記、テナントの名前が私の名前になっていますが、通常は社名や組織名などになると思いますので読み替えてください。

Azure Potal セキュリティメニュー

セキュリティのネームドロケーションを開き、「IP範囲の場所」をクリックします。

Azure Potal ネームドロケーション IP範囲の場所

「IP範囲の場所」をクリックすると、右側に 新しい場所 (IP範囲) の入力欄が出るので、名前に分かりやすい名前を付けて、+ボタンからIPアドレスを追加して、作成をクリックします。

Azure Potal ネームドロケーション 新しい場所 (IP範囲)の追加

ここで入力するIPアドレスは、/28 や /32 などを付けたマスクビット数の表記で指定します。

マスクビット数はサブネットマスクのビット数の表記になるので末尾のビットの範囲指定が出来ます。範囲指定が無く1つの固定IPアドレスであれば /32 になります。

ネームド ロケーションを作成したら、条件付きアクセスへ進みます。

Azure Potal 条件付きアクセスへのリンクメニュー

条件付きアクセスで、ポリシーのページを開き(条件付きアクセスの初期ページはポリシーが表示されると思います)、新しいポリシー > 「新しいポリシーを作成する」をクリックして、ポリシーを新規作成します。

Azure Potal 条件付きアクセス 新しいポリシー

ポリシーの新規作成画面で、名前箇所は任意に分かりやすい名前を入力して、

Azure Potal 条件付きアクセス 新しいポリシー 名前の入力

次に、メニュー上で設定する順序はどこからでも構わないのですが、まずは「許可」を選択し、

Azure Potal 条件付きアクセス ポリシー新規作成

「アクセスのブロック」を選択して保存します。

Azure Potal 条件付きアクセス ポリシー新規作成

ユーザーやアプリの指定はまだしてませんが、これによりすべて拒否のルールになります。

次に、「ユーザーまたはワークロードID」という箇所を開き、ユーザーを指定していきます。

対象で「ユーザーとグループの選択」を選択し、「ユーザーとグループ」にチェックを入れることで、AAD上のユーザーを選択できるようになります。

Azure Potal 条件付きアクセス ポリシー新規作成

「ユーザーとグループ」にチェックを入れると、まだユーザーが選択されていない状態で警告が表示されますが、ユーザーを選択すれば警告は消えます。

右側にユーザーとグループの選択が表示されるので、AAD上のユーザーを選択していきます。ここでIPアドレス制限を行いたいユーザーをクリックして指定します。

Azure Potal 条件付きアクセス ポリシー

ここで、テナント管理者は選択しないようにしてください。テナント管理者をIPアドレス制限してしまうと、IPアドレスが変わった時に、テナント管理者がログインできないことになるので、テナントの制御ができないことになります。

最低限一人のテナント管理者は、制限無くログインできるようにしておかないと、いざというときにログインできず困ることになります。

ユーザー追加後はこのようになります。

Azure Potal 条件付きアクセス ポリシー

次に、「クラウドアプリまたは操作」から、対象で「すべてのクラウドアプリ」を選択します。

Azure Potal 条件付きアクセス ポリシー

なお、利用させたいアプリケーションをコントロールする場合は、下の「アプリを選択」を指定すると、次のようにアプリケーション毎に選択することができます。

Azure Potal 条件付きアクセス ポリシー

その次は、「条件」から、場所を指定します。

場所の構成は、デフォルトで「いいえ」になっているので、ここを「はい」にして、対象外の指定として、作成したネームドロケーションを選択します。

Azure Potal 条件付きアクセス ポリシー

場所の選択画面は、次のようになります。

Azure Potal 条件付きアクセス ポリシー

最後に各設定を確認し、ポリシーの有効化のところで、初期値は「レポート専用」になっていますが、ここを「オン」にして、「作成」をクリックして完了です。

Azure Potal 条件付きアクセス ポリシー

その後、作成してから数分後に動作確認します。

登録したIPアドレスは、自宅のグローバルIPアドレスなので、ルーター配下に有線で繋がっているデスクトップPCはいつも通り繋がります。

Surfaceを使い、ルーター配下のWi-Fiに繋げてログインすると、当たり前ですが正常にログインできます。

次に、Surfaceをi-Phoneでデザリングして(AUなのでKDDI網です)ログインしてみると、次のような画面になってログインができません。

Azure Potal 条件付きアクセス ポリシー

同じSurface(i-Phoneでデザリングした状態)で、設定したユーザーではなく、テナントの管理者ユーザーでは正常にログインができます。

これで、ユーザー毎にIPアドレス制限がかけられることが確認できました。

カテゴリ:

コメントする

※HTMLタグは使えません

Author

あきちゃん

主に、.NETでWebシステムの設計と開発をしています。
(茨城県在住, 都内勤務)
プロフィール