prevent roaming configuration question
isidoros
webmaster at fragrant-chios.com
Mon Oct 2 13:30:09 CEST 2006
James Wakefield wrote:
> isidoros wrote:
>
>> Thanks James for your answer,
>>
>> I'm fairly new to freeradius I know the package only 14 days. (or
>> radius in general for that matter)
>>
>> The group configuration is a mystery to me. It is unclear for me how
>> this separates the users. This is how I think
>> 1) G1 with users A,B,C
>> 2) G2 with users X,Y,Z
>> 3) At a request the configuration determines which group the user
>> belongs to
>> 4) And makes a query for the users A until Z to the same database
>> 5) the auth_query only talks about the user.
>> 6) This is the point where a fail to understand that the group config
>> helps me. The query is made to the same database on behalf of the any
>> user.
>>
>> Please spell it out to me where my thinking goes wrong. I would like
>> the understand this group config thing better (if at all at this
>> point in time).
>
> Hi Isidoros,
>
> In sql.conf,
>
> authcheck_table = "radcheck"
> authreply_table = "radreply"
>
> groupcheck_table = "radgroupcheck"
> groupreply_table = "radgroupreply"
>
> usergroup_table = "usergroup"
>
>
> groupcheck_table and usergroup_table are referred to here:
>
> authorize_group_check_query = "SELECT
> ${groupcheck_table}.id,${groupcheck_table}.GroupName,${groupcheck_table}.Attribute,${groupcheck_table}.Value,${groupcheck_table}.op
> FROM ${groupcheck_table},${usergroup_table} WHERE
> ${usergroup_table}.Username = '%{SQL-User-Name}' AND
> ${usergroup_table}.GroupName = ${groupcheck_table}.GroupName ORDER BY
> ${groupcheck_table}.id"
>
> This retrieves all the check items that apply to the group the user
> belongs to. The usergroup table maps users to groups, and
> radgroupcheck maps groups to check items. A check item, which will be
> a new term to you if you're a newbie, is an expression which is
> evaluated when deciding whether or not to authorize a request, such as
> User-Password == "mypassword", or Calling-Station-Id != "5554796".
>
> When rlm_sql is invoked to authorize a request, the user's check items
> in radcheck are evaluated. When the user is in a group, this might
> only be to check User-Password. Then, authorize_group_check_query is
> used to retrieve check items for the user's group, which are then
> evaluated. If all the applicable check items, from both radcheck and
> radgroupcheck, match, then the reply items - Attribute=Value pairs
> sent from freeradius to the NAS when it sends the Access-Accept
> message for an authorized request - are retrieved by querying
> radreply, for reply items specific to the user, and radgroupreply, for
> reply items specific to the user's group.
>
> Make any more sense?
>
>>
>> In the meanwhile:
>> I have solved the problem with the below changes:
>>
>> in sql.conf replace this rule with:
>> authorize_check_query = "SELECT id, UserName, Attribute, Value, op \
>> FROM ${authcheck_table} \
>> WHERE Username = '%{SQL-User-Name}' AND \
>> Location = (SELECT Location FROM nas WHERE nasname =
>> '%{NAS-Identifier}') \
>> ORDER BY id"
>>
>>
>> in mysql
>>
>> fill the nas table with your info:
>> INSERT INTO nas (nasname, nasshortname, type, secret, Location)
>> VALUES ('yournasname in chillspot', 'anyname' , 'other', 'shared
>> secret', 'Location-number '. );
>>
>> It works, but I have no idea if this is "best practice" or I'm
>> seriously damaging the config.
>
> Best practice is to not change any code if you don't have to. By
> using groups, you don't have to change any code. I wouldn't say
> you've "seriously damaged" the config, but you may find that it
> doesn't behave in the future. I would recommend spending the time
> getting groups and group checks to work, then reverting any SQL
> queries you've altered back to their defaults. It'll be much less
> painful in the long run.
>
> Cheers,
>
James:
I'm allmost there (now I'm thinking like this)
1) authorize_group_check_query: to check of the user is in a group
2) authorize_group_check_query: retrieve the check-items for this group
(which is my solution)
3) authorize on the check-items. if the expression is like this "whether
or not to authorize a request, such as User-Password == "mypassword", or
Calling-Station-Id != "5554796".
will all users in the same group authorize by the same password?
I guess my question is: Is the group check additional to the user check.
regards,
isidoros
More information about the Freeradius-Users
mailing list