Check your server versions before starting. This integration works with Exchange Server 2010 or 2013, running on Windows Server 2008 or newer. Exchange 2016 is not yet supported. It also requires .NET Framework 3.5.
If you are running Exchange Server 2007, see the Exchange Server 2007 Instructions
Make sure you have installed ASP.NET 3.5 support for IIS. You can do this, for example, by running the following PowerShell commands:
Import-Module ServerManager Add-WindowsFeature Web-Asp-Net
This integration communicates with Duo’s service on TCP port 443. Also, we do not recommend locking down your firewall to individual IP addresses, since these may change over time to maintain our service’s high availability.
Try setting your application’s “New user policy” to “Allow Access” while testing. Users that Duo knows about will be prompted to authenticate with Duo, while all other users will be transparently let through.
Users that have a phone (or hardware token) associated with them will see the authentication prompt. All other users will be able to add their phone through Duo’s self-service enrollment (see Test Your Setup).
Then (when you’re ready) change the “New user policy” to “Require Enrollment.” This will prompt all users to authenticate (or enroll) after they type in their usernames and passwords.
You will need to run the Duo Security installer package on each of your Microsoft Exchange Server instances on which you have installed the Client Access Server role. The installation process varies slightly depending on how many Client Access Servers you have.
Launch the Duo Security installer MSI from an elevated command prompt (right-click “Command Prompt” and select the “Run as Administrator” option). Accept the license agreement and continue.
Enter your integration key, secret key, and API hostname when prompted.
If you leave the “Bypass Duo authentication when offline” box in the Duo installer checked, then your users will be able to logon without completing two-factor authentication if the Duo Security cloud service is unreachable. If that box is unchecked then all OWA login attempts will be denied if there is a problem contacting the Duo service.
If you only have one Exchange Server running the Client Access Server role, select the option to automatically generate a new key. However, if you have multiple Client Access Server servers then you should manually generate a random string at least 40 characters long, and use the same string as the session key during installation on each of the servers.
For example, you could use the following PowerShell commands to generate a suitable session key:
$bytes = new-object "System.Byte" 30 (new-object System.Security.Cryptography.RNGCryptoServiceProvider).GetBytes($bytes) [Convert]::ToBase64String($bytes)
To test your setup, log into OWA. Duo’s enrollment or login prompt should appear after you enter your username and password: