Introduction

The OpenID Federation forms the backbone of the DC4EU Pilot Wallet ecosystem, enabling secure, scalable, and interoperable interactions between diverse entities such as credential issuers, verifiers, and wallet providers.

Purpose of the Federation

Key Features

Scope

This documentation focuses on the OpenID Federation's architecture, its role in the DC4EU interoperability lab, and how it aligns with the overarching goals of the EUDIW ecosystem.


Terminology

This section defines key terms and concepts used throughout the document to ensure clarity and consistency when discussing the federation.

Authority Hints

Entity Configuration Document

Trust Anchor (TA)

Trust Mark

Trust Mark Issuer (TMI)

Wallet Provider

Credential Issuer

JWKS (JSON Web Key Set)

JWT (JSON Web Token)

Metadata

Dynamic Metadata Exchange

Key ID (kid)

Selective Disclosure


Federation Overview

The OpenID Federation in the DC4EU Wallet ecosystem operates as a dynamic trust framework, enabling seamless and scalable interactions between issuers, wallets, and verifiers. By leveraging cryptographic proofs and hierarchical relationships, the federation ensures secure credential issuance, management, and verification.



Federation Architecture and Core Entities

The federation follows a hierarchical structure, with the Trust Anchor (TA) serving as the root of trust. Subordinate entities, including Trust Mark Issuers, Credential Issuers, Wallet Providers, and Verifiers, establish their roles through dynamic metadata exchanges and trust chains.

Key Entities and Their Roles:



Trust Workflow

The trust workflow involves metadata discovery, validation, and trust establishment:

  1. Metadata Exchange:

  2. Validation:

  3. Dynamic Trust Relationships:


Standards and Protocols

  1. OpenID Connect: Forms the foundation for authentication and API security.
  2. OpenID Federation: Extends OpenID Connect with dynamic metadata exchange and hierarchical trust.
  3. OpenID4VCI: Enables credential issuance using OAuth2 flows.
  4. OpenID4VP: Facilitates credential presentation for selective disclosure.

Trust Establishment and Validation

In the OpenID Federation, trust is established and validated dynamically through cryptographic proofs, hierarchical relationships, and metadata exchange. This ensures secure interactions among entities while supporting scalability and flexibility across the DC4EU Wallet ecosystem.


Role of the Trust Anchor

The Trust Anchor (TA) is the root of trust for the federation. It serves as the foundational authority, enabling trust relationships by:


Trust Mark Issuance

The Trust Mark Issuer (TMI) plays a critical role in attesting to an entity’s conformance with a well-scoped set of trust and interoperability requirements as determined by an accreditation authority.

Process

  1. Request Submission: An entity (e.g., a Credential Issuer) submits a request for a Trust Mark to the TMI.
  2. Evaluation: The TMI evaluates whether the entity meets the predefined trust and interoperability requirements.
  3. Issuance: If compliant, the TMI issues a Trust Mark, which is a signed JWT (JSON Web Token) containing, but not limited to:

Trust Marks in the Federation

  1. EHIC Credential Trust Mark:

  2. PDA1 Credential Trust Mark:


Entity Validation

Entities within the federation validate each other using cryptographic signatures, hierarchical trust relationships, and dynamic metadata discovery. To optimize performance, signature validation is recommended as the final step, following successful completion of other checks.

Steps:


Dynamic Trust Relationships

Dynamic trust relationships in the federation enable scalable and flexible interactions between entities. This approach relies on:

Benefits of Dynamic Trust:

  1. Scalability: New entities can join the federation without requiring preconfigured relationships or manual updates.
  2. Flexibility: Trust relationships adapt to changes in roles, policies, or compliance requirements.
  3. Efficiency: Decentralized validation ensures that entities interact directly without relying on a central authority for every operation.

Examples of Trust Workflows

  1. Credential Issuance Flow:

  2. Credential Presentation Flow:


Federation Nodes

The following are the endpoints of the federation, along with the Trust Anchor's associated cryptographic keys.


Trust Anchor


Trust Mark Issuer


Wallet Provider


Credential Issuer


Usage Notes

Metadata Retrieval

Retrieve the Entity Configuration Document from a federation node’s /.well-known/openid-federation endpoint:

curl https://openidfed-test-1.sunet.se:7001/.well-known/openid-federation

The metadata is encoded as a JSON Web Token (JWT), which must be validated and decoded securely

Decoding Metadata:

Decode the JWT to inspect the payload:

Validating Metadata Signatures:

To validate the signature of metadata, the public keys of the entity can be represented in one of three ways in the metadata. Each representation has specific handling requirements.

Signature Validation:
Use a library or tool such as CryptoJWT to validate the signature. CryptoJWT is a Python library specifically designed for OpenID-related standards, including JSON Web Token (JWT) handling and signature verification.

Security Notes:

Always validate JWT signatures using trusted public keys before using the data. Ensure the key’s kid (Key ID) in the JWT header matches a key in the jwks.json document.