From a382c19fedd9e96c81599a68588f4d41d04da1b4 Mon Sep 17 00:00:00 2001 From: Ulf Bjorkengren Date: Fri, 14 Jul 2023 16:52:43 +0200 Subject: [PATCH] Consent support chapter. Signed-off-by: Ulf Bjorkengren --- spec/VISSv2_Core.html | 94 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 9 deletions(-) diff --git a/spec/VISSv2_Core.html b/spec/VISSv2_Core.html index b0d5770..8b09282 100644 --- a/spec/VISSv2_Core.html +++ b/spec/VISSv2_Core.html @@ -998,7 +998,7 @@

Protocol Messages

Access Grant Request

- The request shall contain the Context and Proof parameters below, the other two are optional: + The request shall contain the Context and Proof parameters below, the others are optional:

  • VIN: The vehicle identification number. Instead of the assigned VIN a generated hash can be used as a pseudo VIN, @@ -1012,6 +1012,7 @@

    Access Grant Request

    and device characteristics.
  • Public key: If this parameter is present, the client will receive a long term access grant token in return.
  • +
  • Client Id: If this parameter is present, it will be provided to the External Consent Framework.

@@ -1020,7 +1021,9 @@

Access Grant Request

The protocol may involve also third parties, such as the ecosystem manager or the resource owner. The protocol is out of scope for this specification.
In scenarios where both the client and the access grant token server - are deployed in-vehicle the VIN parameter may be omitted, in all other deployment scenarios it shall be present. + are deployed in-vehicle the VIN parameter may be omitted, in all other deployment scenarios it shall be present.
+ The purpose of the Client Id is to provide additional information to the consent end point that takes the decision on + granting consent or not. A too uninformative description may lead to consents being denied.

@@ -1123,7 +1126,14 @@

Client

  • The device. It is in charge of running the Apps that make requests to the VISSv2 server
  • The app. It runs requests on behalf of the user.
  • The user. It delegates access rights to the app.
  • - + + Besides the three sub-acor roles the client is also characterized by a + + The client identity is needed when obtaining consent, and it meant to provide "personalization" information related to the thre sub-actor roles. + It could e. g. be a name of a user, together with a name of an app, and some device description. + For more information see the Access Grant Request chapter where it is set.
    All the information regarding the client is encoded in the context of the request.

    @@ -1383,7 +1393,7 @@

    Short Term Access Grant Token

    "vin": "vehicle-id", "iat": 1609452095, "exp": 1609459199, - "clx": "user+app+dev", + "clx": "user+app+dev+clientId", "aud": "w3.org/VISSv2", "jti": "5967e92e-40e8-5f39-892d-cc0da890db1d" } @@ -1394,7 +1404,7 @@

    Short Term Access Grant Token

    access grant token server.
    The issued at (iat) claim shall be set to the time of token issuance, in Unix time.
    The expiry (exp) claim shall be set to the time when the token expires, in Unix time.
    - The Client context (clx) claim shall be set to the role triplet the client has been assigned. + The Client context (clx) claim shall be set to the role triplet plus the client Id that the client has been assigned. The delimiter separating the roles is a plus sign (+).
    The audience (aud) claim shall be set to the URL "w3.org/VISSv2".
    The JSON Web Token identity (jti) claim shall be set to a UUID that is unique within the domain controlled by the @@ -1416,7 +1426,7 @@

    Long Term Access Grant Token

    "vin": "vehicle-id", "iat": 1609452095, "exp": 1609459199, - "clx": "user+app+dev", + "clx": "user+app+dev+clientId", "pub": client_pub_key, "aud": "w3.org/VISSv2", "jti": "5967e92e-40e8-5f39-892d-cc0da890db1d" @@ -1428,7 +1438,7 @@

    Long Term Access Grant Token

    access grant token server.
    The issued at (iat) claim shall be set to the time of token issuance, in Unix time.
    The expiry (exp) claim shall be set to the time when the token expires, in Unix time.
    - The Client context (clx) claim shall be set to the role triplet the client has been assigned. + The Client context (clx) claim shall be set to the role triplet plus the client Id that the client has been assigned. The delimiter separating the roles is a plus sign (+).
    The public key (pub) claim shall be set to the public key that the client provided in the access grant request, using the JSON Web Key (JWK) data structure [[RFC7517]].
    @@ -1455,7 +1465,7 @@

    Access Token

    "iat": 1609452095, "exp": 1609459199, "scp": "PurposeX" || signal-set, - "clx": "user+app+dev", + "clx": "user+app+dev+clientId", "aud": "w3.org/VISSv2", "jti": "5967e93f-40f9-5f39-893e-cc0da890db2e" } @@ -1472,7 +1482,7 @@

    Access Token

    Each signal is defined as a JSON object containing the signal path, and the signal permission as shown below.
    {"path":"vss-path", "access_permission":"permission"}
    If the scope claim is set to a purpose, the client context claim MUST be present in the token.
    - The Client context (clx) claim shall be set to the role triplet the client has been assigned. + The Client context (clx) claim shall be set to the role triplet plus the client Id that the client has been assigned. The delimiter separating the roles is a plus sign (+).
    The audience (aud) claim shall be set to the URL "w3.org/VISSv2".
    The JSON Web Token identity (jti) claim shall be set to an unguessable UUID that is unique within the domain controlled by the @@ -1522,6 +1532,7 @@

    Proof of Possession

    Client Context

    This section is non-normative.
    + The client context contains a client actor and a client Id. The client actor is characterized by three subactors: