OpenID Connect Federation

Overview#

OpenID Connect Federation specification is being developed to enable large-scale federations to be deployed using OpenID Connect and enables trust among federation participants to be established through signed statements made by federation operators and organizations about federation participants.

OpenID Connect Federation specification builds upon the experiences gained in operating large-scale SAML V2.0 federations, and indeed, is authored by people having practical experience with these federations. A key innovation that differentiates OpenID Connect Federation from most SAML 2.0 federations is that OpenID Connect federation employs hierarchical metadata, where participants directly publish statements about themselves, versus the aggregated metadata approach used by many SAML 2.0 federations, where the federation operator publishes a single file concatenating all the metadata for all the federation participants.

OpenID Connect Federation treats OpenID Connect Providers and Relying Parties symmetrically, with metadata being published about both.

OpenID Connect Federation Entities MUST have a Unique Identifier (GUID).

Note that a company, as with any real-world organization, may be represented by more than one entity in a federation.

OpenID Connect Federation trust chains rely on cryptographic Digital Signature JSON Web Token (JWT) documents, and the trust chain does not at all rely on TLS in order to establish trust.

OpenID Connect Federation specifies how a Relying Party (RP) can discover metadata about an OpenID Connect Provider (OP), and then register to obtain client credentials. The Discovery Mechanism and registration process does not involve any mechanisms of dynamically establishing trust in the exchanged information, but instead rely on-out-of band trust establishment.

In an identity federation context, this is not sufficient. The participants of the federation must be able to trust information provided about other participants in the federation. OpenID Connect Federation specifies how trust can be dynamically obtained from resolving trust from a common trusted Third-party.

While this specification is primarily targeting OpenID Connect, it is designed in order to allow for re-use by other protocols and in other Use cases.

OpenID Connect Federation describes how an identity federation can be built around a trusted third party, the federation operator.

2.1 Entity Statement#

OpenID Connect Federation defines an Entity Statement as always a signed JWT. An entity statement is issued by the iss, and the statement considers the subject entity, the sub. To be able to resolve trust and metadata, one need to know the identifier of the target entity – we refer to this as the leaf entity. The leaf entity will always sign a statement about itself, and give some hints to other entities that may want to issue statements about itself. All other entities in a trust chain we refer to as intermediate entities. The local configured trust root, we refer to as the trust anchor.

An entity statement is composed of the following claims:

The entity statement is signed using the Private Key of the issuer entity, in the form of a JSON Web Signature (JWS).

2.2. Trust Chain In an OpenID Connect Federation, entities that together build a trust chain can be of one Classification:

A trust chain begins with a leaf entity's self-signed entity statement, has zero or more entity statements issued by intermediates about subordinates, and ends with an entity statement issued by the trust anchor about the top-most intermediate (if there are intermediates) or the leaf entity (if there are no intermediates).

3 OpenID Connect Federation Metadata#

OpenID Connect Federation does allow new metadata types to be defined, to support use cases outside OpenID Connect Federation. The metadata type identifier will uniquely identify which metadata specification to utilize.

The metadata document MUST be a JSON document. Beyond that there is no restriction.

Metadata used in federations typically re-uses existing metadata standards. If needed, the metadata schema is extended with additional properties relevant in a federated context. For instance, for OpenID Connect Federations, this specification uses metadata values from OpenID Connect Discovery 1.0 and OpenID Connect Dynamic Client Registration 1.0 and adds additional values used for federations.

3.1. RP Metadata#

The metadata type identifier is openid_relying_party. All parameters defined in Section 2 of OpenID Connect Dynamic Client Registration 1.0 are allowed in a metadata statement. To that list is added:

3.2. OP Metadata#

The metadata type identifier is openid_provider and all parameters defined in Section 3 of OpenID Connect Discovery 1.0 are applicable.

In addition, the following parameters are defined by this specification:

3.3. OAuth Authorization Server Metadata#

The metadata type identifier is oauth_authorization_server and all parameters defined in Section 2 of RFC 8414 are applicable.

3.4. OAuth Client Metadata#

The metadata type identifier is oauth_client all parameters defined in Section 2 of RFC 7591

3.5. OAuth Protected Resource Metadata#

The metadata type identifier is oauth_resource.

3.6. Federation Entity#

The metadata type identifier is federation_entity and all entities participating in a federation are of this type.

The following properties are allowed:

Some other OpenID Connect Federation specifications:

More Information#

There might be more information for this subject on one of the following: