Integrating ADFS 2.0 and 3.0 with OAM: Pre-Requisites

This article describes how to integrate OAM (11.1.2.2.0 or later) with ADFS 2.0/3.0 for Federation SSO using the SAML 2.0 protocol. The integration covers:

The SAML 2.0 integration is based on:

ADFS 2.0 is available in Windows 2008 R2, while ADFS 3.0 is available in Windows 2012 R2. The article showcases screenshots for ADFS 3.0, while the documented steps apply to both versions. In this first article, we discuss the prerequisites.

Pre-Requisites

In order to integrate with ADFS using the SAML 2.0 protocol, OAM must be configured to use HTTPS/SSL as their endpoints. Failure to do so results in ADFS not accepting the OAM SAML 2.0 Metadata when establishing Federation Trust.

When integrating ADFS as an IdP with OAM as an SP, the following points need to be taken into account:

Note: This applies to other IdPs using HTTP Basic Auth to challenge the user

Finally, before integrating OAM and ADFS for SAML 2.0, the metadata for the two servers must have been downloaded.

Enabling SSL

There are several ways to enable SSL on the public endpoints for OAM:

Once the component (Load balancer, OHS or WLS) has been configured for SSL, the OAM configuration needs to be updated to reference the new endpoint as its public URL:

  1. Go to the OAM Administration Console: http(s)://oam-admin-host:oam-adminport/oamconsole.

  2. Navigate to Configuration , Access Manager Settings.

  3. Set the OAM Server Host to the hostname of the public endpoint.

  4. Set the OAM Server Post to the SSL port of the public endpoint.

  5. Set the OAM Server Protocol to https.

  6. Click Apply.

Description of the illustration Enabling_SSL.jpg

Note: After making those changes, retrieving the OAM SAML 2.0 Metadata contains the new https URLs.

Strong Encryption

As mentioned, by default, ADFS IdP encrypts the SAML Assertion when sending it to the SP using AES-256 which is considered by Java as a strong cipher (as opposed to “normal strength” such as AES-128, AES-192, 3DES).

Due to legal export reasons, JDK cannot be shipped with strong ciphers enabled in JCE: the administrator/integrator/developer must download and install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction policy.

To update the JCE Unlimited Strength Jurisdiction policy files to support strong encryption such as AES-256, execute the following steps:

  1. Determine the major Java version used in the OAM deployment.

  2. Locate the JDK folder used by OAM Execute: $JDK_HOME/bin/java -version.

  3. The major version will be printed (either 6 or 7).

  4. Download the JCE Unlimited Strength Jurisdiction policy.

  5. If you are using JDK 7:

    1. http://www.oracle.com/technetwork/java/javase/downloads/index.html
  6. If you are using JDK 6:

    1. http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archivedownloads-java-plat-419418.html
  7. Unzip the contents of the downloaded ZIP file to a temporary folder.

  8. Copy the unzipped local_policy.jar and US_export_policy.jar files your following JDK’s directory (this operation overwrites the local_policy.jar and US_export_policy.jar files present in that folder):

  9. $JDK_HOME/jre/lib/security/

  10. Restart the WLS Servers in the WLS domain to apply the changes.
  11. To configure ADFS to disable encryption when sending the SAML Assertion to an SP, perform the following steps:

    1. Go to the machine where ADFS is deployed.

      1. If ADFS 2.0 is used, click Start Menu , Programs , Administrative Tools , Windows PowerShell Modules

      2. If ADFS 3.0 is used, click Start Menu , Administrative Tools , Active Directory Module for Windows PowerShell

    2. Execute the following command (replace RP_NAME with the SP name used to create the partner in ADFS):

      set-ADFSRelyingPartyTrust –TargetName“RP_NAME” –EncryptClaims $False

    ADFS Logout

    The SAML 2.0 protocol defines a logout profile where each Federation partner involved in a Federation SSO for the current user’s session is notified of the user signing out. This allows the various Federation partners to terminate the user’s session in their SSO domain.

    ADFS IdP provides different ways to authenticate the user when a Federation SSO is being performed:

    Note: The browser keeps the credentials and provide them to the ADFS server anytime the browser accesses ADFS, until the browser is closed

    Let’s look at the effect (or non-effect) of SAML 2.0 logout depending on how the user is authenticated:

    So if HTTP Basic Auth or Integrated Windows Authentication is used as the authentication mechanism at ADFS 2.0 IdP, after a logout, the user will still be “logged in” at the IdP, and executing a new Federation SSO will not trigger the user being challenged and results with the user being automatically authenticated at the SP, after Federation SSO is done.

    Important Note: The behavior seen with logout also applies to other IdPs (OAM for example), that are using HTTP Basic Auth as the authentication mechanism

    SAML 2.0 Metadata

    To download the SAML 2.0 Metadata from the ADFS 2.0/3.0 server:

    1. Open a browser

    2. Go to the ADFS 2.0/3.0 Metadata publishing service:

    https://adfs-host:adfsport/FederationMetadata/2007-06/FederationMetadata.xml

    1. Save the Metadata locally using the Save As button in the browser

    To download the SAML 2.0 Metadata from OAM:

    1. Open a browser

    2. Go to the OAM Metadata publishing service: http(s)://oam-runtime-host:oam-runtimeport/oamfed/idp/metadata or http(s)://oam-runtime-host:oam-runtimeport/oamfed/sp/metadata

    3. Save the Metadata locally using the Save As button in the browser

    Note: be sure to have enabled SSL in OAM first before download the OAM metadata, as the metadata contains the OAM URLs.

    SHA-256 vs SHA-1

    After having setting up Federation between OAM and ADFS, you need to:

    More Learning Resources

    Explore other labs on docs.oracle.com/learn or access more free learning content on the Oracle Learning YouTube channel. Additionally, visit education.oracle.com/learning-explorer to become an Oracle Learning Explorer.

    For product documentation, visit Oracle Help Center.