- 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 @@
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
-
+
+ Besides the three sub-acor roles the client is also characterized by a
+
+
client identity.
+
+ 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 @@
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 @@
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 @@
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:
+ Handling of consent involves vehicle and cloud architectural subsystems that is out of scope in VISSv2.
+ However, a VISSv2 vehicle server has a capability to enforce consent results, i. e. to allow or block access to requested data.
+ This can be leveraged in a model where the server receives consent results from an “External Consent Framework” (ECF) and uses that information to either grant client requests,
+ or not, for data that is consent protected. How the ECF obtains the consent status is out-of-scope in this specification.
+ A secure, local communication channel exits between the in-vehicle ECF and the server as shown in the figure below,
+ over which the server can inquire about the consent status for data requested by a client.
+
+ The ECF is responsible for the lifetime management of the consent status for all data that is managed by the server, which may involve initialization,
+ expiry update, event based update, consent status removal.
+ The consent status that the ECF provides to the server is associated with an expiry time, which when reached leads to that the status shall be treated as NOT_SET,
+ which must be enforced by the server.
+ The consent status can be set to any of the following values:
+
+
NOT_SET // the server must request the ECF for the status. Unless an immediate ECF response is given,
+ the server must deny any client request with an error code that shows the reason.
+
NO // the server must deny any client request with an error code that shows the reason.
+
IN_VEHICLE // the server shall serve the client request. The client is not allowed to off-board the data.
+
YES // the server shall serve the client request. The client is allowed to off-board the data.
+
+ Regardless of the value of the consent status, if the associated expiry time is exceeded, the server shall treat the consent status as if it had the value NOT_SET.
+ The expiry time shall have the timestamp format defined in chapter 5.3 Timestamps.
+
+ The following information shall be provided to the end point where the consent decision is taken:
+
+
Requested data.
+
Purpose of the request.
+
Identity of the client making the request.
+
+ This information is mandatory in an access control token, which imply that access control should be applied on the data,
+ or else the server will not have access to the required information.
+ The server must store the consent status that it receives from the ECF, together with the data from the request, for the duration set by the expiry time.
+ How this is done is implementation specific and thus it is out of scope for this specification.
+ Whether a server shall take action to obtain a consent or not shall be signalled in the VSS tree.
+ This is done by tagging appropriate nodes in the VSS tree following the model used for access control selection.
+ The tag shall have the format:
+
+
"consent":"required"
+
+ This is inherited in any subtree of the node where it is set, so setting it in the root node leads to that all nodes in the tree require consent.
+
+
+
+
External Consent Framework Interface
+
+ A server receiving a client request that involves obtaining a consent status shall send a request to the ECF
+ on which it shall receive a response cintaining the consent status.
+
+ The request shall contain the data from the list in the previous chapter.
+
+ The response shall contain the following data:
+
+
The consent status.
+
The expiry time of the consent status.
+
+ This communication shall be carried out on a confidentiality protected channel.
+
+
+
+