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

Client Backend -> Client Attester #32

Open
TakahikoKawasaki opened this issue Jul 16, 2023 · 7 comments
Open

Client Backend -> Client Attester #32

TakahikoKawasaki opened this issue Jul 16, 2023 · 7 comments
Assignees

Comments

@TakahikoKawasaki
Copy link

"Client Backend" in the specification should be replaced with "Client Attester".

"Client Backend" creates the impression that both the client and the system issuing the attestation for the client are managed by the same entity. While it is possible for actual deployments to be structured in this manner, it appears that the specification intends to treat them as separate entities.

@TakahikoKawasaki
Copy link
Author

In that sense, the example payload of the Client Attestation JWT in the "Client Attestation JWT" section should be updated from

{
  "iss": "https://client.example.com",
  "sub": "https://client.example.com",
  "nbf":1300815780,
  "exp":1300819380,
  "cnf": {
    "jwk": {
      "kty": "EC",
      "use": "sig",
      "crv": "P-256",
      "x": "18wHLeIgW9wVN6VD1Txgpqy2LszYkMf6J8njVAibvhM",
      "y": "-V4dS4UaLMgP_4fY4j8ir7cl1TXlFdAgcx55o7TkcSA"
    }
  }
}

to

{
  "iss": "https://attester.example.com",
  "sub": "https://client.example.com",
  "nbf":1300815780,
  "exp":1300819380,
  "cnf": {
    "jwk": {
      "kty": "EC",
      "use": "sig",
      "crv": "P-256",
      "x": "18wHLeIgW9wVN6VD1Txgpqy2LszYkMf6J8njVAibvhM",
      "y": "-V4dS4UaLMgP_4fY4j8ir7cl1TXlFdAgcx55o7TkcSA"
    }
  }
}

(Changing the value of the "iss" from "https://client.example.com" to "https://attester.example.com")

@paulbastian
Copy link
Collaborator

Hello @TakahikoKawasaki we are having the exact same discussions between the editors, so thanks for your feedback! If you have any further rationale for having separate entities, please let us know

@paulbastian
Copy link
Collaborator

I've discussed this issue today with my colleague, we agree to this change.
Especially sub should match the client_id in the issuance.
Version might be separated into an additional, optional attribute

@paulbastian
Copy link
Collaborator

add text on iss and sub

@bc-pi
Copy link
Contributor

bc-pi commented Nov 9, 2023

The iss of the Client Attestation JWT should identify the issuer of the Client Attestation JWT. When it's the client backend (which I think will be a common case), the iss value should be the client id value and the verification key should be found from the jwks_uri or jwks_uri field of that client (however that client info comes to exist with the AS). When the Client Attestation JWT is issued by some attestation service, the iss value should identify that service. And the AS needs to trust the service for this purpose and know how to find verification keys for it.

The sub of the Client Attestation JWT should be the client id value.

@paulbastian
Copy link
Collaborator

The iss of the Client Attestation JWT should identify the issuer of the Client Attestation JWT. When it's the client backend (which I think will be a common case), the iss value should be the client id value and the verification key should be found from the jwks_uri or jwks_uri field of that client (however that client info comes to exist with the AS). When the Client Attestation JWT is issued by some attestation service, the iss value should identify that service. And the AS needs to trust the service for this purpose and know how to find verification keys for it.

The sub of the Client Attestation JWT should be the client id value.

This is exactly my opinion.

@bc-pi
Copy link
Contributor

bc-pi commented Nov 9, 2023

FWIW, I'm not totally convinced there's really a need to allow for an attestation service that's not managed by the same entity as the client but other folks seem to want it so my prior comment assumes it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants