The information on this page is DRAFT. In the end this information was presented in a different format in the workgroup's final report, but this page is left in tact as a record of some of the discussions that led to the information in that final report.

This page summarizes approaches that have been discussed within the workgroup for performing account linking between an Internal IdP (e.g., campus-run) and an External IdP (run by a third-party) IdP.

An External IdP is an IdP that is run by a different organization than the one that runs the campus IdMs; External IdPs create and manage identities outside of a campus' direct control. External IdPs may provide assertions via SAML or other protocols. Some examples of External IdPs for purposes of this discussion include:

  • An OAuth/OpenID Connect authentication service provider such as Google or Facebook
  • A SAML IdP run by a partner institution
  • An IdP Proxy that performs as a SAML-to-OAuth/OpenID Connect gateway (such as the InCommon gateway service)
  • An IdP Proxy that performs as a SAML-to-SAML gateway but that generates assertions based on data from "backend" IdPs that are run by external institutions.

Solution Summary

This section gives a very brief outline of the solution approaches. Later sections investigate each solution in detail.

  1. No Account Linking
  2. Account Linking at the SP
  3. Trusted External IdP
  4. Account Linking at the IdP

Solution Details

Approach 1:No Account Linking

Model Description

This is the typical "federation with an external IdP" use case. External IDs are accepted (asserted by External IdPs), but any IDs or attributes asserted are considered to be externally managed and defined.

Responsibility Assessment

Pros

Cons

Supported Use Cases

This model can support the following External ID Use Case Categories:

Discussion

While permissions may be granted based on attributes provided in such an assertion, those attributes are still considered to originate from an external source/authority and not to define characteristics of an "internal" person. E.g., eduPerson(Scoped)Affiliation may be used to drive access decisions, but it's clear that a "Student" affiliation asserted by an External IdP describes a "Student" affiliation outside of the campus; external IdPs asserting a "Student" affiliation are not asserting a student at the local institution.


Approach 2:Account Linking at the SP

Model Description

In this model, the linking of accounts is handled internally at the SP. The campus/internal IdMs is unaware of the fact that linking is taking place.

Responsibility Assessment

Pros

Cons

Supported Use Cases

This model can support the following External ID Use Case Categories:

Discussion

Placeholder


Approach 3:Trusted External IdP

Model Description

In this model, an IdP operated by an external entity is authorized to assert IDs or attributes that are conceptually internal IDs of the campus IdP. An External IdP that is trusted to release a valid "Student ID" in support of an alumni service (see Use Cases from External ID Workgroup Discussion, alumni use case) would fall into this category.

Responsibility Assessment

Pros

Cons

Supported Use Cases

This model can support the following External ID Use Case Categories:

Discussion

If the SP were made responsible for the attribute merging (i.e., performing attribute queries or other lookups to get the "internal" user attributes), this example becames a hybrid of approach 2 and 3.


Approach 4:Account Linking at the IdP

Model Description

In this model, the IdP itself manages the linking of External IDs to internal users. This model hides from the SP the fact that an External ID (or external credential) was used for authentication, allowing users to use internal and external credentials interchangeably. It also allows for "Bring Your Own Credential" support with no need for the SPs to perform customized support of account linking.

Responsibility Matrix

Pros

Cons

Supported Use Cases

This model can support the following External ID Use Case Categories:

Discussion

Discussion above presumes that the mapping done in the Internal IdP is a "global" mapping. It's also possible that the Internal IdP could allow per-SP mapping rules, in which case this case looks functionally much more like approach #2 (Account Linking at the SP), though the responsibility matrix is as shown in this example.