This document is licensed under
Creative Commons Attribution 4.0 International Public License
This document specifies an extension to the Federated Service Connectivity (FSC) Core specification, introducing the ability to include custom properties in grants. The extension defines a flexible mechanism for adding key-value pairs to grants, which are then propagated through access tokens and made available to services.
Key features of this extension include:
properties
object within grants, allowing for arbitrary JSON key-value pairs.properties
object into the grant hash calculation process.prp
claim.This extension maintains backwards compatibility with the FSC Core specification while enabling more detailed and flexible grant definitions. It opens up possibilities for application-specific metadata and configuration options within the FSC ecosystem, enhancing the capabilities of federated service connectivity implementations.
This is a draft that could be altered, removed or replaced by other documents. It is not a recommendation approved by TO.
Definitie: Een definitie is een beschrijving van een woord. Een ander woord voor definitie is betekenis of beschrijving.
Afbeeldingen krijgen een nummer en vermelding in de figurenlijst 5. List of Figures.
Referentie uit locale lijst [SemVer]. Lijst staat in organisation-config.js
. Alleen referenties die in de tekst voorkomen worden getoond.
We gebruiken een definitie om een woord te omschrijven.
De onderstaande secties (Conformiteit e.d.) zijn optioneel, zie index.html
:
<body>
<section id="abstract" data-include-format="markdown" data-include="abstract.md"></section>
<section id="sotd"></section><!-- Wordt automatisch gevuld -->
<section data-include-format="markdown" class="informative" data-include="ch01.md"></section>
<section data-include-format="markdown" data-include="ch02.md"></section>
<!-- Hieronder optionele secties. Worden automatisch gevuld -->
<section id='conformance'></section>
<section id='tof'></section>
<section id="index"></section>
</body>
This section describes how the property object fits into the existing FSC architecture.
Each grant in a Contract can now contain an optional property object. This object is included in the grant's data and is part of the content that is hashed when creating the grant hash and contract content hash.
The property object can contain one or multiple keys, with values of any valid JSON datatype. This flexibility allows for a wide range of use cases and future extensibility.
Example of a ServiceConnectionGrant with a property object:
{
"data": {
"type": "GRANT_TYPE_SERVICE_CONNECTION",
"service": {
"peer_id": "00000000000000000001",
"name": "example-service"
},
"outway": {
"peer_id": "00000000000000000002",
"public_key_thumbprint": "3a56f2e9269ac63f0d4394c46b96539da1625b6a985d38029ff89f34e490960c"
},
"properties": {
"max_requests_per_minute": 100,
"tags": ["api", "v1", "beta"],
"custom_metadata": {
"department": "IT",
"project": "FSC Integration"
}
}
}
}
This section provides detailed specifications for implementing the property object extension.
The property object must be a valid JSON object. It can contain any number of key-value pairs, where:
The property object MAY be added to a grant object and MUST have the key 'properties'.
When calculating the grant hash, the property object must be included in the hashing process. This ensures that the properties are part of the immutable grant definition.
To include the property object in the grant hash:
When validating a grant with properties:
properties
field, if present, is a valid JSON object.The size of the properties
object should be limited to prevent excessive data transfer and storage. It is recommended to implement a size limit of 1MB for the serialized properties
object.
Sensitive information like secrets or other private information should not be stored in the properties
object, as it may be visible to Services and potentially logged or stored in various systems.
Implementers should be aware that the contents of the properties
object are unsanitized. For example, they should consider sanitizing the data before showing it in user interfaces to prevent XSS injections or other security vulnerabilities.
This extension is backwards compatible with the FSC Core specification. Systems that do not implement this extension will ignore the properties
field in grants and the prp
claim in access tokens.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY and MUST in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.