Concepts
Un court glossaire qui couvre le reste de la documentation.
| Terme | Signification |
|---|---|
| Target | Conteneur délimitant un projet ou une application. |
| Configuration | Ensemble de règles au sein d'un Target. |
| Data Instance | Paire (class, property), modélisant généralement une colonne de base de données. |
| Transformer | Opération unique : chiffrer, tokeniser, masquer, valider, formater, etc. |
| Transformer Sequence | Chaîne ordonnée de Transformers appliquée à une donnée. |
| Rights Context | Qui est autorisé à faire quoi. Contrôle d'accès granulaire par donnée. |
| Processing Context | Quelle opération doit s'exécuter. Généralement Protect, Unprotect ou Search. |
| Logging Context | Quelles informations inclure dans les journaux d'audit. |
| Dependency Context | Valeurs auxiliaires dont certains Transformers ont besoin pour s'exécuter. |
| Preuve (evidence) | Paires clé-valeur envoyées avec chaque requête pour l'acheminer vers le bon contexte. |
| Gestionnaire de secrets | Emplacement de stockage des clés de chiffrement. Azure Key Vault ou CipherTrust Manager. |
Les trois premiers (Target, Configuration, Data Instance) sont configurés une seule fois. Les Rights Contexts et Processing Contexts sont référencés par GUID à chaque appel d'API. La preuve (evidence) est fournie au moment de la requête.
Targets et Configurations
Un Target est un conteneur pour une ou plusieurs configurations de transformation, généralement une par projet ou application. Une Configuration est l'ensemble des règles, au sein d'un Target, qui définit comment les données doivent être transformées.
Data Instances
Les Data Instances représentent les champs précis que vous souhaitez protéger. Chaque instance est une paire (class, property) :
- Nom de classe : le type d'entité, par exemple
User,PaymentouAccount. - Nom de propriété : l'attribut à transformer, par exemple
FirstName,AmountouIBAN.
| Instance | Valeurs d'exemple |
|---|---|
(User, FirstName) | Laura, John, … |
(Payment, Amount) | 12'450 CHF, 230 EUR, … |
(Account, IBAN) | CH93 0076 2011 6238 5295 7 |
En général, une classe correspond à une table dans une base de données et une propriété correspond à une colonne.
Transformers et Transformer Sequences
Les Transformers sont des opérations individuelles qui modifient les données :
- Insert / Extract : injecter ou extraire des propriétés.
- Wrap / Unwrap : ajouter ou retirer des balises ou des mots-clés autour d'une valeur.
- Validate : vérifier qu'une valeur respecte des critères, à l'aide d'une expression régulière.
- Format : remplacer une valeur, ou une partie de celle-ci, par un motif ou un espace réservé.
- Transform : les opérations réversibles et irréversibles :
- Anonymisation (irréversible).
- Chiffrement / Déchiffrement (réversible avec une clé).
- Tokenisation / Détokenisation (réversible avec une table de correspondance).
Les Transformers peuvent être filtrés par type de données, de sorte qu'une séquence ne s'applique qu'aux valeurs de la bonne forme : date et heure, email, IBAN, nombre entier naturel, SSN, chaîne de caractères et UUID.
Une Transformer Sequence est une chaîne ordonnée de Transformers. Combiner plusieurs Transformers dans une séquence permet de construire un flux complet de protection ou de déprotection (par exemple, déchiffrer puis masquer).
Contextes
Les contextes déterminent ce qui se passe lors d'une requête donnée. Il en existe quatre types :
- Rights Context : définit qui peut accéder à quelles Data Instances et avec quelle permission (Transform, Read ou Not defined), sélectionné par un ensemble de preuves.
- Processing Context : associe les Data Instances à des Transformer Sequences pour une opération précise telle que Protect, Unprotect ou Search, sélectionné par un ensemble de preuves.
- Logging Context : précise quelles informations inclure dans les journaux d'audit.
- Dependency Context : fournit des valeurs auxiliaires dont certaines transformations ont besoin.
Les Rights Contexts et Processing Contexts sont les deux que vous référencez par GUID à chaque appel d'API.
Preuve (evidence)
Une preuve (evidence) est une paire clé-valeur qui sélectionne quel Rights Context et quel Processing Context s'appliquent à une requête. C'est le mécanisme d'acheminement qui relie une requête entrante aux permissions et aux règles de transformation correctes.
Lorsque vous configurez un Rights Context ou un Processing Context, vous l'associez à un ou plusieurs ensembles de preuves, c'est-à-dire des combinaisons de paires clé-valeur qui identifient quand le contexte s'applique. Au moment de la requête, la preuve que vous envoyez est comparée à ces ensembles pour déterminer :
- quel Rights Context s'applique, ce qui détermine si chaque Data Instance est transformée, renvoyée telle quelle ou annulée ; et
- quel Processing Context s'applique, ce qui détermine quelle Transformer Sequence s'exécute sur chaque Data Instance.
Les clés de preuve sont entièrement personnalisables. Role et Action sont des choix courants, mais vous pouvez définir n'importe quelle clé adaptée à votre modèle de contrôle d'accès, comme Department, Region ou Environment.
Comment ils s'articulent
Une requête transporte une preuve, rattachée à un Rights Context (qui appelle) et à un Processing Context (que faire). La requête transporte également les instances à transformer, chacune pointant vers une paire (class, property) configurée.
Le moteur recherche la Configuration, vérifie que la preuve du Rights Context accorde l'accès à chaque Data Instance, exécute la Transformer Sequence sélectionnée par la preuve du Processing Context, et renvoie un résultat par instance.
Le même point de terminaison sert à protéger, déprotéger, rechercher et à toute autre opération définie par votre configuration. Seule la preuve change d'un appel à l'autre.