Fork me on GitHub

Plugin GRU key diversification

Introduction

Ce plugin permet de crypter les identifiants de certains objets. Ces identifiants sont cryptés / décryptés à l'aide de clés de cryptage. Par exemple, ils peuvent être cryptés selon le type de demande ou selon le fournisseur de services.

Les objets pris en charge sont les suivants :

  • fr.paris.lutece.plugins.grubusiness.business.customer.Customer de la librairie gru-library-grubusiness
  • fr.paris.lutece.plugins.identitystore.web.rs.dto.IdentityDto de la librairie gru-library-identitystore

Configuration

Le plugin met à disposition une AdminFeature permettant de configurer les clés de cryptage.

Une clé de cryptage est composée :

  • de l'identifiant de l'objet métier qui doit être unique parmi toutes les clés. Cet identifiant lie l'objet métier à la clé de cryptage.
  • de la clé de cryptage elle-même. Une fois enregistrée, cette valeur ne peut pas être changée pour ne pas corrompre les données déjà cryptées.

Cryptage / décryptage

Le plugin contient 2 services :

Service de cryptage de Customer

Le service fr.paris.lutece.plugins.grukeydiversification.service.encryption.CustomerEncryptionService implémente l'interface fr.paris.lutece.plugins.grubusiness.service.encryption.ICustomerEncryptionService de la librairie gru-library-grubusiness. Il permet de crypter / décrypter un objet Customer. Il faut lui passer en paramètre :

  • un objet fr.paris.lutece.plugins.grubusiness.business.demand.Demand de la librairie gru-library-grubusiness car le type de demande est utilisé en tant qu'identifiant de l'objet métier.
  • ou une String qui correspond directement à l'identifiant de l'objet métier.

Ce service est déclaré en tant que bean dans le fichier contexte Spring : grukeydiversification.customerEncryption.

Service de cryptage de IdentityDto

Le service fr.paris.lutece.plugins.grukeydiversification.service.encryption.IdentityEncryptionService implémente l'interface fr.paris.lutece.plugins.identitystore.service.encryption.IIdentityEncryptionService de la librairie gru-library-identitystore. Il permet de crypter / décrypter un objet IdentityDto. Il faut lui passer en paramètre :

  • un objet implémentant l'interface fr.paris.lutece.plugins.identitystore.business.IClientApplication de la librairie gru-library-identitystore car le code du fournisseur de services est utilisé en tant qu'identifiant de l'objet métier.

Ce service est déclaré en tant que bean dans le fichier contexte Spring : grukeydiversification.identityEncryption.

Cache

Le plugin peut mettre les clés de cryptage en cache pour réduire le nombre de requêtes en base de données. Pour utiliser le cache, il suffit de l'activer dans le menu Lutece des caches.

Utilisation

Les beans peuvent être référencés dans le fichier contexte Spring du plugin voulant utiliser les services.