ADFS環境でOWAからログアウトできない

新しいOffice365になって、ADFSまわりで微妙に挙動が変わった部分があるのでそちらを紹介させて頂きます。

内容は、OWAのバニティURLからログインした場合にOWAからログアウトできないという物です。具体的にどういうことかというと、ADFSの場合は、通常

【ログイン】
20130924-000503 20130924-000443 20130924-000451

【ログアウト】
20130924-000455 20130924-000459 20130924-000503

こんな感じで画面が推移してそれぞれシングルサインオン、サインアウトして最初のサインインの画面に戻るというフローになります。(ちなみにサインアウト画面が出るのはWindows Server 2012 R2のADFSの場合のみです) 各アプリケーションのサインアウト画面からは、アプリケーション毎に少し違っていて、SharePoint Onlineからの場合はサインアウト後専用の画面で止まります。

OWA
20130924-002356 20130924-000459 20130924-000503

SharePoint Online
20130924-002018 20130924-000459 20130924-002027

ただし、新しいOffice365へのアップグレード後、「OWAに直接バニティURLを利用して入った場合、OWAからサインアウトできない」という事象が発生しました。このバニティURLというのは、例えば https://outlook.com/owa/contoso.com のようなURLで、ポータルのサインイン画面でのID入力を飛ばしてOWAに入れるURLです。これを利用していた環境でサインアウトをしようとすると、

20130924-000700 20130924-000459

一旦はサインアウトされるのですが、なぜか再度数回リダイレクトを繰り返した後に元の画面に戻ってきてしまいます。
20130924-000710 20130924-000712

以前一度だけあった事象は、「SharePoint Onlineで*.sharepoint.comを信頼済みサイトに入れていない場合にリダイレクト処理の関係でサインアウトが上手くいかない」というのは有りましたが、今回はちゃんと設定してあります。う~ん、謎な挙動です。

とりあえずFiddlerでポータルから入った場合とバニティURLから入った場合の挙動をトレースしてみます。
20130924-003935

一箇所怪しいところを見つけました。

ポータルから:    https://sts.w15jp.info/adfs/ls/?nossl=1&wreply=https://login.microsoftonline.com/login.srf%3Flc%3D1041%26ct%3D1379942681%26rver%3D6.1.6206.0%26id%3D260563%26wa%3Dwsignoutcleanup1.0%26nossl%3D1%26wreply%3Dhttps:%252F%252Foutlook.com:443%252Fowa%252F%253Fexch%253D1&wa=wsignout1.0
バニティURLから: https://sts.w15jp.info/adfs/ls/?nossl=1&wreply=https://login.microsoftonline.com/login.srf%3Flc%3D1041%26ct%3D1379924091%26rver%3D6.1.6206.0%26id%3D260563%26wa%3Dwsignoutcleanup1.0%26nossl%3D1%26wreply%3Dhttps:%252F%252Fpod51054.outlook.com:443%252Fowa%252F%253Fexch%253D1&wa=wsignout1.0

ポータルから入った場合はサインアウトした後に戻るURLの更にリダイレクト先がoutlook.comになっているのに対して、バニティURLから入った場合はそのメールボックスが収容されているpod51054.outlook.comになっています。

この差が最終的にリダイレクトされた後にポータルに飛ぶか、再度SSOの画面に飛ぶかの判定に繋がっているようです。(ちなみにバージョンアップ前のOffice365の場合はsixprd0210.outlook.comなどの実際にMBXサーバがあるところのFQDNでした。この場合もサインアウト後の戻り先はポータル) 最初は無理矢理web.configに

<RewriterConfig>
   <Rules>
      <RewriterRule>
         <LookFor>~/adfs/ls/?nossl=1&wreply=https://login.microsoftonline.com/login.srf%3Flc%3D(d{4})%26ct%3D(d{10})%26rver%3D6.1.(d{4}).(d)%26id%3D(d{6})%26wa%3Dwsignoutcleanup1.0%26nossl%3D1%26wreply%3Dhttps:%252F%252Fpod51054.outlook.com:443%252Fowa%252F%253Fexch%253D1&wa=wsignout1.0</LookFor>
         <SendTo>~/adfs/ls/?nossl=1&wreply=https://login.microsoftonline.com/login.srf%3Flc%3D(d{4})%26ct%3D(d{10})%26rver%3D6.1.(d{4}).(d)%26id%3D(d{6})%26wa%3Dwsignoutcleanup1.0%26nossl%3D1%26wreply%3Dhttps:%252F%252Foutlook.com:443%252Fowa%252F%253Fexch%253D1&wa=wsignout1.0</SendTo>
      </RewriterRule>
   </Rules>
</RewriterConfig>

とかのrewriteルールを無理矢理書いて対応しようかと考えたのですが、そもそもWindows Server 2012 R2からはADFSがIISを利用していないのでweb.configが利用できません。

SRで上げても再度ログインしてしまうのは新バージョンからの仕様と言われてしまったので手詰まりかと思ったのですが、ある時ふとOutlookのプロファイルを見たところ、バニティURLが https://outlook.office365.com/owa/contoso.com に変わっていることに気がつきました。(今まではpod510xx.outlook.com/owa/contoso.com)

というわけで、この新しいバニティURLからサインインして、サインアウトを試してみると…おぉ、できました! よく見ると、サインイン後のOWAのURLもpod51054.outlook.comではなくoutlook.office365.comになっています。

20130924-010348 20130924-010428

20130924-010433 20130924-000459 20130924-000503

という訳で、アップグレードに伴って古いバニティURLを利用されている方でサインアウトの問題がでている方は、 https://outlook.office365.com/owa/contoso.com に変更してみて解消するかどうかお試し頂く事をお勧めさせて頂きます。

One thought on “ADFS環境でOWAからログアウトできない

  1. Pingback: Office 365の各種URL | 日々徒然

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です