AzureAD認証を利用するAppServiceをAppGWで構成設定

# だいたいこんな感じの環境を作る

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/ced0bc61-9507-1c1d-0b7d-b1fee4a5f9c1.png)

* トップページは静的サイトでお客様？が運用しています。
* アプリAは私たちが開発担当
* アプリBは別の会社が開発担当

のためこのような構成になっています。

基本的には

この設定に
https://blogs.msdn.microsoft.com/waws/2017/11/21/setting-up-application-gateway-with-an-app-service-that-uses-azure-active-directory-authentication/
パスベースでサイト振り分けを行い
https://docs.microsoft.com/ja-jp/azure/application-gateway/create-url-route-portal
V2を使ってカスタムドメインを使わずにRewriteでなんとかしてみました。
https://docs.microsoft.com/en-us/azure/application-gateway/rewrite-http-headers-portal

では、実際に設定した値を見てみましょう。

# AGW

## WAFV2

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/7309b11f-cd1b-d187-cc05-0ea450a4540e.png)

## Firewallはとりあえずなしにしておく

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/90f48286-a37b-ef88-9450-05c31762054c.png)

## Backend poolsの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/9a080780-683a-0110-ba12-b85b589e79c5.png)

### アプリA

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/092cac3d-1503-b804-fef0-ff6450433cfd.png)

### アプリB

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/500caefc-d5db-f9be-e363-bf0fec12ecc3.png)

### トップページ用アプリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/868b0e61-8a6b-daa1-068d-608702bdd98d.png)

## HTTPsetting

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/fc099f41-860c-f3e0-b400-ab9780a8b49d.png)

### アプリA

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/1ea37cc7-8cab-238f-7c1c-44511b3dd395.png)

### アプリB

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/b982df68-1e31-a3d0-31d2-9a183445f328.png)

### トップページ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/6ba4adca-d9c7-158c-e627-25cb68554a82.png)

## Frontend IPの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/2707e6a7-4a9a-a899-ab3f-d4f4736c8c85.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/93d66be1-a9e0-1fdf-8e0d-afd532081754.png)

## Listnerの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/175613fc-802b-4c4b-9dcd-ee709a09bb0e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/cae93f9a-f245-da27-ebe2-46aaae902807.png)

PIPのドメインで証明書も作っておきます

## Ruleの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/e30ea602-bff7-ac1e-8dfa-a44fa14b4522.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/3b372009-1487-74a0-840f-ca13c47e517b.png)

注意）Path-baseは初回で設定しないと登録できないかも


## Rewriteの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/e8e2571d-f710-5a56-d117-c85d8de23eab.png)

## AppService Authの奴だけ設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/f151c8bd-a7d0-5c35-045b-70c6768cff99.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/0bcd7c7b-8080-40ce-c12a-7937c79a57e7.png)

だいぶ無理やりな設定
``` (.*)redirect_uri=https%3A%2F%2F40017001.azurewebsites.net(.*)$ ```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/ade50a46-58dd-eae0-ce20-24714ce534c2.png)

``` {http_resp_Location_1}redirect_uri=https%3A%2F%2Fn40017.japaneast.cloudapp.azure.com%2Ffastdelivery{http_resp_Location_2} ```

## Health probesの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/bdded57e-6e60-9ae0-7d1c-4cf38ad14e76.png)

大事なのは必要なエラーステータスコードも含めておくこと

### Topページ用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/06c4112a-3876-f545-86f0-5939a9cd84e9.png)

### アプリA用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/c6c36b06-0745-4a18-e280-d15c05f5e471.png)

### アプリB用

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/d7d31bb0-6c02-020b-37f6-19a1970399ae.png)

# Appservice
## AppserviceのAuthentication

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/6fa8db97-c726-066a-d9c1-e54097ffe206.png)

# AzureAD
## AGW用のドメインも追加しておく

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80457/9f21b740-f71f-0b3b-4286-478fdeccbf33.png)

# 終わり

その他のサービスに関しては任意の設定で大丈夫だと思います。
そもそもこんな環境を構築することが他であるかわからないので何の参考にもならないかと思いますが、結構苦戦したので備忘録として残しておきます。