[]{class="badge informative"}

Définir des zones de sécurité (On-Premise) defining-security-zones

Chaque opérateur ou opératrice doit être associé(e) à une zone pour se connecter à une instance et l’adresse IP de l’opérateur ou de l’opératrice doit faire partie des adresses ou des plages d’adresses définies dans la zone de sécurité.La configuration de la zone de sécurité est effectuée dans le fichier de configuration du serveur Adobe Campaign.

Un opérateur est lié à une zone de sécurité à partir de son profil dans la console, accessible dans le nœud Administration > Gestion des accès > Opérateurs. En savoir plus.

NOTE
Cette procédure est limitée aux déploiements On-Premise.
En tant que client hébergé, si vous pouvez accéder au Panneau de contrôle Campaign, vous pouvez utiliser l’interface en libre-service de la zone de sécurité. En savoir plus
Les autres clients hybrides/hébergés doivent contacter l’équipe d’assistance d’Adobe pour ajouter une adresse IP à la liste autorisée.

Création de zones de sécurité creating-security-zones

Une zone est définie par :

  • une ou plusieurs plages d’adresses IP (IPv4 et IPv6)
  • un nom technique associé à chaque plage d’adresses IP

Les zones de sécurité sont imbriquées. Chaque définition d’une nouvelle zone à l’intérieur d’une autre réduit donc le nombre d’opérateurs pouvant s’y connecter tout en augmentant les droits attribués à chaque opérateur.

Les zones peuvent être définies lors de la configuration du serveur dans le fichier serverConf.xml. Tous les paramètres disponibles dans serverConf.xml sont répertoriés dans cette section.

Chaque zone définit des droits, comme par exemple :

  • Connexion en HTTP plutôt qu’HTTPS
  • Affichage des erreurs (pile d’erreurs Java, JavaScript, C++…)
  • Prévisualisation des rapports et des webApps
  • Authentification par login / password
  • Connexion en mode non-sécurisé
NOTE
Tous les opérateurs et opératrices doivent être associés à une zone.Si l’adresse IP de l’opérateur ou de l’opératrice appartient à la plage définie par la zone, l’opérateur ou l’opératrice peut se connecter à l’instance.
Il se peut que l'adresse IP de l'opérateur soit définie dans plusieurs zones. Dans ce cas, l'opérateur reçoit l'union des droits disponibles pour chacune des zones.

Le fichier serverConf.xml livré d’usine contient trois zones : public, vpn et lan.

NOTE
La configuration d’usine est sécurisée.Cependant, avant de procéder à une migration depuis une version antérieure d’Adobe Campaign, il peut être nécessaire de réduire temporairement la sécurité afin de migrer et d’approuver les nouvelles règles.

Exemple d’une définition de zone dans le fichier serverConf.xml :

<securityZone allowDebug="false" allowHTTP="false" label="Public Network" name="public">
<subNetwork label="All addresses" mask="*" name="all"/>

<securityZone allowDebug="true" allowHTTP="false" label="Private Network (VPN)"
              name="vpn" showErrors="true">

  <securityZone allowDebug="true" allowEmptyPassword="true" allowHTTP="true"
                allowUserPassword="false" label="Private Network (LAN)" name="lan"
                sessionTokenOnly="true" showErrors="true">
    <subNetwork label="Lan 1" mask="192.168.0.0/16" name="lan1"/>
    <subNetwork label="Lan 2" mask="172.16.0.0/12" name="lan2"/>
    <subNetwork label="Lan 3" mask="10.0.0.0/8" name="lan3"/>
    <subNetwork label="Localhost" mask="127.0.0.1/16" name="locahost"/>
    <subNetwork label="Lan (IPv6)" mask="fc00::/7" name="lan6"/>
    <subNetwork label="Localhost (IPv6)" mask="::1/128" name="localhost6"/>
  </securityZone>

</securityZone>
</securityZone>

L’ensemble des droits définissant une zone sont les suivants :

  • allowDebug : permet à une webApp d’être exécutée en mode “debug”
  • allowEmptyPassword : autorise une connexion à une instance sans mot de passe
  • allowHTTP : une session peut être créée sans utiliser le protocole HTTPS
  • allowUserPassword : le jeton de session peut être de la forme « <login>/<password> »
  • sessionTokenOnly : le jeton de sécurité n’est pas nécessaire dans l’URL de connexion
  • showErrors : les erreurs côté serveur sont remontées et affichées
IMPORTANT
Dans la définition d'une zone, chaque attribut recevant la valeur true réduit la sécurité.

Dans le cas de Message Center, quand il y a plusieurs instances d’exécution, vous devez créer une zone de sécurité supplémentaire avec l’attribut sessionTokenOnly défini sur true, dans laquelle seules les adresses IP nécessaires doivent être ajoutées. Le paramétrage des instances est présenté dans ce document.

Bonnes pratiques pour les zones de sécurité best-practices-for-security-zones

Dans la définition de la zone de sécurité lan, il est possible d’ajouter un masque d’adresse IP définissant un accès technique.Cet ajout permettra d’accéder à toutes les instances hébergées sur le serveur.

<securityZone allowDebug="true" allowEmptyPassword="false" allowHTTP="true"
                    allowUserPassword="false" label="Private Network (LAN)" name="lan"
                    sessionTokenOnly="true" showErrors="true">
        <subNetwork label="Lan 1" mask="192.168.0.0/16" name="lan1"/>
        <subNetwork label="Lan 2" mask="172.16.0.0/12" name="lan2"/>
        <subNetwork label="Lan 3" mask="10.0.0.0/8" name="lan3"/>
        <subNetwork label="Localhost" mask="127.0.0.1/16" name="locahost"/>
        <subNetwork label="Lan (IPv6)" mask="fc00::/7" name="lan6"/>
        <subNetwork label="Localhost (IPv6)" mask="::1/128" name="localhost6"/>

        <!-- Customer internal IPs -->
        <subNetwork id="internalNetwork" mask="a.b.c.d/xx"/>

      </securityZone>

Il est recommandé de définir des plages d’adresses IP directement dans le fichier de configuration dédié à l’instance pour les opérateurs accédant uniquement à une instance particulière.

Dans le fichier config-<instance>.xml :

  <securityZone name="public">
   ...
    <securityZone name="vpn">
      <subNetwork id="cus1" mask="a.b.c.d/xx"/>

Sous-réseaux et proxys dans une zone de sécurité sub-networks-and-proxies-in-a-security-zone

Le paramètre proxy peut être utilisé dans un élément subNetwork afin de définir l’utilisation d’un proxy dans une zone de sécurité.

Lorsqu’un proxy est référencé et qu’une connexion entre via ce proxy (visible via l’en-tête HTTP X-Forwarded-For), la zone vérifiée est celle des clients du proxy et non celle du proxy.

IMPORTANT
Si un proxy est configuré et qu'il est possible de passer outre ce dernier (ou s'il n'existe pas), l'adresse IP qui sera testée pourra être falsifiée.
De plus, les relais sont désormais gérés comme des proxys. Vous pouvez donc ajouter l’adresse IP 127.0.0.1 à la liste des proxys dans votre configuration de zone de sécurité.
Par exemple: " <subnetwork label="Lan 1" mask="192.168.0.0/16" name="lan1" proxy="127.0.0.1,10.100.2.135" />".

Plusieurs cas peuvent exister :

  • Un sous-réseau est directement référencé dans la zone de sécurité et aucun proxy n’est configuré : les utilisateurs du sous-réseau peuvent se connecter directement au serveur Adobe Campaign.

  • Un proxy est défini pour un sous-réseau dans la zone de sécurité : les utilisateurs provenant de ce sous-réseau peuvent accéder au serveur Adobe Campaign en passant par ce proxy.

  • Un proxy est inclus dans un sous-réseau de la zone de sécurité : les utilisateurs passant par ce proxy, indépendamment de leur provenance, peuvent accéder au serveur Adobe Campaign.

Les adresses IP des serveurs proxy susceptibles d’accéder au serveur Adobe Campaign doivent être saisies dans le sous-réseau <subnetwork> concerné et le sous-réseau de premier niveau <subnetwork name="all"/>. Par exemple, ici, pour un proxy dont l’adresse IP est 10.131.146.102 :

<securityZone allowDebug="false" allowHTTP="false" label="Public Network"
                      name="public">
    <subNetwork label="All addresses" mask="*" name="all"
                      proxy="10.131.146.102,127.0.0.1, ::1"/>

    <securityZone allowDebug="true" allowHTTP="false" label="Private Network (VPN)"
                      name="vpn" showErrors="true">
        <securityZone allowDebug="true" allowEmptyPassword="false" allowHTTP="true"
                      allowUserPassword="false" label="Private Network (LAN)"
                      name="lan" sessionTokenOnly="true" showErrors="true">
            <subNetwork label="Lan proxy" mask="10.131.193.182" name="lan3"
                      proxy="10.131.146.102,127.0.0.1, ::1"/>
            <subNetwork label="Lan 1" mask="192.168.0.0/16" name="lan1"
                      proxy="127.0.0.1, ::1"/>

        </securityZone>
    </securityZone>
</securityZone>

Liaison d’une zone de sécurité à un opérateur linking-a-security-zone-to-an-operator

Une fois les zones définies, chaque opérateur doit être associé à l’une d’entre elles pour pouvoir se connecter à une instance et l’adresse IP de l’opérateur doit faire partie des adresses ou des plages d’adresses référencées dans la zone.

La configuration technique des zones est effectuée dans le fichier de configuration du serveur Campaign : serverConf.xml.

Au préalable, vous devez configurer l’énumération d’usine Zone de sécurité pour associer un libellé au nom interne de la zone défini dans le fichier serverConf.xml.

Ce paramétrage est effectué dans l’explorateur Campaign :

  1. Cliquez sur le nœud Administration > Plateforme > Énumérations.

  2. Sélectionnez l’énumération système Zone de sécurité (securityZone).

  3. Pour chaque zone de sécurité définie dans le fichier de configuration du serveur, cliquez sur le bouton Ajouter.

  4. Dans le champ Nom interne, saisissez le nom de la zone définie dans le fichier serverConf.xml. Il correspond à l’attribut @name de l’élément <securityzone>. Dans le champ Libellé, rentrez le libellé associé au nom interne.

  5. Cliquez sur OK et enregistrez les modifications.

Une fois les zones définies et l’énumération Zone de sécurité configurée, vous devez associer chaque opérateur à une zone :

  1. Cliquez sur le nœud Administration > Gestion des accès > Opérateurs.

  2. Sélectionnez l’opérateur auquel vous voulez associer une zone de sécurité et cliquez sur l’onglet Edition.

  3. Dans l’onglet Droits d’accès, cliquez sur le lien Editer les paramètres d’accès….

  4. Sélectionnez une zone dans la liste déroulante Zone autorisée pour la connexion

  5. Cliquez sur OK et enregistrez les modifications pour appliquer ces modifications.

Recommandations

  • Assurez-vous que le proxy inverse n’est pas autorisé dans subNetwork. Si c’est le cas, l’ensemble du trafic est détecté comme provenant de cette adresse IP locale et est donc considéré comme digne de confiance.

  • Limitez l’utilisation de sessionTokenOnly=“true” :

    • Avertissement : si cet attribut est défini sur true, l’opérateur peut être exposé à une attaque CRSF.
    • De plus, le cookie sessionToken n’étant pas défini avec un flag httpOnly, certains codes JavaScript côté client peuvent le lire.
    • L’utilisation de Message Center avec plusieurs instances d’exécution requiert toutefois l’activation de l’option sessionTokenOnly : créez une nouvelle zone de sécurité avec l’option sessionTokenOnly définie sur « true » et ajoutez uniquement les adresses IP nécessaires à cette zone.
  • Si possible, définissez les attributs allowHTTP et showErrors sur la valeur false (pas pour localhost) et vérifiez-les.

    • allowHTTP = “false” : force les opérateurs à utiliser le protocole HTTPS.
    • showErrors = “false” : masque les erreurs techniques (y compris les erreurs SQL).Il empêche l’affichage d’un trop grand nombre d’informations, mais il limite la possibilité pour les spécialistes marketing de corriger les erreurs (sans demander d’informations supplémentaires à un administrateur ou une administratrice).
  • Définissez allowDebug sur true uniquement sur les adresses IP utilisées par les utilisateurs et utilisatrices et les administrateurs et administratrices marketing qui doivent créer (ou plutôt prévisualiser) des questionnaires, des webApps et des rapports.Cet indicateur permet à ces adresses IP d’afficher les règles de relais et de les déboguer.

    • Lorsque allowDebug est défini sur false, la sortie est la suivante :

      code language-none
      <redir status='OK' date='...' sourceIP='...'/>
      
    • Lorsque allowDebug est défini sur true, la sortie est la suivante :

      code language-none
      <redir status='OK' date='...' build='...' OR version='...' sha1='...' instance='...' sourceIP='...' host='...' localHost='...'/>
      
  • Ne définissez jamais allowEmptyPassword, allowUserPassword et allowSQLInjection sur true.

    • allowEmptyPassword permet aux opérateurs et opératrices d’avoir un mot de passe vide.Si c’est votre cas, demandez à tous les opérateurs et opératrices de définir un mot de passe avec une échéance.Une fois ce délai passé, définissez cet attribut sur la valeur false.

    • allowUserPassword permet aux opérateurs et opératrices d’envoyer leurs informations d’identification sous forme de paramètres (afin qu’elles soient consignées par apache/IIS/proxy).Cette fonctionnalité était utilisée dans le passé pour simplifier l’utilisation de l’API.Vous pouvez vérifier dans votre livre de cookies (ou dans la spécification) si certaines applications tierces l’utilisent.Si c’est le cas, vous devez les informer de modifier leur façon d’utiliser notre API et de supprimer cette fonctionnalité dès que possible.

    • L’attribut allowSQLInjection permet à l’utilisateur d’effectuer des injections SQL en utilisant une ancienne syntaxe. Cet attribut doit être défini sur false. Vous pouvez utiliser /nl/jsp/ping.jsp?zones=true pour vérifier la configuration de votre zone de sécurité.Cette page affiche le statut actif des mesures de sécurité (calculé avec ces indicateurs de sécurité) pour l’adresse IP actuelle.

  • Cookie HttpOnly/useSecurityToken : reportez-vous au flag sessionTokenOnly.

  • Limitez le nombre d’adresses IP ajoutées à la liste autorisée : dans les zones de sécurité, nous avons ajouté les 3 plages pour les réseaux privés dans la configuration d’usine. Il est peu probable que vous utilisiez toutes ces adresses IP. Ne gardez par conséquent que celles qui vous sont nécessaires.

  • Mettez à jour l’opérateur interne/webApp pour qu’il soit accessible uniquement dans localhost.

recommendation-more-help
campaign-classic-help