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.
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.
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 :
De plus, les coûts cachés risquent de grever à long terme le budget de développement :
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.
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 :
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
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.
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).
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.