Fermer

septembre 22, 2021

Service de chiffrement AEM : quoi, comment et pourquoi


Adobe Experience Manager (AEM) fournit un service de chiffrement qui permet de chiffrer le texte et de déchiffrer le texte protégé. Le support est disponible dans AEM sous le nom de bundle Adobe Granite Crypto Support (com.adobe.granite.crypto).

Il peut être utilisé pour :

  1. Crypter les propriétés configurées dans OSGI service de configuration
  2. Répondre au besoin de protéger/déprotéger le texte ou les données binaires dans la logique principale ?

    La réponse est simple, la configuration OSGI peut contenir des mots de passe ou toute information sensible et à la fin, lorsque la configuration est enregistrée, ils sont enregistrés dans le référentiel et sont accessibles à partir de /apps. Toute personne ayant accès au dossier /apps peut les lire à partir de la console crx/de . Les garder sous forme cryptée aide, car même si le fichier de configuration est accessible à partir de crx/dela propriété ne peut pas être déchiffrée manuellement.

    Afin de protéger la configuration OSGI, nous devons suivre ces instructions. étapes :

    1. Les plug-ins AEM fournissent une prise en charge dans les consoles felix pour déchiffrer le texte de propriété en clair, l'option « Prise en charge de la cryptographie » est disponible dans l'option « Principale » dans le menu de la console Felix ou y accédez directement à l'aide de l'URL http://  :/system/console/crypto

    2. Collez la valeur de la propriété dans un champ de texte brut et cliquez sur le bouton « Protéger » pour obtenir le texte protégé
    3. Utilisez cette propriété protégée dans l'une des configurations OSGI à l'aide de la console du gestionnaire de configuration ou même maintenez-la dans la base de code

    Déprotéger la configuration OSGI

    Il n'est pas nécessaire de décrypter explicitement ces configurations protégées dans le service de configuration Java. AEM prêt à l'emploi (OOTB) renvoie les propriétés en Java en les déchiffrant au préalable. Nous devons utiliser CryptoSupport Service.

    Vous trouverez ci-dessous l'exemple de code pour protéger les données :

    
        @Reference
        private transitoire CryptoSupport cryptoSupport;
        public String getProtectedText(String plainText ) {
            String protectedText = null;
            try {
                protectedText = cryptoSupport.protect(plainText);
            } catch (CryptoException cryptoException. texte brut {} : {}", plainText, cryptoException);
            }
            return protectedText;
        }
    

    Déprotéger le texte protégé en Java

    Nous pouvons déprotéger le texte protégé et les données binaires dans les logiques backend à l'aide de CryptoSupport Service.

    Vous trouverez ci-dessous l'exemple de code pour déprotéger les données :

    
         @Reference
        private transitoire CryptoSupport cryptoSupport;
        public String getUnprotectedText(String protectedText) {
            String plainText = null;
            try {
                   plainText = crypt. catch (CryptoException cryptoException) {
                LOGGER.error("Une exception cryptographique s'est produite lors du déchiffrement du texte protégé {} : {}", protectedText, cryptoException);
            }
            return plainText;
         }
    

    Utilisation de la prise en charge de la cryptographie pour la configuration d'environnements à plusieurs éditeurs

    Afin de prendre en charge la cryptographie dans la configuration d'instances AEM à plusieurs éditeurs, nous devons avoir la même clé HMAC dans toutes les instances. Cette configuration est indispensable si :

    1. Nous maintenons une configuration protégée dans la base de code qui est déployée sur tous les éditeurs.
    2. Si le texte protégé dans une instance atteint une autre instance pour le déchiffrement dans la logique backend.
    3. Si nous activons [19659064]Prise en charge des jetons encapsulés dans AEM. Dans ce cas, nous devrons synchroniser les clés des instances d'auteur également avec toutes les instances d'éditeur. .CryptoException exception lors du déchiffrement.

      Étapes pour synchroniser les clés sur toutes les instances pour AEM 6.3 ou supérieur :

      1. Accédez à /system/console/bundles et recherchez pour un bundle avec le nom "Adobe Granite Crypto Bundle Key Provider" c'est-à-dire "com.adobe.granite.crypto.file" et notez le numéro du bundle. Dans la capture d'écran ci-dessous, le numéro de lot est 20.
      2. Accédez au référentiel dans le système de fichiers et accédez au dossier /crx-quickstart/launchpad/felix/bundle20 et ici le dossier du bundle est bundle20 car le numéro du [19659075]com.adobe.granite.crypto.file est 20 à l'étape précédente.
      3. Allez dans le dossier de données et copiez les deux fichiers présents, à savoir hmac et master
      4. Suivez maintenant les mêmes étapes pour toutes les autres instances et remplacez les deux fichiers par des fichiers copiés. pour synchroniser les clés sur toutes les instances pour AEM 6.2 ou version antérieure :

        1. Créer un package de chemin /etc/key à partir de l'une des instances à l'aide du gestionnaire de packages
        2. Installer le package créé dans d'autres instances
        3. Redémarrer tous les instances où le package a été installé

        Nous espérons que cet article vous aidera.

CET UTILE EST TROUVÉ ? PARTAGEZ-LE




Source link