Michael, Ok, I gave it a shot, and got some completely different results. Thanks for the suggestion. The order of check items is certainly taken into account, which I should have thought of. However, the error I am receiving is a little strange. All I have done is changed the order of the two check items. Now I am getting an error that looks to be more of a Perl error than a Radiator error.
Here is the debug log: Thu Feb 3 17:45:45 2011: DEBUG: Packet dump: *** Received from 192.168.xxx.xxx port 1645 .... Code: Access-Request Identifier: 47 Authentic: **************************************** Attributes: User-Name = "testuser" User-Password = ****************************************** NAS-Port = 1 NAS-Port-Id = "tty1" NAS-Port-Type = Virtual Calling-Station-Id = "192.168.yyy.yyy" NAS-IP-Address = 192.168.xxx.xxx Thu Feb 3 17:45:45 2011: DEBUG: Handling request with Handler 'Realm=DEFAULT', Identifier '' Thu Feb 3 17:45:45 2011: DEBUG: Deleting session for testuser, 192.168.xxx.xxx, 1 Thu Feb 3 17:45:45 2011: DEBUG: Handling with Radius::AuthGROUP: AuthSQLUSR Thu Feb 3 17:45:45 2011: DEBUG: Handling with Radius::AuthSQL: Thu Feb 3 17:45:45 2011: DEBUG: Handling with Radius::AuthSQL: Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'select PASSWORD, 'GroupList="group1 group2 group3 group4 group5"', 'AuthType=AuthHOTP' from SUBSCRIBERS where USERNAME='testuser'': Thu Feb 3 17:45:45 2011: DEBUG: Radius::AuthSQL looks for match with testuser [testuser] Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group1'': testuser group1 Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group1'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group1'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group2'': testuser group2 Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group2'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group2'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group3'': testuser group3 Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group3'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group3'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group4'': testuser group4 Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group4'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group4'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group5'': testuser group5 Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group5'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: ERR: Execute failed for 'SELECT groupname FROM v_usergroups WHERE username='testuser' AND groupname='group5'': called with 2 bind variables when 0 are needed Thu Feb 3 17:45:45 2011: DEBUG: Radius::AuthSQL REJECT: User testuser is not in any group in GroupList: testuser [testuser] Thu Feb 3 17:45:45 2011: DEBUG: Query is: 'select PASSWORD, 'GroupList="group1 group2 group3 group4 group5"', 'AuthType=AuthHOTP' from SUBSCRIBERS where USERNAME='DEFAULT'': Thu Feb 3 17:45:45 2011: DEBUG: Radius::AuthGROUP:AuthSQLUSR result: REJECT, User testuser is not in any group in GroupList Thu Feb 3 17:45:45 2011: DEBUG: AuthBy GROUP result: REJECT, User testuser is not in any group in GroupList Thu Feb 3 17:45:45 2011: INFO: Access rejected for testuser: User testuser is not in any group in GroupList If I cut-and-paste the query from the debug logs into a database query, it returns "group1" as the sole result, indicating that testuser is indeed a member. However, it appears that Radiator does not agree. Any further thoughts? I appear to be getting closer to my goals, and appreciate your input. Chuck On 02/03/2011 04:58 PM, Michael wrote: > ah ok, i see. the AuthSQL specifies "Auth-Type=AuthHOTP". Never done this > type of setup before, but maybe the 'Auth-Type=AuthHOTP' in the sql query > should be after the 'GroupList="Group1 Group2 Group3"?? Again, not sure, but > I would think the 'check' is done in order. it sounds like you want to do > the group list check first before checking the AuthHOTP. I don't see any > config in the AuthHOTP section though. > > Sorry, I'm reaching/guessing a little. > > > Michael > > > On 11-02-03 03:11 PM, Linuxchuck wrote: >> Hi Michael, Thanks for the response. >> >> Actually, it does hit the AuthHOTP section. I should have put a little more >> emphasis on the fact that there is an "AuthType=AuthHOTP" for the user when >> it is looked up in the database. I did mention that, but it was kind of >> jammed into the beginning, and was probably easy to miss. >> >> Here is the "slightly sanitized" debug output indicating AuthHOTP was indeed >> used: >> >> Thu Feb 3 13:54:57 2011: DEBUG: Handling request with Handler >> 'Realm=DEFAULT', Identifier '' >> Thu Feb 3 13:54:57 2011: DEBUG: Deleting session for testuser, >> 192.168.xxx.xxx, 1 >> Thu Feb 3 13:54:57 2011: DEBUG: Handling with Radius::AuthGROUP: AuthSQL >> Thu Feb 3 13:54:57 2011: DEBUG: Handling with Radius::AuthSQL: >> Thu Feb 3 13:54:57 2011: DEBUG: Handling with Radius::AuthSQL: >> Thu Feb 3 13:54:57 2011: DEBUG: Query is: 'select PASSWORD, >> 'AuthType=AuthHOTP', 'GroupList="group1 group2 group3 group4 group5"' from >> SUBSCRIBERS where USERNAME='testuser'': >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthSQL looks for match with >> testuser [testuser] >> Thu Feb 3 13:54:57 2011: DEBUG: Handling with Radius::AuthGROUP: AuthHOTP >> Thu Feb 3 13:54:57 2011: DEBUG: Handling with Radius::AuthSQLHOTP: >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthSQLHOTP looks for match with >> testuser [testuser] >> Thu Feb 3 13:54:57 2011: WARNING: This AuthBy does not know how to get user >> Groups >> Thu Feb 3 13:54:57 2011: WARNING: This AuthBy does not know how to get user >> Groups >> Thu Feb 3 13:54:57 2011: WARNING: This AuthBy does not know how to get user >> Groups >> Thu Feb 3 13:54:57 2011: WARNING: This AuthBy does not know how to get user >> Groups >> Thu Feb 3 13:54:57 2011: WARNING: This AuthBy does not know how to get user >> Groups >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthSQLHOTP REJECT: User testuser >> is not in any group in GroupList: testuser [testuser] >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthGROUP:AuthHOTP result: REJECT, >> User testuser is not in any group in GroupList >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthSQL REJECT: User testuser is >> not in any group in GroupList: testuser [testuser] >> Thu Feb 3 13:54:57 2011: DEBUG: Query is: 'select PASSWORD, >> 'AuthType=AuthHOTP', 'GroupList="group1 group2 group3 group4 group5"' from >> SUBSCRIBERS where USERNAME='DEFAULT'': >> Thu Feb 3 13:54:57 2011: DEBUG: Radius::AuthGROUP:AuthSQLUSR result: >> REJECT, User testuser is not in any group in GroupList >> Thu Feb 3 13:54:57 2011: DEBUG: AuthBy GROUP result: REJECT, User testuser >> is not in any group in GroupList >> Thu Feb 3 13:54:57 2011: INFO: Access rejected for testuser: User testuser >> is not in any group in GroupList >> >> Thanks! >> >> On 02/03/2011 01:43 PM, Michael wrote: >>> >>> your "AuthBy GROUP AuthSQL" will not flow down into the "AuthBy GROUP >>> AuthHOTP". I don't think the AuthHOTP will be used at all in this config. >>> >>> Look like you need an "AuthBy AuthHOTP" in the AuthSQL config, like this: >>>> <AuthBy GROUP> >>>> Identifier AuthSQL >>>> AuthByPolicy ContinueWhileAccept >>>> <AuthBy SQL> >>>> GroupMembershipQuery SELECT groupname FROM >>>> v_usergroups WHERE username=%0 AND groupname=%1 >>>> AuthSelect select PASSWORD, 'Auth-Type=AuthHOTP', >>>> 'GroupList="Group1 Group2 Group3"' from SUBSCRIBERS where USERNAME=%0 >>>> AuthColumnDef 0, Class, request >>>> AuthColumnDef 1, GENERIC, check >>>> AuthColumnDef 2, GENERIC, check >>>> </AuthBy> >>> >>> # now call the AuthHOTP >>> AuthBy AuthHOTP >>> >>>> </AuthBy GROUP> >>> >>> >>> Michael >>> >>> >>> On 11-02-03 02:34 PM, Linuxchuck wrote: >>>> Hello again, >>>> >>>> I am attempting to validate both the username and appropriate group >>>> membership via MySQL on an incoming access-request before bothering to >>>> process the HOTP password provided. If the username doesn't exist, or the >>>> user is not a member of the group in the list provided, send a reject and >>>> stop processing. >>>> >>>> The problem I run into is that the grouplist check appears to be performed >>>> by the 2nd AuthBy clause, which fails because HOTP is not capable of >>>> checking groups. I would like for the group check to occur prior to the >>>> HOTP check. >>>> >>>> Here is my config layout so far: >>>> >>>> FYI: The user entry in MySQL provides a check-item of "Auth-Type=AuthHOTP" >>>> >>>> <AuthBy GROUP> >>>> Identifier AuthSQL >>>> AuthByPolicy ContinueWhileAccept >>>> <AuthBy SQL> >>>> GroupMembershipQuery SELECT groupname FROM >>>> v_usergroups WHERE username=%0 AND groupname=%1 >>>> AuthSelect select PASSWORD, 'Auth-Type=AuthHOTP', >>>> 'GroupList="Group1 Group2 Group3"' from SUBSCRIBERS where USERNAME=%0 >>>> AuthColumnDef 0, Class, request >>>> AuthColumnDef 1, GENERIC, check >>>> AuthColumnDef 2, GENERIC, check >>>> </AuthBy> >>>> </AuthBy GROUP> >>>> >>>> <AuthBy GROUP> >>>> Identifier AuthHOTP >>>> <AuthBy SQLHOTP> >>>> ... >>>> </AuthBy> >>>> </AuthBy GROUP> >>>> >>>> <Realm DEFAULT> >>>> AuthBy AuthSQL >>>> </Realm> >>>> >>>> I don't see any evidence that the Authby SQL is performing the group >>>> check, and the log tells me "WARNING: This AuthBy does not know how to get >>>> user Groups" under the HOTP section. >>>> >>>> Is there a way to accomplish what I'm after? >>>> >>>> Thanks! >>>> >>>> Chuck >>>> _______________________________________________ >>>> radiator mailing list >>>> radiator@open.com.au >>>> http://www.open.com.au/mailman/listinfo/radiator >>>> >>>> >> >> _______________________________________________ radiator mailing list radiator@open.com.au http://www.open.com.au/mailman/listinfo/radiator