Office 365 integration with PingFederate

Introduction

Office 365 is Microsoft’s cloud-based Office solution. Out of two variants of Office 365 that Microsoft offers (desktop option, where users have Office applications (e.g.: Word, etc) installed locally on desktops, but documents and files are stored in the cloud; and a web client, where both documents and applications are stored in the Cloud.

SSO using PingFederate to O365 can be accomplished multiple ways: PingFederate with SAML, PingFederate with WS-Federation/WS-Trust, or an O365 SaaS Connector. In this below exercise, we will use SAML 2.0. 

Objectives

Good to Know

Pre-Requisite

Steps to follow at PingFederate

Create a PingFederate SP connection for Office 365:
  • Download the Office 365 SAML metadata from https://nexus.microsoftonlinep.com/federationmetadata/saml20/federationmetadata.xml
  • Configure using Browser SSO profile SAML 2.0.
  • Import the metadata from the downloaded Office 365 metadata file.
  • Enable the following SAML Profiles:
    • IdP-Initiated SSO
    • SP-Initiated SSO
    • SP Initiated SLO
    • In Assertion Creation>Authentication Source Mapping>Attribute Contract Fulfilment, extend the contract to add the following

    Attribute

    Description

    SAML_SUBJECT

    The value of this assertion attribute must be the same as the Azure AD user’s ImmutableID.

    IDPEmail

    Pass this attribute value in assertion as the O365 UPN value of the user.

    SAML_NAME_FORMAT

    Map this attribute value to this text: urn:oasis:names:tc:SAML:2.0:nameid-format: persistent

    • In Protocol Settings>Allowable SAML Bindings, enable POST and REDIRECT
    • In Protocol Settings>Signature Policy, select Always Sign Assertion
    • In Credentials>Digital Signature Settings, select the PingFederate signing certificate
      • If a signing certificate is not created, create one at PingFederate under Security>Signing
    • Decryption keys and certificates
    • Save the configuration
    • Export the signing certificate
    • Export and then open the metadata file and copy the values for:
      • the entityID.
      • SSO URL(https://<your value>/idp/SSO.saml2)
      • SLO (https://<your value>/idp/SLO.saml2)

Example:

Steps to follow at Office 365

Run Windows PowerShell Command Prompt window (run as administrator) on any internet connected computer.

  • Run command: Install-Module MSOnline
  • Enter $cred = Get-Credential.
    • Enter the username and password of your Office 365 administrator account in the pop-up
  • Connect with MsolService.
    • Connect-MsolService -Credential $cred
  • List your domains.
    • Get-MsolDomain
  • Select the domain for which you would like to enable SSO.
    • $dom = “<Your O365 domain>”

Set the PingFederate metadata details in the Office 365 configuration as below:

  • Set the uri parameter to the PingFederate entityID value.
    • $uri = “<Your entityID>”
  • Set the url parameter to the PingFederate Location for SSO value.
    • $url= “<Your Passive Log on Uri>”
  • Set the logouturl parameter to the PingFederate Location for SLO value.
    • $logouturl= “<Your Log Off Uri>”
  • Open the downloaded signing certificate in Notepad, copy the encoded contents, and paste them into the command below to set the certificate parameter.
  • $cert= “<Your certificate contents>”
  • Run the following command to setup SAML SSO for your domain
  • Set-MsolDomainAuthentication -DomainName $dom -FederationBrandName $dom -Authentication Federated -PassiveLogOnUri $url -SigningCertificate $cert -IssuerUri $uri – LogOffUri $logouturl -PreferredAuthenticationProtocol Samlp
  • Run the following command to see the completed SSO settings
    • Get-MSolDomainFederationSettings -DomainName “<Your O365 domain>” | Format-List *
Example:

Test the configuration

Test the PingFederate IDP-initiated SSO integration:
  • Go to the PingFederate SSO application endpoint for the Office 365 SP connection
    • Example: https://osboxes:9031/idp/startSSO.ping?PartnerSpId=urn%3Afederation%3AMicrosoftOnline
  • Complete PingFederate authentication
  • You’re redirected to your Office 365 domain
Test the PingFederate SP-initiated SSO integration:
  • Go to https://portal.office.com
  • Enter your email address
  • After you’re redirected to PingFederate, enter your PingFederate username and password
  • You’re redirected back to Office 365
Raghul Chandrasekar

Raghul Chandrasekar

To help build a company along with passionate and driven people is one of the most satisfying things and I got the opportunity to do that at Trevonix.