Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema di "combining" metadata policy in caso di entità con doppio ruolo RP / SA #189

Open
pasqualebarbaromind opened this issue Jul 6, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@pasqualebarbaromind
Copy link
Contributor

In https://docs.italia.it/italia/spid/spid-cie-oidc-docs/it/versione-corrente/entity_statement.html#metadata-policy viene descritto che nelle policy di un TA per un RP, deve essere presente per il claim jwks un controllo che verifica che ci siano nei metadata dell'RP i suoi jwks di core.
Allo stesso tempo, viene descritto che nelle policy di un SA per un RP deve essere presente per il claim jwks lo stesso controllo di cui sopra.

Nell'ipotesi venga richiamato il resolve sul TA per un RP aggregato dall'SA (che è anche RP come descritto nel titolo), nella risoluzione della trust chain vengono recuperati tramite fetch endpoint i metadata_policy dell'SA per l'RP, e poi i metadata_policy del TA per l'SA (che però è anche RP, dunque ci saranno le policy per il ruolo openid_relying_party) ed infine questi vengono combinati (sezione 5.1.4 di https://openid.net/specs/openid-connect-federation-1_0.html) prima di essere applicati ai metadati dell'RP aggregato.

Questo porta ad un problema, poiché l'SA nel fetch del suo RP aggregato, inserisce nelle policy del metadata type openid_relying_party il set delle chiavi di core di questo RP aggregato in jwks, ed il TA nel fetch dell'SA (che però è anche RP, come ci siamo detti sopra), inserisce nelle policy del metadata type openid_relying_party il set delle chiavi di core dell'SA in jwks.

Quando avviene il combining delle policy, ci sono due valori diversi per lo stesso operatore legato al metadato jwks, e questo causa problemi.

@peppelinux
Copy link
Member

metadata_policy viene applicato su tutta la chain, mentre metadata solo sul discendente

per questo motivo è richiesto di chiarire quando usare metadata_policy (algoritmo da rimuovere per motivi di sicurezza) e quando metadata (contatto, jwks o qualsiasi altra cosa relativa al solo discendente)

questo è chiarito qui
https://openid.net/specs/openid-connect-federation-1_0.html#authority_hints

In some cases, a superior may want to be explicit about what metadata should be used for a Subordinate. In that case metadata can be used. If metadata is used it is only valid for the subject of the Entity Statement and has no impact on its Subordinates. If a metadata claim appears beside a metadata_policy claim in an Entity Statement, then for each Entity Type, claims that appear in metadata MUST NOT appear in metadata_policy

@peppelinux peppelinux added the enhancement New feature or request label Jul 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants