Evaluate Ldap-Group and SSID for WiFi authorization
Adam Cage
adamcage27 at gmail.com
Wed Aug 23 19:09:01 CEST 2017
Dear Alan, i've done what you say and this too:
if (LDAP-Group == "GROUP1" && Called-Station-Id =~ /:Free$/)
But I fail again, below is the debug.....
Maybe I have to add a new attribute "Called-Station-Id" for each AD
username ??? Because I've never add it at all in AD and in debug I can
red *Attribute
Called-Station-Id was not found:*
Debug: rlm_ldap::ldap_groupcmp: User found in group GROUP1
Wed Aug 23 14:01:16 2017 : Debug: [ldap] ldap_release_conn: Release Id: 0
Wed Aug 23 14:01:16 2017 : Info: ? Evaluating (LDAP-Group == "GROUP1" ) ->
TRUE
Wed Aug 23 14:01:16 2017 : Info: *(Attribute Called-Station-Id was not
found)*
Wed Aug 23 14:01:16 2017 : Info: ? Evaluating (Called-Station-Id =~
/:Free$/) -> FALSE
Wed Aug 23 14:01:16 2017 : Info: ++? if (LDAP-Group == "GROUP1" &&
Called-Station-Id =~ /:Free$/) -> FALSE
Wed Aug 23 14:01:16 2017 : Info: ++else else {
Wed Aug 23 14:01:16 2017 : Info: +++[reject] = reject
Wed Aug 23 14:01:16 2017 : Info: ++} # else else = reject
Wed Aug 23 14:01:16 2017 : Info: +} # group authorize = reject
Thanks again, regards!!!
2017-08-23 10:59 GMT-03:00 Alan DeKok <aland at deployingradius.com>:
> On Aug 23, 2017, at 9:06 AM, Adam Cage <adamcage27 at gmail.com> wrote:
> >
> > People, good morning...I have a Freeradius with AD authentication and
> LDAP
> > authorization working OK.
>
> That's good.
>
> > Now I have to authorize users that belong to GROUP1 and have SSID =
> Free, I
> > have these definitions:
> >
> > - GROUP1 is a group defined in the AD
> >
> > - SSID comes with Called-Station-Id in the form MAC Address:SSID, for
> > example "51:bc:11:e1:34:70:Free", and it's not defined i the AD
>
> That's the standard way it's received, yes.
>
> > - The clause defined in default and inner-tunnel files is:
> >
> > if (LDAP-Group == "GROUP1" && Called-Station-Id == "*:Free") {
>
> No, that won't work. See "man unlang". The equality comparison ==
> tests for *equality*. And the string "51:bc:11:e1:34:70:Free" isn't equal
> to the string ":Free"
>
> You should use regular expressions instead: See the =~ operator.
>
> > After testing, I fail and this is the debug:
> >
> > Wed Aug 23 09:34:58 2017 : Debug: rlm_ldap::ldap_groupcmp: User found in
> > group GROUP1
> > Wed Aug 23 09:34:58 2017 : Debug: [ldap] ldap_release_conn: Release
> Id: 0
> > Wed Aug 23 09:34:58 2017 : Info: ? Evaluating (LDAP-Group == "GROUP1" )
> ->
> > TRUE
> > Wed Aug 23 09:34:58 2017 : Info: (Attribute Called-Station-Id was not
> > found)
>
> That's a different error.
>
> It means that the Called-Station-ID attribute wasn't found... so you
> can't do matches on it.
>
> Fix that problem first. You probably want:
>
> if (LDAP-Group == "GROUP1" && outer:Called-Station-Id =~ /:Free$/
> ) {
>
> Alan DeKok.
>
>
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/
> list/users.html
More information about the Freeradius-Users
mailing list