Azure ADの条件付きアクセス機能でエンタープライズアプリケーションへのIPアドレス制限を試してみた

2022.12.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Azure AD の条件付きアクセス機能を利用することで、エンタープライズアプリケーションに対して IP アドレス制限を用いたアクセスができるため試してみました。

Azure Active Directory の条件付きアクセスとは - Microsoft Entra | Microsoft Learn

試してみた

条件付きアクセスは次のドキュメントに記載があります。今回は IP アドレスによる制限を試しますが、他にもデバイス情報や Identity Protection のユーザー/サインインリスクなどを条件とすることもできます。

Azure AD 条件付きアクセスのドキュメント - Microsoft Entra | Microsoft Learn

前提条件として、動的グループは Azure AD Premium P1 または P2 ライセンスが必要となります。

条件付きアクセスは「セキュリティ」メニューから設定します。

「条件付きアクセス」を選択します。

今回は IP アドレスによりアクセスを制限するため、ポリシー作成前に IP アドレスの登録から行います。「ネームドロケーション」の「IP 範囲の場所」から設定します。

「信頼できる場所としてマークする」をチェックして、アクセスを許可する IP アドレス(社内 OA 網のグローバル IP アドレスなど)を登録します。信頼できる場所としてマークすることで Identity Protection の精度を高めることができます。

以上で、IP アドレスの登録は完了です。この情報を用いて条件付きアクセスのポリシーを作成します。

IP アドレス範囲の設定の制約事項は次のドキュメントに記載があります。設定上限数やプライベート IP アドレスの設定ができないことなどの記載があります。

Azure Active Directory の条件付きアクセスの場所の条件 - Microsoft Entra | Microsoft Learn


次に、条件付きアクセスのポリシーを設定します。全体の流れとしては、条件付きアクセスの対象とするユーザーとグループ、および対象とするアプリケーションを設定した後に、アクセスの条件をします。条件はすべてのアクセスをブロックすることを基本として、登録した IP アドレスを例外として設定することで実現します。

「新しいポリシー」から設定します。

名前を入力し、対象となるユーザーとグループを選択します。今回は作成済みのグループTest Groupを選択しています(ユーザーTest Userのみをメンバーとして設定しています)。対象外とするユーザーとグループも設定でき、両方を設定した場合は対象外が優先されます。

次に、対象とするアプリケーションを選択します。今回は「すべてのクラウドアプリ」とします。他の例として、エンタープライズアプリケーションを対象とすることもできます。例えば、AWS IAM Identity Center をエンタープライズアプリケーションとして登録している場合は、AWS IAM Identity Center へのアクセスのみに関する設定ができます。

次に、「許可」の設定から「アクセスのブロック」を選択します。「許可」の設定では、すべてのアクセスをブロックする設定のみを行い、後ほど「条件」の項目で例外とする IP アドレスを設定します。

「条件」で先ほどネームドロケーションで設定した IP アドレスを対象外として設定します。

最後に、ポリシーの有効化を「オン」にして「作成」します。

以上で設定は完了です。

なお、最後の作成前の設定で「レポート専用」を選択することで、実際にはアクセスをブロックせずに動作を確認できます。事前にユーザー影響を確認できるメリットがあります。

条件付きアクセスのレポート専用モードとは - Azure Active Directory - Microsoft Entra | Microsoft Learn


条件付きアクセスの対象として設定したユーザーで Azure Portal へのサインインを試してみます。

まずは、例外(対象外)として登録している IP アドレス以外からアクセスしてみます。意図通り、サインインできませんでした。

次に、例外(対象外)として登録している IP アドレスからアクセスしてみたところ、サインインできました。


エンタープライズアプリケーションに対して条件付きアクセスを設定することができます。次の画像は対象アプリケーションを AWS IAM Identity Center とした例です。

この場合は、マイアプリポータルにはログインできますが、条件付きアクセスを設定したアプリケーションを選択してアクセスする際にブロックなどの指定した動作が行われます。次の画像はアクセスをブロックした動作例です。

エンタープライズアプリケーションとして AWS IAM Identity Center ではなく、各 AWS アカウントを直接設定している場合は、AWS アカウント毎に条件付きアクセスのポリシー設定が可能です。例えば、AWS アカウント毎に IP アドレス制限の実施有無を変えたり、IP アドレス範囲を変えたりできます。

Azure AD と AWS の認証連携パターンについては次のブログにまとめています。


また、プレビュー機能となりますが、条件付きアクセスをテンプレートから設定できる機能もありました。

テンプレートに関するドキュメントです。

条件付きアクセス テンプレート - Azure Active Directory - Microsoft Entra | Microsoft Learn

テンプレートは一般的な条件付きアクセスポリシーとして次の内容があり、検討の参考になります。

さいごに

AZ-500 の勉強をしており、自身の復習も兼ねて条件付きアクセスを設定してみました。

次のブログでは条件付きアクセスを導入した流れが紹介されており、とても参考になります。

以上、このブログがどなたかのご参考になれば幸いです。