Azure AD Application Proxy 構築ガイド（２）

#はじめに
　[前回](https://qiita.com/Aida1971/items/ae42d1ae371794f12780)は、事前準備という事で下記作業 1, 2 の構築手順について記述しました。今回は本命となる [Azure AD Application Proxy](https://docs.microsoft.com/ja-jp/azure/active-directory/application-proxy-publish-azure-portal) の構築に入っていきます。

###作業の流れ
1.	Azure AD カスタムドメインの登録
2.	Azure AD Connect によるオンプレミスADとの同期
3.	**Azure AD Application Proxy の構築**

#システム構成
　上記３項目で構築する最小構成が下記イメージとなります。ここでの Azure 仮想ネットワークは、オンプレミスネットワークと読み替える事も可能です。

![No1.png](https://qiita-image-store.s3.amazonaws.com/0/166732/29e4abe6-8b48-9614-5303-a2953efbfca4.png)

#３．Azure AD Application Proxy の構築
###概要
　ここでは Azure AD にて認証されたユーザーを Kerberos 変換し、オンプレミス環境の WEB サーバー（Windows 統合認証）へ SSO アクセスするための Azure AD Application Proxy を構成します。

###詳細手順
1.	Application Proxy は、Azure AD Basic or Premium のライセンスが必要です。ここでは 30 日間の無償評価をアクティブ化して検証します。
#####![01.png](https://qiita-image-store.s3.amazonaws.com/0/166732/ac2756f1-79b7-a632-7cb8-9e0bb316e1cd.png)
######　

2.	正常にアクティブ化されるとアプリケーションプロキシにて次の画面が得られます。コネクタのダウンロードより、コネクタをオンプレミスのプロキシサーバー (Application Proxy Connector) にインストールします。オンプレミスのプロキシサーバー上で直接ポータルを開いてダウンロードするか、間接的にモジュールをコピーしてインストールします。
######![02.png](https://qiita-image-store.s3.amazonaws.com/0/166732/995b0e4e-dab6-279b-0bfd-a04856befba4.png)
#####2-1. オンプレミスのプロキシサーバー上で、ライセンス条項に同意してインストールします。
######![03.png](https://qiita-image-store.s3.amazonaws.com/0/166732/2217d313-1238-e2e9-525f-f697db29ef83.png)
#####2-2. Azure AD 全体管理者を指定します。
######![04.png](https://qiita-image-store.s3.amazonaws.com/0/166732/4eb4a55d-a30c-ab46-8d61-85f988873778.png)
#####2-3. インストールが成功すると次の画面が表示されます。
######![05.png](https://qiita-image-store.s3.amazonaws.com/0/166732/5f4aff97-e6fe-5a66-a4f2-becd41321c9f.png)
#####2-4. Azure ポータルでもコネクタのアクティブ化が確認できます。
######![06.png](https://qiita-image-store.s3.amazonaws.com/0/166732/2774eeb3-b710-696f-244b-1fc4281f6fd7.png)
######　

3.	アプリケーション プロキシを使用してアプリケーションを発行します。
######![06.png](https://qiita-image-store.s3.amazonaws.com/0/166732/00e9b941-397c-5b73-62e5-358c33344283.png)
######![08.png](https://qiita-image-store.s3.amazonaws.com/0/166732/a783e010-35f4-a8f4-88de-5fa745d8dc8f.png)
######　

4.	内部 URL は仮想ネットワークの IIS マシンのイントラネット URL を設定します。外部 URL は SSL 証明書がないため、ここではカスタムドメインでなく、既定の msappproxy.net を利用します。（SSL 証明書の設定とカスタムドメインの利用については巻末補足を参照）
######![09.png](https://qiita-image-store.s3.amazonaws.com/0/166732/1b3b3e28-0cd2-83b3-22d3-2929a6f56505.png)
######　

5.	続いてクイックスタートより、テスト用ユーザーの割り当てと、シングルサインを構成します。テスト用ユーザーの割り当ては簡易なので手順は省略しますが、織田 信長を割り当てています。
######![10.png](https://qiita-image-store.s3.amazonaws.com/0/166732/e555a829-215d-1ab0-4857-f8af4b8b1f3a.png)
######　

6.	**下記参考資料（必読）**に従って、オンプレミスのドメインコントローラにて、Application Proxy サーバーの Delegation プロパティで SPN を登録します。ここでは IIS WEB サーバーの FQDN を指定しています。
#####![11.png](https://qiita-image-store.s3.amazonaws.com/0/166732/15fdd6a9-03e8-6e95-cedb-bb57c92cdff1.png)
**参考資料：**アプリケーション プロキシを使用してアプリにシングル サインオンを提供
https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-application-proxy-sso-using-kcd
######　

7.	同様に Azure ポータルのシングルサイン設定にて SPN に上記オンプレミスの SPN を指定します。この時、**URL ではなく http/SPN** となっている点に注意ください。
#####![12.png](https://qiita-image-store.s3.amazonaws.com/0/166732/ebe5154d-156c-d6e2-e629-fae4f0437485.png)

#動作検証
　以上で設定は完了です。ブラウザにて https://myapp-samlfed.msappproxy.net/ へアクセスすると、Azure AD により提供されるログインページにリダイレクトされます。

1. ログインページへ織田 信長 nobunaga@aida-factory.com にてログインします。
#####![13.png](https://qiita-image-store.s3.amazonaws.com/0/166732/5d0cc899-3b53-213a-7d53-79b1718a2aaf.png)
#####　

2. ログインに成功するとオンプレミスの IIS サーバーからページ応答が返ってきます。
#####![14.png](https://qiita-image-store.s3.amazonaws.com/0/166732/5c099da1-1d8a-5d53-0773-f3952617557b.png)

※ 上記では検証用に認証されたユーザー名を返す ASP ページ（下記サンプル）の応答を返しています。

```aspx-vb:default.asp
<%
Dim strUser
strUser = Request.ServerVariables("LOGON_USER")
Response.Write "User Name : " + strUser
%>
```

#補足
　Azure AD Application Proxy のホスト URL にカスタムドメインを利用する場合には、下記設定の最後にある項目から行います。これには CNAME 登録及び該当ドメインの SSL 証明書のアップロードが必要となってきます。

　![15.png](https://qiita-image-store.s3.amazonaws.com/0/166732/f53e6b9c-a15e-dac2-d359-cd07d01a7263.png)

####最終回の [構築ガイド（３）](https://qiita.com/Aida1971/items/bad8965b14eb543342b1#_reference-e0f436c9f45b3b579e64)では、システムの冗長化対応について説明します。