Azure AD認証でVPN接続できるようにした話

# 概要
Azure上にVPN Gatewayを立てて、
Azure ADに登録されているユーザだけVPN接続を可能にする方法です。

証明書等を使ってVPN接続をすることも可能なんですが、証明書の管理も大変だし、
万が一他の人の手に渡ってしまったらセキュリティ担保されなくなるよね、
ってことで、この方法を検討することになりました。

概要の詳細はこちら。
[・Azure ポイント対サイト VPN について](https://docs.microsoft.com/ja-jp/azure/vpn-gateway/point-to-site-about)
[・P2S OpenVPN プロトコル接続用の Active Directory (AD) テナントを作成する](https://docs.microsoft.com/ja-jp/azure/vpn-gateway/openvpn-azure-ad-tenant-multi-app)

# 手順
## ★前提条件（事前準備）  
今回は、事前に対象のAzure環境にて下記が準備されていることが前提です。

* Azure上にVPN Gatewayが構築されていること
* ユーザーが登録された状態のAzure ADが存在していること

また、AzureAD認証でVPN接続をする場合には、Azure VPN クライアントツールの利用が必要となるため、
Windows10端末のストアアプリからAzure VPN クライアントツールがダウンロードできる必要があります。

## ①Azure ADにてVPN接続のアクセス許可を設定する
VPN接続時にAzure ADを利用できるように設定します。
***※ Azure ADの「全体管理者」権限を持ってるユーザでの実行が必要です。***
 　***サブスクリプションの「所有者」権限だけ持っていても実行できないので注意。***

　1. 下記URLにブラウザからアクセスする

```plaintext
https://login.microsoftonline.com/common/oauth2/authorize?client_id=41b23e61-6c1e-4545-b367-cd054e0ed4b4&response_type=code&redirect_uri=https://portal.azure.com&nonce=1234&prompt=admin_consent
```
※ ログインが求められた場合は、画面に従ってログイン情報を入力してください。

　2. 「承認」をクリックする
　![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/21878fee-aa0a-99c2-ae23-a15b4e84fca0.jpeg)

　3.  Azure Portalにログインし、Azure ADの「すべてのアプリケーション」に「Azure VPN」が表示されていることを確認する
　![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/19ba2cd9-18d0-c6b5-e23e-7cd63af3bfe3.jpeg)


## ②VPN GatewayにAzure ADの情報を設定する
①で設定したAzure ADをVPN接続時に利用できるようにVPN Gatewayに紐づけます。

　1. Azure Portalにて、設定するVPN Gatewayの「ポイント対サイトの構成」画面を開く
　2. 認証の種類で「Azure Active Directory」を選択し、以下の項目を設定して「保存」をクリックする
　※トンネルの種類が「OpenVPN（SSL）になっていないとAzure AD認証は選択できません。

  * テナント：`https://login.microsoftonline.com/{AzureADのテナントID}/`
  * 対象ユーザー：`41b23e61-6c1e-4545-b367-cd054e0ed4b4`
  * 発行者：`https://sts.windows.net/{AzureADのテナントID}/`  
  ※Azure ADのテナントIDは、Azure portalの「Azure Active Directory」の概要画面から確認できます。
![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/ad96eec7-c720-104f-7d16-c578199a60b0.jpeg) 
  <br />
  3.「VPNクライアントのダウンロード」をクリックして、zipファイルがダウンロードされることを確認する


## ③VPNクライアントツールの準備
端末にVPN接続用のクライアントツールをインストールします。
※Azure AD認証を使ったVPN接続は、Azure VPN Clientを利用する必要があります。
　Azure VPN Clientはストアアプリからダウンロードする必要があるため、Windows10端末が必要です。

　1. ブラウザから下記URLにアクセスする  

```plaintext
https://www.microsoft.com/ja-jp/p/azure-vpn-%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88/9np355qt2sqb?SilentAuth=1&wa=wsignin1.0&activetab=pivot:overviewtab
```
</br>
　2. 「入手」をクリックして、VPNクライアントをインストールする
　![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/c329a698-0f7a-73fc-ef30-ac86b3280323.jpeg)

　3. スタートボタンから「Azure VPN クライアント」を起動する
　![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/1525d6a3-f830-d048-d8fc-cec6baa4becb.jpeg)　

　4. 左下の「＋」ボタンをクリックし、「インポート」を選択する
　![007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/43cb38d9-84d3-541c-7dd9-288eac9a6050.jpeg)

　5. ③-3でダウンロードしたzipファイルを解凍し、[Azure VPN]フォルダから「azurevpnconfig.xml」を選択して、「開く」をクリックする
　![008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/82784456-5bf7-4038-6ee3-31c5d026ec81.jpeg)

　6. 特に設定変更せずに「保存」をクリックする
　![009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/b68d4012-552c-a685-2b91-0879f4e783ed.jpeg)

　7. 画面左側に対象のVPN接続が表示されるため、「接続」をクリックする
　![010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/c7bfe16c-a2c8-bf30-5a66-16be122fad62.jpeg)

　8. AzureADに登録されている認証情報の入力画面が表示され、入力すると、ステータスが「接続済み」になる
　![011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609611/51bb73f4-d6d5-610a-07a8-85bfd3a93b57.jpeg)

***
以上です。

接続時にユーザー情報を入力する必要があるので、
証明書での接続より接続時に若干手間が増えたりもしますが、
Azure ADに登録されているユーザしか接続できない仕様なので、
管理は楽になり、セキュリティ面でも良さそうな気がします。  
</br>