The Multi-Context Broker

 

Multi-Context Broker Model

The Multi-Context Broker (MCB) was released in February of 2014 to improve support for multi-factor authentication and assurance profiles in version 2.x of the Shibboleth IdP.  MCB functionality is also in the more recent Shibboleth IdP version 3.x. 

 

The focus of these pages is on the Multi-Context Broker (MCB) software for Shibboleth version 2.x.  Please see Orchestrating Multiple Authentication Methods and Contexts - The Multi-Context Broker (MCB) for information about implementing MCB functionality in Shibboleth IdP version 3.x.

 

The Multi-Context Broker (MCB) is an extension to the Shibboleth IdP that improves Shibboleth's handling of multiple authentication methods, including multi-factor authentication, as well as multiple authentication contexts and assurance profiles. This document contains information about the MCB, what it can be used for, and how it is installed and configured.

For a quick overview of the MCB and what it does, please see the slides from the April 30, 2014 IAM Online on the Multi-Context Broker, or The Multi-Context Broker, presented by David Walker and David Langenberg at Identity Week 2013.  The code is available from the MCB page on the Shibboleth wiki.

Read on for more detailed information.

A Couple of Short Stories

Dick's campus Identity Provider (IdP) supports two forms of authentication, one requires Dick to enter a user name and password, and the other also requires Dick to prove he is in possession of his cell phone. Some Service Providers (SP) require user name and password, and some also require the cell phone.  The campus has decided, however, that the cell phone method can always be used, even when only user name and password is requested by the SP.  When Dick browses to an SP requiring user name and password, he is prompted accordingly, and he is no longer prompted for the rest of his session, unless he browses to an SP requiring the cell phone method.  In that case, his cell phone alerts him for confirmation, and he then is no longer prompted for any SP during the rest of his session.

In order to provide Dick with choices to protect his online identity, Dick's campus allows him to opt out of ever authenticating without using the cell phone method.  After choosing that option, he is always prompted to use the cell phone method, even when it is not required by the services he uses.

Jane uses her web browser to access a Service Provider (SP) that requires the InCommon Bronze assurance profile.  The SP redirects her to her campus Identity Provider (IdP), the MCB verifies she is certified for the Bronze profile, and she is presented with a list of authentication methods it provides that will satisfy the requirements of InCommon Bronze.  Jane chooses one of those methods and authenticates.  Jane's IdP returns the Bronze assurance qualifier to the SP.  As Jane browses to other Bronze SPs during her current session, her IdP provides the Bronze assurance qualifier to those SPs without requiring additional interaction for authentication.

During her session, Jane browses to a Service Provider that requires the InCommon Silver assurance profile.  At Jane's campus, the Silver assurance profile requires a different authentication method than Bronze, so (after verification that Jane is certified for the Silver profile) Jane is prompted for Silver authentication.

This is only a little of what the Multi-Context Broker can do.  For example, if the first SP Jane used required the Silver profile, she would not be prompted to authenticate for later Bronze SPs during the current session, as the Silver profile satisfies all the requirements of the Bronze profile.   We'll have to dive a little deeper, though, to describe this.

Defining Some Terms

What Does the Multi-Context Broker Do?

The Multi-Context Broker enhances the Shibboleth IdP’s ability to orchestrate among multiple Authentication Contexts, including those requiring multi-factor authentication.  To do this, it considers information from multiple sources:

When the MCB receives a request from an SP:

  1. It compares the SPs requested Authentication Contexts against the Contexts the user is certified to use plus any Contexts that are satisfied by the user's certified Contexts to determine the Contexts that can be used for this transaction.
  2. It presents the Authentication Methods associated with the Authentication Contexts that can be used for this transaction to the user. If the SP requested multiple Contexts, the Methods are presented in the priority order of their requested Contexts. If an Authentication Method can be used for multiple Contexts, it is presented only once for the highest-priority Context.
  3. The user selects one of the presented Authentication Methods (assuming there is more than one) and authenticates.  Upon successful authentication, the MCB returns the SP-requested Authentication Context that has been satisfied.  (Note, the MCB and Shibboleth maintain session state to enable single sign-on.  Once the user has authenticated with a particular Authentication Method, that Method will not require further user interaction for the rest of the session, unless the SAML "force authentication" option is specified.)

Note that the process described above assumes knowledge of the identity of the current user. When the current user is not already known to the MCB (i.e., this is the start of a new session), there are three options:

Example Uses for the Multi-Context Broker

This section briefly describes a few potential uses for the Multi-Context Broker, indicating what would need to be configured to implement them. For detailed configuration information, please see the MCB page on the Shibboleth wiki.

Authentication Method Selected by SP Request

Users are presented with the authentication method, either password or multi-factor, that matches the requested Context.  All users can use either method.

Authentication Method Selected by User Certification

Authentication methods are controlled within the IdMS. SPs request PasswordContext (or do not request an Authentication Context).  Users are presented for username/password or MFA, depending on their certifications within the IdMS. This is a method for providing an "user opt-in" requirement for multi-factor authentication, similar to that provided by Google and other cloud providers.

InCommon Bronze and Silver with One Authentication Method

InCommon Bronze and Silver share a common username/password authentication method. Users authenticate once per session with the single Authentication Method, and SPs receive the requested Context (or failure), based on user certifications.

InCommon Bronze and Silver with Two Authentication Methods

There are two authentication methods, one for Bronze, and one for Silver. Users who have previously authenticated for BronzeContext will need to reauthenticate (with multi-factor) for a subsequent SilverContext request, but users who have previously authenticated for SilverContext will not need to reauthenticate for a subsequent BronzeContext request.

Sample Configurations

Where Do I Get the Multi-Context Broker?  How Do I Report Bugs?  Where is the Source?

Current State of the Implementation

The MCB supports all of the functionality described in this document, and the following authentication methods are supported:

The following are potential areas for future development:

History

During 2012, the InCommon Assurance Program explored implementation issues of assurance, most notably with CILogon, National Institutions of Health and the Department of Education. The latter two organizations are required to follow the Federal Identity Credential and Access Management committee’s SAML2 Web SSO Profile for requesting Authentication Contexts (e.g., assurance profiles). CILogon, run by NCSA, has more flexibility in its requirements.

While testing, campus implementers identified the following issues, as of version 2.4 of the Shibboleth IdP:

In January of 2013, InCommon convened a group section to share their testing experiences to date and assist in the development of a requirements document for an initial set of enhancements to the Shibboleth IdP to address these issues that could be 1) delivered to the Shibboleth Consortium for consideration in future IdP release and 2) used as a basis for an RFP, jointly funded by InCommon and the NSTIC-funded Scalable Privacy Project, to develop a short term solution for campuses interested in implementing assurance over-the-wire.

In summary, the testing group saw two primary SP use cases:

In addition, the diversity in hIgher education IdP implementations and the supporting identity management and authentication systems, suggests a certain level of configurability and flexibility in how the Shibboleth IdP supports the bullets above. To support the Silver Identity Assurance profile, an organization may determine that bringing its password infrastructure into compliance is a viable option, where another may layer on a multi-factor solution and bypass the complexity and scope of the current password infrastructure. The solution must be able to manage the use of multiple authentication systems, contexts in which they are required, and the user’s ability to control their authentication method when multiple options exist.

Under the guidance of Ann West and David Walker, the RFP was issued in July, 2013, based on the specifications in Assurance Enhancements for the Shibboleth Identity Provider (19 April 2013), was awarded to Paul Hethmon, and implementation began. Acceptance testing for the MCB completed in January, 2014, and the MCB was released in February, 2014.  The acceptance testers were David Langenberg of the University of Chicago, Keith Wessel of the University of Illinois, and Mike Wiseman of the University of Toronto.