Issue #293 has been reported by Jonathan Clarke.

----------------------------------------
Feature #293: OpenLDAP overlay to notify LSC of changes
http://tools.lsc-project.org/issues/293

Author: Jonathan Clarke
Status: New
Priority: Low
Assigned to: 
Category: 
Target version: Sometime in the future


TMM came up with this idea on IRC:

15:47:23 < TMM> jooooooon, I once built a system by hand based on a plugin for 
openLDAP I wrote that would sync to AD and several others that I might like to 
rework using LSC
15:47:43 < jooooooon> we designed LSC so that source and dest plugins could be 
easily added, so they are most welcome :)
15:48:12 < jooooooon> there's actually a howto in the wiki somewhere on how to 
build a source connector (a dest connector is the same with an extra method to 
write the changes)
15:48:13 < TMM> what I was thinking of was to have a lsc run triggered by 
OpenLDAP EXOP and some other events
15:48:34 < TMM> and then sync to mysql users table and AD
15:48:52 < TMM> of course OpenLDAP would be leading in this scenario 
15:49:06 < jooooooon> hmm. Seb is working on a source connector that uses 
OpenLDAP's syncrepl mecanism to get notifications of changes, which could allow 
to trigger the sync. would that fit your need?
15:49:08 < TMM> doing it with a leading AD is largely impossible from what I've 
seen of it
15:49:31 < TMM> no, by the time syncrepl gets it's hands on the data the 
passwords cleartext will be gone
15:49:37 < jooooooon> the same mechanism can be used to get notifications from 
AD too, actualy, using the replication mechanism (DirSync or something)
15:49:58 < jooooooon> ah, right. you suggest to intercept the changes method in 
openLDAP to pass the changes onto LSC before commiting them?
15:50:17 < TMM> yeah, but with AD it's laregely impossible to get at the clear 
password without nasty hacks, but last time I checked was late win2k AD so 
perhaps it's better now
15:50:56 < jooooooon> there are some DLL you can install on Windows to capture 
the password when it's changed - like http://passwdhk.sourceforge.net/
15:50:59 < TMM> yeah, an OpenLDAP overlay has direct access to the password's 
cleartext right before or after the actual change to the dit
15:51:15 < jooooooon> sounds like a great idea! a "LSC" overlay would cut it 
nicely :)))
15:51:30 < TMM> yeah, that was what I was thinking
15:51:39 < jooooooon> I would love to see that
15:51:47 < TMM> there would probably be a permanently running LSC instance 
communicating with openLDAP over a socket or something
15:51:52 < TMM> to make it 'clean'
15:52:04 < TMM> but before that a more hacky solution could be made
15:52:16 < jooooooon> yes, in the trunk version LSC can run as a daemon, and 
receive calls by JMX
15:52:17 < TMM> this is one of those instances where using Java isn't exactly 
making things easier :P 
15:52:34 < TMM> I don't think that using JMX is very suitable 
15:52:46 < jooooooon> mebbe not, I don't really know much about it to be honest
15:52:52 < jooooooon> why is that you think it's not suitable?
15:52:56 < TMM> I've looked into implementing a JMX client in C for 
jboss/nagios monitoring
15:53:33 < TMM> it didn't seem particularly friendly to non-java implementations
15:53:39 < jooooooon> another solution would be to implement some simple web 
services, I guess
15:54:28 < TMM> I'm kind of reluctant to have anything as 'fat' as an HTTP 
client in my directory server to be honest
15:54:38 < TMM> some really lean binary protocol would probably be best
15:54:55 < TMM> not very javay, I know :P
15:55:01 < jooooooon> OK, I was just thinking "standard", but it's a good 
argument
15:56:12 < TMM> I would actually prefer something that simply would only work 
locally 
15:56:23 < TMM> because otherwise you'd have to implement SSL and cert handling
15:56:33 < TMM> before you could really release it
15:57:04 < jooooooon> yep, very true
15:57:06 < jooooooon> any ideas?
15:57:52 < TMM> well... like I said, I was thinking simply a socket connection 
between OpenLDAP and LSC :P
15:58:00 < TMM> but I guess that's not terribly portable
15:58:30 < TMM> maybe chuck a STOMP server in between
15:58:30 < jooooooon> I wonder how hard it would be to implement a queuing tool 
(such as RabbitMQ)
15:58:35 < TMM> lol
15:58:41 < TMM> great minds think alike
15:58:56 < TMM> I actually was thinking of using rabbitmq
15:59:11 < jooooooon> hehe :)
15:59:38 < jooooooon> that way, messages could be passed out of OpenLDAP and 
queued, and if LSC was not available for any reason, it wouldn't block writes 
on the OpenLDAP server, just syncs
15:59:46 < TMM> you'd have an async queue in the ldap server itself, queueing 
up to rabbitmq
16:00:08 < TMM> (overlays are blocking, you want to basically copy the password 
and give control back to the server as quick as you can)
16:01:09 < TMM> so the overlay would spin off a thread with a stomp client anda 
queue in
16:01:58 < TMM> the in-process part would simply copy a configurable list of 
attributes into an object on the queue that LSC would then get from the stomp 
server and process
16:02:33 < TMM> at least, that's pretty much how I did it before
16:03:07 < TMM> but instead of LSC it was 'tmms nasty python conglomerate'
16:03:24 < jooooooon> I'd never heard of STOMP - is it still maintaned ? lots 
of links are dead
16:03:47 < TMM> stomp is the name of the protocol that activemq and rabitmq 
implement
16:04:11 < TMM> at least I thought so
16:04:29 < jooooooon> oh right - I just came across this: 
http://stomp.codehaus.org/
16:04:38 < TMM> http://www.rabbitmq.com/plugins.html
16:04:49 < TMM> rabbitmq-stomp
16:04:49 < TMM> A gateway for exposing AMQP functionality via the STOMP 
protocol, as implemented by many clients for various programming languages, and 
a few other servers besides RabbitMQ. 
16:04:53 < TMM> glad I'm not insane 
16:05:29 < jooooooon> interesting :))
16:05:33 < TMM> but using amqp would probably be better now that I look closer
16:07:26 < jooooooon> I like this idea!
16:07:32 < TMM> regardless, <insert protocol> client in openldap :P



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to