前回はドメイン環境で SCP を使用して Autodiscover による設定の自動検出を行いました。
今回は SCP が使用できない場合の Autodiscover についてまとめていきたいと思います。
Contents
■SCP が使えない場合の Autodiscover の解決方法
ワークグループ環境やドメインに参加している環境でローカルアカウントでログインしているような、AD から情報が取得できない環境、SCP の指定先に接続ができない場合は、SCP から Autodiscover の接続先の情報を取得することができません。
その様な場合は、DNS を使用して Autodiscover の接続先の解決が行われます。
SCP に接続できないケースとしては、
- SCP の情報が取得できない
- SCP に設定している URL に接続ができない
- SSL のセキュリティ警告をキャンセルした
場合などがあると思います。
今回は SCP の URL に接続できない場合で見ていきたいと思います。
SCP の URL のドメインを [exchange.local2] というアクセスできないドメインに変更をしています。
# SCP での接続は最初 URL のドメイン名で行っているようなので、最初からアクセスできない URL を指定しています。
SCP の URL に接続ができない場合、設定の自動検出時に不明なエラーとして [0x80070057] が発生します。
この時、Outlook がどのように EWS (Exchange Web Services) に接続しているかを Fiddler で確認してみます。
はじめは SCP に指定されている URL (実際には URL のサーバーの FQDN) に接続を行っています。
その後、[autodiscover.exchange.local] という FQDN に対して接続しに行っていることが確認できます。
Network Monitor でどのような DNS のレコードを引いているかも確認してみます。
以下の順番で DNS のレコードを取得しに行っていることが確認できます。
- [exchange.local2] という Host (A) レコード
- [autodiscover.exchange.local] という Host (A) レコード
- [_autodiscover._tcp.exchange.local] という Service Location (SRV) レコード
最初のレコードは SCP のレコードの名前解決になります。
2 番目以降が SCP の URL に接続ができなかった場合の DNS による Autodiscover の解決になります。
SCP の URL に接続ができなかった場合は、A レコードまたは、SRV レコードを使用して、Autodiscover の設定を行おうとします。
DNS を使用した Autodiscover の構成では、ユーザーのメールアドレスを元に DNS の検索を行います。
今回は、[mailuser@exchange.local] というメールアドレスを使用していますので、Autodiscover の DNS による名前解決を行う場合は、[exchange.local] というドメイン名が使用されます。
通常、AD を企業内に展開する場合はドメイン名は外部公開のドメイン名ではなく、内部用のドメイン名にして必要に応じて、UPN に外部ドメイン名を設定する等の対応を行うかと思います。
Exchange のメールアドレスも同様で、外部用のドメイン名を設定する電子メールアドレスポリシーを作成して、外部用のメールアドレスの付与を行います。
既定のアドレスとして [mail.exchange.external] というドメイン名でアドレスを設定して、再度 DNS による Autodiscove の検索を試してみたいと思います。
メールアドレスを変更することにより、Autodiscover で検索する DNS レコードも変更されていることが確認できます。
SCP に接続ができない場合は、DNS により名前解決を行い、それで接続ができない場合には、[0x8007057] でエラーとなります。
■DNS に Autodiscover 用の A レコードを追加
DNS に Autodiscover のレコードを追加して再度確認を行ってみます。
まずは、A レコードを追加してみます。
今回は外部ドメイン用のゾーンを作成し、Autodiscover の A レコードを追加しています。
DNS レコードの追加後に自動検出がどのようになるかを確認してみます。
autodiscover の A レコードを追加すると、自動検出サービスの実行時にセキュリティの警告が出力されます。
Fiddler を使用してどの URL に接続が行われているのかを確認してみます。
HTTPS を使用して、[autodiscover.exchange.external] に接続をしていることが確認できます。
セキュリティ警告では、[はい] をクリックすると、自動検出サービスにより Outlook の設定が自動でおこわなれます。
■DNS に Autodiscover 用の SRV レコードを追加
最初は autodiscover の A レコードで解決をしますので、セキュリティ警告が表示されるのは変わりません.
# これは、A レコードを使用して検出したレコードで HTTPS 接続をしているためです。
いいえをクリックしてみます。
このダイアログですが、SRV レコードを使用して Autodiscover の接続先を解決した場合に表示が行われます。
[許可] をクリックしてみます。
最初のセキュリティ警告で [いいえ] をクリックしているので、接続時にエラーになってしまいます…。
SRV レコードの参照先を IP アドレスに変更して再度確認をしてみます。
SRV のレコードを使用して接続先を取得できました。
SCP が使用できない場合は、DNS を使用して Autodiscover が使用されます。
ワークグループ環境や、ドメイン環境でローカルユーザーを使用している場合は、以下のようにアカウントを設定しますが、このような指定で、Autodiscover を使用する場合は DNS による解決が使用されます。
DNS による Autodiscover の解決ですが、この際の接続は HTTPS が必須となるようです。
autodiscover の A レコードでは接続先のポートは指定できませんが、SRV レコードではポートが指定できます。
ポートを 80 にして Autodiscover が動作するか確認をしてみます。
HTTP で接続をしようとエラーとなります。DNS による解決に関しては HTTPS 接続が必須のようですね。
Autodiscover は Outlook のオフラインアドレス帳のダウンロードをする際にも使用されているようなので、この辺の動作をきちんと理解しないとどこかでハマりそうです…。