Skip to content

Conversation

@cre8
Copy link
Contributor

@cre8 cre8 commented Mar 31, 2025

Closes #396

@Sakurann
Copy link
Collaborator

Please add a change log :)

@cre8
Copy link
Contributor Author

cre8 commented Apr 1, 2025

Please add a change log :)

done :)

cre8 and others added 10 commits April 4, 2025 11:39
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Co-authored-by: Timo Glastra <timo@animo.id>
@cre8
Copy link
Contributor Author

cre8 commented Apr 6, 2025

I think this PR is in a decent state.

The only thing that worries me a bit is the question if we should add some form of ID on the root level of attachments to help a Wallet make a decision whether it needs to parse an attachment or not. I don't think it is a good idea to force a wallet to parse all attachments (in formats it understands) before being able to make a decision if it needs or understands them or not. Would feel cleaner to me if we added said id parameter to entries of attachments. Ecosystems would then need to define ids in a collision-resistant fashion.

I think the best approach would be to follow the JWT approach where the typ field defines the type of JWT and then there is a registry for the eco system or a global one where the values and how to deal with the attachment is defined. Since this field is on the root level of the attachment, the Wallet only needs to parse this value without anything else and can then decide how to continue.

Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Copy link
Member

@c2bo c2bo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about the proof of possession part tbh

Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com>
@tlodderstedt tlodderstedt changed the title add attachment parameter to authz req add verifier_attestations parameter to authz req Apr 8, 2025
Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
@cre8 cre8 mentioned this pull request Apr 8, 2025
cre8 and others added 2 commits April 10, 2025 21:57
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
Signed-off-by: Mirko Mollik <mirko.mollik@eudi.sprind.org>
change type to format

Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
Copy link
Member

@c2bo c2bo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not really happy with wallets having to parse everything first (to discover type) before understanding if it's relevant, but overall this variant seems to achieve the requirements

This specification supports two models for proof of possession:

- **claim-bound attestations**: The attestation is not signed by the Relying Party, but bound to it. The exact binding mechanism is defined by the type of the definition. For example for JWTs, the `sub` claim is including the distinguished name of the Certificate that was used to sign the request. The binding may also include the client_id parameter.
- **key-bound attestations**: The attestation's proof of possession is signed by the Relying Party with a key contained or related to the attestation . To bind the signature to the presentation request, the respective signature object should include the `nonce` and `client_id` request parameters. The attestation and the proof of possession have to be passed in the attachment.
Copy link
Member

@c2bo c2bo Apr 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **key-bound attestations**: The attestation's proof of possession is signed by the Relying Party with a key contained or related to the attestation . To bind the signature to the presentation request, the respective signature object should include the `nonce` and `client_id` request parameters. The attestation and the proof of possession have to be passed in the attachment.
- **key-bound attestations**: The attestation's proof of possession is signed by the Verifier with a key contained or related to the attestation. To bind the signature to the presentation request, the respective object signed by the Verifier should include the `nonce` and `client_id` request parameters. The attestation and the proof of possession have to be passed in the attachment.

@cre8
Copy link
Contributor Author

cre8 commented Apr 11, 2025

I am not really happy with wallets having to parse everything first (to discover type) before understanding if it's relevant, but overall this variant seems to achieve the requirements

Me neither, but since it's only parsing and not validating, it should be fine. If there occur attestations where it becomes more complex, we can add an optional attribute that can be used as an identifier. But at this point we were not able to find a good solution that pleased everyone.

@Sakurann Sakurann merged commit 469a1e9 into openid:main Apr 11, 2025
2 checks passed

This specification supports two models for proof of possession:

- **claim-bound attestations**: The attestation is not signed by the Relying Party, but bound to it. The exact binding mechanism is defined by the type of the definition. For example for JWTs, the `sub` claim is including the distinguished name of the Certificate that was used to sign the request. The binding may also include the client_id parameter.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **claim-bound attestations**: The attestation is not signed by the Relying Party, but bound to it. The exact binding mechanism is defined by the type of the definition. For example for JWTs, the `sub` claim is including the distinguished name of the Certificate that was used to sign the request. The binding may also include the client_id parameter.
- **claim-bound attestations**: The attestation is not signed by the Verifier, but bound to it. The exact binding mechanism is defined by the type of the definition. For example for JWTs, the `sub` claim is including the distinguished name of the Certificate that was used to sign the request. The binding may also include the client_id parameter.

Sakurann added a commit that referenced this pull request Apr 11, 2025
@cre8 cre8 deleted the attachements branch April 11, 2025 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add attachments in the presentation request

7 participants