Webサーバのログに残っているautodiscover.xmlとは何?(2020/4/2補足)
メールサーバーとしてMicrosoft Exchange(例えばOffice 365のExchange Online)を利用している場合、Webサーバのアクセスログやエラーログに”autodiscover.xml”というファイルへのアクセスが記録されている場合があります。
”autodiscover.xml”はOutlookのAutodiscover機能が作動したときにアクセスされるファイルです。
Autodiscoverとは、メールや予定表といったサーバの接続情報をOutlookが自動的に取得する仕組みです。
詳しい仕組みはMicrosoftのサイト(https://blogs.technet.microsoft.com/exchangeteamjp/2014/03/03/autodiscover-1/)などに解説がありますが、Autodiscover機能の作動中メールアドレスのドメイン部分(@マークより右側の部分)を利用してHTTPSアクセスを行う場合があります。
”https://会社のドメイン名/”のアドレスへWebサーバを設置して企業ホームページを開設している会社があると思いますが、通常のWebサーバはMicrosoft Exchangeと関係なく設置されるためサーバ内に”autodiscover.xml”のファイルが存在しません。そのためOutlookからのアクセス時にエラーとなってしまうのです。
”autodiscover.xml”へのアクセスが発生する条件
このアクセスが発生するにはいくつか条件があるためか、インターネットで検索しても事例があまり見つかりませんでした。
- 社内のAD内でのAutodiscoverに失敗している事
Exchangeを導入している会社の多くは社内にAD(Active Directory)を導入していると思います。AD内でAutodiscoverが完了した場合、HTTPSでのアクセスは発生しません。 - HTTPSでWebサーバを設置している事
OutlookはHTTPSでアクセスを試みるため、WebサーバがHTTP専用の場合はアクセスは発生しません。 - メールアドレスとWebサーバのドメイン名を全く同じにしている事
メールアドレスを”○○@mail.ドメイン名”などサブドメイン付きにしていたり、Webサーバを”www.”などメールとは異なるサブドメイン付きしていたりすると、ドメイン名が異なるのでアクセスは発生しません。
上記全てに該当する企業は少ないとと思いますが、もしこの件でお困りのWeb管理者の方がいらっしゃいましたら、Webサーバ側でログから除外する設定をご検討下さい。
WordPressなどを導入している場合は注意
WordPressの場合、”autodiscover.xml”のような存在しないファイルへのアクセスはWordpressが動的に処理する仕組みのため、Webサーバに余計な負荷が掛かります。
そのため.htaccessを修正しました。
修正前
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
修正後
(RewriteCond %{REQUEST_URI} !(^/autodiscover/) [NC]を追加)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !(^/autodiscover/) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
更にレアケースですが、autodiscover.xmlへのアクセスが原因で、Outlookでパスワードを繰り返し求められる場合があります
当社の環境は上記条件に該当するのですが、この記事へまとめたきっかけはWebサーバのエラーログではありません。
Outlookを起動する度にサインイン(資格者情報)を求められ、正しいパスワードを入力しても何度もパスワードを求められる症状が発生し、原因を調査した事がきっかけです。
不具合発生時、当社のホームページはリニューアル作業のためWebサーバ全体にパスワード認証を設定していました。
パスワード認証の掛かったWebサーバに対して”autodiscover.xml”を要求すれば、そのファイルが存在するしないにかかわらずパスワード入力が要求されます。Outlookに表示されたサインイン画面はメールサーバではなくWebサーバに対するサインインだったのです。
しかし、まさかOutlookへメールサーバ以外へのサインイン要求画面が表示されるなんて思いもしませんから、当然メールサーバのパスワードを入力します。
Webサーバにはメールアカウントの情報はありませんので、メールサーバのパスワードでサインインしようとすれば失敗します。これに気づかず何度もパスワードを入力していました。
Autodiscoverの存在に気づき、Outlookのサインイン画面へWebサーバ用のパスワードを入力したところサインインに成功。ようやく不具合の原因がはっきりしました。
対処
”autodiscover.xml”へのアクセスが発生する企業がWebサーバのアクセス制限を行う場合、”ドメイン名/autodiscover/”,”ドメイン名/Autodiscover/”,”ドメイン名/AutoDiscover/”の3つのディレクトリのみアクセス制限から除外しましょう。
またWordpressを導入している場合、前述の.htaccessでの除外も忘れずに行って下さい。ファイルが存在しないときアクセス制限されたWordpressが呼び出されるために、アクセス制限から除外したはずなのにサインインを求められることになりました。
補足(2020/1/27)
Webサーバでの対処について述べましたが、下記のページによるとPCのレジストリ値を変更することでWebサーバへのアクセスを止められるようです。
ユーザーがプロファイルを作成しようとすると、Outlook 2016 および Outlook 2013 が停止する
https://support.microsoft.com/ja-jp/help/3098011/outlook-2016-and-outlook-2013-hang-when-a-user-tries-to-create-a-profi
シナリオごとの Autodiscover の動作 | Outlook 研究所
https://outlooklab.wordpress.com/2020/01/25/%e3%82%b7%e3%83%8a%e3%83%aa%e3%82%aa%e3%81%94%e3%81%a8%e3%81%ae-autodiscover-%e3%81%ae%e5%8b%95%e4%bd%9c/
補足(2020/4/2)
Webサーバのログを確認したところ、 ディレクトリ名が大文字小文字混じりの”/AutoDiscover/autodiscover.xml”へのアクセスログがありました。
.htaccess の修正例について、大文字小文字を区別しないよう行末へ[NC]を追加しました。
対処について、ディレクトリ名を3パターン併記しました。