Sécurité VS autonomie des utilisateurs

Comment combiner le besoin d'accès de vos utilisateurs avec les ressources informatiques de l'entreprise ?

Comment gérer l’accès des utilisateurs aux ressources de l’entreprise ?
Gestion des listes de comptes utilisateurs, définition des permissions, surveillance des applications…

Définir qui a le droit de faire quoi peut vite devenir un casse tête pour le développeur.
Comment assurer la sécurité du système sans freiner la productivité de l’entreprise ?

Voici quelques pistes pour orienter votre réflexion et surtout, nous n’avons pas résisté à vous présenter notre solution favorite en fin d’article.

Concilier Sécurité et autonomie des utilisateurs

Sécuriser l’usage des ressources d’une entreprise est un sujet délicat à plusieurs titres.
Il faut notamment combiner sécurité des systèmes et autonomie des utilisateurs.

Un système de sécurité trop contraignant, même s’il a l’avantage d’être parfaitement sécurisé, constituera à long terme un frein pour la réactivité de l’entreprise.

Favoriser l’autonomie des utilisateurs donne une plus grande réactivité à l’entreprise. Cependant, cela peut induire des risques de sécurité qu’il faudra couvrir…

Prenons l’exemple de la gestion quotidienne des comptes utilisateurs et de leurs permissions. Voici quelques points qui offrent une marge de manœuvre :

La gestion des comptes utilisateurs :
Cette tâche consomme du temps et mobilise des ressources techniques.
Peut-on envisager de transférer cette tâche à des administrateurs non techniques ?

La gestion des permissions :
Une bonne politique de sécurité doit pouvoir s’adapter à la réalité du terrain. Il est plus productif de connaître le quotidien des utilisateurs pour leur donner des permissions adéquates.
Peut-on déléguer ce type de tâche ? Cela soulève des questions aussi bien techniques que stratégiques.

Ces choix demandent un important travail d’analyse pour prendre en compte la réalité métier de chaque entreprise.

Pistes de réflexion

Voici quelques questions clés :

Quelles tâches déléguer à des administrateurs ?

Gestion des comptes : La création/suppression de comptes est une tâche qu’on peut facilement déléguer. C’est techniquement simple, et l’impact sur la sécurité est facilement maîtrisable.

La gestion des permissions
Le choix est moins évident. D’un point de vue stratégique : souhaite-t-on transférer ce type de responsabilité à des administrateurs non techniques ?
D’un point de vue technique : comment faire pour qu’une permission « fonctionnelle » attribuée par un administrateur soit effectivement appliquée à l’utilisateur ?

Quels outils mettre en place ?
Il faudra concevoir des outils permettant d’exécuter les tâches déléguées.

Note : on ne saurait trop recommander de prendre en compte la sensibilité des utilisateurs finaux. Des outils peu ergonomiques les rebuteront et les inciteront instinctivement à trouver des solutions de contournement qui mettront en péril la sécurité de votre système.

Comment garantir la fiabilité du système ?
Pour maintenir un niveau de sécurité élevé, il faut pouvoir contrôler ce qui a été fait au sein du système (savoir quel administrateur à donné quelle permission etc…). Il faut donc prévoir des outils d’audit

Combien d’administrateurs seront nécessaires ?
S’ils sont nombreux, vous devrez prévoir des rôles et des permissions au sein même des outils d’administration. Ex : un master administrateur et plusieurs sous administrateurs ayant des responsabilités plus limitées.

Comment gérer le cas des sites distants ?
En fonction de la structure de l’entreprise on pourra être amené à mettre en place des outils d’administration fonctionnant sans lien avec la base de données pour garantir l’autonomie des administrateurs.

Acheter ou développer en interne ?
Il s’agit d’une décision stratégique classique.
Le cas du contrôle d’accès comporte des spécificités dans ce domaine.

Il est particulièrement difficile d’élaborer une solution qui soit à la fois :

  • Techniquement viable
  • Adaptée aux besoins fonctionnels (très complexes dans ce domaine)
  • Garantissant un haut niveau de sécurité

De plus, les coûts cachés risquent de grever à long terme le budget de développement :

  • Maintenance quotidienne : gestions des comptes, nouvelles permissions à chaque nouvelle version de votre application etc…
  • Suivi des évolutions technologiques majeures de Microsoft.

Vu la complexité du sujet, une étude préliminaire sur les solutions existantes se justifie.
Une estimation précise des coûts (à court et long terme) et les besoins spécifiques de l’entreprise vous permettront de prendre une décision.

La solution proposée par Novalys : Visual Guard

Novalys a développé Visual Guard, une solution de contrôle d’accès qui répond à bon nombre de questions évoquées.

En particulier :

  • La gestion des comptes utilisateurs est transférable à des administrateurs non techniques à l’aide d’une console dédiée. A partir d’une interface unique, ils peuvent gérer simplement les comptes utilisateurs et les permissions de tout un portefeuille d’applications.

Note : Du point de vue technique, toutes les applications .Net sont supportées : Winform, Webform, Asp.net, WCF, WPF etc… ainsi que les applications PowerBuilder.
L’objectif est de fournir un seul système de sécurité centralisé pour toutes les applications.
Une version multi-langage est en cours de développement pour supporter également des applications non .Net : Java, C++, PHP

  • Un administrateur peut donc créer sans assistance technique des comptes de type login/mot de passe (stockés directement dans le repository interne de Visual Guard) ou réutiliser des comptes Windows stockés dans Active Directory.

Note : Concrètement, cela veut dire que vous pouvez réutiliser des comptes Windows pour authentifier les utilisateurs de vos applications. En plus de vous éviter de créer un système d’authentification, le principe de Single Sign-on de Windows sera implémenté automatiquement.

  • Toujours avec la même interface, l’administrateur peut attribuer aux utilisateurs des permissions prédéfinies par les développeurs.

Note : Techniquement, l’outil se base sur des principes de bas niveau du framework .Net. Les permissions sont appliquées dynamiquement sans passer par l’étape déploiement.
Une permission attribuée par un administrateur avec la console est immédiatement active (Voir un exemple).

  • La console est disponible en Webform. On peut donc effectuer les tâches d’administration sans connexion directe à la base de données ou au réseau local. Une connexion Internet suffit. La gestion des comptes utilisateurs et de leurs droits peut donc être décentralisée (cas des sites distants).
  • Visual Guard comporte une sélection de rôles pour les administrateurs, de façon à contrôler la gestion de la sécurité. Une fonctionnalité d’audit enregistre les actions d’administration et génère des rapports au format .pdf.

Ces fonctionnalités permettent de combiner sécurité des systèmes et flexibilité des utilisateurs.
D’un point de vue fonctionnel, les administrateurs ont leur propre outil pour la gestion des comptes.
En fonction des besoins spécifiques de l’entreprise on pourra leur permettre de déclarer uniquement des utilisateurs ou leur accorder des privilèges avancés tels que l’attribution de permission.
Les différents niveaux de rôles permettent d’établir une hiérarchie entre les administrateurs. La fonctionnalité de log garantit le suivi des actions de sécurité.

D’un point de vue technique, les avantages de Visual Guard sont nombreux :
Il est compatible avec de multiples systèmes d’authentification.
L’authentification Windows implémente automatiquement le single sign-on. Les fonctionnalités liées aux permissions et à l’audit sont disponibles en standard.
Le cas des sites distants est également pris en compte, ainsi que le fonctionnement en mode off-line.
Enfin, l’externalisation de la mise à jour du système de sécurité et du suivi des évolutions des technologies Microsoft constitue un gain de temps et d’argent conséquents. Les équipes de développement peuvent ainsi concentrer leurs efforts sur des tâches stratégiques.