ADFS+Office 365 フェデレーションドメインの登録時のトラブルシューティング(1)

Office 365のシングルサインオン機能について、ネットでも情報が色々と出てくるようになり、
私の周りでも試していただく方が増えてきたような気がします。
そして、色々と試し始めると、あれこれとトラブルに遭遇します。

今回の投稿では、Office 365のシングルサインオン機能を試してみると、
ハマることのあるトラブルを1つご紹介します。

 

■はじめに – シングルサインオン機能の設定
シングルサインオン機能を実装していただくときには、 大きく分けて6つの設定が必要です。

1. Office 365管理者ポータルからディレクトリ同期のアクティブ化
2. Active Directoryから代替UPNサフィックスとして会社のドメイン名を登録
3. ADFS2.0のインストール
4. Office 365で使用するADFSサーバーとドメイン名の指定
5. ディレクトリ同期ツールのインストールと同期
6. クライアントにおけるInternet Explorerのゾーン設定

このうち、4.の部分では、Windows PowerShell用Microsoft Online Servicesモジュール
(Office 365サイトからダウンロード可能)から以下のコマンドレットを実行します。

PS C:> $cred = Get-Credential
PS C:> Connect-MsolService –credential $cred
PS C:> Set-MsolAdfsContext –computer <ADFSサーバー名>
PS C:> New-MsolFederatedDomain –DomainName <会社のドメイン名>

ここまでを入力すると、DNSサーバーにTXTレコードを入れるように指示が出るので(下の画面 黄色部分)、
DNSサーバーにレコードを登録し、そしてもう一度New-MsolFederatedDomainコマンドレットを実行すると、
構成に問題がなければ登録に成功します。

remove-domain2

■トラブルの始まり
なるほど、こうやってフェデレーションドメインを登録するのか!なんて思いながら、
テスト環境でもう一度試そうとすると主に次のような理由で失敗します。

1. Office 365テナントに登録したオンプレミスの情報は
Office 365の中で既に使われているオンプレミスとして認識され、もう一度同じテストはできない

2. Office 365テナントに登録した会社のドメイン名は
Office 365の中で既に使われているドメインとして認識され、もう一度同じテストはできない

大きく分けると、2つの理由で失敗するのですが、
このうち1.のケースについて今回は紹介したいと思います。
(それ以外の細かなトラブルケースもあるのですが、それは他の投稿を参照してください)

■ ■ ■

新しいOffice 365テナントと新しいドメイン名を用意して、テスト環境からNew-MsolFederatedDomainコマンドレットを
実行したところ、下の画面の赤字部分のように、エラーが発生しました。

feddomain

以下、上の画面赤字部分の抜粋

The federation service identifier specified in the Active Directory Federation Services 2.0 server
is already  in use.
(後略)

New-MsolFederatedDomainコマンドレットでは、Office365に登録するインターネットドメインと同時に
フェデレーションサービスの識別子が一緒に登録されるのですが、(フェデレーションサービスの識別子は、
ADFS2.0管理ツールのADFSサーバーのプロパティで確認することができます)
フェデレーションサービスの識別子が既にOffice 365に登録されている名前だと、
New-MsolFederatedDomainコマンドレットの実行に失敗します。
(厳密に言うと、フェデレーションサービスの識別子だけで判断しているわけではありません)

ADFS-SI

そのため、1.が原因でエラーが発生するときには、フェデレーションサービスの識別子を違う名前に
書き換えて、New-MsolFederatedDomainコマンドレットを再実行します。
(フェデレーションサービスの識別子はURLの表記ですが、このURLが実在するかチェックすることはないので、
適当な文字列に書き換えてしまってよい)

すると、どうでしょう。
今度は問題なくフェデレーションの設定がうまくいきました。

次回は、トラブルのケース2.について紹介したいと思います。