0

We have a Google G suite with multiple domains and users with email addresses not always having the primary domain extension.

When ldap searching the Secure LDAP environment for a user with a non primary domain we get the wrong user DN back.

Example: LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(mail=user@company.nl)'

returns dn: uid=user,ou=Users,dc=example,dc=com where it should return dn: uid=user,dc=company,dc=nl

But with this wrong DN the next step in my radius authentication (because that's where we are using this for) fails: LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -W -D uid=user,ou=Users,dc=example,dc=com -H ldaps://ldap.google.com -b dc=example,dc=com '(mail=user@company.nl)' with a

ldap_bind: Invalid credentials (49)
    additional info: Incorrect password

which makes sense because LDAP cannot find the user.

whereas as binding with the right DN succeeds: LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -W -D uid=user,ou=Users,dc=company,dc=nl -H ldaps://ldap.google.com -b dc=example,dc=com '(mail=user@company.nl)'

If I query for the user with the corresponding base_dn from the user's email address the returned DN is ok, but I cannot dynamically adjust the based_dn depending on the users email address, I think, in freeradius

I’m not sure if this a problem of the google LDAP servers or a problem with the LDAP protocol or a problem with the way I/radius queries LDAP.

I'm thinking to implement scripting authentication in the authorize section and implement my own ldapsearch + bind , but I hope there's a better solution.

Thanks. Wessel

wessel
  • 810
  • 8
  • 10

1 Answers1

0

Try with ldaps://ldap.google.com:636.

We found unless the port is defined it does not work. We also noticed that not all fields can be searched, i.e uidNumber.

Boolean_Type
  • 1,146
  • 3
  • 13
  • 40