rlm_ldap and multiple ldap calls?

JR Mayberry mayberry at loonybin.net
Sun Dec 21 19:28:27 CET 2008


I'm not really sure if I'm doing this right, maybe someone can provide 
guidance. I have two problems a) how to structure my directory and b) how to do 
two lookups in rlm_ldap.

But, effectively, LDAP is our authorization store and I'm proxying RADIUS to an 
RSA server for authentication only. We're removing all authorization from RSA.

So, I've got devices in ou=Hosts,dc=blah,dc=com that are following the ipHost 
objectClass. Basically, I need a mechanism to put those devices into 
'groupOfIpHosts' - which isn't a real concept.

So, I use the 'seeAlso' attribute to reference a group of systems for that 
particular ipHost.

Then, I lookup that group and check if the user authenticating is a 
uniqueMember in that group.

So, I'm basically doing two ldap lookups. Right now, I'm doing it in an 
rlm_perl module which has obvious disadvantages (ldap persistence).

So
a) is there a better way to structure my directory?
b) can I do multiple ldap lookups using rlm_ldap to achieve same end goal?

LDAP calls looks like this now

1) get the hosts group

         $mesg = $ldap->search(
                         base   => "ou=Hosts,dc=comcast,dc=com",
                         filter => "(&(ipHostNumber=$ipaddress))",
                         attrs => ["seeAlso"],
                              );
## returns group membership into $group

2) verify user in group
                 $mesg = $ldap->search (
                         base   => $group,
                         filter => 
qq{(&(uniqueMember=uid=$username,ou=users,dc=comcast,dc=com))},
                         attrs => ["uniqueMember"],
                              );




More information about the Freeradius-Users mailing list