Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions docs/en/test-plans-federation-authority.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
.. include:: ../common/common_definitions.rst


Federation Authority Test Matrix
--------------------------------

This section defines test cases for Federation Authorities (Trust Anchors and Intermediates) responsible for operating the Trust Infrastructure as described in :ref:`trust:The Infrastructure of Trust`. Tests focus on correctness and conformance of:

- Entity Configuration (``.well-known/openid-federation``)
- Subordinate Statements returned by ``/fetch``
- Federation registry endpoints (``/list``, ``/fetch``, ``/trust_mark_status``, ``/historical-jwks``)

All validations align with (`OID-FED`_).


.. list-table::
:class: longtable
:widths: 15 15 35 35
:header-rows: 1

* - Test Case ID
- Purpose
- Description
- Expected Result
* - FA_001
- Discovery, Interoperability
- Entity Configuration media type
- ``GET /.well-known/openid-federation`` returns HTTP 200 with ``Content-Type: application/entity-statement+jwt``.
* - FA_002
- Security
- Entity Configuration signature integrity
- The Entity Configuration is a signed JWT; signature verifies using one of the Federation Entity public keys contained in the Entity Configuration ``jwks`` per `OID-FED`_.
* - FA_003
- Interoperability
- Entity Configuration JOSE header parameters
- JOSE header contains ``alg`` (permitted), optional ``kid`` referencing a key in ``jwks``, and ``typ`` set to ``entity-statement+jwt``.
* - FA_004
- Security
- Entity Configuration standard claims
- Payload includes ``iss`` and ``sub`` both equal to the Federation Authority identifier URL; includes ``iat`` and ``exp`` as valid Unix timestamps; ``exp`` > ``iat`` and current time < ``exp``.
* - FA_005
- Security, Interoperability
- Entity Configuration common parameters
- Payload contains ``jwks`` and ``metadata`` with ``federation_entity`` object including published Federation endpoints as per :ref:`trust:Trust Infrastructure and Registry Integration`.
* - FA_006
- Security
- Entity Configuration key material validity
- ``jwks.keys[*]`` entries use permitted algorithms and key sizes; keys are not expired or revoked per ``/historical-jwks``; each ``kid`` is unique.
* - FA_007
- Security
- ``exp`` validation tolerance
- Validation rejects Entity Configuration if ``exp`` is in the past; a maximum clock skew of 120 seconds MAY be applied when comparing current time to ``iat``/``exp``.
* - FA_008
- Security
- Subordinate Statement signature and lifetime
- ``GET /fetch?sub={entity}`` returns a signed JWT Subordinate Statement; header and payload verify per `OID-FED`_; ``iss`` equals the issuing Federation Authority; ``sub`` equals requested entity; ``iat``/``exp`` valid.
* - FA_009
- Interoperability
- Subordinate Statement schema
- Subordinate Statement contains the subordinate's public keys (directly or by reference) and applicable metadata policies or metadata, conforming to draft-43 structure.
* - FA_010
- Discovery
- Listing subordinates
- ``GET /list`` returns a JSON array or JWT-wrapped list of current subordinate identifiers; response format and media type match the published metadata; HTTP 200.
* - FA_011
- Security
- Trust Mark status endpoint
- ``GET /trust_mark_status?id={tm_id}&sub={entity}`` returns current status with HTTP 200 and an integrity-protected object (JWT if advertised). Unknown Trust Mark IDs or subjects return appropriate 4xx.
* - FA_012
- Security
- Historical keys endpoint
- ``GET /historical-jwks`` returns revoked/expired keys with revocation reasons. Structure validates as JWKS or JWT-wrapped JWKS per advertised media type.
* - FA_013
- Security
- Key rotation propagation
- After rotating keys, ``/.well-known/openid-federation`` and ``/historical-jwks`` are updated atomically or within a documented maximum propagation window. Verification with the new key succeeds, and the old key appears in historical.
* - FA_014
- Security
- Disallow ``alg":"none`` and weak algorithms
- Any Entity Configuration or Subordinate Statement with ``alg": "none"`` or a disallowed algorithm is rejected; endpoint returns appropriate error (e.g., 400/422).
* - FA_015
- Security
- ``kid`` resolution and mismatch handling
- If JOSE header ``kid`` is present, it matches a key in the current ``jwks``; on mismatch, verification fails with clear error.
* - FA_016
- Interoperability
- Endpoint discovery from metadata
- ``federation_entity`` metadata in Entity Configuration includes working URLs for ``federation_list_endpoint``, ``federation_fetch_endpoint``, ``federation_trust_mark_status_endpoint``, and ``historical-jwks`` (if published); each resolves and responds per its contract.
* - FA_017
- Security
- Issuer/subject self-consistency
- For Entity Configuration, ``iss == sub ==`` Authority URL; for Subordinate Statements, ``iss`` is Authority URL and ``sub`` is subordinate URL; any deviation is rejected.
* - FA_018
- Interoperability
- Media type correctness (fetch/list/status)
- ``/fetch``, ``/list``, ``/trust_mark_status``, and ``/historical-jwks`` return the media types declared in ``federation_entity`` metadata; JWT-wrapped resources use the correct ``Content-Type`` (e.g., ``application/entity-statement+jwt``, ``application/jwk-set+jwt``).
* - FA_019
- Security
- Statement replay prevention (``jti`` optional)
- If ``jti`` is published, repeated use within the validity window is detected and logged or rejected according to policy; otherwise, uniqueness is not required.
* - FA_020
- Security
- Metadata policy application (if used)
- When metadata policies are used in Subordinate Statements, the resulting effective metadata computed from policy + source metadata conforms to draft-43 rules; conflicts are resolved deterministically.


1 change: 1 addition & 0 deletions docs/en/test-plans.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ For each test case, the table specifies:

test-plans-signature.rst
test-plans-trust.rst
test-plans-federation-authority.rst
test-plans-wallet-provider.rst
test-plans-credential-issuer.rst
test-plans-presentation.rst
106 changes: 106 additions & 0 deletions docs/it/test-plans-federation-authority.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
.. include:: ../common/common_definitions.rst


Matrice di Test per le Autorità di Federazione
----------------------------------------------

Questa sezione definisce i casi di test per le Autorità di Federazione (Trust Anchor e Intermediari) responsabili del funzionamento dell'Infrastruttura di Trust come descritto in :ref:`trust:L'Infrastruttura di Trust`. I test si concentrano sulla correttezza e conformità di:

- Entity Configuration (``.well-known/openid-federation``)
- Subordinate Statement restituiti da ``/fetch``
- Endpoint del registro di federazione (``/list``, ``/fetch``, ``/trust_mark_status``, ``/historical-jwks``)

Tutte le validazioni sono allineate con (`OID-FED`_).


.. list-table::
:class: longtable
:widths: 15 15 35 35
:header-rows: 1

* - Test Case ID
- Purpose
- Description
- Expected Result
* - FA_001
- Discovery, Interoperability
- Media type dell'Entity Configuration
- ``GET /.well-known/openid-federation`` restituisce HTTP 200 con ``Content-Type: application/entity-statement+jwt``.
* - FA_002
- Security
- Integrità della firma dell'Entity Configuration
- L'Entity Configuration è un JWT firmato; la firma è verificabile usando una delle chiavi pubbliche della Federation Entity contenute in ``jwks`` secondo `OID-FED`_.
* - FA_003
- Interoperability
- Parametri JOSE dell'header dell'Entity Configuration
- L'header JOSE contiene ``alg`` (permesso), ``kid`` opzionale riferito a una chiave in ``jwks``, e ``typ`` impostato a ``entity-statement+jwt``.
* - FA_004
- Security
- Claim standard nell'Entity Configuration
- Il payload include ``iss`` e ``sub`` entrambi uguali all'URL identificativo dell'Autorità di Federazione; include ``iat`` e ``exp`` come Unix timestamp validi; ``exp`` > ``iat`` e l'ora corrente < ``exp``.
* - FA_005
- Security, Interoperability
- Parametri comuni dell'Entity Configuration
- Il payload contiene ``jwks`` e ``metadata`` con l'oggetto ``federation_entity`` che include gli endpoint della Federazione pubblicati come da :ref:`trust:Integrazione tra Infrastruttura di Trust e Registry`.
* - FA_006
- Security
- Validità del materiale crittografico
- Le voci in ``jwks.keys[*]`` usano algoritmi e dimensioni di chiave consentiti; le chiavi non sono scadute o revocate secondo ``/historical-jwks``; ogni ``kid`` è univoco.
* - FA_007
- Security
- Tolleranza di validazione per ``exp``
- La validazione rifiuta l'Entity Configuration se ``exp`` è nel passato; può essere applicato uno skew massimo di 120 secondi quando si confrontano ``iat``/``exp`` con l'ora corrente.
* - FA_008
- Security
- Firma e durata del Subordinate Statement
- ``GET /fetch?sub={entity}`` restituisce un JWT firmato (Subordinate Statement); header e payload sono validi secondo `OID-FED`_; ``iss`` uguale all'Autorità emittente; ``sub`` uguale al soggetto richiesto; ``iat``/``exp`` validi.
* - FA_009
- Interoperability
- Schema del Subordinate Statement
- Il Subordinate Statement contiene le chiavi pubbliche del subordinato (direttamente o per riferimento) e le eventuali policy di metadata o i metadata applicabili, conformi alla struttura della draft-43.
* - FA_010
- Discovery
- Elenco dei subordinati
- ``GET /list`` restituisce un array JSON o un elenco JWT-wrapped degli identificativi dei subordinati correnti; il formato della risposta e il media type corrispondono a quanto pubblicato nei metadata; HTTP 200.
* - FA_011
- Security
- Endpoint di stato dei Trust Mark
- ``GET /trust_mark_status?id={tm_id}&sub={entity}`` restituisce lo stato corrente con HTTP 200 e un oggetto protetto in integrità (JWT se pubblicizzato). Trust Mark ID o soggetti sconosciuti restituiscono l'appropriato 4xx.
* - FA_012
- Security
- Endpoint delle chiavi storiche
- ``GET /historical-jwks`` restituisce chiavi revocate/scadute con le motivazioni della revoca. La struttura è valida come JWKS o JWKS incapsulato in JWT in base al media type pubblicizzato.
* - FA_013
- Security
- Propagazione della rotazione delle chiavi
- Dopo la rotazione delle chiavi, ``/.well-known/openid-federation`` e ``/historical-jwks`` sono aggiornati in modo atomico o entro una finestra di propagazione massima documentata. La verifica con la nuova chiave ha esito positivo e la chiave precedente compare nell'elenco storico.
* - FA_014
- Security
- Disabilitare ``alg": "none"`` e algoritmi deboli
- Qualsiasi Entity Configuration o Subordinate Statement con ``alg": "none"`` o un algoritmo non consentito è rifiutato; l'endpoint restituisce un errore appropriato (ad es., 400/422).
* - FA_015
- Security
- Risoluzione del ``kid`` e gestione mismatch
- Se l'header JOSE include ``kid``, questo corrisponde a una chiave in ``jwks`` corrente; in caso di mismatch, la verifica fallisce con errore chiaro.
* - FA_016
- Interoperability
- Scoperta endpoint dai metadata
- I metadata ``federation_entity`` dell'Entity Configuration includono URL funzionanti per ``federation_list_endpoint``, ``federation_fetch_endpoint``, ``federation_trust_mark_status_endpoint`` e ``historical-jwks`` (se pubblicato); ciascuno risponde secondo il proprio contratto.
* - FA_017
- Security
- Auto-coerenza issuer/subject
- Per l'Entity Configuration, ``iss == sub ==`` URL dell'Autorità; per i Subordinate Statement, ``iss`` è l'URL dell'Autorità e ``sub`` è l'URL del subordinato; qualsiasi deviazione è rifiutata.
* - FA_018
- Interoperability
- Correttezza dei media type (fetch/list/status)
- ``/fetch``, ``/list``, ``/trust_mark_status`` e ``/historical-jwks`` restituiscono i media type dichiarati nei metadata ``federation_entity``; le risorse JWT-wrapped usano il ``Content-Type`` corretto (ad es., ``application/entity-statement+jwt``, ``application/jwk-set+jwt``).
* - FA_019
- Security
- Prevenzione replay dello Statement (``jti`` opzionale)
- Se ``jti`` è pubblicato, il riutilizzo entro la finestra di validità è rilevato e loggato o rifiutato secondo policy; altrimenti, l'unicità non è richiesta.
* - FA_020
- Security
- Applicazione delle policy di metadata (se usate)
- Quando nel Subordinate Statement sono presenti policy di metadata, i metadata effettivi risultanti da policy + metadata sorgente sono conformi alle regole della draft-43; i conflitti sono risolti in modo deterministico.


1 change: 1 addition & 0 deletions docs/it/test-plans.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Per ogni caso di test, la tabella specifica:

test-plans-signature.rst
test-plans-trust.rst
test-plans-federation-authority.rst
test-plans-wallet-provider.rst
test-plans-credential-issuer.rst
test-plans-remote-presentation.rst
Expand Down
Loading