不正アクセスを低減 ! Azure AD 条件付きアクセス ポリシーを適用して Dynamics 365 (PowerApps) を制御する

久しぶりの投稿です。
今回は Azure Active Directory (AAD) の条件付きアクセスを使って Dynamics 365 （PowerApps）がどう制御されるのか手順と共にご紹介します。

# シナリオ

企業が社員にアプリケーションを展開する際、利用者の場所やサポートしているデバイスでしかアクセスさせたくないという要望があります。これにより不正アクセスを低減させることができます。条件付きアクセスポリシーを使用することで、利用者の利便性を保ったままセキュリティを確保することができます。

この記事では、代表的なケースでアプリケーションを制御してみます。

## ケース1. 特定の場所からのアクセスを制御したい
会社として社員が存在している国からでのみ利用させたいというケースです。
今回は例として、利用者が「日本」の場合はブロックします。

## ケース2. 特定のOSのデバイスからのアクセスを制御したい
会社として社員に利用を許可しているデバイスからしかアクセスさせたくない場合です。
今回は例として、利用者がアクセスしてきたデバイスのOSが「iOS」の場合はブロックします。

## ケース3. 特定のIPアドレスからのアクセスを制御したい
VPNなど社内で許可されているネットワーク経由からでしかアクセスさせたくないといった場合です。

# 手順
主な手順は以下の通りです。
0. 事前準備
1. ブロックする場所の作成
2. 条件付きアクセスポリシーの作成

## 0. 事前準備
- Microsoft 365 テナント
- Azure Active Directory Premium ライセンス
- Dynamics 365 (または PowerApps) ライセンス

## 1. ブロックする場所を作成
Azure AD ログインします。
[Azure Active Directory] > [セキュリティ] > [条件付きアクセス] をクリックします。
[ネームドロケーション]をクリックし、[+国の場所]をクリックします。
名前を付け、[日本] を選択し、作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/d9c0eca3-2ef2-33e2-e0fb-84a2971e944d.png)

## 2. 条件付きアクセスポリシーの作成
[Azure Active Directory] > [セキュリティ] > [条件付きアクセス] をクリックします。
[ポリシー]を選択肢、新しいポリシーを作成します。
###ブロックするユーザー（またはグループ）を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/f42e6d8c-a60a-5e31-6351-c005fdf86d3c.png)
###ブロックを除外するユーザー（またはグループ）を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/0561ead6-fcb2-f738-52f2-7fd7bfc0c177.png)
###制御するアプリケーションを選択します。
今回は Common Data Service を選択します。これにより Dynamics 365 (PowerApps) へのアクセス時に制御されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/a8988411-5f64-0b06-d9de-b42829e1f53b.png)
続いて場所を選択します。先ほど作成した日本を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/8fd1130e-c62a-b2a4-5693-19e899068abd.png)
制御の種類を選択します。今回はブロックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/4c2351ea-cd64-053d-42e2-d4eb7d961ec2.png)
最後に、ポリシーの有効化を選択し、作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/e96bbc0d-0716-0348-0ada-af75e20a7453.png)

# 動作検証
早速確認してみましょう。iPhone からDynamics 365 モバイルアプリにアクセスしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/6a78894a-4e84-1fb8-d715-eac99ebe829e.png)
Dynamics 365 または PowerApps をタップし、ログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/09229c77-db4d-aa43-6768-99a1fe4a670b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/45228ea9-ea04-aa04-4648-d103d540e439.png)
ログイン後にアプリを選択します。ポイントはログイン後に制御がかかるという点です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/16913aaf-abec-21ce-4940-04d22dbf5d1a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/5dd52311-a0e2-fd87-c3d4-6f6acfbf5e47.png)
特定のアプリにアクセスすると、ブロックされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/741bd4a0-ff65-562f-262b-2711652d9220.png)

なお、サインインレポートによりどの利用者がいつどういう理由でブロックされたかが分析できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/d4b4de02-ebc1-1b08-5e94-b9d19d87208e.png)

# 複数の条件
上記は場所のみ制御していました。その他にデバイスOS、アクセス元のアプリの種類、デバイスの状態などで制御することができます。
ポリシーを複数作成した場合、上から順番に評価されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/9828f922-dfcf-1c6f-7b7a-2371878b39ac.png)

また場所とOSという条件を２つ組み合わせてポリシーを作成した場合、AND条件として評価されます。ー＞場所=日本 AND デバイスOS＝iOS
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/04345cc5-43bc-abda-267f-d5431dc09f9d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/b15b543a-b0a9-bd67-7933-bf587ea670f3.png)

この場合、日本 から Windows 端末でアクセスした場合はブロックされません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355620/f7661532-2951-1159-9a1d-335f20549564.png)

# 解説
条件付きアクセスで判断している場所は、利用者のIPアドレスをベースに制御されています。それ以外にGPS（Preview）による制御も設定可能です。注意点としては、すべてユーザーをブロックする際は、必ず除外ユーザーをセットで設定することでミスを防げます。
また、制御は認証後に行われるという点も抑える必要があります。

# まとめ
いかがだったでしょうか。条件付きアクセスを使うと利用者の場所やデバイスでアクセスを制御することができます。
今回紹介した内容はすべてトライアル環境で試すことができます。是非お試しください。

# Appendix

https://docs.microsoft.com/ja-jp/power-platform/admin/restrict-access-online-trusted-ip-rules

河野 高也