Webサーバのログに残っているautodiscover.xmlとは何?

最終更新日

メールサーバーとして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/)を追加)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !(^/autodiscover/)
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/”のディレクトリのみアクセス制限から除外しましょう。
またWordpressを導入している場合、前述の.htaccessでの除外も忘れずに行って下さい。ファイルが存在しないときアクセス制限されたWordpressが呼び出されるために、アクセス制限から除外したはずなのにサインインを求められることになりました。

シェアする