The idea of standardising an "agent" interface that attesters can expose to their challengers has popped up in several discussion threads.
The problem has two orthogonal dimensions:
- Defining a suitable interface - meaning one that starts as simple as possible but that can evolve to accommodate different use cases and attester technologies;
- Allowing different authz/authn mechanisms to authorise the requester.
MVP
I suggest we start experimenting with an MVP that only tackles the functional part (1), and consists of a synchronous REST API with a single endpoint /chares1 as follows:
POST /chares HTTP/1.1
Host: attester.example
Content-Type: application/vnd.veraison.chares-params-v1+json
Accept: application/cmw+json, application/cmw+cbor
{
"challenge": "base64encode"
}
HTTP/1.1 200 OK
Content-Type: application/cmw+json
{
"type": "...",
"value": "base64encode"
}
Note that using CMW to wrap evidence provides native support for composite devices using collections.
AuthN/AuthZ
There are several ways to tackle the authz/authn problem, e.g.: using HTTP authentication framework, OAuth2, mTLS, an API implementation must provide at least one method.
The idea of standardising an "agent" interface that attesters can expose to their challengers has popped up in several discussion threads.
The problem has two orthogonal dimensions:
MVP
I suggest we start experimenting with an MVP that only tackles the functional part (1), and consists of a synchronous REST API with a single endpoint
/chares1 as follows:Note that using CMW to wrap evidence provides native support for composite devices using collections.
AuthN/AuthZ
There are several ways to tackle the authz/authn problem, e.g.: using HTTP authentication framework, OAuth2, mTLS, an API implementation must provide at least one method.
Footnotes
Any similarity to actual persons, living or dead, is purely coincidental. ↩