Approches d’autorisation et modèles de conception pour les applications Node.js

Je construis une interface d’administration de plusieurs pages pour une plate-forme logicielle d’entreprise interne. Pensez à beaucoup de logique de colle liant diverses API, requêtes de firebase database et scripts de shell.

Nous utiliserons node.js, le framework express (y compris les modèles jade) et LDAP pour l’authentification.

J’ai du mal à trouver des informations concernant les modèles de conception et les meilleures pratiques pour l’autorisation dans les applications de nœuds. De préférence, je voudrais utiliser le modèle basé sur les rôles, car mes utilisateurs sont familiarisés avec cette approche et ses soins et son alimentation.

Je suis nouveau sur node.js, donc ne présumez pas que j’ai déjà vu un module ou un article de blog populaire. Il est probable qu’il y ait une mine d’informations et je ne sais simplement pas où chercher.

Merci d’avance pour toute information que vous pouvez fournir!

Selon votre première question, vous souhaitez une implémentation du processus d’autorisation dans NodeJs. J’ai exploré et utilisé le nombre d’API de NodeJs. Je préférerais suivre les API pour les applications d’entreprise.

  • Pour l’authentification: Passeport ou Satellizer si vous développez le SPA (frontal) dans AngularJS.

  • Pour autorisation: ACL . Sécurité basée sur les rôles sur les méthodes et les API REST.

Deuxièmement, vous souhaitez une approche de mise en œuvre et de développement dans NodeJs.

  • Facile et mon modèle de conception préféré et Framework for NodeJs: framework MVC, SailsJs . Pour son architecture prête à l’emploi et modulaire. La gestion du code est facile à long terme (exigence la plus pratique pour une application d’entreprise). Entretien facile. SailsJs est également préconfiguré avec Socket.io , avec lequel vous pouvez créer des modules en temps réel, des widgets, des widgets de discussion dans votre projet.

  • Express Vous pouvez utiliser Express et concevoir votre propre structure de projet MVC personnalisée. Ceci est également populaire et robuste. Vous pouvez trouver des projets de semences populaires sur Yeoman

  • Redis En tant que couche de mise en cache ou de session. Il est toujours bon d’utiliser une couche de mise en cache ou de session distincte, car cela ne vous empêchera pas de redimensionner votre application sur le cloud vers les nouvelles instances.

  • Vous pouvez utiliser Redis et Socket.io pour créer des fonctionnalités en temps réel telles que la géolocalisation , la présence de l’utilisateur (en ligne / hors ligne), le chat, la notification push et bien d’autres encore.

  • ORM: ligne de flottaison . Pour son approche de requête facile. C’est aussi l’ORM intégré et par défaut de SailsJs. Vous pouvez également utiliser Sequelizejs , si vous n’utilisez pas SailsJs. Je recommande d’utiliser des connecteurs natifs fournis par les fournisseurs de bases de données.

  • Base de données: selon vos besoins. Waterline ORM prend en charge PostgreSQL, MySQL, MongoDB, etc.

  • Mon moteur de vue préféré: EJS . Pas besoin d’apprendre de nouvelles choses pour développer votre couche de présentation. C’est aussi le moteur de visualisation intégré et par défaut de SailsJs, c’est pourquoi je suis un fan de SailsJs.

Je pense que j’ai couvert toutes les informations importantes pour créer une application d’entreprise dans NodeJs. Je ne dis pas, les paquets ci-dessus sont les meilleurs, mais en collaboration, ils peuvent être mieux adaptés à n’importe quel scénario d’entreprise. Il existe d’autres paquets connus, que vous pouvez utiliser selon vos propres besoins.

Voici quelques informations pour commencer:

  • passeport est un module populaire pour l’authentification
  • L’exemple d’authentification express montre comment implémenter une authentification simple sans modules supplémentaires
  • L’exemple de middleware de routage express explique comment implémenter l’authentification basée sur les rôles
  • article de blog sur nodejs.org à propos du module ldapjs

Espérons que cela facilite le démarrage.

Je devrais dire que Node-Authorization est également un bon candidat. L’idée est empruntée à SAP (fournisseur ERP), c’est une autorisation orientée object. Et il peut également être utilisé comme accompagnement avec d’autres frameworks tels que: Passport et Express.

Une autre option consiste à utiliser CASL qui est très bien intégré à MongoDB. Il y a aussi un article sur la façon d’autoriser l’autorisation basée sur CASL dans l’application Expressjs – https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b