4 votes

Puis-je utiliser Active Directory pour la sécurité au niveau des utilisateurs dans une application Access ? S'il vous plaît ?

Mon entreprise fait un usage assez intensif d'une application Access + MySQL qui serait probablement très fréquentée sur le Daily WTF si je publiais le code source. La gestion des utilisateurs et de leurs autorisations devient incontrôlable et je passe de plus en plus de temps à les modifier ou à essayer de comprendre pourquoi quelqu'un ne peut pas voir ce qu'il est censé voir.

À l'origine, il a été conçu pour être utilisé par trois utilisateurs dans un seul entrepôt. Il est maintenant utilisé par plus de vingt utilisateurs dans quatre États, et d'autres vont bientôt s'y ajouter, et les fonctionnalités ont été ajoutées dans un rapport d'environ 10 pour 1 avec les utilisateurs... L'application de base actuelle n'est pas mauvaise, mais la gestion des utilisateurs est un calvaire. Access constitue une interface agréable pour les données elles-mêmes, qui sont stockées sur un back-end MySQL dans notre siège social. Les utilisateurs ont des boîtiers VPN Cisco dans les succursales satellites, et c'est également solide. Scope est passé d'un simple registre d'expédition d'entrepôt à un CRM/ERP à part entière... enfin, je ne pense pas que l'on puisse appeler cela une solution. Une émulsion, peut-être. Si j'avais le budget, j'appellerais SAP et leur dirais de s'y mettre. J'ai bien peur que ce ne soit pas possible dans un avenir prévisible.

En suivant les instructions de Google (ce qui n'est pas toujours la chose la plus sûre à faire), j'ai utilisé l'"Assistant de sécurité de niveau utilisateur" dans Access pour attribuer des noms d'utilisateur et des mots de passe à divers utilisateurs, ce qui était bien lorsque j'ai commencé avec 4-5 utilisateurs au total et 3 utilisateurs actifs. Mais c'est maintenant assez difficile à gérer. Mon souhait le plus cher est qu'il existe un moyen d'authentifier les utilisateurs et d'attribuer des rôles de privilège sur la base du nom d'utilisateur et du mot de passe Active Directory. On me dit que c'est impossible. Quelques recherches sur Google n'ont rien donné d'intéressant.

Je suppose qu'il devrait être possible d'obtenir une sorte de cadre d'authentification en utilisant Active Directory, car VBA a des liens avec toutes sortes d'API dans Windows. Cependant... cela vaut-il le coup de passer du temps et de se donner du mal ? Est-ce que quelqu'un a déjà réussi à faire fonctionner ce système, ou est-ce que je risque de faire exploser non seulement mon application digne de ce nom, mais aussi le domaine ?

4voto

Mike Lawrence Points 111

Je sais que c'est possible, mais très peu de développeurs Access semblent le faire. Si quelqu'un d'autre écrivait le code, je l'utiliserais moi-même, mais je n'en ai pas suffisamment besoin pour l'écrire moi-même.

Le concept clé est que vous pouvez accéder aux informations AD via une requête LDAP utilisant ADO. Il n'y a aucun moyen d'appliquer des autorisations sur les objets d'accès, mais vous pouvez certainement contrôler le flux/la présentation de l'application en fonction de l'appartenance à AD. Voir ce fil pour un point de départ. Il y a aussi une base de connaissances MS article sur ce sujet qui explique l'approche LDAP.

Par ailleurs, tant que vous n'avez pas besoin de fonctionnalités spécifiques à AD (comme les unités organisationnelles), vous n'avez pas besoin d'utiliser AD du tout. Vous pouvez utiliser des appels API ordinaires pour obtenir des informations sur l'appartenance à un groupe. Voir cet article de Stackoverflow pour un code suggérant la direction à prendre (je ne peux pas vérifier ce code, car il semble plutôt elliptique, c'est-à-dire qu'il ne s'agit pas de déclarations d'API, mais il donne le concept de base).

1voto

Warren Blanchet Points 881

Il n'est pas possible de s'interfacer directement avec AD à ce niveau. Le mieux que vous puissiez faire directement est d'attribuer des autorisations de fichiers basées sur les comptes AD. Cela demanderait un peu d'effort pour le faire avec VBA, mais certainement pas hors de portée de compréhension. Je dirais que vous devriez faire une analyse de retour sur investissement assez solide avant de vous lancer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X