Changes for doc/anonymisation.md: 127 added lines, 0 removed lines.
Original line number
Diff line number
Diff line
# Anonymisation
Dans le cadre d'une présentation, il est parfois nécessaire de travailler sur des données réelles mais anonymiser.
Le [AnonymisationManager.php](../src/Anonymisation/AnonymisationManager.php) est le système d'anonymisation des données dans BddAdmin.
Son rôle est de lancer les actions d'anonymisation que vous aurez créés et qui devront impérativement implémenter [AnonymisationActionInterface.php](../src/Anonymisation/AnonymisationActionInterface.php)
Les opérations possibles sont les suivantes :
- Accès à la base de données : le MigrationManager vous donne accès à l'objet [Bdd](bdd.md). Vous pourrez donc requêter tout ce que vous voudrez.
> ⚠️ **Attention** : vos actions d'anonymisation sont irréversible. Il est important de ne l'éffectuer que sur une base de données de test et/ou de démo mais jamais en production
Un système de sécurité vérifie que l'on n'exectue pas l'anonymisation dans un environnement de production. Il n'y a cepdant pas de contrôle sur le fait que la base données n'est pas celle de production.
Il est recommandé d'utiliser la commande `copy-from` en amont afin de récuperer des données à jours.
## AnonymisationManager
L'anonymisationManager est accessible depuis l'objet [Bdd](../src/Bdd.php).
Il sert surtout a exectuer successivement des actions d'anonymisations, dont voici un exemple :
Le script [UtilisateurAnonymisationAction.php](../src/Anonymisation/UtilisateurAnonymisationAction.php) est le seul script d'anonymisation proposé par défaut.
Comme l'hanonymisation implique d'effacer les mots de passe et de modifier le username, tout les utilisateurs concerner ne pourrons plus s'authentifier sur l'instance.
Afin de conserver quelques utilisateurs, il est possible de spécifier des cas utilisateurs (ou des rôles) à ignorer par le script :
```
'unicaen-bddadmin' => [
'anonymisation'=> [
'ignored_users' => ['app'],
'ignored_roles' => ['Admin_tech'],
],
],
```
### Commande
La commande `bddadmin:anonymiser` permet de lancer l'ensemble des scripts d'anoymisation.
L'option `-s etudiant` permet de ne faire appel qu'un un script précis.
Par sécurité, elle vérifie que la variable d'environnement `APPLICATION_ENV` est bien un environnement autorisant l'anonymisation.
Par défaut, il s'agit des environnement de `dev`, `demo` et `test`.
Ces environnements sont définie dans la configuration :
Si vos scripts d'anonymisations hérite de [AnonymisationAction.php](../src/Anonymisation/AnonymisationAction.php), un faker symfony est automatiquement injecter au service.
Vous pouvez l'utiliser pour générer des données aléatoire ie.
```
$lastName = $this->faker->lastName();
$firstName = $this->faker->firstName();
```
A noter que le nombre de nom / prénom aléatoire proposer est relativement limité. Il est fort probable d'avoir des homonymes si vous en génerer beaucoups.
### Utils
La classe [Util.php](../src/Tools/Util.php) fournis 2 fonctions static permettant de formatter des chaîne de caratère:
- removeAccents(string) : string
- removeSpeChar(string) : string
### Améliorations futures :
- utiliser le système de sauvegarde de table pour permettre de désanonymiser.