Questions about ldap authentication, huntgroup and authorize file

Jérôme BERTHIER Jerome.Berthier at inria.fr
Tue Oct 10 18:00:52 CEST 2017


Hello Alan,

Le 09/10/2017 à 23:38, Alan DeKok a écrit :
> On Oct 9, 2017, at 10:29 AM, Jérôme BERTHIER <Jerome.Berthier at inria.fr> wrote:
>> The filter replies differents vendor specific attributes for each ldap group and finally, we reject the authentication if there is no match.
>    OK.
>
>> For example, for devices from Juniper, we use this setup :
>>
>> DEFAULT         Ldap-Group==ldap_group_1,Huntgroup-Name == JuniperNet
>>              Service-Type = Login,
>>              Juniper-Local-User-Name := "radius-admin"
>> DEFAULT         Ldap-Group==ldap_group_2,Huntgroup-Name == JuniperNet
>>              Service-Type = Login,
>>              Juniper-Local-User-Name := "radius-operator"
>> DEFAULT        Auth-Type := Reject,Huntgroup-Name == JuniperNet
>    You can also do that all in "unlang", which might be clearer.

Something like that ?

         if (Ldap-Group == "ldap_group_1" && Huntgroup-Name == 
"JuniperNet") {
                 update {
             reply:Service-Type = Login
                         reply:Juniper-Local-User-Name := "radius-admin"
                 }
         }
         elsif (Ldap-Group == "ldap_group_1" && Huntgroup-Name == 
"JuniperNet") {
                 update {
             reply:Service-Type = Login
                         reply:Juniper-Local-User-Name := "radius-operator"
                 }
         }
         elsif (Huntgroup-Name == "JuniperNet") {
                  reject
         }

>
>> I still have few questions :
>>
>> 1) I notice that the variable Ldap-Group is no more set by the last ldap instance called. So, I corrected my config to describe the default instance ldap {}. It works but is it planned to be able to call another instance in the file authorize ?
>    The LDAP-Group attribute is created only for the "ldap" module.  If you have multiple LDAP modules (e.g. ldap ldap1 { ...} ), then there will be an attribute created called "ldap1-LDAP-Group"

Do you mean that I need to setup one module file for each ldap server ?

In the file authorize, I tried to use this attribute associated to each 
ldap server listed in the module file ldap.
For example :
DEFAULT     myldap1-Ldap-Group=="ldap_group_1" , Huntgroup-Name == 
JuniperNet
             Service-Type = Login,
             Juniper-Local-User-Name := "radius-admin"

then radiusd does not start because the attribute is unknown :

/etc/raddb/mods-config/files/authorize[229]: Parse error (check) for 
entry DEFAULT: Unknown attribute "myldap1-Ldap-Group"
Failed reading /etc/raddb/mods-config/files/authorize
/etc/raddb/mods-enabled/files[9]: Instantiation failed for module "files"



Regards,

-- 
Jérôme BERTHIER




More information about the Freeradius-Users mailing list