Skip to main content

LDAPLinkConfigFile database parameter

  • July 12, 2017
  • 2 replies
  • 13 views

Jim_Knicely
Forum|alt.badge.img+2

Hi,

Has anyone tried to test the LDAPLinkConfigFile database parameter? It is used to read entries from a file instead of actually contacting an LDAP server.

In my testsing, Vertica can read the file as expected, but it does not find a user.

Example:

Here is my LDIF file:

dbadmin=> \! cat /home/dbadmin/ldap.ldif
dn: dc=example,dc=com
dc: example
objectClass: dcObject
objectClass: organization

dn: ou=vertica,dc=example,dc=com
objectClass: organizationalunit
objectClass: top
ou: vertica

dn: ou=dev,vertica,dc=example,dc=com
objectClass: organizationalunit
objectClass: top
ou: dev

dn: cn=knicely,ou=dev,ou=vertica,dc=example,dc=com
objectClass: inetOrgPerson
uid: knicelyuid
cn: knicely

dn: cn=devrole,ou=dev,ou=vertica,dc=example,dc=com
objectClass: groupOfNames
member: cn=knicely,ou=dev,ou=vertica,dc=example,dc=com
cn: devrole

Here are the database LDAP params:

dbadmin=> select parameter_name, current_value from configuration_parameters where parameter_name ilike 'LDAP%';
     parameter_name      |        current_value
-------------------------+-----------------------------
 LDAPLinkFilterUser      | (objectClass=inetOrgPerson)
 LDAPLinkSearchTimeout   | 10
 LDAPLinkInterval        | 86400
 LDAPLinkRetryInterval   | 10
 LDAPLinkStartTLS        | 0
 LDAPLinkURL             |
 LDAPLinkBindPswd        |
 LDAPLinkTLSCACert       |
 LDAPLinkConfigFile      | /home/dbadmin/ldap.ldif
 LDAPLinkFirstInterval   | 120
 LDAPLinkTLSReqCert      | allow
 LDAPLinkStopIfZeroUsers | 1
 LDAPLinkConflictPolicy  | MERGE
 LDAPLinkFilterGroup     | (objectClass=groupOfNames)
 LDAPLinkOn              | 1
 LDAPLinkBindDN          |
 LDAPLinkGroupMembers    | member
 LDAPLinkRetryNumber     | 10
 LDAPLinkSearchBase      | example,dc=com
 LDAPLinkTLSCADir        |
 LDAPLinkScope           | sub
 LDAPLinkGroupName       | cn
 LDAPLinkUserName        | uid
 LDAPLinkDryRun          | 1
(24 rows)

dbadmin=> select ldap_link_sync_start();
  ldap_link_sync_start
-------------------------
 LDAPLinkService hurried
(1 row)

And here is the output in the vertica.log:

2017-07-12 09:53:59.014 Init Session:7fa54bfff700-a0000000004cb1 [Session] <INFO> [Query] TX:a0000000004cb1(v_sfdc_node0001-306059:0x114a3) select ldap_link_sync_start();
2017-07-12 09:53:59.015 Init Session:7fa54bfff700-a0000000004cb1 [VMPI] <INFO> [transaction bind] - New synced txn catalog version : 108 (Old : 75)
2017-07-12 09:53:59.016 Init Session:7fa54bfff700-a0000000004cb1 [Util] <INFO> Task 'LDAPLinkService' enabled
2017-07-12 09:53:59.017 LDAPLinkService:7fa543fff700 [Basics] <INFO> LDAPLink Service: this is clerk. Will run on this node - v_sfdc_node0001.
2017-07-12 09:53:59.017 LDAPLinkService:7fa543fff700 [Basics] <INFO> LDAPLink: Going to read LDAP entries from file '/home/dbadmin/ldap.ldif', no connection needed.
2017-07-12 09:53:59.017 LDAPLinkService:7fa543fff700-a0000000004cb4 [Txn] <INFO> Begin Txn: a0000000004cb4 'LDAP Link service'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <INFO> Equivalent ldapsearch command (non-TLS format, with paging): ldapsearch -LLL -x -H '' -D '' -w '*****' -b 'example,dc=com' -s 'sub' '(objectClass=groupOfNames)' 'uid' 'cn' 'member'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <INFO> Equivalent ldapsearch command (non-TLS format, with paging): ldapsearch -LLL -x -H '' -D '' -w '*****' -b 'example,dc=com' -s 'sub' '(objectClass=inetOrgPerson)' 'uid' 'cn' 'member'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <WARNING> Naming attribute 'cn' not found for entry: 'dc=example,dc=com'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <WARNING> Naming attribute 'cn' not found for entry: 'ou=vertica,dc=example,dc=com'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <WARNING> Naming attribute 'cn' not found for entry: 'ou=dev,vertica,dc=example,dc=com'
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <INFO> LDAPLink: Finished reading LDAP entries from file: 1 groups, 0 users read.
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Basics] <WARNING> No users were seen in the LDAPLink search results. 'LDAPLinkStopIfZeroUsers' is set to true, so vertica won't drop existing LDAP users, to prevent accidental data loss. If you really want the existing LDAP users to be dropped, please set 'LDAPLinkStopIfZeroUsers' to false and run the sync again.
2017-07-12 09:53:59.019 LDAPLinkService:7fa543fff700-a0000000004cb4 [Txn] <INFO> Rollback Txn: a0000000004cb4 'LDAP Link service'

Notice the entry "LDAPLink: Finished reading LDAP entries from file: 1 groups, 0 users read."

So Vertica found the group but not the user.

Anyone see what I am missing in the LDIF file? Is there some special formatting I am missing?

Thanks!

2 replies

skeswani
Forum|alt.badge.img
  • Participating Frequently
  • July 12, 2017

I suspect the ldif file is missing the group attribute for the user.
try a ldif file which has all attributes for this user.

dn: cn=knicely,ou=dev,ou=vertica,dc=example,dc=com
objectClass: inetOrgPerson
uid: knicelyuid
cn: knicely


Jim_Knicely
Forum|alt.badge.img+2
  • Author
  • Participating Frequently
  • July 12, 2017

@skeswani: Thanks for your response! The info I am using in the file is similar to format used in a Confluence doc. Which attribute are you referring to? The group looks like this:

dn: cn=devrole,ou=dev,ou=vertica,dc=example,dc=com
objectClass: groupOfNames
member: cn=knicely,ou=dev,ou=vertica,dc=example,dc=com
cn: devrole

The member parameter is there...