Search code examples
ubuntuopenldapchain

slapd -- push changes from consumer


I got Producer and Consumer servers working using delta technique via TLS. Set up updateRef on consumer pointing to producer - so changes should be directed to the producer. Got one problem though - when I try to make any change to the consumer it says "modifications require authentication", and I don't know how to fix it really.

I stumbled upon mention of slapo-chain overlay, but 1. I can't find it in the lib folder on Ubuntu server, and 2. How to set it up using cn=config?

All help would be much appreciated


Solution

  • Well, solved that with slapo-chain.

    Here's my (example) chain on consumer using startTLS:

    dn: olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
    objectClass: olcOverlayConfig
    objectClass: olcChainConfig
    objectClass: top
    olcOverlay: {0}chain
    olcChainCacheURI: FALSE
    olcChainMaxReferralDepth: 1
    olcChainReturnError: TRUE
    
    dn: olcDatabase={0}ldap,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
    objectClass: olcLDAPConfig
    objectClass: olcChainDatabase
    olcDatabase: {0}ldap
    olcDbStartTLS: none  starttls=no
    olcDbRebindAsUser: FALSE
    olcDbChaseReferrals: TRUE
    olcDbTFSupport: no
    olcDbProxyWhoAmI: FALSE
    olcDbProtocolVersion: 3
    olcDbSingleConn: FALSE
    olcDbCancel: abandon
    olcDbUseTemporaryConn: FALSE
    olcDbConnectionPoolMax: 16
    olcDbNoRefs: FALSE
    olcDbNoUndefFilter: FALSE
    
    dn: olcDatabase={1}ldap,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
    objectClass: olcLDAPConfig
    objectClass: olcChainDatabase
    olcDatabase: {1}ldap
    olcDbURI: "ldap://example.com"
    olcDbStartTLS: start  starttls=no
    olcDbIDAssertBind: mode=self flags=prescriptive,proxy-authz-non-critical bindmethod=simple timeout=0 network-timeout=0 binddn="cn=syncer,ou=syncproviders,dc=example,dc=com" credentials="superpassword" keepalive=0:0:0
    olcDbRebindAsUser: FALSE
    olcDbChaseReferrals: TRUE
    olcDbTFSupport: no
    olcDbProxyWhoAmI: FALSE
    olcDbProtocolVersion: 3
    olcDbSingleConn: FALSE
    olcDbCancel: abandon
    olcDbUseTemporaryConn: FALSE
    olcDbConnectionPoolMax: 16
    olcDbNoRefs: FALSE
    olcDbNoUndefFilter: FALSE
    

    Be advised, i ran into some problems with authzPolicy on the producer's side, but that's another question ;)