Sécurité du Publish/subscribe

La sécurité des processus et des flux de travail basés sur le Publish/subscribe doit être examinée à plusieurs niveaux :

  • S'assurer que les clients de l'API possèdent des informations d'identification correctes (authentification).
  • S'assurer que les clients de l'API disposent des autorisations nécessaires pour accéder aux sujets (autorisation).
  • Données en vol
  • Données au repos
  • Données par défaut
  • Accès à l'administrateur Web et aux serveurs

Authentification

  • Chaque client API dans le cadre de la publish/subscribe est représenté par un endpoint.
  • Les endpoints REST, SOAP et WebSockets peuvent être associés à une définition de sécurité - l'accès aux serveurs pub/sub ne sera pas autorisé si les informations d'identification ne sont pas correctes.

Autorisation

  • Après une authentification réussie, les autorisations d'accès sont vérifiées pour confirmer si un endpoint particulier peut publier des messages vers un sujet donné ou recevoir des messages de celui-ci.

  • L'autorisation est basée sur des modèles - pour chaque endpoint, une liste de modèles peut être créée, chaque modèle pouvant potentiellement se résoudre en temps réel à un ou plusieurs sujets, par exemple, /customer/*/new peut pointer vers les sujets /customer/uk/new ou /customer/de/new.

  • L'accès est vérifié chaque fois qu'un endpoint essaie de publier des messages ou de les recevoir.

  • Pour les abonnements, les modèles sont résolus lorsqu'un message est publié. C'est-à-dire qu'au moment de sa publication, tous les abonnés dont les modèles d'abonnement correspondent au nom du sujet sur lequel le message est publié sont pris en compte et seuls ces abonnés recevront le message.

Données en vol

  • L'équilibreur de charge en amont des serveurs Zato pub/sub peut être configuré pour utiliser TLS.
  • Les serveurs d'un cluster Zato peuvent être configurés pour utiliser TLS.

Données au repos

  • Les données au repos ne sont pas cryptées, que ce soit dans la RAM ou dans le stockage persistant - si le cryptage est nécessaire, les endpoints doivent l'implémenter eux-mêmes ou un service hook peut crypter dynamiquement les données reçues des éditeurs.

Valeurs par défaut

  • Conformément à l'architecture globale de la plate-forme, il n'y a pas de mots de passe ou de secrets par défaut - tout est toujours généré automatiquement et défini par des valeurs aléatoires (UUID4).

  • Le sujet /zato/demo/sample est un sujet de démonstration créé à des fins d'illustration.

  • L'endpoint zato.pubsub.demo.endpoint est créé pour faciliter l'accès au sujet de démonstration /zato/demo/sample. Cet endpoint n'a accès qu'à ce seul sujet.

  • Le endpoint zato.pubsub.default.internal.endpoint est créé - il est utilisé en interne par Zato. Cet endpoint a un accès complet à tous les sujets.

Accès au web-admin et aux serveurs

  • Les utilisateurs disposant d'un accès à l'administrateur Web peuvent gérer tous les objets pub/sub, y compris la possibilité de parcourir les messages, de les supprimer ou d'en publier de nouveaux.

  • Les utilisateurs disposant d'un accès SSH aux serveurs Zato peuvent accéder à tous les objets pub/sub à toutes fins utiles.

Sujets connexes