Exchange ActiveSync Provisioning
Exchange ActiveSync
Provisioning
EAS Provisioning is a means
to download and apply devices on an activesync device.
The provisioning process on a client will generally occur when the server
requests
that the provisioning is necessary. If a client specifically requests
provisioning, this
will take extra bandwidth that is not needed, not only because provisioning may
not
be necessary. The provisioning process is a 4 phase process and is not merely a
request/response 2-step process as are other activesync commands.
Let's see how this process
occurs:
A client wants to
synchornize the entire folder hierarchy (grab every folder in the mailbox).
The client will issue a FolderSync command with a SyncKey of 0 (sync folder
hierarchy).
Once this happens the server will kick back a status code of 449 indicating to
the client that
the server does not accept the client's command because it feels as it does not
have the
latest policy. Therefore, the client will then issue a Provision command. In
response, the
server will kick back a response with a temporary SyncKey. The corporate policy
is also provided along with this synckey. Once the client applies the policies
requested by the
server, the client will send back another Provision command with the temporary
SyncKey
in the request. This is a receipt that informs the server that we accepted the
policies and have applied them. In response, the server sends the client a
"final key" that will be used
for all subsequent commincations. Thus, the client can reissue the foldersync
command with
the final sync key and all should work well.
Here is an overview of the
process:
1. Client attempts command /
server responds with status code 449.
2. Client sends provision / server responds with temp key
3. Client sends temp key / server responds with final key
4. Client reissues failed command / server responds successfully
It's also important to note that the synckey is not a guid of any kind, it is a
unique random integer presented to the client as a string. It is up to the
client to store this synckey after
receiving the final key from the server. It *will* be necessary to re-provision
again sometime
in the near future, so the client has to be constantly looking out for the
status code 449.