164 lines
11 KiB
Markdown
164 lines
11 KiB
Markdown
<!-- vscode-markdown-toc -->
|
|
* 1. [Objectif](#Objectif)
|
|
* 2. [Portée](#Porte)
|
|
* 3. [3. Documents de référence](#Documentsderfrence)
|
|
* 3.1. [Worfklows](#Worfklows)
|
|
* 3.2. [Transverse](#Transverse)
|
|
* 4. [Rôles et Sous-Rôles](#RlesetSous-Rles)
|
|
* 5. [Précisions sur les rôles](#Prcisionssurlesrles)
|
|
* 5.1. [RolesGroup - Gestion des Rôles](#RolesGroup-GestiondesRles)
|
|
* 5.1.1. [Composition et Fonction](#CompositionetFonction)
|
|
* 5.1.2. [Cas d'utilisation](#Casdutilisation)
|
|
* 5.2. [TransactionModeDistribution et TransactionModeDirect](#TransactionModeDistributionetTransactionModeDirect)
|
|
* 5.3. [TransactionModeDistribution](#TransactionModeDistribution)
|
|
* 5.3.1. [TransactionModeDirect](#TransactionModeDirect)
|
|
* 5.4. [Cas d'utilisation](#Casdutilisation-1)
|
|
* 5.4.1. [Composition et Fonction](#CompositionetFonction-1)
|
|
* 5.4.2. [Cas d'utilisation](#Casdutilisation-1)
|
|
* 5.5. [Role - Définition et Gestion des Rôles Spécifiques](#Role-DfinitionetGestiondesRlesSpcifiques)
|
|
* 5.5.1. [Composition et Fonction](#CompositionetFonction-1)
|
|
* 5.5.2. [Cas d'utilisation](#Casdutilisation-1)
|
|
* 6. [Gestion des Engagements et Transactions](#GestiondesEngagementsetTransactions)
|
|
* 6.1. [RoleCommitment](#RoleCommitment)
|
|
* 6.2. [RoleDeposit et RolePayment](#RoleDepositetRolePayment)
|
|
* 7. [Sécurisation des Communications](#ScurisationdesCommunications)
|
|
* 7.1. [Composition et Utilisation](#CompositionetUtilisation)
|
|
* 8. [Intégration et Orchestration des Processus](#IntgrationetOrchestrationdesProcessus)
|
|
* 9. [Exemples de Code](#ExemplesdeCode)
|
|
|
|
<!-- vscode-markdown-toc-config
|
|
numbering=true
|
|
autoSave=true
|
|
/vscode-markdown-toc-config -->
|
|
<!-- /vscode-markdown-toc --># Process et roles
|
|
|
|
## 1. <a name='Objectif'></a>Objectif
|
|
|
|
Cette section vise à présenter en détail les Documents de Contrat Portable (PCD) et les Documents de Demande Portable (PRD), qui constituent les piliers du système 4NK. Essentiels pour sécuriser les transactions de données et gérer les identités numériques, les PCD et PRD assurent l'intégrité et la confidentialité au cœur d'un réseau décentralisé.
|
|
|
|
## 2. <a name='Porte'></a>Portée
|
|
|
|
## 3. <a name='Documentsderfrence'></a>3. Documents de référence
|
|
|
|
### 3.1. <a name='Worfklows'></a>Worfklows
|
|
|
|
* **Authentification**: Auth-Specs.md
|
|
* **Items**: Item-Specs.md
|
|
* **Messages et transactions SP**: Message-SP-Specs.md
|
|
* **PRD et PCD**: PRD-PCD-Specs.md
|
|
|
|
### 3.2. <a name='Transverse'></a>Transverse
|
|
|
|
* **Définitions et abréviations.**: Specs-Definition.md
|
|
* **Exigences de sécurité**: Specs-Security.md
|
|
* **Code**: Specs-Code.md
|
|
* **Maintenance, environnement de déploiement**: Specs-Deployment.md
|
|
* **References**: Specs-References.md
|
|
|
|
* **Diagramme d'architecture montrant les composants principaux du système de login.**
|
|
[SheatSheet 4NK](https://cryptpad.fr/diagram/#/2/diagram/view/3UG+7ccutUvJlwJ1-bR40RhgOA+rb5eEmw42wtkN19A)
|
|
|
|
## 4. <a name='RlesetSous-Rles'></a>Rôles et Sous-Rôles
|
|
|
|
Les rôles déterminent les permissions et les responsabilités des participants dans le système 4NK. Ils sont essentiels pour contrôler l'accès aux données et les autorisations au sein des `process`. Les `rôles` principaux incluent :
|
|
|
|
* **RolePeer**: Conditions des listes de relais participants qui facilitent les communications et les transactions et des versions de ces listes.
|
|
* **RoleMember**: Conditions des listes des utilisateurs ou entités ayant une participation directe dans un processus spécifique et des versions de ces listes.
|
|
* **RoleProcess**: Conditions des listes des processus et des versions des listes.
|
|
* **RoleArtefact**: Définit les permissions et les interactions pour les artefacts au sein du réseau et des version de ces listes, par types d'artefacts.
|
|
|
|
Chaque rôle peut comporter des sous-rôles spécifiques, tels que `RolePayment`, `RoleDeposit`, et `RoleCommitment`, chacun avec des responsabilités et des interactions uniques dans le cadre des processus qu'ils soutiennent.
|
|
|
|
## 5. <a name='Prcisionssurlesrles'></a>Précisions sur les rôles
|
|
|
|
### 5.1. <a name='RolesGroup-GestiondesRles'></a>RolesGroup - Gestion des Rôles
|
|
|
|
La structure RolesGroup est essentielle pour définir et gérer les groupes de rôles au sein du système 4NK, permettant une organisation claire des permissions et des responsabilités.
|
|
|
|
#### 5.1.1. <a name='CompositionetFonction'></a>Composition et Fonction
|
|
|
|
* **role_peer**: Définit le rôle des pairs dans le réseau, responsables de la facilitation des communications et des transactions.
|
|
* **role_member**: Spécifie le rôle des membres, ou utilisateurs, qui participent activement dans les processus et les interactions.
|
|
* **role_process**: Représente les entités chargées de définir et de gérer les processus au sein du système.
|
|
* **role_artefact_list**: Une liste de rôles d'artefacts, permettant la personnalisation et l'extension des fonctionnalités et des interactions au-delà des rôles standards.
|
|
|
|
#### 5.1.2. <a name='Casdutilisation'></a>Cas d'utilisation
|
|
|
|
Cette structure permet une gestion flexible des rôles au sein du système, facilitant l'assignation de permissions spécifiques et la délimitation des responsabilités pour une sécurité et une efficacité accrues.
|
|
|
|
### 5.2. <a name='TransactionModeDistributionetTransactionModeDirect'></a>TransactionModeDistribution et TransactionModeDirect
|
|
|
|
Les modes de transaction, tels que TransactionModeDistribution et TransactionModeDirect, déterminent comment les demandes et les réponses sont distribuées et traitées au sein du réseau 4NK, influençant l'efficacité et la sécurité des interactions.
|
|
|
|
### 5.3. <a name='TransactionModeDistribution'></a>TransactionModeDistribution
|
|
|
|
Permet la distribution des demandes ou des informations à plusieurs rôles ou entités, facilitant une communication large et la collaboration au sein du système.
|
|
|
|
#### 5.3.1. <a name='TransactionModeDirect'></a>TransactionModeDirect
|
|
|
|
Concentre l'échange d'informations ou de demandes directement entre un émetteur et un destinataire spécifique, garantissant une interaction ciblée et sécurisée.
|
|
|
|
### 5.4. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
|
|
|
Ces modes supportent divers scénarios de communication, de la diffusion large d'informations ou de mises à jour, à des échanges directs pour des opérations spécifiques, offrant ainsi une flexibilité dans la gestion des flux d'informations.
|
|
|
|
# Role - Définition et Gestion des Rôles Spécifiques
|
|
|
|
La structure Role est fondamentale pour définir les caractéristiques et les exigences de chaque rôle au sein du système 4NK, y compris les permissions, les validations nécessaires, et les conditions spécifiques d'utilisation.
|
|
|
|
#### 5.4.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
|
|
|
* **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
|
* **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
|
* **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
|
* **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
|
|
|
#### 5.4.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
|
|
|
Cette structure permet une personnalisation détaillée des rôles au sein du système, assurant que chaque rôle est équipé des permissions et des contraintes appropriées pour sa fonction spécifique, contribuant à la sécurité et à l'ordre du système global.
|
|
|
|
### 5.5. <a name='Role-DfinitionetGestiondesRlesSpcifiques'></a>Role - Définition et Gestion des Rôles Spécifiques
|
|
|
|
La structure Role est fondamentale pour définir les caractéristiques et les exigences de chaque rôle au sein du système 4NK, y compris les permissions, les validations nécessaires, et les conditions spécifiques d'utilisation.
|
|
|
|
#### 5.5.1. <a name='CompositionetFonction-1'></a>Composition et Fonction
|
|
|
|
* **item**: L'entité ou l'objet auquel le rôle est associé, fournissant un contexte pour les permissions et les actions.
|
|
* **required_2fa**: Indique si une authentification à deux facteurs est requise pour ce rôle, augmentant la sécurité pour les actions critiques.
|
|
* **validation_timeout**: Définit un délai pour la validation des actions ou des demandes associées à ce rôle, assurant la promptitude et l'efficacité des processus.
|
|
* **condition**: Ensemble de critères et de règles définissant comment les actions sont validées, exécutées, ou refusées selon le contexte.
|
|
|
|
#### 5.5.2. <a name='Casdutilisation-1'></a>Cas d'utilisation
|
|
|
|
Cette structure permet une personnalisation détaillée des rôles au sein du système, assurant que chaque rôle est équipé des permissions et des contraintes appropriées pour sa fonction spécifique, contribuant à la sécurité et à l'ordre du système global.
|
|
|
|
## 6. <a name='GestiondesEngagementsetTransactions'></a>Gestion des Engagements et Transactions
|
|
|
|
Les engagements dans le système 4NK, tels que représentés par les structures RoleCommitment, RoleDeposit, et RolePayment, jouent un rôle crucial dans la formalisation des transactions et des obligations entre les parties.
|
|
|
|
### 6.1. <a name='RoleCommitment'></a>RoleCommitment
|
|
|
|
* **item_name**: Identifie l'engagement spécifique ou l'obligation prise par une partie.
|
|
* **role**: Définit les permissions, les conditions et les critères associés à cet engagement, assurant une exécution et une validation conformes aux attentes.
|
|
|
|
### 6.2. <a name='RoleDepositetRolePayment'></a>RoleDeposit et RolePayment
|
|
|
|
Ces structures gèrent respectivement les dépôts de garantie et les paiements, en spécifiant les conditions sous lesquelles les fonds sont déposés, retenus ou transférés, contribuant ainsi à la confiance et à la fluidité des transactions au sein du réseau.
|
|
|
|
## 7. <a name='ScurisationdesCommunications'></a>Sécurisation des Communications
|
|
|
|
La structure MetaData et ses sous-structures comme MetadataContractPublic, MetadataRoleConfidential, et MetadataPrivate fournissent un cadre pour sécuriser les communications et les données au sein du système 4NK, permettant une distinction claire entre les informations accessibles publiquement, celles réservées à certains rôles, et celles strictement privées.
|
|
|
|
### 7.1. <a name='CompositionetUtilisation'></a>Composition et Utilisation
|
|
|
|
* **meta_data**: Chaque instance de MetaData encapsule des informations détaillées, des attributs et des clés de chiffrement liés à un item, facilitant la gestion sécurisée et la distribution ciblée des données.
|
|
* **key_list**: Un élément crucial pour le chiffrement et la sécurisation des données, assurant que seules les parties autorisées peuvent accéder aux informations confidentielles.
|
|
|
|
## 8. <a name='IntgrationetOrchestrationdesProcessus'></a>Intégration et Orchestration des Processus
|
|
|
|
L'ItemProcess et ItemProcessPublicAttributeGroup offrent un cadre pour l'intégration et l'orchestration des processus dans le système 4NK, permettant la définition, la gestion et l'exécution de workflows complexes de manière sécurisée et efficace.
|
|
|
|
## 9. <a name='ExemplesdeCode'></a>Exemples de Code
|
|
|
|
Extraits de code illustrant l'utilisation des PCD et PRD dans des scénarios réels.
|