Exploiter les données d'un ldap

Fermé
Mick Sgrill - 18 févr. 2010 à 12:51
 Mick Sgrill - 10 sept. 2010 à 18:02
Bonjour à tous !
Voilà, je voudrais solliciter les données d'un LDAP (en fait, l'information associée au personnel d'une organisation) dans une base Access (ou autre compatble ODBC (SQL-Server, Oracle par exemple).

Comment faire SVP?
C'est important pour moi, merci de votre aide.

12 réponses

Utilisateur anonyme
20 févr. 2010 à 11:34
Ayant une modeste expérience des deux environnements (annuaires et SGBD), je vais essayer d'apporter quelques éléments de réponse.

@esco :

Effectivement, il ne faut pas confondre annuaire et protocole. LDAP, comme le dit fort justement blux, est un protocole. L'annuaire en lui-même, ça va être Active Directory, iPlanet, les annuaires Netware, voire des annuaires Un*x.

Cet éclaircissement étant fait, passons à présent à la seconde partie de ta question : l'intérêt de la manip. On peut effectivement interroger directement l'annuaire et se contenter des données brutes, mais une réponse du genre :

CN=Jean Dupont, OU=ventes, DC=mondomaine, DC=com

Tu conviendras quand même que c'est pas le top à exploiter...

Eh oui, Active Directory, c'est pas les pages jaunes, et ça propose même pas une vue google maps du bureau de la personne... M'enfin... :o)

En revanche, AD (on va rester sur cet exemple, c'est plus simple), est un annuaire vivant et très correctement documenté. Dès lors, pourquoi ne pas utiliser un logiciel tiers pour en exploiter la puissance ? Le souci, c'est encore une fois l'exploitation des données brutes, qu'il convient de formater, mais ça c'est très "codable".

Terminons avec un exemple simple :

Je veux une base des employés de la société. Je souhaite que cette base vive de la manière la plus automatisée possible, et que l'état que je demande à l'instant t reflète fidèlement la réalité du terrain. Dans ce cas, je vais l'interfacer avec mon AD, et lancer plusieurs requètes automatiques par jour. Ainsi, si un nouvel arrivant intègre les effectifs, l'admin lui crée un compte, correctement renseigné, la requète est effectuée, la base est mise à jour de manière transparente. Idem pour les départs et autres déménagements. Pratique, non ?


@blux :

Effectivement, tu touches du doigt un autre aspect de la puissance des annuaires, la possibilité de gérer de manière très rigoureuse les habilitations, et c'est d'ailleurs fait dans toutes les structuyres de taille un peu importante. Cependant, je ne crois pas que ce soit le but de la question initiale (ou alors j'ai vraiment rien compris... :o) ) , c'est pourquoi je ne m'étendrai pas sur ce point, mais tu as parfaitement raison de le mentionner.

Voilà, sorry d'avoir été un peu long, mais je pense que ces modestes éclaircissements étaient nécessaires :o)

Bonne journée à tous.
2
Bien merci de consacrer du temps à répondre.

Rapidement concernant mon profil, je suis qq'un avec des connaissances particulièrement pointus (sur certains points et aspects) mais avec parallèlement de grosses lacunes. D'où des Q qui peuvent paraitre grossières.
Parenthèse faîte, en voici une..!
Ok, pour ce que tu décris par rapport au fait de lier une base à l'ad (et les requêtes de MàJ).
Mais (en gros, hein), comment faire?

BonWeek
0
Utilisateur anonyme
18 févr. 2010 à 13:34
Hello,

Directement, ce n'est à ma connaissance pas trop possible.

En revanche, tu peux transiter par l'excellent csvde qui te donnera un extract en .csv de ta requête LDAP.

Ensuite il te suffit de récupérer les données de ta feuille excel dans ta base Access et voilà !
0
Bonjour,

Merci de votre réponse !
Ce que tu décris, c'est vaguement ce que je fais actuellement.
Mais je voudrais plutôt obtenir un lien 'live' avec ces données ldap, et ne pas passer par des procédures à étape (genre ici sortir un extract du ldap puis se démerder à l'exploiter dans mon système).
J'entends parler de connecteur 'ldap' pour réaliser ce que je décris dans ma question ; mais j'en sais pas plus.

Merci de votre aide !
0
Utilisateur anonyme
19 févr. 2010 à 10:47
Il n'y a pas à ma connaissance de connecteur prêt à l'emploi.

En revanche, tu peux dans Access coder des macros qui savent accéder à l'AD, et exploiter directement les résultats de la query dans ton appli.

Encore une fois, pas de solution toute faite, mais quelques pistes quand même :

https://social.msdn.microsoft.com/Forums/en-US/3ce22918-8d63-42c1-9e02-20f1df2a1835/accessing-active-directory-trough-access-2002?forum=isvvba

https://www.tek-tips.com/viewthread.cfm?qid=1540950

Hope this helps.
0
'jour.
Merci, je vais consulter ces pages asap.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
19 févr. 2010 à 11:20
0
Bjour&Merci
'vais consulter ça asap.
0
Profil bloqué
19 févr. 2010 à 14:40
Bonjour,

Quelle est pour toi l'utilité de récupérer ses infos dans une base de donnée relationnelle?
un LDAP est justement une base de donnée (hierarchique et non relationnelle) spécialement concue et optimisé pour les données d'entreprise ( ressources).
On peut en effet y stocker des données et y faire des requetes.

Utiliser une base de donnée intermédiaire afin de sollicité des données d'un LDAP n'es pas une tres bonne pratique, ce n'est pas fait pour (meme si faisable) tu va perdre bcp d'efficacité et de productivité à faier cela.


Tu peux tout aussi bien questionner ton LDAP de la meme manière qu'une base de données (avec le langage de requetage adequat)
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
19 févr. 2010 à 15:14
un LDAP est justement une base de donnée
Pas d'accord...

LDAP est un protocole d'accès à un annuaire...

La base accédée par LDAP n'est pas obligatoirement hiérarchique, certains annuaires sont en DB2...
0
Profil bloqué
19 févr. 2010 à 15:24
autant pour moi c vrai, j'ai fait une peu des raccourcis.. mais bon quel but d'ajouter une bdd et d'y transferer les données alors que l'on peut les interroger directement dans l'annuaire. c'etait ca ma question
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
19 févr. 2010 à 15:33
je voudrais solliciter les données d'un LDAP
La question initiale est pertinente, ce sont les messages qui sont arrivés au fil de l'eau qui ont détourné le débat.

Il est parfaitement imaginable de concevoir une base de données dont les habilitations à faire telle ou telle chose soient dérivées d'une authentification via un annuaire...
0
Mick Sgrill > blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024
20 févr. 2010 à 12:04
Bonjour&Merci,

>je voudrais solliciter les données d'un LDAP
La question initiale est pertinente, ce sont les messages qui sont arrivés au fil de l'eau qui ont détourné le débat.


Effectivement il y a beaucoup de cas de figure impliquant d'avoir à faire ça.
D'autant que les ldap ne dialoguent pas nativement avec tous les sytèmes d'information du monde, loin s'en faut.
J'explique précisémment la mienne de raison (plus bas dans cette page, je crois).


>Il est parfaitement imaginable de concevoir une base de données dont les habilitations à faire telle ou telle chose soient dérivées d'une authentification via un annuaire...

Ce propos est très pertinent mais ne correspond pas à ma nécessité (en fait si, mais pas celle que j'exprime sur cette page, pour ne pas cumuler les sujets).
0
Salut à tous,
Merci de vos réactions.

Je vous explique un peu mon cas :

Alors en fait, j'emploie un système d'info visuelle (genre un peu Google map) pour entreprise.
Le système représente les employées (d'entreprise) avec leurs données de spécification attachées (nom, prénom, etc.). Je souhaiterais simplement que ces données attachées proviennent directement du ldap.

Pb : le système ne peut techniquement récupérer les données ldap directement.
Il ne peut le faire que par import (d'un fichier plat, fruit d'un extract du ldap) dans son propre système de base de données, solution que j'adopte actuellement ;
ou (peut-être...) par connexion, via ODBC, à une base externe (typiquement Access, SQL-Server ou Oracle) qui reçoit ces données ldap.

Je dis 'peut-être...' car cette solution que j'envisage, je ne sais si elle est possible (mais je pense que oui) et en tout cas je ne sais pas la mettre en oeuvre.
C'est la raison pour laquelle j'envisage de créer une simple base (d'où MS Access) qui servirait en fait d'intérmédiaire à deux systèmes qui ne peuvent dialoguer.
Autrement, serait-il possible de définir un connecteur qui aurait la forme d'une connexion ODBC, et qui me permettrait d'attaquer' directement le ldap?

M E R C I
0
Utilisateur anonyme
20 févr. 2010 à 12:37
Effectivement la demande est beaucoup plus claire ainsi formulée :o)

Il y a quand même un pré-requis indispensable (ça va sans dire, mais ça va quand même mieux en le disant...) :

Il faut que tes données soient initialement renseignées dans l'annuaire. Je pense notamment aux données "géographiques" (étage, bureau, etc...) qui sont peu souvent inscrites, parce que ça prend du temps et qu'un admin, c'est un peu fainéant... :o)

Ensuite, voilà une piste de réflexion :

1. Utiliser un fichier Excel
2. Coder une macro qui va te permettre de remplir ta feuille avec les données brutes.
3. "nettoyer" les données obtenues afin de les rendre exploitables (Retrait des CN= et autres DC=)
4. Sauvegarde du tableau final.

Si ta base sait faire un lien avec un tableau excel, c'est gagné. Sinon, tu peux faire pareil avec une base Access, mais ce sera un poil plus compliqué.
0
>Il faut que tes données soient initialement renseignées dans l'annuaire. Je pense notamment aux données "géographiques" (étage, bureau, etc...) qui sont peu souvent inscrites, parce que ça prend du temps et qu'un admin, c'est un peu fainéant... :o)

En fait pas forcément, la 'géoloc' peut être définie dans mon sytème visuelle ; ou non (dans ce cas tu aurais raison).
Elle l'est actuellement, donc pas de données de localisation nécessaires.
La récup des données se ferait typiquement via la clé 'matricule de personne'.

>Ensuite, voilà une piste de réflexion :

1. Utiliser un fichier Excel
2. Coder une macro qui va te permettre de remplir ta feuille avec les données brutes.
3. "nettoyer" les données obtenues afin de les rendre exploitables (Retrait des CN= et autres DC=)
4. Sauvegarde du tableau final.

Si ta base sait faire un lien avec un tableau excel, c'est gagné. Sinon, tu peux faire pareil avec une base Access, mais ce sera un poil plus compliqué.


Une macro est déjà actuellement codée, générant du ldap un fichier de données à séparateur par virgule.
Mon système ne gérant ce séparateur, il est nécessaire d'ouvrir le fichier d'export (typiquement avec Excel) pour éditer son séparateur en un format admissible par 'mon' système qui peut ensuite se charger de l'import.
Cet import écrase le contenu précédent, ce qui me pose en outre qqpb (hors-sujet ici).

Je cherche à obtenir un process plus simple, par une récupération directe des données (même si cela nécessite une base intermédiaire).
0
La solution est peut être que j'exploite ce fichier (celui à séparateur virgule, sorti du ldap) dans une base Access.
Ca doit être possible, je pense?
0
Utilisateur anonyme
21 févr. 2010 à 11:45
Effectivement, si une commande tegénère déjà un fichier csv, exploitable dans Excel, tu peux l'exploiter dans Access. La procédure d'import est ici :

https://com.com

La procédure pour l'import dans Access est à la figure E, mais tout le topic est intéressant.

Sinon, il est possible de faire une query directement depuis Access, en VBA, et c'est ici :

https://www.itprotoday.com/data-analytics-and-data-management

On va bien finir par y arriver :o)
0
Grand merci Bugcrusher,

Pour précision, l'extraction est sous la forme d'un fichier texte à séparateur par virgule.
Si jamais cela pose pb pour Access, je dois pouvoir changer cela.

Asap, je consulte ces bons liens.

Merci again.
0
Utilisateur anonyme
21 févr. 2010 à 22:36
Noprob, et je te confirme que la virgule n'est pas un problème dans Access.

N'hésite pas à poster si tu as un souci pour implémenter le truc.
0
Je vous conseille l'excellent "Apache Directory Studio" qui permet de se connecter à des annuaires LDAP et de faire des exports dans différents formats (Excel, LDIF, CSV,ODF,..., )et d'enregistrer des requêtes,...Ensuite un import en Excel ou Access et le tour est joué. Pour les mises à jour dynamiques: par encore trouvé de logiciel... :-(
0
Intéressant, merci.
0