Windows Server 2012 R2を使ってiOSだけがOffice365にアクセスできるようにする(1)

先日、Windows Server 2012 R2がMSDNとTechNetでダウンロードできるようになりましたね。

私はActive DirectoryとADFSに関連したテクノロジーに注目していて、特にWindows Server 2012 R2の新機能のひとつに、Workplace Joinという機能に可能性を感じています。Workplace JoinはActive Directoryにデバイスを登録することで、Active Directoryドメインに参加しているデバイスに準じたリソースアクセスを可能にするものです。

Workplace Joinは本稿執筆時点では、Windows 8.1とiOS(iPhone/iPad)を対象にデバイス登録ができるそうです。
では、Workplace Joinを使うと、どのようなメリットがあるか?
次のようにまとめてみました。

ドメインに参加しているコンピューターの場合、サインイン時にコンピューター認証とユーザー認証を行いますが、Workplace Joinによってデバイス登録されたデバイスも(ドメイン参加しているコンピューターの認証とは同じではないものの)デバイス認証を行えるようになります。

その結果、iPhone/iPadのようなドメイン参加できないデバイスでも、特定のデバイスに対してのみアクセスを許可するようなアクセス制御が可能になります。

アーキテクチャーについてはMVPふじえさんがまとめてくださってますが、ADFSサーバーが提供するDevice Registration Service(DRS)を使ってActive Directoryにデバイス登録を行うことで、Workplace Joinを実現します。

では、今回はDRSを使ってiPhoneをデバイス登録し、登録されたデバイスだけがOffice365へアクセスできるように構成してみたいと思います。

早速はじめましょう。

用意するもの

■Windows Server 2012 R2のサーバーを3台
内訳は、ドメインコントローラー、ADFSサーバー、ディレクトリ同期サーバーです。

■Office365テナント

■インターネットに公開されているDNSサーバー
Office365で使用するドメイン名を登録するために使用します。
本番環境だったら、会社で用意されているDNSサーバーをりようしたり、契約している事業者のDNSサーバー設定を変更することになると思います。

前提条件

Windows Server 2012 R2をインストールし、それぞれのサーバーに次のコンポーネントをコピーまたはインストールしておきます。

■1号機(ドメインコントローラー)
・Windows Server 2012 R2
・Active Directoryドメインサービス
(ここでは、ドメイン名をexample.comとします。)
・Active Directory証明書サービス
(必ずエンタープライズCAでインストールしてください。また、役割サービスとして[証明機関Web登録]を一緒に追加しておいてください。)

image

■2号機(ADFSサーバー)
・Windows Server 2012 R2
・example.comドメインに参加

■3号機(ディレクトリ同期サーバー)
・Windows Server 2012 R2
・example.comドメインに参加
(本当はディレクトリ同期サーバーとADFSサーバーは同居できるので、
3台目のサーバーを用意する必要はないのですが、今回は別々にしています)

Step1 Office365のシングルサインオン設定の準備

ここで書こうと思ったのですが、MVP渡辺さんが書いてくださっている「Windows Server 2012によるADFS構築」が手順として参考になりますので、これを見ながら手順を確認しましょう。

投稿にある手順のうち、

・準備①ディレクトリ同期のアクティブ化
・準備④代替UPNサフィックスの設定
・準備⑥必要なコンポーネントのダウンロード

を私の環境では事前に行いました。
準備⑥については完了後、インストールしてしまいましょう。
ディレクトリ同期ツール → Windows Powershell用Windows Azure Active Directoryモジュール
の順番でインストールすれば、サインインアシスタントのインストールは不要です。
ただし、この時点ではまだディレクトリ同期ツールのインストール後に表示される、[構成ウィザードを今すぐ開始する]は選択しないでください。

Step2 SSL通信用証明書の取得

ADFSでは、SSL通信、トークン署名、トークン暗号化解除の3種類の証明書が必要になります。このうち、SSL通信用の証明書は必須なので、ここでは最低限の手順として、SSL証明書を入れる手順を確認します。

これまでのバージョンのADFSでは、ADFSをインストールするとIISが一緒にインストールされていました。そのため、IISのユーザーインターフェイスからSSL証明書を取得すればよかったのですが、Windows Server 2012 R2のADFSではIISがインストールされません(IISが不要なのです)。
そこで、SSL証明書はMMCから取得します。

MMCを起動し、[ファイル]-[スナップインの追加と削除]をクリック。

fs015

[スナップインの追加と削除]から[証明書]を選択して、[追加]をクリック。

fs016 

すると表示される、[証明書スナップイン]で、[コンピューターアカウント]を選択して[次へ]をクリック。

fs017

[ローカルコンピューター]選択して[完了]をクリック。

fs018

もとの画面に戻るので、[OK]をクリック。

fs019

[個人]を右クリックして、[すべてのタスク]-[新しい証明書の要求]をクリックして、証明書取得をスタートします。

fs020

[次へ]をクリック。

fs021

[次へ]をクリック。

fs022

証明書テンプレートとして、[コンピューター]が選ばれていることを確認し、[次へ]をクリック。
(本当はWebサーバーの証明書テンプレートを選択するところなのでしょうが、
デフォルトの証明書テンプレートは選択できません。
そのため、ここでは[コンピューター]証明書テンプレートを選択しました)

fs023

[完了]をクリック。

fs024

これで証明書が取得できました。

fs025

Step3 ADFSのインストール

ADFSサーバーとなるマシンにADFSをインストールします。
インストールはサーバーマネージャーの[役割と機能の追加]から行います。
役割と機能の追加ウィザードでは、次へを数回押していただき、[サーバーの役割の追加]まで来たら、
[Active Directory Federation Services]にチェックをつけます。

fs001

その後、[次へ]を次々押して、インストールを開始します。

fs004

完了したら、[このサーバーにフェデレーションサービスを構成します]をクリックして、次のステップへ移ります。
続きはStep4へ。

fs005

Step4 ADFSの初期設定

ADFSの初期設定を行うときには、前回の投稿でも書いたように、グループ管理サービスアカウントの設定が必要です。

ただし、グループ管理サービスアカウントを使わないのであれば、最低限、以下のコマンドレットだけ実行しておけば十分です。

Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))

できたら、初期設定をはじめましょう。
Step3の最後で、[このサーバーにフェデレーションサービスを構成します]をクリックすると、 以下の画面が登場します。次へをクリックします。

fs006

ADに接続するためのアカウントを指定します。説明文にもあるようにドメイン管理者を指定する必要があるので、 ここではAdministratorを指定して、次へ。

fs007

サービスプロパティの指定では、フェデレーションサービス名とSSL証明書を選択します。
SSL証明書にはStep2で取得した証明書が自動的に選ばれている状態になっています。

fs009 

サービスアカウントを指定します。ここでは、Administratorにしてしまいましたが、
実際には専用のユーザーアカウントを指定しておくことをお勧めします。
(管理者権限は不要です)

fs010 

構成データベースの指定では、ADFSの構成情報を格納するデータベースを選択します。
今回はWIDを選択します。

fs011

[次へ]をクリック。

fs012

[構成]をクリックして、構成を開始します。

fs013

完了したら、なぜかサービスアカウントのエラーが出てしまいました。
本来だと、ここでsetspnコマンドを使ってADFSをサービス登録するのですが、
実際にはサービス登録しなくても、問題なく動作していました。

fs014

ここまでで、ADFSの構成が完了し、ADFS管理ツールも使える状態になりました。

次回はOffice365の設定とDRSの設定について確認します。
お楽しみに。