The Exchange 2007 Wiki

Availability Service FAQs

This FAQ is broken down into the following sections:

  • Understanding Availability Service(AS)
  • Troubleshooting AS – getting information from the client and server
  • Configuring SSL, Certificates to make AS work
  • Configuring cross-forest AS
  • What is changing with post-Beta2 AutoDiscover/AS?

1. Understanding Availability Service and
Auto-Discover

 

What is the Availability Service ?

Availability Service is a Web Service that is responsible for providing free/busy information to
the
 Outlook 2007 client and OWA 2007.  Ofcourse, since Availability Service(AS) is part of the
Exchange 2007 Programming Interface, it will be available as a public web service to allow third-
party tools to integrate with it and as a programming interface for interested developers.

The schema for the availability service can be found at:
https://<your domain>/ews/services.wsdl

You can find more information regarding Exchange Server 2007 SDK Beta 2 at the following
URL:

http://msdn.microsoft.com/exchange

So, if I have Outlook 2007, does it imply I am using Availability
Service for free/busy?

OUTLOOK 2007 will use AS only for EXCHANGE 2007 mailboxes.  If you are using
OUTLOOK 2007 but still have a Titanium(Exchange 2003) mailbox, OUTLOOK 2007 falls
back to public folders for your free/busy information.
However, if Outlook 2007 is running over Exchange 2007, AS is used for free/busy.
 

What happens if I have both EXCHANGE 2007 and Titanium
(Exchange 2003) in my toplogy?

 
Exchange 2007 supports live free/busy using Availability Service.  Availability Service can
retrieve free/busy from a user’s mailbox.  The advantage of retrieving free/busy from the user’s
mailbox is that unlike free/busy from public folders, there are no syncing delays.  So, live free/busy
data from a user’s mailbox is always up-to-date.
Whether you get live free/busy or free/busy from public folders depends on the client/server
combination being used.  Here’s a table to help understand what method is used for free/busy.
Client
Logged-In Mailbox
Target Mailbox
FB Retrieval
Outlook 2007
Exchange 2007
Exchange 2007
Availability Service reads free/busy from the
target mailbox
Outlook 2007
Exchange 2007
Exchange 2003
Availability Service makes http connections
to /public vdir of Exchange 2003 mailbox
Outlook 2003
Exchange 2007
Exchange 2007
Legacy behavior : Lookup free/busy in local
S+ public folders
Outlook 2003
Exchange 2007
Exchange 2003
Legacy behavior : Lookup free/busy in local
S+ public folders
OWA 12
Exchange 2007
Exchange 2007
Calls AS API which reads free/busy from
the target mailbox
OWA 12
Exchange 2007
Exchange 2003
Calls AS API which makes http
connection to the /public vdir of the
Exchange 2003 mailbox
Any
Exchange 2003
Exchange 2007
Legacy behavior : Lookup free/busy
in local S+ public folders
If you have Exchange 2007 and Exchange 2003 servers within the same forest, then please consult
the table above to determine how free/busy is retrieved. 
For Outlook 2007/OWA 2007 clients over Exchange 2007 mailbox, Availability Service will fetch
or read the free/busy information from the calendar data in the user’s mailbox.  Both OWA and
Outlook 2007 will publish or write free/busy to public folders.  If an Outlook 2007/Exchange 2007
user requests free/busy for a Exchange 2003 user, Availability Service looks up public folders for
the Exchange 2003 user’s free/busy information.  This request is done over HTTP to the
public /vdir on that user’s mailbox.  In Exchange 2007 Beta2, please make sure there is atleast one
Schedule+ Free/Busy public folder replica in each administrative group for this to work.

Cross-forest free/busy: You will need to ensure that free/busy information is replicated between the
forests.  For OL2007/Exchange 2007 users to see free/busy of Exchange 2003 users in the other
forest, please use the following command to configure Availability Service.  This command should
be run as a one-time setup step on any server in the Exchange 2007 forest:

Add-AvailabilityAddressSpace -ForestName:<forest name e.g. foo.com> -AccessMethod:PublicFolder

In the above example, for tiuser1@foo.com, Availability Service will fetch free/busy from public
folders.
For cross-forest free busy between two Exchange 2007 forests, please see the discussion below.

How does AutoDiscover affect Availability Service?

Outlook 2007 discovers the Availability Service URL using the Auto-Discover service.  Auto-
Discover is like a DNS Web Service for Outlook to find various services like Availability Service,
UM and OAB.  It tells Outlook where to go for various web services such as UM, OAB and
Availability.
For Beta2, Outlook attempts to connect to auto-discover by trying two “well-known” URLs(based
on the SMTP <domain> of the user) one after another until it succeeds:
            https://autodiscover.<domain>/autodiscover/autodiscover.xml
            https://<domain>/autodiscover/autodiscover.xml
Outlook posts an XML request that includes the user’s e-mail address (and in some cases legacy
DN) that AutoDiscover uses to look up information about the user.  Auto-discover returns back
configuration information about the user and URL(s) to connect to various services.  Please note
that Outlook does not cache the AutoDiscover response but periodically makes AutoDiscover
requests.
I would like to point out that this well-known URL approach has been revised for RTM and will
change with Outlook 2007 B2TR (Technical Refresh)/Exchange 2007 RTM.

What additional functionality is provided by the Availability Web
Service?

Exchange 2007 calendaring functionality for free/busy, meeting suggestions and Out-of-Office
(OOF) depends on Availability Web Service.
 

I’ve heard I can grant granular free/busy permissions for Exchange
2007 users.  How?

You can grant granular free/busy - None, Free/Busy(default), Free/Busy with Subject-Time-
Location, and Full Details(Reviewer) permissions to users.  You can do this by going to the
Calendar Properties->Permissions Tab and selecting the kind of free/busy you want to grant.

Granular free/busy permissions

Can I write a program to directly interact with the Availability Web
Service?

Yes.  You can generate proxy classes by using the WSDL from the following location:

https://<CAS_SERVER>/ews/services.wsdl

2.Troubleshooting Availability Service

How does cross-site Availability Service work?

If a user in site1 requests free/busy for a user in site2, then Availability Service in site1 sends a
proxy requests to the Availability Service in site2, gathers the response and returns the results. 
The following slide illustrates this:

Cross-Site AS

I am using OUTLOOK 2007.  How can I tell what URL is being used 
for Availability Service?

In Outlook 2007, Ctrl-Right-click on the Outlook system tray icon.

Test Email Auto-Configuration in OL 2007

Make sure that your email address is the one entered in the E-mail Address field. Make sure that
“Use AutoDiscovery” is the only box checked and then click on “AutoConfigure”.  Progress on
each URL is displayed in the Log tab.
The retrieved settings are then displayed in the “Results” tab.

Test Email Auto-Configuration output in OL 2007

On the Exchange 2007 CAS server, you can use the following  Test-OutlookWebServices
diagnostic tool.  Please note that in Beta2, the tool is still “Work In Progress” and your feedback is
appreciated.
Test-OutlookWebServices
AutoDiscover provides Outlook 2007 with configuration information needed to connect to
Exchange.  Test-OutlookWebServices is a diagnostic task to verify that AutoDiscover is configured
properly and can service Outlook client requests.
 
The Exchange Administrator can use the Test-OutlookWebServices task to verify/troubleshoot
valid configuration for AutoDiscover, Availability Service, RPCHTTP and OAB distribution to
make sure Outlook clients can connect to Exchange services. 

The administrator can scope the test as follows:
  1. Individual user – specify the individual user in the identity parameter.

    Test-outlookWebServices
    In this case, the task picks a user(usually at the top of the list) from the current site.
    Test-OutlookWebServices -identity: user1@company.com
    In this case, the task does AutoDiscovery as user1 and makes an Availability Service request
    on behalf of user1 for user1’s free/busy.
  2. CAS server – specify the name of a CAS server in the identity.  In this case, a mailbox user
    will be randomly chosen in the same site as the CAS server.
    Test-OutlookWebServices -ClientAccessServer:”cas01.foo.com”
  3. All CAS servers in site - Administrator will enumerate CAS servers and test each one.
  4. Cross-site Availability Service – Use identity parameter to specify user in site 1.  Use target
    address to specify different user in site 2 who is target of AS request.   Reverse users to
    check that AS requests are successful from both sites. (see example below)
    Test-OutlookWebServices -identity:user1@site1.company.com
    -TargetAddress:user2@site2.company.com
    In this case, the task does AutoDiscovery as user1 and makes an Availability Service request
    on behalf of user1 in site1 for user2’s free/busy.  The request is actually proxied to cross-site
    to an instance of Availability Service in site2 and the response is returned to the requesting
    Availability Service in site1.

If no recipient is provided in the identity parameter, the task will pick a user from the current site.

The task will return information about any problems with SSL certificates.  If the task is successful
in retrieving an AutoDiscover response, it will proceed to determine the validity of the returned
service URLs.

Availability Service validation

The task verifies that a request can be successfully submitted to the  AS URL.   The response may
not contain actual data depending on the calendar permissions that have been set.  If a target
address is specified, the target address is taken from the identity parameter.  The request is made
for one day of free busy data and the data is not returned in the task output.

RPCHTTP, OAB, UM endpoint validation

For the RPCHTTP, OAB and UM URLs, the task will verify that a connection can be made.  The
presence of an OAB file is not verified, nor are the UM or RPCHHTP settings checked for
correctness.
 

The output of the task is organized as follows to make it compatible with MOM:

ID: <Event ID>
ype: Success/Error/Information/Warning
Message: The text corresponding to the event id.

Here are some common events for Auto-Discover:

ID: 1000
Type: Error
Message: If no AutoDiscover URL(s) are available – None on the SCP object and the
autodiscover.domain.com and domain.com are not reistered.

ID: 1001
Type: Warning
Message: Autodiscover can only be connected over a non-SSL connection.

ID: 1002
Type: Warning
Message: Supplied a contact’s target address to test-OLWS

ID: 1003
Type: Information
Message: The email address to be used for Autodiscover.

ID: 1004
Type: Error
Message: CLR reports a RemoteCertificateNameMismatch and the server name is not on the SSL
certificate.

ID: 1005
Type: Error
Message: All other SSL errors.

ID: 1006
Type: Warning/error/success
Message: Autodiscover was contacted but returned an error/garbage/worked. (Reports status for
Autodiscover)

ID: 1007
Type: Information
Message: The caller specified a CAS server. Test-OLWS will only use the specified CAS server.

ID: 1010
Type: Error
Message: Cannot figure out the identity provided to the task.

ID: 1011
Type: Warning/Error
Message: AS through a warning/error for a specific FB response.

ID: 1012
Type: Warning
Message: test-OLWS did not understand all of the XML returned by Autodiscover.  Usually, this
means there was a change to the Autodiscover protocol but test-OLWS was not updated.

ID: 1013
Type: Error
Message: An unknown web exception happened while contacting a URL.

I can see free/busy using OWA but not using OUTLOOK 2007.  Why?

OWA runs against the Availability Service API(s) on the CAS server.  OUTLOOK 2007 runs
against the Availability Service Web Service and relies on the Autodiscover service to find the
Availability URL.  Often times, free/busy issues in OL2007 are not related to the Availability
Service per say, but are rather an issue with Autodiscover.  In all likelihood, this is a problem with
configuration. 

You can run the following Monad commands to get more information.
Test-OutlookWebService (explained earlier)
Get-webservicesvirtualdirectory – This cmdlet returns the information for the Exchange Web
Services(EWS) virtual directory object in the Active Directory.  You can get information about the
internal and external URLs for AS (which is part of EWS).

Please read on for more details on these commands.

How can I provide a log file for OUTLOOK 2007-AS?

In outlook go to Tools->Options->Other->Advanced Options and check enable logging
Click ok and get out of the dialogs.
Now, try getting free/busy.
Open %temp% folder.
Look in the olkdisc.log and olkas\<latest log file>

A few common errors are explained here:
80072EE7 – ERROR_INTERNET_NAME_NOT_RESOLVED indicates a problem with DNS
configuration.  You could try turning off proxy resolution on your client machine or fix the proxy
settings.
80072F17 – ERROR_INTERNET_SEC_CERT_ERRORS indicates a problem with SSL
certificates.  Please see the discussion below for more details.
80072EF3 – The requested operation cannot be carried out because the handle supplied is not in
the correct state.  Generally, this is a temporary and recoverable situation.
80072EFD – ERROR_INTERNET_CANNOT_CONNECT
8004010F – MAPI_E_NOT_FOUND
0x800C82003 – Networking errors

I just configured a NLB called mail.foo.com.  How can I configure
the AS URL to be mail.foo.com?

We have a task that will let you do this.

Set-WebServicesVirtualDirectory –id:”EWS*”  -externalUrl:"https://mail.foo.com/ews/exchange.asmx” 
-internalUrl:"https://mail.foo.com/ews/exchange.asmx”

The Internal Url is used from the intranet and the external Url is used from the Internet.  If you
intend on using the same URL for both internal and external traffic, please make sure that your
DNS is properly configured to route internal traffic directly to the internal website and make sure
that the url is properly accessible both internally and externally.
Ofcourse, in order for Auto-Discover and Availability Service to work, you have to make sure that
the DNS is properly configured such that mail.foo.com and autodiscover.mail.foo.com point to the
CAS servers in the NLB.  Please also note that the step above explains the configuration for
Exchange Web Services(EWS).  EMS tasks are available to configure other services on the CAS
server such as OWA, OAB, RPC/HTTP.
You can also try and test if the URL for Autodiscover and AS is accessible by trying to access it
through a web browser such as “Internet Explorer”.  That is a good way to see if there is any
prompt for a certificate.
Please also note that there may be some configuration involved with the NLB (ISA or a third-party
load-balancer)

 

I'm having name resolution issues/DNS issues.  I cannot resolve
autodiscover.<domain> from the CAS server running Availability Service. 
Cross-forest/cross-site requests are failing.

 Ofcourse, the ideal thing to do here is understand and fix your network and DNS.  However, you can also
try the following:
1) get scp working  (only for post-Beta2 Exchange 2007)
2) add an entry to system32\drivers\etc\hosts file to redirect. eg.
<ipaddress>  autodiscover.domainanme

How can I see logging and tracing information for Availability
Service?

In order to debug free/busy failures, please look for event logs on your CAS server with Event
Source “MSExchange Availability”.
Some events that indicate configuration issues:
4001 – Availability Service could not discover an Availability Service in the remote forest.  You
need to make sure that AutoDiscover in the remote forest is working correctly.
4003 – Indicates a failure to look up free/busy information for legacy mailboxes.  This information
comes from public folders.  The root cause could be the public folders are not configured correctly
or AS has not been configured to look up public folders for the legacy mailboxes.  You may need
to run the add-AvailabilityAddressSpace cmdlet and configure AS to lookup public folders.
4004 – Unable to find a public folder server for the organizational unit.
4005 – Could not find information in Active Directory to allow cross-forest requests.  Please
configure cross-forest AS as described earlier in this document.
4011 – Indicates failure to find an AvailabilityAddressSpace object that is needed to proxy AS
request to a different forest.  Please use add-AvailabilityAddressSpace to configure cross-forest
AS as described earlier in this document.
Sometimes, it is useful to turn on tracing and send the trace logs to PSS/Exchange support.

3.   Configuring Cross-Forest Availability
Service

Cross-Forest Availability Service

Cross-Forest AS 

How do I configure cross-forest availability service?


Cross-forest availability can be across trusted or untrusted forests.  The granularity of free/busy
information is determined by whether cross-forest free/busy has been configured as per-user or
org-wide.  Per-user free/busy is possible only in a trusted cross-forest topology and makes it
possible for Availability Service to make cross-forest requests on behalf of a particular user.   This
essentially makes it possible for a user in a remote forest can grant more granular or detailed free-
busy to a cross-forest user.  On the other hand, with org-wide free/busy, Availability Service can
make cross-forest requests only on behalf of a particular organization.  With org-wide free/busy, a
user’s default free/busy information is returned and it is not possible to control the granularity of
free/busy information given to users in the other forest.

TRUSTED CROSS-FOREST
You can configure AS for per-user free/busy using the following commands:
Get-ClientAccessServer | add-adpermission -accessrights extendedright -extendedright "ms-Exch-
EPI-Token-Serialization"  -User "<remote forest domain>\Exchange CAS Servers"

On the local (requesting) CAS:
In order to configure per-user free/busy, you will need to run the following command:

Add-AvailabilityAddressSpace –forestname <remote forest> -AccessMethod PerUserFB –
UseServiceAccount:$true

If needed, you can also turn off proxy by using a key in the web.config file
(<addkey=”bypassproxyforcrossforestrequests”  value=”1”>)


To configure 2-sided cross-forest, repeat these steps in the other direction.
_______________________________________________________________
  1. (To create a Trust)
    1. Run domain.msc and raise both the domain and forest functional levels to Windows 2003.
    2. Open Properties on one domain and go to the Trusts tab. Create a 1-way(the target
      forest should trust the source forest) or 2-way forest trust between the two forests.
  2.  (GALsync)

Run Identity Integration Server to create custom recipients

    1. Requirements for running IIS: Windows 2003 Enterprise Server, .NET Framework
      1.1, SQL server SP3

    2. Create a management agent (MA) for each domain: 
      i.    type GAL sync
      ii.    select Users container
      iii.    select a target container (e.g. make an OU named ‘Contacts’)
      iv.    add the SMTP mail suffix for the domain
      v.    Tools | Options | Enable Provisioning Rules Extension
      vi.    Run -> Full Import (Stage Only), on each MA (import means import from this
      MA’s forest to the SQL database)
      vii.    Run -> Full Import and Full Synchronization, on each MA
      viii.    Run -> Export (export means export from the SQL database to this
      management agent’s forest only)
      ix.    Done!
  1. (For public folder free-busy replication)

Set up IORepl
UNTRUSTED CROSS-FOREST
On the cross-forest (target) CAS:
Set the orgwide account on the availability-config object:

set-availabilityconfig -orgwideaccount "mail.foo.com\orgwide_user" (for example)

Add the availability address space config object for the other forest. First check what the
msExchAvailabilityOrgWideAccount is on the Availability Configuration object on the target
forest - these are the credentials you need to specify with get-credential:

$a = get-credential  (enter the credentials for orgwide_user in domain mail.foo.com)

add-availabilityaddressspace -forestname <remote forest – mail.foo.com, for example>
-accessmethod orgwidefb -credential:$a

Exchange 2007 Forest -  Exchange 2003 Forest
Please make sure that public folder replication works correctly between the Exchange 2007 and
Exchange 2003 forests.
This command should be run as a one-time setup step on any server in the Exchange 2007 forest:

Add-AvailabilityAddressSpace -ForestName:<forest name e.g.
foo.com> -AccessMethod:PublicFolder

How does AS determine which Exchange 2003 server (PF server) to
issue the free/busy request to?

The OU is obtained from the legacy dn of both the server and the user.   The users in a AS request
are grouped according to their admin group (sam e as OU in legacy Exchange).  AS uses the
legacydn of the servers to bucket the PF(s) and then uses the user’s legacydn to key into the PF
bucket.
 
In Beta-2, AS will try only the first PF in the list.  For RTM, AS is making this functionality more
robust by trying other servers in the list if there was an exception looking up free/busy information
on the first public folder server.  The workaround for this issue in Beta2 is to make sure all public
folders have S+ Free/Busy information replicated.

Please refer to the following KB articles for more details about Schedule+ Free Busy folders:

 
http://support.microsoft.com/kb/813152/en-us
http://support.microsoft.com/kb/322196/en-us
 

4.   Configuring SSL/Certificates to make
Availability Service/Autodiscover work

Can anyone give me a simple explanation for how Autodiscover
would typically be deployed? Do I really need two autodiscover
sites?  If so, why?  What is the deal with the self-issued cert?  If a
customer was to deploy this, would they typically get rid of the self-
issued cert and replace it with a cert from a trusted CA (Verisign,
Thawte, etc)?

Autodiscover can be deployed off the same site as other exchange services
(domain.com/autodiscover) or a separate site (autodiscover.domain.com/autodiscover). If your
email domain and your organization's public site are the same and the public site is highly trafficked,
then you may not want to host autodiscover off the org's public site. Hence a separate
namespace/site is recommended for autodiscover service.

Based on your deployment scenario, you can have a single site or two sites. If you include a
firewall, like ISA, into the equation, the FW will have the 2 listeners (one for autodiscover and the
second one for the other exchange services such as owa, ews, sync, etc) and certs assigned to it.
The CAS servers can be configured with one site on it with a cert that includes both namespaces
(using subject alternate name in the certificate). Find attached diagram which depicts this.

It is not recommended to run external sites with self-signed certs, so customers would use certs
from a trusted CA. One can leave the self-signed cert on the machine, but the services can be
updated to use the new certificate.

new-ExchangeCertificate creates certificates or cert request.  Enable-ExchangeCertificate assigns
an existing cert to various services. We would expect most orgs to use cert issued by internal CAs
on the intranet sites.

I have a Exchange 2007 CAS server and I run Auto-Discover, OWA and EWS on that server.
How can I get AutoDiscover and Availability Service to work because I will need separate
certificates for autodiscover.foo.com and myapps.foo.com(URL for EWS/Availability Service).

It is possible to get a certificate working with more than one machine/host name – and thus a single
ISA listener and a single IIS web site.  The way this is done is by adding additional DNS names to
a certificate’s “Subject Alternative Name” property. 

As an example, here’s a cert from one of our servers – SSL works for any of the host names listed
below:

Certificate

Since you need to get certificates for Internet-facing connections from a trusted 3rd party Certificate
Authority the question is whether you can get your CA to issue you such a cert.  You could ask –
or if you’ve got a good relationship with them, you could generate a cert request and see if they’ll
give you a properly formatted certificate with the extra Subject Alternative Name values.

Assuming you can get such a certificate, the work on your side would be to create a proper
certificate request.  We added tasks to Beta 2 to do just this.  On your ISA server, you’ll likely
need to map myapps.foo.com and autodiscover.foo.com.  (I’m guessing you have Internet DNS
entries that point to an IP address for this.)  On your CAS server, you’ll probably need
myapps.foo.com, autodiscover.foo.com, machine1.corp.foo.com
and maybe machine1.

To create a certificate request from E2007 Beta 2 MSH command line for the Internet
hostnames/ISA server:

new-ExchangeCertificate –generaterequest –base64Encoded:$true -domainname
myapps.foo.com,autodiscover.foo.com -filepath c:\certreq_internet.txt


for the intranet/CAS hostnames:
new-ExchangeCertificate -generaterequest –base64encode:$true
-domainname myapps.foo.com,autodiscover.foo.com,
machine1.corp.foo.com, machine1 -filepath c:\certreq_intranet.txt


For the intranet/CAS certificate, you should be able to cut ‘n’ paste the request on one of your
trusted organizational Windows Certificate Servers via the “Advanced Certificate Request” web
page, where it says “Submit a certificate request by using a base-64-encoded CMC or PKCS #10
file, or submit a renewal request by using a base-64-encoded PKCS #7 file.” 

You’ll get back a .CER file that you can import to each machine. 
On the ISA server, you’ll need to import the cert following usual steps. 
On the CAS server, you can do the following to import and assign certificates to CAS services:

import-exchangecertificate -path c:\certificate.cer |
enable-exchangecertificate -services iis,pop,imap

5.   What is changing post-Beta2

So, if I understand correctly, in order to get Outlook2007/Exchange
2007 free/busy to work correctly, I need to buy a certificate and
make sure it works?  I just have a test deployment and don’t want
to buy certificates at this time.

Yes, we realize the limitation of this design.  So, with Outlook 2007 B2TR (Technical Refresh for
Beta2), it is possible to use self-signed certificates if you are running Outlook 2007 on domain-
joined machines.  When running on the Intranet, OL2007 will ignore certificate mismatches.

Outlook 2007 depends on being able to find the Autodiscover service to use many new features in
Exchange 2007.  Unfortunately, Autodiscover doesn’t work out-of-box for intranet or Internet
clients.   This means that features that make Exchange2007 shine, like the Availability Service and
OOF++ will not be used by Outlook out-of-box.

To get these working, a successful E12 deployment requires that an Autodiscover service be
locatable in DNS, based on the extracting the domain from an Outlook 2007 user’s e-mail address
– e.g. exchange.microsoft.com or autodiscover.exchange.microsoft.com from
tmyerson@microsoft.com.  Along these lines, customers are familiar with configuring Internet DNS
to get outside mail flowing to their org and exposing their org’s OWA and Server ActiveSync on
the ‘Net.  Reusing or setting up an additional Internet host records for Internet access to
Autodiscover will happen in due course.
 
When a user runs Outlook 2007 on the intranet however, his client will resolve an Internet host
like autodiscover.microsoft.com – and the request for there is a good chance the user will be
prompted for credentials if she is proxied via anything less than ISA Server 2004.  The current
solution to this problem is for administrators to create a Host or Alias record in their internal DNS
that points to the internal IP address or addresses or Client Access Service hosting the
Autodiscover server.  Customers do not generally need to configure internal DNS to get mail
flowing inside their organizations.

The complexity of manual steps required for DNS-based deployment means that customers will
need help to get Autodiscover working – and more help to keep it working.  Each new recipient
domain (microsoft.com, exchange.microsoft.com, windows.microsoft.com) means an additional,
manual DNS change is required.

We’ve been brainstorming ways to eliminate Autodiscover’s dependency on DNS in the intranet,
as it is very unlikely that we will be able to make an intranet DNS-based solution work out of the
box in a large number of customer deployments.   The ongoing maintenance of this solution will
become an administrative burden.
 
Once Outlook is able to connect to the Client Access Server hosting the Autodiscover service as
well as the Availability service – there’s the problem of encrypting the pipe.  In most out-of-the-box
cases, Exchange will configure self-signed certificates to use for SSL and these will cause Outlook
to prompt the user about a misconfigured server.  Users will either be alarmed by or be trained to
ignore the prompt – resulting in many helpdesk and PSS calls.
 
As well, the current DNS-based solution poses problems for Exchange hosting organizations that
have dozens or hundreds of e-mail domains – deploying an SSL certificate for each one of these is
not only cost-prohibitive, but also error prone.

We can make the Autodiscover service work reliably out of the box on our customers’ intranets –
by having clients search the Active Directory (AD) for Autodiscover “Service Connection Points.”
   See the
MSDN reference on this topic.  Established precedents for using Service Connection
Points in exactly this way exist – intranet discovery of Microsoft UDDI Registry, SQL Server, AD
Application Mode (ADAM), Internet Authentication Service (IAS), etc. – and confirm the validity
of this option.
  
The change to Autodiscover deployment is as follows:

1.      At CAS setup time, Autodiscover setup must correspondingly look for or create a Service
Connection Point (SCP) object, under the container:


CN=Autodiscover,CN=Protocols,CN=<CAS_SERVER>,CN=Servers,CN=Exchange Administrative Group,CN=Administrative Groups,CN=First Organization,CN=Microsoft Exchange,CN=Services, [Configuration Naming Context]
where:
a.       objectCategory=Service-Connection-Point
b.       cn=[machine physical FQDN]
c.  serviceClassName=Exchange Autodiscover
d.  Keyword={77378F46-2C66-4aa9-A6A6-3E7A48B19596}
If found, this is the object to update as it contains the forest’s authoritative list of Autodiscover
service URLs.  If not, then the object should be created in this location, with the
serviceBindingInformation attribute set to:
https://[machine physical FQDN]/autodiscover/autodiscover.xml
Where [machine physical FQDN] is the server’s ComputerInformation.
PhysicalFullyQualifiedDomainName value.  This value is the physical DNS name of the machine.
Administrators may at a future time change this value to match the NLB name of the machine.

2.      Ensure before saving the object that the well-known Authenticated Users account has
effective “read” permission to the object or log a warning, as this will mean that not all users will be
able to search for and read the item.

3.      CAS Uninstall must look up and remove the object added, and if no CAS server is left,
delete Autodiscover container.

 Please use the following cmdlet to export your SCP settings to another forest:

export-AutoDiscoverConfig

For example: 

[MSH] $a=Get-Gredential
At this point, the admin should use the username and password for the account with necessary rights for the target forest:

Export-AutoDiscoverConfig –TargetForestDomainController dc-01.corp.contoso.com -TargetForestCredentials $a -MultipleExchangeDeployments:$true

Here is a slide that illustrates how Autodiscover will work with the SCP changes:

AutoDiscover using SCP

 

Attachments

NameVersionSizeDateUser
OofTrace.zip194168/21/06 1:31 PMashishco
OOF Trace

Site

Changes
Index
Search

 

User

 

Log In
Register

 
 

Last Modified 6/16/07 6:16 PM