SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

AD FS/AD FS Proxy を Azure の仮想マシン上に構築してみる

leave a comment

Azure のサブスクリプションを起点として Windows Azure Active Directory のディレクトリ同期を設定 の続きになります。

Azure の仮想マシン (Azure VM) で AD FS / AD FS Proxy を構築してみたいと思います。
冒頭のリンクはオンプレミス上の環境に構築していたのですが、今回の投稿を書くために、仮想マシンのギャラリーから作成したものに再構築しています。

今回は以下の環境を作成しています。

image

nawagami-ad / nawagami-sync が VM 上に移行した AD とディレクトリ同期になります。
# ギャラリーの Windows Server 2012 R2 Preview のイメージを使用しています。

この状態から、AD FS/AD FS Proxy を構築していきたいと思います。

 

■AD FS を構築


AD FS を使用するためには証明書が必要となりますので、AD のサーバーに AD CS (Active Directory Certificate Services) をインストールします。

image

役割については認証局の機能のみを追加しています。
image

役割の追加が終わったら AD CS の構成を行います。
# 今回はすべてデフォルトの設定で構成しています。
image

構成が終わったら、AD FS で使用するための証明書を設定します。
最初に証明書のテンプレートを設定するため、mmc を起動して [Certificate Templates] のスナップインを追加します。
image

ベースとする証明書は [Web Server] のものが利用できますのでこの証明書を右クリックして [Duplicate Template] からテンプレートの複製を行います。
image

今回は、AD FS の証明書と AD FS Proxy の証明書は同じものを利用するため、[Request Handling] から [Allow private key to be exported] を有効にして、エクスポート可能な証明書としておきます。
また、AD FS から証明書の発行要求を出せるようにするため、[Authenticated Users] に [Enroll] (登録) を許可しています。
imageimage

テンプレート名は [General] から変更できますので適当なものを設定しておきます。

image

これでテンプレートができましたので、AD CS に登録をするため [Certification Authority] (認証局 / 認証機関) を実行します。
CA にテンプレートを登録するため、[Certificate Templates] を右クリックして、[New] → [Certificate Template to Issue] をクリックして、先ほどと登録したテンプレートを追加します。
imageimage

次にこの証明書を AD FS に登録するために、ドメインユーザーを使用して AD FS にログインします。
# 今回はドメインの管理者ユーザーを使用しています。
mmc を起動して、[Certificates] (証明書) のスナップインをコンピューターアカウントで追加します。
imageimage

スナップインを追加したら [Personal] → [Certificates] から、[All Tasks] → [Request New Certificate] をクリックします。
image

あとは AD CS に証明書の発行要求を出します。
image

先ほど AD CS に登録した証明書のテンプレートを選択できますので、[More ~] をクリックします。
証明書の [Common name] はフェデレーションドメインのユーザーのサインインに使用する認証時の URL として利用されますので、認証時に使用する URL を指定します。
今回は [sts.nawagami.com] を設定し、フェデレーションユーザーを使用する際にはこの URL にアクセスを行うように設定し、この証明書を登録します。
# Secure Token Services の頭文字で sts を使うことが多いかと。

imageimage

これで証明書の設定は終わりましたので、AD FS のインストールを行います。
AD FS は [Active Directory Federation Services] の役割を追加します。
image

役割を追加したら AD FS の構成を行います。
ウィザードに従ってデフォルトの設定で構成することができますが証明書の選択については先ほど追加した証明書を選択します。また、今回は検証環境なのでドメインの管理者を指定しています。
imageimage

これで AD FS の追加が終わりましたので、WAAD のフェデレーションドメイン用の設定を行います。

WAAD のフェデレーションドメインの設定をするためには、Microsoft Online Services Sign-In Assistant for IT Professionals BETA をインストールしてから、AD FS によるシングル サインオンに必要な Windows PowerShell をインストールする から Microsoft Online Services モジュールをダウンロードしてインストールをします。
# .NET Framework 3.5 も必要となります。

インストールが完了したら [Windows Azure Active Directory Module for Windows PowerShell] を起動し、以下のコマンドを実行して、WAAD のサブスクリプションのサービスに接続をします。
# 資格情報として、WAAD の全体管理者の [~onmicrosfot.com] のアカウントを指定します。

$cred=Get-Credential
Connect-MsolService -Credential $cred

ディレクトリ同期を設定した際は、フェデレーションドメインではなく通常の管理ドメインとして設定をしています。

[Get-MsolDomain] を実行するとドメインの状態を確認することができます。

image

AD FS で認証させるために、このドメインをフェデレーションドメインに変換します。

Convert-MsolDomainToFederated -DomainName <ドメイン名>

image

これで WAAD のドメインはフェデレーションドメインに変換されました。

通常、AD FS へのアクセスは社内ネットワークから行います。

そのため、AD の DNS で [sts.nawagami.com] を解決できるように設定をします。

# A レコードとして、AD FS の内部 IP アドレスを設定します。

image

これで、組織アカウントを使用してカスタムドメインのユーザーでサインインする場合には 、AD FS (今回は sts.nawagami.com) にリダイレクトが行われ、フェデレーションドメインのユーザーで Azure にアクセスができるようになります。

image

フェデレーションドメインのユーザーを共同管理者に設定しておけばポータルも利用できます。

image

 

■AD FS Proxy を構築


社内からアクセスる場合にはドメインに参加させている AD FS を使用してアクセスをしますが、インターネット (社外) からアクセスする場合には、AD FS ではなく AD FS Proxy を使用してアクセスするのがセキュリティを考慮した一般的な方法となります。

続いて AD FS Proxy を構築してみたいと思います。

AD FS Proxy はドメインに参加していないサーバーで構築を行います。

今回は Windows Server 2012 R2 Preview を使用しているのですが、このバージョンでは AD FS Proxy という役割はなくなっており、[Remote Access] の [Web Application Proxy] (WAP) の役割となっています。

imageimage

AD FS Proxy には証明書が必要となりますので、AD FS から証明書をエクスポートして利用します。

AD FS の mmc でコンピューターアカウントの証明書を秘密鍵を含めてエクスポートします。

image

また、今回は AD CS の証明書を使用していますので、AD FS から AD CS のルート証明書もエクスポートしておきます。

# pfx に含まれていたかと思いますが。

image

エクスポートした証明書を AD FS Proxy のコンピューターアカウントの証明書としてインポートをします。

imageimage

証明書のインポートが終わったら AD FS Proxy の構成を行います。

最初に AD FS Proxy の hosts ファイルの追加を行います。

AD FS の内部の IP アドレスをフェデレーションの URL で使用している FQDN を設定します。

image

次に AD FS Proxy の構成ウィザードを実行します。

フェデレーションサービス名には先ほど、hosts に設定した FQDN を指定し、アカウントについては管理者アカウントを指定しています。

証明書については、先ほどインポートした証明書を選択します。

imageimage

以上で、AD FS Proxy の設定は完了です。

image

これで、AD FS Proxy の設定は完了しましたので、インターネット経由で AD FS Proxy にアクセスできる設定をします。

まずは、AD FS Proxy のエンドポイントとして [443] を追加します

image

次に [cloudapp.net] の DNS 名を外部 DNS の CNAME として設定します。

image

image

以上で設定は完了です。

今回は AD CS の証明書を設定していますので、インターネット経由でアクセスする端末のルート証明書に AD CS の証明書を追加していないと証明書の警告が出ますが、AD FS Proxy を介してアクセスができるようになります。

image

Azure を使用することで、インターネット経由で AD FS / AD FS Proxy を使用した環境を構築することが可能となります。

WAAD にサインインできるということは Office 365 / Intune の SSO 検証環境としても利用できますので、この辺の流れを確認したい場合には、Azure 上に構築をすると便利かと。

無線 LAN 経由で、Android  / iOS でアクセスをする際の検証環境としても利用できますので。

検証が終わったら、Convert-MsolDomaintoStandard や Set-MsolDomainAuthentication を使って、フェデレーションドメインから管理ドメインに戻しておくとよいかと。

また、AD FS / ディレクトリ同期ツール をインストールしている VM の DNS の設定には注意をしておく必要があります。AD のメンバサーバーは DNS で AD のレコードが解決できることが必須となります。

以前、AlwaysOn を VM に構築した際に、DNS の設定がクリアされてしまうということがありました。

そのため、AD FS / ディレクトリ同期ツールに関しては VM 作成時に DNS を設定して、VM の設定ベースで固定化することを検討したほうがよいかと思います。

AzureVM の DNS の設定についての注意点

Share

Written by Masayuki.Ozawa

10月 13th, 2013 at 10:03 pm

Leave a Reply