Uncategorized

Azure VM に Active Directory (および ADFS) をセットアップする

ここでは、Microsoft Azure に Active Directory (AD)、および AD FS をセットアップする手順をメモします。(ハンズオン用に手順を記載します。)
Web Application Proxy を使うことで、インターネット上から AD FS を利用することもできます。

今回は、下図の構成と仮定します。
AD と ADFS は仮想マシン tsmatsuz-ad, Web Application Proxy は仮想マシン tsmatsuz-proxy にセットアップし、それぞれを仮想ネットワークで接続します。

なお、実運用上はあまり望ましくありませんが (障害発生時の切り分けや、スケーリングなどの観点から)、今回はテスト目的で、Active Directory (AD DS) と同一のマシン (tsmatsuz-ad) に Active Directory Federation Services (AD FS) をセットアップします。

 

Active Directory のセットアップ

Azure Portal などを使って、まず、仮想ネットワーク (Virtual Network) を新規作成します。

Virtual Network が作成できたら、つぎに、Active Directory をインストールする Virtual Machine (Windows) を新規作成します。(今回は、Windows Server 2012 R2 を使用します。)

Virtual Machine の作成の際、Network として上記で作成した Virtual Network を選択します。

Virtual Machine の作成が完了したら、以下のコマンドで 静的 IP (Static IP) を設定します。下記では、tsmatsuz-ad という Virtual Machine に 10.0.0.5 の Static IP を設定しています。

このコマンドを実行すると、仮想マシンが再起動されます。

Add-AzureAccount(Prompted. Please login . . .)$vm = Get-AzureVM -ServiceName tsmatsuz-ad -Name tsmatsuz-adSet-AzureStaticVNETIP -VM $vm -IPAddress 10.0.0.5 | Update-AzureVM

なお、割り当てる IP が使えるか調べたい場合は、以下のコマンドで事前に確認できます。(既に使用されている IP アドレスは使用できません。)

Test-AzureStaticVNetIP -VNetName adnet -IPAddress 10.0.0.5

なお、上記は Azure の Classic モードの場合の設定方法です。Resource Manager モード (IaaS v2) の場合、Azure Portal の画面を使って Static IP を割り当て可能であり、Virtual Machine の [Network Interface] に対して [IP Addresses] を [Static] に変更して、アドレスを入力します。(Windows PowerShell は必要ありません。)
以降も同様に (並行して)、Resource Manager モードの場合について補足していきます。

補足 : Azure の Virtual Machine に Static IP を割り当てても、OS 上で Static な IP Address が割り当てられるのではなく、起動時に Azure の DHCP によって固定の IP Address が割り当てられます。
このため、後述の Active Directory Domain Services のインストールの際などに警告が表示されますが、無視して進めてください。

つぎに、この Virtual Machine に、SYSVOL など AD の情報を格納するためのディスクを新規に Attach します。(今回、20 GB で、Host Caching は None にしておきます。)

Remote Desktop を使ってこの Virtual Machine にログインすると、上記で追加した Disk が見えるので、Drive Letter の割り当てや NTFS フォーマットなどをおこなっておきましょう。(Server Manager で [File and Storage Services] を選択して設定できます。)

AD インストールの準備として、コントロール パネルで System Properties を開き、DNS Suffix を設定します。(今回は「tsmatsuz.com」と仮定します。)
マシンの再起動を要求されるので、再起動してください。

Server Manager の [Add Roles and Features] (役割と機能の追加) で、[Active Directory Domain Services] (AD DS) をインストールします。
インストール自体はすぐに完了します。

つぎに、Domain の構成 (dcpromo) を開始します。

この構成では、新しいフォレストを作成し ([Add a new forest] を選択)、DNS Server の設定 (インストール) もおこなってください。
また、Database folder、SYSVOL folder は、上記で Attach した Disk (Drive) を選択します。

補足 : Azure は既定で DNS を持っていますが、AD 用に DNS Server をインストールし、この後、仮想ネットワークで、この DNS Server を使うように構成します。
なお、DNS の hint root の設定がされているため、この設定でもちゃんと Virtual Machine 内から Internet に接続できます。

構成が完了したら、マシンの再起動をおこないます。

補足 : マシンの再起動以降は、Windows のログイン ID は {your domain}{user id} に変更されます。

さいごに、Virtual Network に上記でインストールされた DNS Server を登録します。
Azure Portal で作成した Virtual Network を選択し、DNS Server として上記で作成した Virtual Machine の IP アドレス (10.0.0.5) を設定します。

補足 : 完了したら、仮想マシンの snapshot を作成しておくと良いでしょう。(以降、失敗した場合などに、いつでも戻せます。)
Save-AzureVMImage -ServiceName tsmatsuz-ad -Name tsmatsuz-ad -NewImageName tsmatsuzadbk01 -NewImageLabel tsmatsuzadbk01 -OSState Specialized

 

Active Directory Federation Services (AD FS) のセットアップ

つぎに、Active Directory Federation Services (AD FS) のインストールと構成をおこないます。
上述の通り、今回は、テスト目的で、上記の Active Directory (AD DS) と同一のマシン (tsmatsuz-ad) にセットアップします。

まず、準備として、Server Manager の [Add Roles and Features] (役割と機能の追加) で [Web Server (IIS)] をインストールしておきます。

つぎに、証明機関から、sts.tsmatsuz.com (このあと、このマシン名で構成します) の SSL サーバー証明書を取得し、IIS に設定しておきます。(この構成方法の詳細は省略します。MMC を使って Local Computer の証明書管理と import が可能です。) 最近は、RapidSSL など安価に入手できるものもあるので、テスト用に作成しても良いでしょう。

補足 : イントラネットからのアクセスに限定される場合や、テスト目的の場合 (証明書の種類には特に拘らない場合) などには、Windows Server の証明機関が発行する証明書を使っても構いません。(ただし、ブラウザーに Trust Root などの設定をしていない場合、インターネット上からアクセスした場合は警告が表示されます。)
Windows Server の証明機関のインストールは、[Add Roles and Features] (役割と機能の追加) で [Active Directory Certificate Services] (証明書サービス) を選択します。(インストールするサブ コンポーネントは [Certificate Authority] (証明機関, CA) のみで充分です。)

CA のインストールが完了したら、Web Server 用の証明書 (Certification) の新規作成をおこないます。IIS Manager を開いて、左のツリーからサーバー名 (今回の場合、TSMATSUZ-AD) を選択し、[Server Certificates] (サーバー証明書) を選択し、表示される画面の右ペインから [Create Domain Certificate] を選択します。
この際、表示されるウィザードの [Common Name] に sts.tsmatsuz.com と入力し、Certificate Authority (CA) として、上記でインストールした CA を選択してください。

つぎに、ADFS のサービスとして使用するユーザー (Account) をドメインに新規作成します。(このユーザーを tsmatsuzadfssvc と仮定します。今回、このユーザーには Domain Admin 権限を付与しておきます。)

そして、下記コマンドを実行して ServicePrincipalName (SPN) を登録します。

setspn -a host/adfssrv tsmatsuzadfssvc

Server Manager の [Add Roles and Features] (役割と機能の追加) で [Active Directory Federation Services] をインストールします。

インストールが完了したら、Active Directory Federation Services (AD FS) の構成を開始します。

この際、SSL Certificates (SSL 証明書) として上記で取得したサーバー証明書を選択し、ADFS の Service Account として上記のアカウント (tsmatsuzadfssvc) を設定します。(本来なら、AD FS で使用するデータベースも、あらかじめ上記で追加した Drive 上に作成すると良いですが、今回は省略します。)

さいごに、DNS Manager を開き (Server Manager から [DNS] を選択します)、ネットワーク内部から sts.tsmatsuz.com でアクセスできるようにホスト「sts」を登録しておきましょう。

ここまでの設定が完了すると、ネットワーク内部から https://sts.tsmatsuz.com/adfs/ls で下図の通り表示されるはずです。

うまく設定できていない場合には、Server Manager を起動して、AD FS の Event (Error など) を確認してください。

 

Web Application Proxy のセットアップ

ここまでで、ネットワーク内部からの ADFS の利用が可能です。
例えば、Office 365 と Federation を構成して、ネットワーク内部のマシンからつないだ場合、ADFS にリダイレクトされて Federation が可能です。

以降では、Web Applicatoin Proxy をセットアップすることで、インターネット上から AD FS を使用できるように構成します。
ここで述べる Web Application Proxy を使用すると、例えば、家の PC など、ドメインに入っていないインターネット上の環境から企業内の Active Directory で認証をおこなってトークンを取得できます。(企業内の AD と Federation された Office 365 などが使えます。)

まず、Web Application Proxy として使用する Virtual Machine (今回、tsmatsuz-proxy とします) を Azure で新規作成します。(Windows Server 2012 R2 以上を使用してください。)
今回もネットワークとして、上記で作成した仮想ネットワークを選択します。(本来なら、サブネットを複数構成するなど、安全性や運用性を考慮して構成を検討しますが、ここでは省略します。)
なお、この新しいマシンはドメインには参加させません

この Virtual Machine (tsmatsuz-proxy) にログインし、ping コマンドなどで sts.tsmatsuz.com (上記) に接続できることを確認してください。
ネットワーク構成によっては、sts.tsmatsuz.com で名前解決ができるように hosts の設定などをおこないます。(今回は接続可能なため不要です。)

C:>ping sts.tsmatsuz.comPinging sts.tsmatsuz.com [10.0.0.5] with 32 bytes of data:Reply from 10.0.0.5: bytes=32 time<1ms TTL=128Reply from 10.0.0.5: bytes=32 time<1ms TTL=128Reply from 10.0.0.5: bytes=32 time=1ms TTL=128Reply from 10.0.0.5: bytes=32 time<1ms TTL=128Ping statistics for 10.0.0.5:    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:    Minimum = 0ms, Maximum = 1ms, Average = 0ms

つぎに、下記の 2 種類の証明書を準備 (Export) して、Web Application Proxy の Server (tsmatsuz-proxy) に証明書を設定 (Import) します。

  • 上述の AD / AD FS Server (tsmatsuz-ad) から、public key のみの Certificate Authority (CA) 証明書 (CA 宛てに発行された証明書) を Export します。(このファイルを CA.cer と仮定します。)
    IIS Management Console などから Export できます。
  • 上述の AD FS Server (tsmatsuz-ad) から、private key を含む Server 証明書 (上述の sts.tsmatsuz.com 宛に発行された証明書) を export します。(このファイルを server.pfx と仮定します。)
    同様に、IIS Management Console などから export できます。
  • Web Application Proxy Server (tsmatsuz-proxy) 上で mmc を起動し、[Add/Remove snap-in…] で [Certificates] を選択、[Computer Account] (Local Machine) を選択して、Local Machine の証明書管理コンソールを表示します。
  • 上記で export した private key を含む Server 証明書 (server.pfx) を Personal に Import します
  • 上記で export した public key のみの CA 証明書 (CA.cer) を Trusted Root Certification Authority に Import します

Server Manager の [Add Roles and Features] (役割と機能の追加) で [Remote Access] をインストールします。

表示されるウィザードで、[Web Applicatoin Proxy] を選択します。

つぎに、インストールされた Web Application Proxy の構成を開始します。
なお、ここで、AD FS Server のホスト名と、上記で設定した証明書と、AD FS Server 上の管理者アカウント (一時的に使用するため、Domain Admins 権限のユーザーであれば何でも可) の情報が必要です。
AD FS Server のホスト名には、上記で設定した sts の Alias (今回の場合、sts.tsmatsuz.com) を指定します。(tsmatsuz-ad.tsmatsuz.com ではありません。)

Azure Portal で、この Virtual Machine (tsmatsuz-proxy) の Endpoints を表示し、443 の Port を開けておきます。(private port も 443 です。)

補足 : Resource Manager モード (v2) の場合、[Virtual Machine] – [Network Interface] – [Network Security Group (NSG)] – [Inbound Security Rules] で https の Rule を追加してください。 を * (asterisk), [destination port range] を 443 に設定します。

さいごに、お使いのドメイン レジストラー (eNom など) で、CNAME (Alias) として sts をこの tsmatsuz-proxy の Cloud Service の URL (tsmatsuz-proxy.cloudapp.net など) に割り当てておきます。(https://sts.tsmatsuz.comhttps://tsmatsuz-proxy.cloudapp.net となるように設定します。)
これにより、インターネット上から https://sts.tsmatsuz.com で、この Web Application Proxy が使用できます。

補足 : Resource Manager モード (v2) の場合、あらかじめ、[Public IP Addresses] – [Configuration] で [DNS name label] を設定します。例えば、[DNS name label] が「tsmatsuz-proxy」で、Japan East の VM の場合、FQDN は「tsmatsuz-proxy.japaneast.cloudapp.azure.com」です。

設定が完了すると、インターネット上のブラウザーから https://sts.tsmatsuz.com/adfs/ls で下図の通り表示されるはずです。

補足 : 上記補足で解説した Windows Server の CA (証明機関) が発行する証明書 (イントラネット用の証明書) を使用している場合、インターネットから接続した際に証明書の警告が表示されるはずです。この場合には、クライアント側 (ブラウザー側) の証明書の設定 (この CA の証明書を Trusted Root Certification Authority に登録する、など) をおこなってください。

エラーが発生している場合は、Server Manager で Error を確認するか、OS (Web Application Proxy の Server) にインストールされている Remote Access Management Console を表示してエラーや起動状態を確認してみてください。

もし、証明書の期限切れなどで上述の Configuration が再度必要になった場合には、Windows PowerShell の Install-WebApplicationProxy コマンドを実行します。 (AD FS Server 名、証明書情報、管理者アカウント情報など、上記と同様の値を設定します。) 上述の Web Application Proxy の構成 (Configuration) においても、内部で、この Cmdlet が実行されています。

Categories: Uncategorized

Tagged as: , ,

Leave a Reply