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.

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

Internet Information Services (IIS) Manager Select the local server Select Server Certificates Open Feature (actions panel)



Click(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 Change the Bit Length to 2048 Next

Click Select a location for the request file Finish



Click



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

Close

NOTE: All green check marks mean everything is setup correctl

ClickAll 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 W indows Azure Active Directory Module for Windows PowerShell and Right 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 $cred



Set the MSOL ADFS Context server, to the ADFS server

Set-MsolADFSContext –Computer adfs_servername.domain_name.com

Convert the domain to a federated domain

Convert-MsolDomainToFederated –DomainName domain_name.com



Successful Federation

Successfully updated ‘ domain_name.com ‘ domain.

V erify 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)

