昨日から、Exchange の Autodiscover (自動検出サービス) について少し調べていました。
Autodiscover ですが、以下の情報がとても参考になります。
Exchange Server 2007 の Autodiscover で自動構成できない!! を回避するために
この情報をもとに、Autodiscover について自分なりにまとめてみたいと思います。
Autodiscover の動作は、ドメインに参加していてドメインユーザーでログインしている場合と、ワークグループ環境 (ドメインに参加していてローカルユーザーを使用している場合も同じ) の場合で挙動が変わりますのでこの 2 パターンでまとめていきたいと思います。
今回は Exchange 2010 と Outlook 2010 の組み合わせで検証しています。
# 基本的な考えは Exchange 2007/Outlook 2007 でも同じになるはずです。
■Autodiscover とは??
Autodiscover ですが、以下のような場合に使用されます。
自動検出サービスについて
- ユーザーの表示名
- 内部および外部接続用それぞれの接続設定
- ユーザーのメールボックス サーバーの場所
- 空き時間情報、ユニファイド メッセージング、オフライン アドレス帳などの機能を制御するさまざまな Outlook 機能の URL
- Outlook Anywhere サーバー設定
Outlook のプロファイルを作成するときに、Exchange の接続設定をユーザーが入力しなくても自動で設定をしてくれる機能がありますがこれは、Autodiscover が使用されています。
Outlook のプロファイルを設定する際にはメールアドレスが自動で設定されますが、これは Autodiscover ではなく AD の属性情報から取得が行われています。
他にも [オフラインアドレス帳のダウンロード] の時にも使用されているようです。
■Autodiscover による接続の基本動作
Exchange インストール直後の状態で、ドメインに参加したクライアントでドメインユーザーログインし、Outlook のプロファイルを作成すると、設定の自動検出時に [セキュリティの警告] が発生します。
まずは、この動作を確認していきたいと思います。
ドメイン環境の Autodiscover を使用するときには、SCP (Service Connection Point) から CAS (クライアント アクセス サーバー) の情報が取得されます。
現在の SCP の設定内容を見てみます。
SCP は Exchange で [Get-ClientAccessServer] を実行すると確認ができます。
PS>Get-ClientAccessServer | fl RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b |
[AutoDiscoverServiceInternalUrl] が Autodiscover で使用される SCP の URL となります。
Exchange の構成情報は AD の構成パーティションに格納されています。
LDP で以下の条件で検索をして、SCP の情報を確認してみます。
———– Dn: CN=DomainPartnerManageDelegation,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=DomainPartnerManageDelegation2,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=LiveFederationMetadata,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=LiveGetUserRealm,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=LiveServiceLogin2,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=MsoFederationMetadata,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=Microsoft Exchange Online,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=exchange,DC=local Dn: CN=WIN-98FGIESGT2I,CN=Autodiscover,CN=Protocols,CN=WIN-98FGIESGT2I,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local ———– |
太字にしてある箇所が Autodiscover で使用されている SCP が格納されているオブジェクトになります。
Exchange 用の構成の中に格納がされています。
[serviceBindingInformation] に URL の情報が格納されています。
この情報が、Get-ClientAccessServer で操作されている内容となります。
コマンドレットで値を修正すると構成パーティションのこの情報が変更されます。
今回の環境では、[https://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml] という URL が指定されています。
# Exchange 導入直後の設定を取得していますので、この形式が初期設定値となるはずです。
Exchange 2010 の初期の設定では、HTTPS のアクセスに [自己署名証明書] が使用されます。
自己署名証明書なので、クライアントのルート証明機関の証明機関から発行された証明書ではありません。
Autodiscover による接続情報の自動検出では、Autodiscover の SCP に設定されている URL に接続を行い設定を自動的に行います。
今回の URL は [HTTPS] となっているため自己署名証明書で SSL を設定された Web サイトへのアクセスとなるため、許可されていない証明書によるセキュリティ警告のエラーが発生します。
この通信は HTTPS ですので Fiddler で接続先の URL を確認することが可能です。
下の画像は、セキュリティ警告が表示された後に [いいえ] で接続をキャンセルした時の通信の状況になります。
HTTPS で CAS に接続しているのが確認できますね。
Exchange の IIS のログにもアクセス履歴が出力されています。
2010-12-25 08:07:47 10.32.0.1 POST /Autodiscover/Autodiscover.xml – 443 – 10.200.0.7 Microsoft+Office/14.0+(Windows+NT+6.1;+Microsoft+Outlook+14.0.5128;+Pro) 401 0 0 0 2010-12-25 08:07:47 10.32.0.1 POST /Autodiscover/Autodiscover.xml – 443 EXCHANGEmailuser 10.200.0.7 Microsoft+Office/14.0+(Windows+NT+6.1;+Microsoft+Outlook+14.0.5128;+Pro) 200 0 0 62 |
Outlook / Exchange の両方から HTTPS で接続ができていることが確認できますね。
■SCP の URL を HTTP に変更
初期設定では、SCP の URL は [HTTPS] で設定されていますが、以下のコマンドを実行すると [HTTP] に変更することができます。
# 一行で入力します。
Get-ClientAccessServer | Set-ClientAccessServer -AutoDiscoverServiceInternalUri "http://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml" |
変更後に、Outlook で再度接続をして確認をしてみたいと思います。
Autodiscover に接続をしに行くと、不明なエラー [0x80070057] が発生して、自動検出サービスを使用することができません。
Fiddler で確認をしてみると最初は HTTP でアクセスをしに行っているのですが、403 エラーとなっています。
IIS のログも確認をしてみます。
2010-12-25 08:16:52 10.32.0.1 POST /Autodiscover/Autodiscover.xml – 80 – 10.200.0.7 Microsoft+Office/14.0+(Windows+NT+6.1;+Microsoft+Outlook+14.0.5128;+Pro) 403 4 5 249 2010-12-25 08:17:23 10.32.0.1 POST /Autodiscover/Autodiscover.xml – 80 – 10.200.0.7 Microsoft+Office/14.0+(Windows+NT+6.1;+Microsoft+Outlook+14.0.5128;+Pro) 403 4 5 234 |
HTTP でアクセスがされていることが確認できますね。
403 (アクセス拒否) が発生している理由ですが、Exchange インストール後の IIS の初期設定では、Autodiscover の仮想ディレクトリのアクセスは [SSL が必要] として設定されています。
そのため、HTTP でのアクセスは拒否されてしまいます。
IIS の管理コンソールを開いて、[Autodiscover] 仮想ディレクトリの [SSL 設定] を変更します。
初期設定では、[SSL が必要] が有効になっていますので、この設定をはずし [適用] をクリックします。
Autodiscover を使用して、設定を自動検出することができました。
今回は Autodiscover から情報の取得に成功していますね。
設定を 2 箇所 (SCP の URL / IIS の SSL 設定) を変更することで、ドメイン環境の場合は SCP に HTTP で接続をすることができるようになります。
ただし、 [Test-OutlookWebServices] で EWS (Exchange Web Services) への接続テストをした際に Autodiscover については以下のように表示がされます。
RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b |
SSL で保護していないことに対しての警告が出力されています。
設定の自動検出や、オフラインアドレス帳のダウンロードではとりあえず使えていそうでしたが他の機能でもしかしたら NG になるかもしれませんね。
今回はドメイン環境にドメインユーザーでログインしている場合についての Autodiscover についてをまとめてみました。
ドメイン環境でローカルユーザーでログインしている場合、ワークグループ環境の場合は SCP が使えないため、Autodiscover の参照方法が変わってきます。
次の投稿では SCP が使えない場合の Autodiscover についてまとめていきたいと思います。