FreeRadius - ActiveDirectory authentication multiple domains

Phil Mayers p.mayers at imperial.ac.uk
Fri Aug 29 17:19:44 CEST 2014


On 29/08/14 13:41, Ricardo Esteves wrote:
> Hi,
>
> 1 - The main goal is to authenticate Oracle Database users against
> Active Directory ( i think oracle works as normal radius client)
> 2 - The usernames are unqualified.
> 3 - Users are unique across domains.

Ok, so broadly speaking do something like this:

authorize {
   ...
   # run a script telling you which LDAP to query
   update request {
     Tmp-String-0 := "%{exec:/my/script %{User-Name}}"
   }
   # switch over the result
   switch "%{Tmp-String-0}" {
     case "mycompany" {
       ldap_mycompany
     }
     case "branch1" {
       ldap_branch1
     }
   }
   ...
}

The script should be something like this:

#!/bin/bash

username="$1"
domain=`some query $username`
echo $domain
exit 0

You'll then need to define the LDAP modules:

modules/myldap:

ldap ldap_mycompany {
   # ldap settings go here
}

ldap ldap_branch1 {
   # ldap settings go here
}


Note that "authenticating" to LDAP has some subtleties. I would aim to 
get it working for one user in one domain first without any of the 
above, then replicate it out for N domains.

Note also that running a shell script on every auth will be slow; if you 
can, consider using a SQL query or building a key/value file and getting 
the domain from rlm_passwd or similar.


More information about the Freeradius-Users mailing list