Windows Server 2016 AD FS + Office365のフェデレーションIDの構成①

皆さんこんにちは、Miyaです。


Office365 フェデレーションIDについて考える
では、AD FSを仲介してOffice365と信頼関係を結んだフェデレーションIDについて解説しました。

Office365+AD FSのフェデレーションIDは、それぞれの役割を担うサーバーを構築する必要もあり、複雑な構成になります。Microsoftの公開ドキュメントにも手順等は記載していますが、どうてしも表現が難しかったりで関連知識が整っていない方々向けには情報としては不十分です。

ある程度のリソースとカスタムドメインが用意されている環境であれば、自宅でも簡単に検証環境ぐらいは構成できます。検証環境を通して実機に触れることで技術力の定着に繋げるのが私のモットーです。

本記事では、筆者の自宅環境でAD FS+Office365の検証環境を構築した手順を記載しています。ご参考下さい。

スポンサーリンク:

全体の構成について

まずは、本記事で構築するシステムの全体像を描いてみました。

ADFS

壮大な環境のように見えますが、障壁なく手順通りに進めれば、数時間~半日ほどで環境は作れます。

用意するモノ

  • カスタムドメイン
  • Office365テナント(検証テナント可)
  • Active Directory 兼 CA
  • AADConnect
  • AD FS
  • WAP
  • クライアント端末

検証用ですので、私の環境ではそれぞれのマシンに1コア、1GBのWinSRV2016で立てました。
VHDを置いてる先がSSDということもあって、案外ヌルヌル動作しました。

Office365テナント

Office365では評価版として、E3ライセンスを無償で1か月体験することが出来ます。
Title:Office365を始めよう! ~Office365の試用版申し込み方法~

体験版の申し込みをすれば、即利用できるのと、申し込み回数に制限がない点が素晴らしいですね。

Office365テナントを用意したら、次に自身が持っているカスタムドメインをOffice365に追加しましょう。
Title:Office365に独自ドメインを追加する方法

Office365側の用意は以上となります。

Active Directoryの準備

次にオンプレミスにActive Directoryを構築しましょう。
Active Directoryの構築手順の詳細は割愛しますが、検索していただければいくらでも手順の記事は出てきますので、ご参考下さい。

Active Directoryを構築したら、代替えサフィックスを追加しましょう。

今回の構成では、Active Directoryで作成したアカウントを、AADConnectによってディレクトリ同期するため、UPNがカスタムドメインである必要があります。

代替えサフィックス

代替えサフィックスを追加したら、テストアカウントを作成します。

ADFS

アカウントのログオン名に先ほど作成した代替えサフィックスが選択できると思うので、カスタムドメインを付けてアカウントを新規作成しましょう。

次に、内部DNSにカスタムドメインのゾーンを作成し、新しくレコードを作成する必要があります。

DNS管理コンソールを開いて、<サーバ名>を右クリック→[新しいゾーン]をクリックします。
新しいゾーンウィザードが立ち上がるので、次へ次へで作成してください。

ADFS構築

カスタムドメインのゾーンが作成出来たら、今回外部公開するフェデレーションサービスの公開名に対するレコードを追加します。

ADFS

よく目にするのは、SecureTokenServiceの頭文字を採って、sts.***.***が多いですね。
内部向けのサービス名に対するレコードですので、AD FSのプライベートIPで登録しましょう。

フェデレーションID

上の図でいうと、④の名前解決のためのレコードが本作業に当たります。
この時点で、Office365に必要なレコードを内部DNSにも追加しておきましょう。(Autodiscover、sipdiscoverとか…)

さて、外部からのOffice365のアクセス時にも、AD FSにリダイレクトする必要があります。

フェデレーションID

上の図で、同様に外部DNSに対してsts.***.***の名前解決を行うため、外部DNSにもレコードを追加しましょう。

外部DNSについては、契約されているカスタムドメインのDNSサーバーに、AレコードもしくはCNAMEを追加しましょう。
私の場合、「お名前.com」さんでドメインを購入したので、お名前.comのDNSでフェデレーションサービス名のレコード追加します。

補足情報ですが、私の環境ではグローバルIPを固定していないため、DDNSで対応しています。
そのため、CNAMEでsts.***.***のレコードを追加しました。

ADFS

以上で、Active Directory環境の下準備は完了です。

Windows 証明機関

AD FSとクライアント間のSSL証明書が必要です。

本番環境では、サードパーティのSSL証明書を購入する必要があるのですが、今回は検証環境ですので安価に済ませるため、Windows Serverの役割の一つである、Windows Server 証明書サービスを使用します。

役割の追加ウィザードで[Active Directory 証明書サービス]にチェックを付けます。

ADFS構築

証明書要求のために、[証明機関Web登録]の機能も追加しましょう。

ADFS構築

インストールが完了したら、サービスを構成していきます。

ADFS構築

ADFS構築
ADFS構築

ADFS構築

ADFS構築

ADFS構築

ADFS構築

ADFS構築

ADFS構築

ADFS構築

ADFS構築

CAの構成が完了したら、IISの管理コンソールから証明書の要求を作成していきます。
[<サーバ名>]→[サーバー証明書]をダブルクリックします。

ADFS構築

[証明書の要求の作成…]をクリックします。
ADFS構築

要求する証明書のフィールド情報を入力していきます。
一般名には公開するフェデレーションサービス名に合致する値を入力しましょう。その他は適当でOKです。

ADFS構築

ADFS構築

ADFS構築

出力先にテキストファイルで証明書要求(CSR)が生成されます。試しにファイルをクリックすると、Base64形式で記述されています。後に使用するので、そっ閉じましょう。

それでは、生成したCSRをもとにフェデレーションサービスのSSL証明書を発行しましょう。
IEから[https://<サーバのFQDN>/certsvr]へアクセスしましょう。証明書エラーが発生する場合、CAサーバーの443に証明書をバインドしておきましょう。

ADFS構築

[証明書を要求する]をクリックします。

ADFS構築

[詳細設定]をクリックします。

ADFS構築

ADFS構築

先ほど生成したBase64形式のCSRを全文コピーして貼り付けます。

ADFS構築

発行された証明書をダウンロードし、任意の場所に保存します。

ADFS構築

IISの管理コンソールに戻り、[証明書の要求の完了…]をクリックします。
ADFS構築

ダウンロードした証明書を指定して、[OK]をクリックします。

ADFS構築

これで証明書が生成されたので、エクスポートしてAD FSとWAPにインポートしてあげましょう。

ADFS構築

証明書をインポートする際に入力するパスワードを入力します。

ADFS構築

エクスポートすると、証明書がpfx形式で出力されるので、AD FSとWAPに証明書をコピーしておいてください。

まずは、AD FSで証明書をインポートします。

ADFS構築

ADFS構築

ADFS構築

ADFS構築

証明書がインポートされたことを確かめておきましょう。ドメイン参加端末なので、GPOによってルート証明書が自動的に配布されるので、信頼済み証明書として表記されるはずです。

信頼されていない証明書として表記されている場合、GPOが適応出来ていない恐れがあるので、gpupdate /forceコマンドで最新のGPOを読み込みましょう。

WAPでも同様にインポートしますが、WAPはWORKGROUPのため、証明書をインストールするだけでは以下のように「情報不足のため…」と表記されます。
ADFS構築
そのため、別のドメイン参加済みの端末からルート証明書をエクスポート、もしくはCAサーバーからルート証明書をダウンロードして、WAPの「信頼されたルート証明機関」にインポートする必要があります。

環境構築の下準備は概ね完了しました。記事のボリュームが多くなってしまうため、一旦はここで終了とします。次回はAADConnect、AD FS、WAPの構築に進みたいと思います。

スポンサーリンク