This post will walk you through a typical highly available setup into Office 365. Ideally this server will be installed as virtual servers on multiple Hyper-V hosts. Think about redundancy, not only in the virtual servers, but in the Hyper-V servers as well. Install one AD FS and one AD FS Proxy on one Hyper-V host and the other AD FS and AD FS Proxy on another Hyper-V host. This prevents loss of service from a hardware failure. Keep in mind that once you are using Single Sign-on with Office 365, you rely on your local Active Directory for authentication. Both video and printed steps have provided to ease your implementation of AD FS and SSO.
Prerequisite
NOTE:This step-by-step walk you through this scenario via Windows Server 2012 R2. This solution will also work with 2016 and 2019 with slight modifications. An update to this post will be shared in the coming months.
- Download Windows Server 2012
- Download Hyper-V Server 2012
- Should you not have access to a lab, follow this Step-By-Step to setup your own lab
Prepare the Base Servers AD FS Server
- Base build the AD FS server with Windows Server 2012
- Setup a connection to the internal network
- Add the server to the local domain
- Update the server with all Windows Updates
AD FS Proxy Server
- Base Build the AD FS Proxy server with Windows Server 2012
- Setup a connection to the DMZ network (verify connectivity to the AD FS server on port 443)
- DO NOT add the server to the local domain
- Update the server with all Windows Updates
Directory Sync Server
- Base build the Directory Synchronization server with Windows Server 2012
- Setup a connection to the internal network
- Add the server to the local domain
- Update the server with all Windows Updates
Setting up AD FS requires the use of a third party SSL certificate. In a production situation, I would recommend that a single name SSL certificate. Wildcard and multi-name certificates will work, but I like to keep things simple and use a standard SSL certificate in a production situation. Make sure that the common name matches what you plan to call the AD FS server farm. Microsoft best practices recommends that you use the host name, STS (secure token service). In the example below, I have used the value sts.domain.com.
Create the SSL Certificate Request (CSR)
Open Server Manager
Click Tools
Click Internet Information Services (IIS) Manager
Select the local server
Select Server Certificates
Click Open Feature (actions panel)
Click Create Certificate Request
Fill out the certificate request properties. Make sure that the common name matches what you plan to call the AD FS server farm. Microsoft best practices recommends that you use the host name STS (secure token service). In the example below, I have used the value sts.domain.com.
Click Next
Leave the Cryptographic service provider at the default
See AlsoImplementing Active Directory Federation Services step-by-stepKonfigurieren Sie die AD FS-Unterstützung für die Benutzerzertifikat-AuthentifizierungEs ist ein Problem beim Zugriff auf den Websitefehler von AD FS aufgetreten. - Microsoft 365Häufig gestellte Fragen zu den Active Directory-Verbunddiensten (Active Directory Federation Services, AD FS)Change the Bit Length to 2048
Click Next
Select a location for the request file
Click Finish
Fulfill the Certificate Signing Request (CSR)
We need to take the CSR generated in the last step to a third party SSL certificate provider. I choose to use GoDaddy. Here are GoDaddy’s instructions to fulfill the CSR at their site – Requesting a Standard or Wildcard SSL Certificate. Once the certificate is issued, download the completed CSR to the AD FS server.
Complete the Certificate Request (CSR)
Open Server Manager
Click Tools
Click Internet Information Services (IIS) Manager
Select the local server
Select Server Certificates
Click Open Feature (actions pane)
Click Complete Certificate Request
Select the path to the complete CSR file that you competed and downloaded from the third party certificate provider
Enter the friendly name for the certificate
Select Personal as the certificate store
Click OK
The certificate will be added
NOTE: The certificate shown below is a multi-name SSL certificate for my lab environment. When your certificate is added, it should show sts.domain.com, which matches the request.
Assign the Completed SSL Certificate
Now that we have the third party certificate completed on the server, we need to assign and bind it to the default website (HTTPS port 443).
Expand the local server
Expand Sites
Select Default Web Site
Click Bindings (actions pane)
Click Add
Change the type to HTTPS
Select your certificate from the drop down menu.
NOTE: The certificate shown below is a multi-name SSL certificate for my lab environment. When you select your certificate, it should show sts.domain.com, which matches the competed certificate.Click OK
Click Close
Close IIS Manager
Now that we have the required software installed and the certificate in place, we can finally configure the AD FS role and federate with Microsoft.
Configure Local AD FS Federation Server
Open Server Manager
Click Tools
Click AD FS Management
Click AD FS Federation Server Configuration Wizard
Create a new Federation Service
New Federation Server Farm – Choose this option all the time, even if you only plan on deploying one server. If you choose Stand-alone federation server, then you won’t be able to add more servers.
Click Next
SSL Certificate – This should be pre-populated. If it isn’t, go back and assign/bind the third party certificate to the default web site
Federation Service Name – This should match the SSL certificate name
NOTE: Since a multi-name certificate is being utilized in this lab environment, the SSL certificate name and Federation Service name don’t match. This is not recommended for production environments. Best practice is to always use a single name certificate.
Click Next
Enter the AD FS service account name and password
Click Next
Click Next
Click Close
NOTE:All green check marks mean everything is setup correctl
Configure Federation Trust with Office 365
Now that we have our side of the federation setup, we can complete the federation with Office 365
Open the Desktop on the AD FS server
Locate Windows Azure Active Directory Module for Windows PowerShell andRight Click and Run As Administrator
Set the credential variable
- $cred=Get-Credential
Enter a Global Administrator account from Office 365. I have a dedicated tenant (@domain.onmicrosoft.com) service account setup for AD FS and Directory Synchronization
Connect to Microsoft Online Services with the credential variable set previously
Connect-MsolService –Credential $credSet the MSOL ADFS Context server, to the ADFS server
Set-MsolADFSContext –Computer adfs_servername.domain_name.comConvert the domain to a federated domain
Convert-MsolDomainToFederated –DomainName domain_name.comSuccessful Federation
Successfully updated ‘domain_name.com‘ domain.Verify federation
Get-MsolFederationProperty –DomainName domain_name.com
This completes the setup for federation to Office 365. Keep in mind that before you can successfully use single sign-on with Office 365, you will need to setup and configure Directory Synchronization. After Directory Synchronization is setup, you will have to license the synchronized user in Office 365. This will provision the services for the user. If they want to access Office 365 from outside the internal network, the AD FS Proxy server needs to be setup and configured.
(NOTE: This post was originally published on CANITPRO.NET and was co-authored by MVP Kelsey Epps)