シングルサインオン環境を導入したOffice365の場合、初回ログイン時、Office365の各サービスへアクセスするためには、Office365ログイン画面(ポータルの場合:https://portal.office.com)へアクセスし、サインイン欄にフェデレーションドメインを入力することで、ようやくシングルサインオンのログイン画面を表示することができます。
つまり、シングルサインオンのログイン画面を表示させるためには、フェデレーションドメインを入力する必要があります。
実は以前、弊社のお客様でもこのひと手間(フェデレーションドメイン入力)が嫌でOffice365のSSO化を断念したお客様もいらっしゃいました。ということで、今回はそんなお客様のご不満を解消するため、スマートリンク について紹介したいと思います。
スマートリンクとは?
Office365のシングルサインオン認証はフェデレーションドメインを入力すると、ホームレルムディスカバリと呼ばれる処理により、次の処理を実行するURLが生成されます。つまり、フェデレーションドメインを入力することでログインURLが生成されるのです。このURLをスマートリンクと呼んでいます。
Office365ポータルであれば以下のURLを編集することで、スマートリンクを作成することが可能です。
[Office365ポータル]
https://login.microsoftonline.com/login.srf?wa=wsignin1.0&wreply=https%3a%2f%2fportal.office.com%2flanding.aspx%3ftarget%3d%252fdefault.aspx&whr=<フェデレーションドメイン名>
ということで、実際にスマートリンクを使ってフェデレーションドメインを入力することなく、シングルサインオンのログイン画面を表示してみたいと思います。ちなみに、OWA(Outlook Web Access)の場合は、以下のURLが使えるので、スマートリンクを使用する必要はありません。
[Outlook Web Access]
https://outlook.office365.com/owa/<フェデレーションドメイン名>
前提条件/検証環境
- シングルサインオン環境が構築済みであること
- 本環境は、ADFS, WAPでシングルサインオン環境を構築しています。
- ADFS, WAPともにWindows Server 2016です。
Webサイト作成
IISをインストールして新しいWebサイトを作成します。本手順では社外からの利用を想定して、WAPにIISをインストールしています。IISインストール手順は省略しますが、IISインストールの際、以下の通り、「HTTPリダイレクト」をインストールします。
[Web Server(IIS)] – [Web Server] – [Common HTTP Features] – [HTTP Redirection]IISのインストール完了後、新しいWebサイト(本手順では「portal.example.com」)を作成します。[インターネットインフォメーションサービス(IIS)マネージャー]を起動して、以下の通り、Webサイトを追加します。
HTTPリダイレクト設定
Office365ポータルのスマートリンクへリダイレクトさせるため、以下の通り、リダイレクト先(https://login.microsoftonline.com/login.srf?wa=wsignin1.0&wreply=https%3a%2f%2fportal.office.com%2flanding.aspx%3ftarget%3d%252fdefault.aspx&whr=portal.example.com)を設定します。
確認
Webブラウザを起動して「https://portal.example.com」へアクセスすると、WAPのログイン画面が表示されます。あとは、いつも通りUSER/PASSを入力すればOffice365ポータルへログインできます。
最後に
今回はWAPにIISをインストールしましたが、別途WebサーバーがあればそちらにWebサイトを作成してスマートリンクへリダイレクト設定を行えば、わざわざIISをインストールする必要はありません。また、本手順では省略していますが、Webサイトの名前解決が出来ない場合は、DNS設定を忘れずに行ってください。
また、今回はOffice365ポータルのスマートリンクの設定をしましたが、例えば、社内ポータルをSharePointで作成している場合、SharePoint用のスマートリンクの作成が必要になります。スマートリンクの作成方法は色々と技がありそうなので、おいおい調べていこうと思います。