SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Exchange の Autodiscover について (ドメイン環境で SCP)

leave a comment

昨日から、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 が使用されています。
image

Outlook のプロファイルを設定する際にはメールアドレスが自動で設定されますが、これは Autodiscover ではなく AD の属性情報から取得が行われています。
image

他にも [オフラインアドレス帳のダウンロード] の時にも使用されているようです。

 

■Autodiscover による接続の基本動作


Exchange インストール直後の状態で、ドメインに参加したクライアントでドメインユーザーログインし、Outlook のプロファイルを作成すると、設定の自動検出時に [セキュリティの警告] が発生します。
image

まずは、この動作を確認していきたいと思います。

ドメイン環境の Autodiscover を使用するときには、SCP (Service Connection Point) から CAS (クライアント アクセス サーバー) の情報が取得されます。

現在の SCP の設定内容を見てみます。
SCP は Exchange で [Get-ClientAccessServer] を実行すると確認ができます。

PS>Get-ClientAccessServer | fl

RunspaceId                           : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Name                                 : WIN-98FGIESGT2I
Fqdn                                 : WIN-98FGIESGT2I.exchange.local
OutlookAnywhereEnabled               : False
AutoDiscoverServiceCN                : WIN-98FGIESGT2I
AutoDiscoverServiceClassName         : ms-Exchange-AutoDiscover-Service
AutoDiscoverServiceInternalUri       : https://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml
AutoDiscoverServiceGuid              : 77378f46-2c66-4aa9-a6a6-3e7a48b19596
AutoDiscoverSiteScope                : {Default-First-Site-Name}
AlternateServiceAccountConfiguration :
IrmLogEnabled                        : True
IrmLogMaxAge                         : 30.00:00:00
IrmLogMaxDirectorySize               : 250 MB (262,144,000 bytes)
IrmLogMaxFileSize                    : 10 MB (10,485,760 bytes)
IrmLogPath                           : C:Program FilesMicrosoftExchange ServerV14LoggingIRMLogs
MigrationLogLoggingLevel             : Information
MigrationLogFilePath                 :
MigrationLogMaxAge                   : 180.00:00:00
MigrationLogMaxDirectorySize         : 10 GB (10,737,418,240 bytes)
MigrationLogMaxFileSize              : 100 MB (104,857,600 bytes)
IsValid                              : True
ExchangeVersion                      : 0.1 (8.0.535.0)
DistinguishedName                    : 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
Identity                             : WIN-98FGIESGT2I
Guid                                 : f02cf89a-2517-451b-863d-8e74e0f70b2d
ObjectCategory                       : exchange.local/Configuration/Schema/ms-Exch-Exchange-Server
ObjectClass                          : {top, server, msExchExchangeServer}
WhenChanged                          : 2010/12/24 21:01:40
WhenCreated                          : 2010/12/24 20:48:19
WhenChangedUTC                       : 2010/12/24 12:01:40
WhenCreatedUTC                       : 2010/12/24 11:48:19
OrganizationId                       :
OriginatingServer                    : WIN-98FGIESGT2I.exchange.local

[AutoDiscoverServiceInternalUrl] が Autodiscover で使用される SCP の URL となります。

Exchange の構成情報は AD の構成パーティションに格納されています。
LDP で以下の条件で検索をして、SCP の情報を確認してみます。
image

———–
***Searching…
ldap_search_s(ld, "CN=Configuration,DC=exchange,DC=local", 2, "(objectclass=serviceConnectionPoint)", attrList,  0, &msg)
Getting 9 entries:
Dn: CN=ABCHContactService,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/ABCHContactService;
name: ABCHContactService;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=DomainPartnerManageDelegation,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/DomainPartnerManageDelegation;
name: DomainPartnerManageDelegation;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=DomainPartnerManageDelegation2,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/DomainPartnerManageDelegation2;
name: DomainPartnerManageDelegation2;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=LiveFederationMetadata,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/LiveFederationMetadata;
name: LiveFederationMetadata;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=LiveGetUserRealm,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/LiveGetUserRealm;
name: LiveGetUserRealm;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=LiveServiceLogin2,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/LiveServiceLogin2;
name: LiveServiceLogin2;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=MsoFederationMetadata,CN=ServiceEndpoints,CN=ExchangeOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/ServiceEndpoints/MsoFederationMetadata;
name: MsoFederationMetadata;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

Dn: CN=Microsoft Exchange Online,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=exchange,DC=local
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange Autodiscover/Microsoft Exchange Online;
name: Microsoft Exchange Online;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

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
canonicalName: exchange.local/Configuration/Services/Microsoft Exchange/ExchangeOrg/Administrative Groups/Exchange Administrative Group (FYDIBOHF23SPDLT)/Servers/WIN-98FGIESGT2I/Protocols/Autodiscover/WIN-98FGIESGT2I;
name: WIN-98FGIESGT2I;
objectClass (4): top; leaf; connectionPoint; serviceConnectionPoint;

———–

 

太字にしてある箇所が Autodiscover で使用されている SCP が格納されているオブジェクトになります。
Exchange 用の構成の中に格納がされています。

ADSIEDIT で内容を確認してみたいと思います。
image

[serviceBindingInformation] に URL の情報が格納されています。
この情報が、Get-ClientAccessServer で操作されている内容となります。
コマンドレットで値を修正すると構成パーティションのこの情報が変更されます。

今回の環境では、[https://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml] という URL が指定されています。
# Exchange 導入直後の設定を取得していますので、この形式が初期設定値となるはずです。

Exchange 2010 の初期の設定では、HTTPS のアクセスに [自己署名証明書] が使用されます。
image
image

自己署名証明書なので、クライアントのルート証明機関の証明機関から発行された証明書ではありません。

Autodiscover による接続情報の自動検出では、Autodiscover の SCP に設定されている URL に接続を行い設定を自動的に行います。
今回の URL は [HTTPS] となっているため自己署名証明書で SSL を設定された Web サイトへのアクセスとなるため、許可されていない証明書によるセキュリティ警告のエラーが発生します。
image

この通信は HTTPS ですので Fiddler で接続先の URL を確認することが可能です。
下の画像は、セキュリティ警告が表示された後に [いいえ] で接続をキャンセルした時の通信の状況になります。
HTTPS で CAS に接続しているのが確認できますね。
image

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] が発生して、自動検出サービスを使用することができません。
image

Fiddler で確認をしてみると最初は HTTP でアクセスをしに行っているのですが、403 エラーとなっています。
image

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 設定] を変更します。
image

初期設定では、[SSL が必要] が有効になっていますので、この設定をはずし [適用] をクリックします。
image

それでは、Outlook を使用して再度確認をしてみます。
image

Autodiscover を使用して、設定を自動検出することができました。

それでは、Fiddler でも確認をしてみます。
image

今回は Autodiscover から情報の取得に成功していますね。

設定を 2 箇所 (SCP の URL / IIS の SSL 設定) を変更することで、ドメイン環境の場合は SCP に HTTP で接続をすることができるようになります。
ただし、 [Test-OutlookWebServices] で EWS (Exchange Web Services) への接続テストをした際に Autodiscover については以下のように表示がされます。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1019
Type       : Information
Message    : 有効な自動検出サービス接続ポイントが見つかりました。このオブジェクトの自動検出 URL は http://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml です。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1012
Type       : Warning
Message    : XML>Unknown Node:AlternativeMailbox AlternativeMailbox Line:http:/
/schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1012
Type       : Warning
Message    : XML>Object being deserialized: Microsoft.Exchange.Management.Syste
mConfigurationTasks.AutoDiscoverAccount

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1012
Type       : Warning
Message    : XML>Element

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1012
Type       : Warning
Message    : XML>Unknown Element:System.Xml.XmlElement Line:55(7) <Type xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">Archive</Type><DisplayName xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">オンライン アーカイブ – mailuser</DisplayName><LegacyDN xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">/o=ExchangeOrg/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=mailuser/guid=baa1dc99-0590-446d-bc77-2d08a97f823c</LegacyDN><Server xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">WIN-98FGIESGT2I.exchange.local</Server>

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1001
Type       : Warning
Message    : 自動検出は http://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml 経由で構成されていますが、Secure Sockets Layer (SSL)Secure Sockets Layer (SSL) が有効になっていません。Outlook は SSL で保護されていない Web サービスには自動接続しません。サービスを SSL で保護することを検討してください。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1006
Type       : Information
Message    : http://win-98fgiesgt2i.exchange.local/Autodiscover/Autodiscover.xml にある自動検出サービスに接続しました。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1016
Type       : Information
Message    : [EXCH] AS は、http://win-98fgiesgt2i.exchange.local/Autodiscover/Aut
odiscover.xml から受け取った AutoDiscover 応答でこのユーザーに構成されています。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1015
Type       : Information
Message    : [EXCH] OAB は、http://win-98fgiesgt2i.exchange.local/Autodiscover/Au
todiscover.xml から受け取った AutoDiscover 応答でこのユーザーに構成されています。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1014
Type       : Information
Message    : [EXCH] UM は、http://win-98fgiesgt2i.exchange.local/Autodiscover/Aut
odiscover.xml から受け取った AutoDiscover 応答でこのユーザーに構成されています。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1022
Type       : Success
Message    : 自動検出は正常にテストされました。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1024
Type       : Success
Message    : [EXCH] https://win-98fgiesgt2i.exchange.local/EWS/Exchange.asmx の AS サービスに正常に接続しました。経過時間は 46 ミリ秒でした。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1026
Type       : Success
Message    : [EXCH] https://win-98fgiesgt2i.exchange.local/EWS/Exchange.asmx の UM サービスに正常に接続しました。経過時間は 15 ミリ秒でした。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1013
Type       : Error
Message    : https://external.exchange.local/ews/exchange.asmx への接続中にエラー リモート名を解決できませんでした。: ‘external.exchange.local’ を受け取りました。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1025
Type       : Error
Message    : [EXPR] https://external.exchange.local/ews/exchange.asmx の AS サービスに接続中にエラーが発生しました。経過時間は 15 ミリ秒でした。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1013
Type       : Error
Message    : https://external.exchange.local/ews/exchange.asmx への接続中にエラー リモート名を解決できませんでした。: ‘external.exchange.local’ を受け取りました。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1027
Type       : Error
Message    : [EXPR] https://external.exchange.local/ews/exchange.asmx の UM サービスに接続中にエラーが発生しました。経過時間は 0 ミリ秒でした。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1124
Type       : Success
Message    : [Server] https://win-98fgiesgt2i.exchange.local/ews/exchange.asmx の AS サービスに正常に接続しました。経過時間は 31 ミリ秒でした。

RunspaceId : d5b9ec70-1e8b-4cb6-89dc-73e81aa0c92b
Id         : 1126
Type       : Success
Message    : [Server] https://win-98fgiesgt2i.exchange.local/ews/exchange.asmx の UM サービスに正常に接続しました。経過時間は 31 ミリ秒でした。

SSL で保護していないことに対しての警告が出力されています。
設定の自動検出や、オフラインアドレス帳のダウンロードではとりあえず使えていそうでしたが他の機能でもしかしたら NG になるかもしれませんね。

今回はドメイン環境にドメインユーザーでログインしている場合についての Autodiscover についてをまとめてみました。
ドメイン環境でローカルユーザーでログインしている場合、ワークグループ環境の場合は SCP が使えないため、Autodiscover の参照方法が変わってきます。

次の投稿では SCP が使えない場合の Autodiscover についてまとめていきたいと思います。

Share

Written by Masayuki.Ozawa

12月 25th, 2010 at 5:49 pm

Posted in Exchange

Leave a Reply