Assigning Users to Groups Dynamically
J Kephart
jkephart at safetynetaccess.com
Mon Dec 28 15:00:49 CET 2015
Thanks Mark and Matthew. We did come across the huntgroup
documentation, and that sounds as if it might work; we're just going to
have to dig into it--and experiment liberally--to see how it will work.
I'll let you know what we find!
On 12/18/2015 01:05 PM, Matthew Newton wrote:
> On Fri, Dec 18, 2015 at 12:36:11PM -0500, Mark Williams wrote:
>> I could be very wrong, but it seems like what you really want is
>> access defined, not per user, or even user group, but rather by
>> device class/group. That has it’s own issues, but… if I were to
>> implement something like this in my own environment… I would
>> start with records/nodes for the users, some radiusProfiles that
>> bundle VSA’s for different classes of devices, and then records
>> for the clients themselves, each with a virtual-server attribute
>> that matches a virtual-server in FreeRadius. A virtual-server
>> specific to that group/class of devices.
>> I’m still new to FreeRADIUS (really new), and the above was
>> right off the top of my head, so there's surely a better way to
>> do it. Actually you don’t even need multiple v-servers, just a
> Sounds sensible. But I wouldn't split it into different virtual
> servers without a good reason to.
>
> Just need to do two lookups. First, user to hardware type, then
> secondly hardware type to group. If you want to fit into the
> "traditional" way of doing this you might want to use huntgroups,
> otherwise any sort of SQL or LDAP etc database lookup could be
> used.
>
>>> So, for example, if any user wants to connect to Vendor A's gateway, we
>>> might have a group defined for that type of device containing:
>>>
>>> vendor_a_gateway Idle-Timeout = 900
>>> vendor_a_gateway VSA_1 = xxx
>>> vendor_a_gateway VSA_2 = xxx
>>> vendor_a_gateway VSA_3 = xxx
>>>
>>> Likewise, for Vendor B, we might have the following:
>>>
>>> vendor_b_switch Idle-Timeout = 600
>>> vendor_b_switch VSA_1 = xxx
>>> vendor_b_switch VSA_2 = xxx
>>> vendor_b_switch VSA_3 = xxx
>>>
>>> Ultimately, then, if a user logs on to a device that we can categorize
>>> as being Vendor A's gateway, we'd automatically associate that user with
>>> the group "vendor_a_gateway", and so on. In that way, we hope to limit
> Yeah, so you're looking up something like the "NAS-IP-Address" in
> one table to get "Group", then look up "Group" in another table to
> get the reply attributes.
>
> Matthew
>
>
More information about the Freeradius-Users
mailing list