Get Certified at TechEd 2010 North America

Wednesday, February 24, 2010


Special news for TechEd 2010 North America attendees!

Pre-register to take a certification exam at Tech·Ed before June 5, and take advantage of special exam fee discount offers:
  • 50% off the regular price of $125 – a $62.50 savings!
  • Sign up to take multiple exams while at TechEd and receive a volume discount
Pre-registration details will be available soon on the new TechEd certification web site, http://northamerica.msteched.com/certification

Get your geek on and get studying!
Read more ...

How to Securely Deploy iPhones with Exchange ActiveSync - Phase 1 - Building the CA

Tuesday, February 23, 2010
This is the second post in my series, How to Securely Deploy iPhones with Exchange ActiveSync in the Enterprise.  To read an overview of the solution click here.  In this phase, we will create a new certificate server and generate the user certificate that will be used for ActiveSync authentication.  This single certificate will be installed on iPhones and published in Active Directory.

If your organization already has a certificate server, you can use it to create a user certificate, as specified later in this article.  In this soup-to-nuts series I will explain how to create a new stand-alone Windows Server 2008 R2 CA (Certification Authority) for this purpose.

Build a Windows 2008 R2 Certificate Server
Begin configuring the Windows Server 2008 R2 server by installing the Active Directory Certificate Services role.  This can be a new, single-purpose server or one already deployed in your organization.  Contrary to the role name, this is the role to install even if the server is not a member of an Active Directory domain (a workgroup server).  Select the following Role Services when installing the ADCS role:
  • Certification Authority
  • Certification Authority Web Enrollment (this will also install Web Server (IIS) and all necessary components)
If the server is a member of a domain, you can choose whether to install the CA as an Enterprise or Standalone (non-domain based) CA.  For our purposes, it really doesn't matter which one you choose.  However, if you're planning out a full PKI (which I highly recommend) you should select the CA type that's appropriate for your organization.  For this article, we'll make it a standalone Root CA.

Create a new private key and use the default cryptographic service provider (CSP) and key length (2048).  Supply a common name for the CA, such as W2K8R2-CA.  Note that the default validity period for certificates generated by a Windows Server 2008 R2 CA is 5 years.  Set this value for as long as you'd like.  Consider the fact that the certificate will have to be replaced on the iPhone and in AD when it expires.  I set my validity to 10 years.

Continue through the Add Roles Wizard, accepting all the default settings.  Note that the name and domain settings of the server cannot be changed after Certification Authority has been installed.  Click Install to complete the installation.  No reboot is required, but it is recommended that you run a Windows Update to ensure that the binaries are up to date.

Configure the Certification Authority to Use SSL
In order to request certificates using the web interface, you must enable SSL on the CA's web server.  Open Internet Information Services (IIS) Manager in Administrative Tools.  Select the server name and open the Server Certificates feature.  Select Create Self-Signed Certificate in the Actions pane and supply a friendly name for the certificate, such as "CA Server".

Next, expand Sites and select the Default Web Site.  Click Bindings in the Actions pane and add HTTPS, using the new self-signed certificate, as shown below.


Now select the CertSrv virtual directory under Default Web Site and open the SSL Settings feature.  Select Require SSL and click Apply.

A Word About Certificate Revocation
Certificates can be revoked by the CA Administrator.  When the certificate is revoked, it can no longer be used for its intended purpose.  A revoked certificate is added to the Certificate Revocation List (CRL) which is usually hosted on the CA server.


Important - When ActiveSync uses client certificates, Exchange ActiveSync 2007/2010 requires confirmation from the CA that the user certificate has not been revoked.  This happens before Basic authentication is attempted.  If the CRL is not available, ActiveSync will assume that the certificate has been revoked and the user will not be able to use ActiveSync.  You must ensure the CRL (typically, the CA server) is always online and available.  For this reason, I recommend virtualizing the CA to provide greater flexibility.


Unless you configure the Online Responder role service which uses the Online Certificate Status Protocol (OCSP), the CA will use a Certificate Revocation List (CRL) to obtain the revocation status of the X.509 user certificate.

OCSP has replaced the traditional CRL file used in the past. It performs much better and has a lower network cost. Complete details about OCSP can be read here.  For the purposes of this article (and brevity), we'll be using a CRL, which requires no further configuration.

Generate a User Certificate
Now we are ready to generate a user certificate from the certificate server.  This is a two-step process where a request is submitted and then approved, creating the certificate and its private key.

Requesting the User Certificate
You make the certificate request using Internet Explorer directly from the CA.  Go to https://servername/certsrv and click Request a certificate.

Click Advanced certificate request and then Create and submit a request to this CA.  Click Yes to the Web Access Confirmation warning to allow the website to perform a digital certificate operation on your behalf.  Complete the certificate request as shown, using your organization's information.

Note: Some reverse proxy servers and firewalls do not allow spaces or special characters in the certificate name or friendly name.  For this reason, I recommend using a simple short name for the user certificate to prevent problems.

Once you submit the certificate request, it must be issued by the CA administrator (probably you).  To issue the certificate, expand the Active Directory Certificate Services role in Server Manager > CA server name > Pending Requests.  Right-click the pending request ID and select All Tasks > Issue to issue the certificate.

Now you need to install the new user certificate using the ADCS website.  Click View the status of a pending certificate request from the Home page and then click the certificate request you generated earlier, as shown below.

Click Yes to the Web Access Confirmation warning to allow the website to perform a digital certificate operation on your behalf and then click Install this certificate.

The user certificate and private key will be installed in the user's (your) Personal certificates store.  It now needs to be exported, both with and without the private key.  The certificate with the private key will be imported into the iPhone and the other will be published to the user account in Active Directory.

Exporting the Certificates
In Internet Explorer, click Tools > Internet Options > Content > Certificates.  You will see the new user certificate in your Personal certificate store.  Select the certificate and click Export.  Follow the default settings in the Certificate Export Wizard, but make sure you select Yes, export the private key and Include all certificates in the certification path if possible.  Supply a password for the certificate.  You will need this password to import the certificate for other Mobile Messaging Administrators in the future.  Browse to the folder of your choice and name the file ActiveSyncUser.pfx.

Now export the user certificate again, this time choosing No, do not export the private key.  Browse to the folder of your choice and name the file ActiveSyncUser.cer.  This certificate will be published later to the ActiveSync user accounts in Active Directory.

Lastly, we need to export the CA's root certificate.  This will be imported into the Trusted Root Certification Authorities certificate store on the Exchange CAS servers so they can trust the user certificate, since it's self-signed.  Click the Intermediate Certification Authorities tab and select the CA's certificate, as shown below.

Click Export and follow the Certificate Export Wizard, selecting all the defaults.  Browse to the folder of your choice and name the file RootCA.cer.

We now have a working CA server, a user certificate with and without the private key, and the Root CA certificate.


This concludes Phase 1 of my series, How to Securely Deploy iPhones with Exchange ActiveSync in the Enterprise - Phase 1 - Building the CA.  The next phase will cover how to configure the Exchange Client Access Servers for ActiveSync using client certificates.

Other articles in this series:

Read more ...

How to Securely Deploy iPhones with Exchange ActiveSync in the Enterprise

Friday, February 12, 2010
I've been working on a solution for quite a while to securely deploy iPhones in the enterprise.  

This solution should work exactly the same way on the Apple iPad and should port over fairly easy to the Droid and other non-Microsoft ActiveSync-enabled phones, with some minor changes.


Update: I've tested these procedures on iPhone OS4 and everything works as expected. No changes need to be made to the existing procedures - it all works fine.


I'll be writing a 7 part series of articles that document all the steps. I'm sure there are other ways to do this, but I can assure you, none of them are documented. (Hint to Apple: This is not documentation, and neither is the iPhone Enterprise Deployment Guide.)

In the scenario I'll be documenting, the customer wants to configure Exchange ActiveSync to provide mobile access to email, calendars and contacts for iPhone users.  To make it more challenging (and slightly more complicated), the customer has Exchange 2003 mailbox servers with Exchange 2007 or 2010 Client Access Servers.

The requirements for deployment are such:
  • Only authorized ActiveSync users can access their Exchange email, contacts and calendars
  • Only authorized devices (iPhone 3GS or better, iPads) are allowed to use Exchange ActiveSync
  • Ability for users to configure/reconfigure ActiveSync for their iPhones over the air
  • Information stored on the iPhone must be encrypted
  • Capability to remotely wipe iPhones in the event of a security breach (wipes performed by end user or authorized administrator)
  • Easy roles-based administration
Summary of the Solution
ActiveSync will be configured to use Basic Authentication over SSL and require client certificates. An iPhone configuration profile will be created and "married" to each iPhone, preventing it from being used on any other iPhone than the one it is configured for. The profile will include the user certificate and its private key.  ActiveSync policies will be used to configure the iPhone to comply with corporate security policies.

The next step is to publish the same user certificate to each ActiveSync user in Active Directory. This will be used to enable certificate-based authentication for ActiveSync. I'll list a few ways that this can be done programmatically via scripts.

Finally, the user needs a way to install the profile. This will be done using a website that the user will open using Safari from the iPhone.



The solution requires a certificate of authority (CA) server that can generate a single user certificate. The CA can be an internal stand-alone or ADCS CA server. I prefer Windows Server 2008 R2 ADCS for the CA, but any CA will do.

More to Come...
I'll break each of these steps down in separate phases. There's a fair amount of detail in each step and I'll include troubleshooting and gotchas as I go through it, but this has worked out be a secure and easy to manage solution.


Articles in this series:
I've also created a complete PDF document version of all the phases here.
Read more ...

The (Nearly) Final TechEd 2010 Bag

Wednesday, February 10, 2010
Here's a photo of the almost final version of the bag for TechEd 2010.

Looks fairly stylish, if a bit narrow, but I like the neon green accents as long as they don't over-do it.  Let's hope that water bottle on the side doesn't contain chemicals known to the state of Louisiana to contain carcinogens.

Thanks to Rob Nicolai for the preview!

What do you think?  Post a comment below.

Oh, and congratulations to the Saints!  I'm sure New Orleans will celebrating their Super Bowl victory when we get there in June.
Read more ...

Allowing a Service Account to Manage Its Own Service Principal Name (SPN)

Wednesday, February 10, 2010
As a best practice, Microsoft recommends that SQL Server be run using a domain account. This account is sometimes referred to as the SQL service account. However, when you configure SQL with a domain account you will get an event in the SQL Logs:
The SQL Server Network Interface library could not register the Service Principal Name (SPN) for the SQL Server service. Error: 0x2098, state: 15. Failure to register an SPN may cause integrated authentication to fall back to NTLM instead of Kerberos. This is an informational message. Further action is only required if Kerberos authentication is required by authentication policies.
Doing a Google or Bing Search takes you to multiple MSDN articles that have you running SETSPN to assign the SPN to the domain account that SQL server is using. This can be time consuming and subject to typos and other errors. If you don't set the SPN properly, Kerberos Authentication will not work and that stops pass through authentication from working.  See this article from the Microsoft SQL Server Protocols team for more information.

A simple and easier way to fix this is by using Active Directory Users and Computers to assign the Write Public Information permission to Self on the domain account that SQL is using, as shown below:

If you do this before installing SQL, no restarts are needed. If SQL Server is already running then you will need to restart SQL Server.

After applying this fix you will find the following event in the SQL Logs:
The SQL Server Network Interface library successfully registered the Service Principal Name (SPN) [ MSSQLSvc/servername.domain.com ] for the SQL Server service.
This will allow SQL to register the SPN on start up, and un-register the SPN on shutdown. It also helps when you remove a SQL server from the domain, in that when you shutdown SQL the SPN is unregistered, thus helping to keep your AD database cleaner.

You can also apply this method to other services that use a SPN and you are using a domain service account to run that service.

Special thanks to my colleague, Rick Romack, at Convergent Computing for this tip!
Read more ...

View the TechEd 2010 Mobile Site

Wednesday, February 3, 2010
The Microsoft TechEd Team has created a TechEd mobile site designed in three versions to best suit your mobile device.

Large screen site
(320 plus pixels)
Recommended for unlimited data plans and WI-FI, such as the iPhone

Medium screen site
(240 plus pixels)
Recommended for all current devices

Small screen site
(120 plus pixels with low data weight)
Recommended for older devices and where data download is at a premium
Read more ...

Welcome to the New EXPTA {blog}

Monday, February 1, 2010
I hope you like the new template.  Please post a comment below if you have any problems viewing or using any of the new design elements.  I tested the new template using browsershots.org and it looks fine in most common browsers.
Read more ...