【仕事メモ】OpenAM (ver13) とOffice365のSAML連携（１） EC2インスタンス準備～AD/AADCの準備

# 概要
以前、アップしたOpenAMとOffice365のSAML連携が何だか中途半端な感じになってしまったので、
ちゃんと最初から最後まできちんと仕上げようと思います。
記事でどこまで書けるかというところですが、頑張ってみようと思います。
この記事ではAWS EC2インスタンスの作成～AD/AADCサーバの準備までを記載します。

## EC2インスタンスの準備
前回の記事では端折っていましたが、土台の部分から記事にしていこうと思います。
構成としては以下を予定しています。
　・OpenAM13：Linux(CentOS)
　・データストア：ActiveDirectory(WindowsServer2016 Standard)
　・アカウント同期：Azure ActiveDirectory Connect(WindowsServer2016 Standard)

最終的なイメージとして↓のような構成を予定しています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/b85c6849-2e53-c16c-0114-0553f64bd872.png)



まずはCentOSのイメージでEC2を準備します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/ba28d8bc-8122-69c5-94b3-1bedcb4b5704.png)

検証なのでt2.microでインスタンスを作成します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/bcc6d733-01fb-b4e6-9843-e3cfec305052.png)

vpcサブネットも分けないですし、特にいじらないで作成します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/f93f51f8-132a-0f9a-ccc2-47193d67b6a3.png)

ストレージ設定もそのままでいきます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/c5a556f7-4fb8-54d2-bd59-35b1d784bf65.png)

タグもいじりません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/68ed3e12-fc18-4315-54ee-a13c93d7e6d7.png)

セキュリティグループは後で変更しますので、とりあえずSSHだけ許可する構成にします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/9da5ac85-53e9-ff32-4aa8-a781435dd3ec.png)

作成したインスタンスにはElasticIPも紐づけておきます。
とりあえず、OpenAMのインスタンスは準備完了です。
※すみません、本題から逸れるため、記事では割愛しますがADとAADCもインスタンスを用意します。
　ちなみにADはt2.micro、AADCはt2.smallで作成しました。
　そんなに大きな規模の環境ではないため、少し控えめな感じです。

## ADの用意
作成したインスタンス上にADを実装します。
まずはサーバーマネージャーを起動します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/8eef49d4-c293-5dd8-6a65-96ccac0834aa.png)

役割の追加ウィザードを起動して、「役割ベースまたは機能ベースのインストール」を実行します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/20ad6b5e-1016-0620-8ad0-3d6bdb246247.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/fcae2787-90da-bc91-a953-e4217d60cb43.png)

サーバープールの選択は既定で選択されているローカルサーバー(自分自身)を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/6a554119-c92a-a3b9-2b76-ae56ae7417d8.png)

「ActiveDirectoryドメインサービス」にチェックを入れます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/415772fe-6a1c-b28e-f1cd-ec57e5db24b0.png)

ADインストールに必要な機能が表示されるので「機能の追加」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/eb4e4a04-8706-bedd-dbcd-5a59b10ef970.png)

「次へ」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/26bee481-ef37-baec-8a68-1bc55ca79be7.png)

↓の画面が表示されたら「次へ」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/67e0cc16-8e2c-d44e-bbb5-4860d2f189ae.png)

「必要に応じて対象サーバーを自動的に再起動する」はチェックを入れずに「インストール」を実行します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/7a320949-ccbd-1080-23a7-ee822798a87b.png)

インストールが無事に完了すると↓の画面が表示されるので閉じるを選択します。

![01.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/7115e818-9530-12bc-1936-95f408d4ea3e.png)

サーバーマネージャーに戻って画面上のほうに↓のようなマークが表示されるのでクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/677c71d3-ddf9-9be1-b152-c55ea3dfc987.png)

「展開後構成」と警告メッセージが表示されているので「このサーバーをドメインコントローラーに昇格する」部分をクリックします。

![02.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/1796ade2-f765-26e3-3233-ab7b6ee9398a.png)

「新しいフォレストを追加する」を選択して、「ルートドメイン名」にフェデレーションを有効化するドメイン名を入力して、「次へ」をクリックします。

![03.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/75af2a52-9024-4e5d-e0d3-4faf3ef18a6d.png)

「フォレストの機能レベル」「ドメインの機能レベル」は共に「Windows Server 2016」にして、ドメインコントローラーの機能には「ドメインネームシステム(DNS)サーバー」「グローバルカタログ」にチェックを入れて、ディレクトリサービス復元モードのパスワードを入力し、「次へ」を選択します。

後ほどDNSのインストールを実施するため、「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/84964789-2bc0-3d6b-6f36-c1fa8e37958d.png)


NetBIOS名はとりあえずドメイン名の短縮名を入力して「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/77aabeb9-c563-0c8a-7505-876db173758a.png)
![04.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/48b362f7-878e-9912-469d-6a55a9652210.png)

データベース、ログ、sysvolの保存場所は既定値のままにします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/96710443-ba4e-47bf-3fb5-d61bae9582ef.png)

インストール内容のサマリが表示されますが特に何も追加するものも無いので「次へ」をクリックします。

![05.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/24d04773-67f5-1dbc-3251-339ed0d7788a.png)

windowsNT4.0と互換性のあるアルゴリズムが有効になっていること（本番の場合は放っておかないでくださいね）、固定IPが利用されていない旨の警告（後ほど変更します）が表示されますが、前提条件をクリアできるのでそのまま「インストール」をクリックします。

インストールに成功するとサインアウトを促すポップが表示されるので「閉じる」をクリックします。

![07.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/0c827ada-9cb8-6e21-fc70-25481f1c2ba8.png)

再起動が終わって起動するとWindows管理ツールがインストールされていることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/5dc6d1b3-65ed-7a98-9630-f8b27e39bd9e.png)

サーバーマネージャーを起動して、ダッシュボードからADDSとDNSが起動していることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/c106d7e3-53b3-18f2-17c8-cea506560d8c.png)

Windows管理ツールから「Active Directory ユーザーとコンピューター」を起動してみます。

![08.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/b0364e1c-57de-82f3-de89-5580267e91d4.png)

ツールを起動できることを確認して、ADがインストールできたことを確認します。
これでOpenAMの認証データストアとして利用するADの実装は完了です。

__※1 記事には記載しませんがEC2インスタンスに固定IPを振ることを忘れないようにしてくださいね。__

__※2 固定IPに変更する際はAWSから割り振られているプライベートIPアドレスを設定しますが、この時、サブネットマスクの情報やデフォルトゲートウェイの設定を誤るとRDPできなくなってしまうので要注意です。設定をミスした場合は新しいENIをアタッチすることで再接続可能になります。これはまた別の記事で紹介しますね。__

## AADCサーバの準備
ローカルのADアカウント情報をOffice365上のAzureADに同期させるため、AzureADConnect(AADC)と呼ばれるツールを利用します。

まずはツールをダウンロードします。
以下のサイトから入手可能です。

```:AADC入手先URL(2018/8/20時点)
https://www.microsoft.com/en-us/download/details.aspx?id=47594
```

まぁ公式サイトにはいろいろと記載されているのですが、検証用で利用する環境を作成する程度であるならば、2ステップで作成できます。

①ツールのダウンロード
②インストール

上記のように書くと簡単に使えてしまいそうな印象ですが、ほんとに簡単です(笑)

まずはツールをダウンロードしたら、最初に用意したAWS上のEC2インスタンスに配置します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/ac8667ac-7c5a-29f2-513d-1ce20e303753.png)

私の場合は圧縮した状態でインストーラを配置したので、解凍した後、インストーラをダブルクリックして実行します。

そうすると1分かからないレベルで↓の画面が表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/b5da6f72-8278-207e-5272-83ae885aa27f.png)

そのままの勢いでインストール！！…といきたいところですが、今回は簡単インストールなるものでもっと簡単に同期を行えるよう「簡単設定」を利用したいため、前項で作成したローカルADのドメインに参加します。
というわけでこの画面は閉じて、AADCサーバをADドメインに参加させます。


「コントロール パネル」-「システムとセキュリティ」-「システム」と開いて、「設定の変更」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/27983574-67ec-41ba-9e4a-cc017e4000f2.png)

次に「変更」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/80d49968-76de-a34d-e20c-220091fa0140.png)

「所属するグループ」に参加するドメイン名を入力して「OK」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/15a34206-a588-ddd1-1a74-a9b83cf21786.png)

うまく通信ができれば↓の画面が表示されるのでドメイン参加用のユーザーアカウント情報を入力してドメイン参加します。
※私の場合はAdministratorを利用しています。

![01.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/8e0a42fa-4c9b-a46a-1d08-7cdbabeebe07.png)

いつもの「ようこそ」画面が表示されるのでOKをクリックして、サーバを再起動します。
再起動が完了してサーバが起動してくれば、ドメインに参加した状態になっています。

![02.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/5bf2599a-9d8c-0152-f118-38a40e5308a9.png)

一応、私と同じようにEC2インスタンスでドメイン参加させる場合の留意しておくべき点について記載しますね。

__【留意事項】__
__　(1)Windowsファイアウォールが有効になっている__
__　(2)DNSはローカルADサーバを参照する__

まぁ、以前に以下の記事でもお伝えしたのですが、WindowsのAMIは既定でWindowsファイアウォールが有効なので、セキュリティグループと2重で制御がかかっている状況です。

＜【仕事メモ】OpenAM(Ver13) データストアの連携とローカル認証の確認（２）＞
https://qiita.com/Blue2012/items/e0884082878386937a2d

私の場合は検証用として利用している環境なのでセキュリティグループのみで十分です。
※そうでなくとも、セキュリティグループのみで十分と考えている節はあるのですが…

ちなみにインスタンスにセキュリティグループを設定する際はIPアドレスで設定しがちですが、↓のようにセキュリティグループIDを指定して設定することも可能です。

![05.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/93736ae0-abce-06c7-9ac3-246e09cfdfc9.png)

こうやって設定するとそのセキュリティグループを有するインスタンスやサービスからしか指定の通信を受け付けない設定とすることができます。
とっても便利！！ってご存知の方にとっては当たり前ですよね…

というわけでお伝えしたかったことはドメイン参加時も通信要件は重要になってきますのでご注意をということでした。

ドメインに参加した状態でAADCを起動すると↓のように「簡単設定を使う」がクリックできるようになります。

![06.png](https://qiita-image-store.s3.amazonaws.com/0/138274/430247e2-c5b7-3193-800e-988f537fdb4d.png)

クリックすると同期先であるOffice365グローバル管理者のアカウント情報を入力する欄が表示されるので入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/2c4d56a1-98ec-753d-94d9-102824f10a55.png)

同じように今度は同期元となるローカルADのエンタープライズ管理者権限のアカウント情報を入力する欄が表示されるので入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/3177649f-bfb7-c701-58f9-071b863a9b6e.png)

入力が完了して、入力内容などに問題がなければ、最終確認のページが表示されるので「インストール」をクリックします。
※「構成が完了したら、同期プロセスを開始してください。」は既定でチェックが入っていますのでチェックを入れたままインストールをクリックしてください。

![07.png](https://qiita-image-store.s3.amazonaws.com/0/138274/c041e3a0-fc0e-088a-44a9-3902986a00e1.png)


少し警告っぽいメッセージが表示されていますが私の利用している環境独自の内容であり、私が問題とならないことを認識しておりますので無視します。

![03.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/082f04ae-671a-044e-9e22-de966efacb54.png)

ウィザードを終了した後に「Synchronization Service Manager」なるツールもインストールされているので立ち上げてみるとAzureADとの同期状態を確認することができます。
「Status」の値がすべて「Success」となっていればAzureADへの同期が完了していることを表しています。

![04.PNG](https://qiita-image-store.s3.amazonaws.com/0/138274/13a8cf0f-b8eb-9c55-4e9d-305ee719847a.png)

そして、Office365管理センターにログインしてダッシュボードを確認してみるとタイルが１つ増えていることを確認することができます。
同期に成功すると「AAD Connectの状態」という項目でAADCとの接続ステータスを確認することが可能となります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/138274/ecf0d4dd-d2a3-fa46-fb16-08344729e572.png)

ローカルADにユーザーを作成している場合はユーザーの一覧情報にローカルADユーザー情報が含まれて表示されていることを確認することができます、今回はユーザーを作成していませんので、ここまで確認できればAADCの実装は完了です。

## 次回予告
OpenAMのデータストアとしてADを連携する部分を掲載する予定です。
…力が余ってたら、もう少し書くかもしれないです。