Victor via FreeIPA-users wrote:
> Hello,
> 
> Everything is set up on the same machine as described here:
> https://www.freeipa.org/page/Using_FreeIPA_and_FreeRadius_as_a_RADIUS_based_software_token_OTP_system_with_CentOS/RedHat_7
> 
> I'm trying to check whether a user belongs to a group or not:
> 
> (0)    if (LDAP-Group == "someusers") {
> (0)    Searching for user in group "someusers"
> rlm_ldap (ldap): Reserved connection (6)
> (0)    Using user DN from request 
> "uid=common_user,cn=users,cn=accounts,dc=domain,dc=local"
> (0)    Checking for user in group objects
> (0)      EXPAND 
> (&(cn=someusers)(|(&(uid=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local))))
> (0)          --> 
> (&(cn=someusers)(|(&(uid=common_user)(memberOf=cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local))))
> (0)      Performing search in 
> "uid=common_user,cn=users,cn=accounts,dc=domain,dc=local" with filter 
> "(&(cn=someusers)(|(&(uid=common_user)(memberOf=cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local))))",
>  scope "sub"
> (0)      Waiting for search result...
> (0)      Search returned no results
> (0)    Checking user object's memberOf attributes
> (0)      Performing unfiltered search in 
> "uid=common_user,cn=users,cn=accounts,dc=domain,dc=local", scope "base"
> (0)      Waiting for search result...
> (0)    No group membership attribute(s) found in user object
> rlm_ldap (ldap): Released connection (6)
> 
> but
> 
> ldapsearch  -b "dc=domain,dc=local" 
> "(&(cn=someusers)(member=uid\3dcommon_user\2ccn\3dusers\2ccn\3daccounts\2cdc\3ddomain\2cdc\3dlocal))"
>  -D uid=common_user,cn=users,cn=accounts,dc=domain,dc=local -W
> Enter LDAP Password:
> # extended LDIF
> #
> # LDAPv3
> # base <dc=domain,dc=local> with scope subtree
> # filter: 
> (&(cn=someusers)(member=uid\3dcommon_user\2ccn\3dusers\2ccn\3daccounts\2cdc\3ddomain\2cdc\3dlocal))
> # requesting: ALL
> #
> 
> # someusers, groups, accounts, domain.local
> dn: cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local
> objectClass: top
> objectClass: groupofnames
> objectClass: nestedgroup
> objectClass: ipausergroup
> objectClass: ipaobject
> description: Default group for all users
> cn: someusers
> ipaUniqueID: ebca3046-a5a0-11ea-8166-9a6e275fb41f
> member: uid=common_user,cn=users,cn=accounts,dc=domain,dc=local
> member: uid=very_special_user,cn=users,cn=accounts,dc=domain,dc=local
> 
> # search result
> search: 2
> result: 0 Success
> 
> # numResponses: 2
> # numEntries: 1
> 
> and
> 
> 
> ldapsearch  -b "uid=common_user,cn=users,cn=accounts,dc=domain,dc=local"  -D 
> uid=common_user,cn=users,cn=accounts,dc=domain,dc=local -W
> Enter LDAP Password:
> # extended LDIF
> #
> # LDAPv3
> # base <uid=common_user,cn=users,cn=accounts,dc=domain,dc=local> with scope 
> subtree
> # filter: (objectclass=*)
> # requesting: ALL
> #
> 
> # common_user, users, accounts, domain.local
> dn: uid=common_user,cn=users,cn=accounts,dc=domain,dc=local
> displayName: utilisateur banal
> uid: common_user
> krbCanonicalName: common_user@DOMAIN.LOCAL
> objectClass: top
> objectClass: person
> objectClass: organizationalperson
> objectClass: inetorgperson
> objectClass: inetuser
> objectClass: posixaccount
> objectClass: krbprincipalaux
> objectClass: krbticketpolicyaux
> objectClass: ipaobject
> objectClass: ipasshuser
> objectClass: ipaSshGroupOfPubKeys
> objectClass: mepOriginEntry
> objectClass: ipauserauthtypeclass
> loginShell: /bin/bash
> initials: ub
> gecos: utilisateur banal
> sn: banal
> homeDirectory: /home/common_user
> mail: common_user@domain.local
> krbPrincipalName: common_user@DOMAIN.LOCAL
> givenName: utilisateur
> cn: utilisateur banal
> ipaUniqueID: some_unique_ID
> uidNumber: theSameNumber
> gidNumber: theSameNumber
> krbPasswordExpiration: the_pass_exp
> krbLastPwdChange: the_pass_exp
> memberOf: cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local
> memberOf: cn=manyemoreusers,cn=groups,cn=accounts,dc=domain,dc=local
> ipaUserAuthType: o_type
> ipaSshPubKey: some_pubkey
> 
> # search result
> search: 2
> result: 0 Success
> 
> # numResponses: 2
> # numEntries: 1
> 
> Some of the configuration:
> 
> /etc/raddb/sites-enabled/default
> ...
> user {
>         base_dn = "${..base_dn}"
>         filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
>         sasl {
>         }
>     }
>     group {
>         base_dn = 'uid=common_user,cn=users,cn=accounts,dc=domain,dc=local'
>         scope = 'sub'
>         membership_filter = 
> "(|(&(uid=%{%{Stripped-User-Name}:-%{User-Name}})(memberOf=${..ldapgroup})))"
>         membership_attribute = 'memberOf'
>     }
> 
> /etc/raddb/mods-enabled/ldap
> ...
> post-auth {
>     update {
>         &reply: += &session-state:
>     }
>     -sql
>     exec
>     remove_reply_message_if_eap
>     Post-Auth-Type REJECT {
>         -sql
>         attr_filter.access_reject
> 
>         eap
> 
>         remove_reply_message_if_eap
>     }
>     Post-Auth-Type Challenge {
>     }
>     if (LDAP-Group == "someusers") {
>             update  {
>                     reply:Class := "OKOKOKOKOK"
>         }
>     }
>     else {
>             update  {
>                     reply:Class := "NONONONONO"
>          }
>     }
> }
> 
> Where to go from here?

So looking at the log you provided:

(0)      Performing search in
"uid=common_user,cn=users,cn=accounts,dc=domain,dc=local" with filter
"(&(cn=someusers)(|(&(uid=common_user)(memberOf=cn=someusers,cn=groups,cn=accounts,dc=domain,dc=local))))",
scope "sub"

I can't make heads or tails of that filter, but it requires that
cn=someusers and that will never be true so it will always fail.

I would closely examine the 389-ds access logs after trying to
identify/authenticate users to see what the logged filters look like to
see if they are the same.

I know literally zero about radius so take this with a grain of salt.

rob
_______________________________________________
FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org
To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org

Reply via email to