Azure Portalへの接続をデバイス単位で制限する(Azure AD,Intune使用)

#■前提
AzureのPortalに接続できる端末を制限したいという要望の中で
「モバイル端末でIP固定じゃないからIPフィルタリングで制限できない」
「多要素認証はダメ」
という要件があった為、何とかデバイス単位で制限できないか模索して、
「Azure ADに参加した端末限定」という方法で実現してみました。
構築メモを兼ねている為、補足が煩い件についてはご了承ください。
※実験環境は2019/10/18時点のものです
※画像中契約情報やドメイン情報等が表示されているものは削除しているので空白になっています。

#■環境要件
- サーバ
    - Azureサブスクリプション(実験環境はMSDNです)
    - Azure ActiveDirectory(Premium P1)
    
    ⇒機能として以下が必要です。
        - Azure AD Join: MDM 自動登録とローカル管理ポリシーのカスタマイズ
        - グループ、場所、およびデバイスの状態に基づいた条件付きアクセス
        - 使用条件 (特定のアクセスに対して使用条件を設定)

現時点ではPremiumグレードに相当する機能が必要になります。
※P2プランは無料試用が可能でした。
引用：[AzureAD価格](https://azure.microsoft.com/ja-jp/pricing/details/active-directory/)

- Microsoft Intune
　　※こちらも無料試用期間があります。

Portal利用端末を登録するという要件上ライセンス個数は最低限で大丈夫なので
月額1200円くらいになると思います。

- Poral利用端末
    - Windows10

      ⇒Azure ADへの接続が可能なのが10からなので必須ですが、エディションはどれでも大丈夫みたいです。
       (実験環境はProを利用しています。)
　　引用：[OSサポート](https://docs.microsoft.com/ja-jp/intune/fundamentals/supported-devices-browsers)

#■前提環境の作成

Azure上で環境を準備します。
※MSDN利用の場合、Intuneのライセンスは既についています。

##1. Microsoft Intuneサブスクリプションを作成する。
[ここ](https://signup.microsoft.com/Signup?OfferId=40BE278A-DFD1-470a-9EF7-9F2596EA7FF9&dl=INTUNE_A&ali=1#0%20)からサインアップします。
※先にAzureサブスクリプションを作った場合は画面右上の「既に～」から追加します。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/81ea3f94-c9df-bbc8-0f17-531210320b6b.png)


ここで入力する「～.onmicrosoft.com」がADのドメイン名になるのでオリジナルのドメイン名を入力します。

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/e701db1e-f317-f983-c501-ca44511a4072.png)


## 2. Azureサブスクリプションを作成する。

Intuneのサブスクリプションを作成したら、Azure Portalのログイン画面から
先ほど作成したIntuneのアカウントでログインします。([AzurePortal](https://portal.azure.com))
IntuneとAzureはサブスクリプションが別なのでAzureサブスクリプションを
追加します。(従量課金プランで大丈夫です)

![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/32495c4e-3232-321d-4d90-2f0662af3726.png)

## 3. Azure Active Directoryのライセンスをアップグレードする。

Portal上からAzure Active Directoryのリソースを選択すると、
Intuneで作成したDirectoryが既にFreeライセンス版で稼働しています。

![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/29859791-84d2-d101-54b8-19e0d1ef5a7d.png)

ライセンスメニューからPremium版を購入しアクティベートします。
(実験環境では無料試用版のP2をアクティベートしています)

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/737d8cd0-c8c4-46a7-2114-befebbc6f99e.png)

以上で利用環境の準備は完了です。

#■サーバ環境の設定

デバイスをADの条件付きフィルタリングに登録させる為の設定を行います。
※実験環境ではドメイン参加した端末はほぼ無条件でフィルタ通していますが
　実際にはIntune側でもっと細かいカスタマイズが可能です。

## 1. Azure ADドメイン参加した端末をIntuneに自動登録するように設定する。

　「Intune」-「デバイスの登録」からIntuneの連携方法を設定します。
　今回は「自動登録」を設定します。

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/37c81f29-2375-b832-80a9-d83b8404ee0f.png)


　「MDMユーザースコープ」の設定を「すべて」で設定します。
　設定したら「保存」します。
　※ドメイン参加したデバイス情報をIntuneに送信する為の設定
　※MAMはアプリケーション管理なので設定不要です

![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/4f4f513b-2094-8da4-49ff-83b6ee57f95b.png)

　次に「Active Directory」-「モビリティ(MDMおよびMAM)」からADと連携する
　MDMアプリケーションの設定をします。
　メニューから「アプリケーションの追加」をクリックします
　※絵では既に追加済です

![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/3db34940-9541-6930-bc33-53854039fcc9.png)

 アプリケーションから「Microsoft Intune」を選択して追加します。

![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/4b92299e-edc3-f744-a387-592914c3b76a.png)

## 2. Azure Portalへ接続する条件付きアクセスを設定する。

 「Active Directory」-「条件付きアクセス」から「新しいポリシー」を追加します。

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/a24c49b2-43bf-ef96-cfcf-d1a5141f9c04.png)

　「割り当て」-「ユーザとグループ」からPortal端末にログインするユーザを選択します。
 ※サブスクリプション所有者ユーザがデフォルトで一人いますが、このユーザで条件付けを失敗すると
 Portalにログインできなくなるので、一人別に権限付けをしたユーザを作成しておくことをお勧めします。
 (最低限、条件付き設定管理のロールが付いていれば設定を解除可能です)

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/396cf6ab-03ef-a10d-e9b5-0ca6082051d6.png)

　「割り当て」-「クラウドアプリまたは操作」からPortalである「Microsoft Azure Management」を選択します。

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/9a6d2192-8dae-7ac8-de8b-09fdfac2e502.png)

　「アクセス制御」-「許可」から以下を選択します。
　・アクセス権の付与
　・デバイスは準拠しているとしてマーク済みである必要があります
　※「準拠している」とは今回の場合、デバイスがIntune登録済みで、Azure ADに参加している
という事を指しています。　
　詳細は以下を参照。
　参考：[デバイスIDとは](https://docs.microsoft.com/ja-jp/azure/active-directory/devices/overview)

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/a1bb2b0a-9bb4-d1f5-fc6c-afaf781acb52.png)

　「ポリシーの有効化」をオンに設定することで設定が有効になります。
　※オフの間は動かないので設定だけしておくこともできます。

これで条件付きアクセスの設定は完了です。

## 3. Portal端末をドメイン参加させて、デバイスを「準拠している」状態にする

　Portal端末にローカル管理者でログインし、「設定」-「アカウント」-「職場または学校にアクセスする」を選択します。

<img width="740" alt="01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/b93addae-a7f5-78b8-d300-0befa3f7dfd3.png">

　「接続」からアカウントのセットアップが表示されるの「このデバイスをAzure Active Directoryに参加させる」をクリックします。

<img width="490" alt="02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/082cfdcd-927a-256f-92f5-8496ceef3bdf.png">

　2で作成したログイン用ユーザ情報を入力しドメイン参加を行います。

<img width="490" alt="03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/d7f05bfb-d6ae-871a-518c-895e65fc79bf.png">

　認証が行われると以下のポップアップがでるので「参加する」を選択します。

<img width="511" alt="04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/370283f9-d7c6-f7e5-8934-8801d83479c3.png">

　接続が完了するとAzure ADの接続情報が表示されるようになるので、「情報」を選択します。
　※Intuneにデバイス登録されていると「情報」アイコンが表示されます

<img width="740" alt="06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/f0c724da-19a2-8fe2-f67a-8cf82c0adac7.png">

　デバイスの同期状態が「正しく同期されました」になっていることを確認します。
　※なっていない場合は「同期」ボタンをクリックして同期します。

<img width="740" alt="07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/ffa3f3b6-3432-595f-1d1c-48cab4901b53.png">

これでデバイスの登録作業は完了です。

## 4. デバイスの登録状態を確認する。

　Portal上からはデバイスの一覧画面から「準拠している」の項目が「はい」であることを確認します。

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/56a42ca7-1c14-6971-32e4-5cadb4f9f684.png)

　Intune上からは「デバイス」-「すべてのデバイス」で一覧上から「対応」の項目が「準拠している」ことを確認します。

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515252/04a612aa-aa70-11c4-57ef-7ae078354c45.png)

これでデバイスが「準拠している」状態になりました。
※表示の反映まで時間が少々かかる場合もあります。


以上の設定で、指定したユーザでPortalにログインした場合に条件付きアクセスが適用され、準拠しているPCでのみ接続が可能になります。