概要
Azureの無料クレジット(30日・200ドル)を利用して、
簡単なWebアプリケーションを構築しました。
機能としては、社員番号を入力して検索ボタンを押すと対応する名前を表示するだけのシンプルなものです。
実装を通じて、社内システムの構成や動作の流れを実際に手を動かしながら確認することが目的です。
システム構成について
上図は、今回構築したシステムの構成図です。
すべての仮想マシンは「East US 2」リージョンに配置し、OSには「Windows Server 2022」を使用しました。
VMのサイズは Standard DC1s v3
(vCPU 1 / RAM 8 GiB)で統一しています。
各構成要素
-
AD-VM1
ドメインコントローラー(AD DS)と証明機関(AD CS)を担当。
発行した証明書はWEBサーバーやADFSサーバーに適用しています。
また、タスクスケジューラを用いて定時にActive Directoryから社員情報を抽出し、
DBサーバー(SQL Server)へ送信する自動処理もこのVM上で実行しています。 -
AD-VM2
セカンダリのドメインコントローラーとして動作し、ADFS(Active Directory Federation Services)によるSSO認証を処理します。 -
WEB-VM1
IIS上でWebアプリケーションを提供します。アプリ本体はAzure Files上のHTML / JavaScript / PHPファイルを参照しています。 -
DB-VM1
SQL Serverをインストールし、社員情報(社員番号・名前)を格納。Webアプリケーションからの検索要求に応答します。 -
Azure Files
Webアプリケーションの静的ファイル(HTML / JS / PHP)を格納。WEBサーバーからマウントして参照されます。
アプリ動作の流れについて
ここでは、社内ユーザーがWebアプリにアクセスしてから検索結果を得るまでの一連の処理を、2つのフェーズに分けて説明します。
- フェーズ1:SSO認証が完了し、アプリ画面が表示されるまで
- フェーズ2:検索処理が実行され、結果が表示されるまで
フェーズ1:SSO認証によるログイン処理
1️⃣ ユーザーがWebアプリにアクセス
ブラウザでWebアプリのURLにアクセスします。
2️⃣ WebサーバーがADFSへのリダイレクトを指示
Webサーバー(IIS)がSSO構成になっており、ADFSのログインページへリダイレクトを返します。
3️⃣ ユーザーがADFSに認証情報を入力
ADFSのログイン画面にユーザー名とパスワードを入力します。
4️⃣ ADFSが認証し、SAMLアサーションを発行
入力された情報をADと照合し、認証が成功するとSAMLトークン(アサーション)を発行します。
5️⃣ ユーザーがSAMLトークンを持ってWebサーバーへ戻る
トークンを持って再度Webアプリへアクセスします。
6️⃣ Webサーバーがトークンを検証し、アプリ画面を表示
SAMLトークンを受け取り、署名などを検証した後にWebアプリの画面を表示します。
フェーズ2:検索処理の実行と結果表示
7️⃣ ユーザーが社員番号を入力し検索を実行
アプリ画面の入力フォームに社員番号を入力し、検索ボタンを押します。
8️⃣ WebサーバーがSQL Serverに対してクエリを実行
バックエンドはPHPで構成しており、指定された社員番号に一致する名前をSQL Serverに問い合わせます。
9️⃣ SQL Serverが該当データを返す
該当するレコードをWebサーバーに返します。
🔟 Webサーバーが結果をユーザーに表示
取得した名前をHTMLとして組み立て、ユーザーのブラウザに表示します。
次回は、この構成をどのように構築していったのか、各コンポーネントの具体的なセットアップ手順についてまとめていきます。