Confier l’authentification des utilisateurs dans une application à Active Directory

authentification utilisateurs active directory
La plupart des applications développées, évoluant en entreprise, disposent d’une fonctionnalité de contrôle d’accès au démarrage : pour avoir accès au programme, il faut disposer du droit de l’utiliser. Quoi de plus normal ?

Il est tentant pour le programmeur de cette application de concevoir lui-même et de mettre en place ses propres procédures d’authentification. N’est-ce pas là tout simplement réinventer la roue ? Et même équiper ce merveilleux nouveau programme d’une roue en bois ?

Imposer des règles d’authentification

En ce qui concerne l’authentification des utilisateurs, de multiples questions peuvent être légitimement posées. Il est probable que notre dévoué programmeur, agissant dans le cadre certainement limité de l’application qui le préoccupe, ne prendra pas le temps de se les poser toutes :

  • Quelle complexité (force) de mot de passe imposer ?
  • Quelle est la durée de vie d’un mot de passe ?
  • Où et comment stocker ces mots de passe ? (Certainement pas en clair dans une base de données)
  • Que faire après plusieurs tentatives de connexions infructueuses ? Bloquer le compte ?
  • Si oui, pour combien temps ? 

Déléguer ces questions épineuses

Et si la solution était simplement de se dispenser de cet aspect de la programmation ?

Il suffit de confier cela au contrôleur de domaine présent dans tout réseau à base « Windows ». Active Directory peut, en effet, se comporter comme un serveur LDAP et prendre en charge toutes les vérifications imposées par l’authentification des utilisateurs.
Ainsi, les questions posées ci-dessus trouvent leur réponse dans le gestionnaire de stratégie de sécurité locale (stratégies de mot de passe et stratégies de verrouillage du compte) qui permet de fixer les paramètres correspondants.

active directory

Concernant la programmation

Le développement .net est rendu très aisé à ce niveau : l’espace de nom System.DirectoryServices.AccountManagement contient une boîte à outils bien fournie, permettant au programmeur de valider en un nombre minimal de lignes de code les crédentiales d’un utilisateur.
Pour les autres plateformes de développement, il existe une multitude de librairies compatibles LDAP permettant d’obtenir le même résultat.

Pourquoi faire soi-même ce que d’autres font mieux ?

sécurité du domaine intranet

Et la sécurité de cette infrastructure ?

On ne le répétera jamais assez :

Un domaine Active Directory doit être confiné à un intranet, donc limité à un réseau local.

Il n’est pas imaginable d’exposer ce domaine, et les ports IP qui y sont associés, à l’internet public.
Pour les utilisateurs distants, un VPN doit être mis en place. L’authentification sur le domaine fonctionnera parfaitement au travers de ce VPN.

Une gestion centralisée des autorisations, c’est plus facile !

L’authentification vue sous cet angle, Active Directory devient alors le lieu central de configuration des droits d’accès à tel ou tel élément de l’infrastructure informatique et, en même temps, à telle ou telle application. 
Il est simple de configurer un groupe par application au sein de l’Active Directory et d’inclure ensuite dans ce groupe l’ensemble des utilisateurs qui ont accès à cette application.

Cela apporte un confort supplémentaire pour les utilisateurs : une seule façon de s’authentifier pour tous les services proposés par l’entreprise.
Quand un utilisateur quitte l’entreprise, la seule désactivation de son compte dans le domaine fait en sorte que tous ses accès soient suspendus. Il n’est dès lors plus nécessaire de supprimer, à gauche et à droite, des autorisations qui auraient été éparpillées dans diverses applications.

Et dans Mercator ?

Mercator est « livré » avec une authentification de base, qui repose sur un simple mot de passe. Depuis la version 10, il est possible d’activer un mode d’authentification sur base du domaine ( Explication )

L’avis de l’équipe de programmation est unanime à ce propos : dans toute organisation qui se respecte, et qui compte au moins un serveur contrôleur de domaine, il est nécessaire d’activer ce mode. Le mode standard doit être vu comme une version permettant juste une authentification de base utilisable durant l’installation et la mise en place de Mercator.

sécurité mercator