Synchronize OpenLDAP with Active Directory with LSC project

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Synchronize OpenLDAP with Active Directory with LSC project - Presentation Transcript

    1. Synchronize OpenLDAP with Active Directory The LSC project Clément OUDOT
      • Introduction
      • The LSC project
      • Active Directory specificities
      • Advanced LDAP functionalities
      • Demonstration
      Table of contents
      • Having just one single user database in our information system is a dream
      • Having just Open Source in our information system is dream
      • But drive Active Directory from OpenLDAP is now a reality, thanks to LSC project
      Introduction
    2. The LSC project
      • LDAP Synchronization Connector
      • BSD licence
      • Java
      • LDAP provisioning from databases, flat files and LDAP directories
      • Extended functions for Active Directory
      • LDAP Query Language (LQL)
    3. Overview
    4. Input
      • Two requests methods:
        • LDAP (JNDI)
        • SQL (JDBC)
      • Three inputs:
        • LDAP directories (LDAP queries)
        • Databases (SQL queries)
        • CSV files (injected in local HSQLDB)
    5. LSC engine
    6. Create a connector
      • Download lsc-sample archive
      • Run maven to get dependencies
      • Run the code generation wizard
      • Configure your rules in lsc.properties
    7. LDAP connection
      • Use SSL (ldaps://) or TLS (startTLS)
      • Paged search result
      • Recursive delete
      • All JNDI options:
        • Referrals handling
        • Aliases dereferencing
        • Extended matching filters
      src.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory src.java.naming.ldap.derefAliases = never src.java.naming.ldap.version = 3 src.java.naming.provider.url = ldap://localhost/dc=example,dc=com src.java.naming.referral = ignore src.java.naming.security.authentication = simple src.java.naming.security.principal = cn=admin,dc=example,dc=com src.java.naming.security.credentials = secret Example
    8. Definition of a task
      • Task name
      • Task type (db2ldap or ldap2ldap)
      • Bean for destination (dstBean)
      • Object for source (mapped in srcBean)
      • DN template
      • Conditions for create/delete/modify/modrdn
      • For source and destination:
        • Base
        • Filter (All and and Id)
        • Attributes
        • Pivot attributes
    9. Definition of a task lsc.tasks = user lsc.tasks.user.type = ldap2ldap lsc.tasks.user.bean = org.lsc.beans.userBean lsc.tasks.user.object = org.lsc.objects.inetOrgPerson lsc.tasks.user.dn = "cn=" + srcBean.getAttributeValueById("cn") + ",ou=users" lsc.tasks.user.srcService = org.lsc.jndi.SimpleJndiSrcService lsc.tasks.user.srcService.attrs = uid cn sn givenName mail o lsc.tasks.user.srcService.baseDn = ou=users lsc.tasks.user.srcService.filterAll = (objectClass=inetOrgPerson) lsc.tasks.user.srcService.filterId = (&(objectClass=inetOrgPerson)(|(uid={samaccountname})(uid={uid}))) lsc.tasks.user.srcService.pivotAttrs = uid lsc.tasks.user.dstService = org.lsc.jndi.SimpleJndiDstService lsc.tasks.user.dstService.attrs = cn sn givenName mail company objectClass sAMAccountName lsc.tasks.user.dstService.baseDn = ou=users lsc.tasks.user.dstService.filterAll = (objectClass=user) lsc.tasks.user.dstService.filterId = (&(objectClass=user)(|(sAMAccountName={uid})(sAMAccountName={samaccountname}))) lsc.tasks.user.dstService.pivotAttrs = sAMAccountName Example
    10. Synchronization options
      • Action: Force/Keep/Merge
      • Value modification type: Create/Default/Force
      • SrcBean and dstBean methods:
        • getDistinghuishName
        • getAttributeValueById
      • Multi-valued attributes with configurable delimiter (';' by default)
      • Rhino Javascript engine
    11. Synchronization options lsc.syncoptions.user = org.lsc.beans.syncoptions.PropertiesBasedSyncOptions lsc.syncoptions.user.default.action = F lsc.syncoptions.user.company.force_value = srcBean.getAttributeValueById("o") lsc.syncoptions.user.name.force_value = srcBean.getAttributeValueById("cn") lsc.syncoptions.user.displayName.force_value = srcBean.getAttributeValueById("cn") lsc.syncoptions.user.objectClass.force_value = "top";"user";"person";"organizationalPerson" lsc.syncoptions.user.sAMAccountName.create_value = srcBean.getAttributeValueById("uid") lsc.syncoptions.user.userPrincipalName.create_value = srcBean.getAttributeValueById("uid") + "@example.com" lsc.syncoptions.user.scriptPath.create_value = "demo.bat" Example
    12. Active Directory
      • Use Paged Search to bypass 1000 entries limit
      • UserAccountControl:
        • userAccountControlSet
        • userAccountControlCheck
        • userAccountControlToogle
      • Password:
        • GetUnicodePwd
      • LastLogon:
        • getNumberOfWeeksSinceLastLogon
    13. LDAP Query Language
      • Access to srcLdap (source) and ldap (destination) connection objects
      • Special functions:
        • attribute(DN, attribute)
        • search(base, filter)
        • list(base, filter)
        • read(base, filter)
        • sup(DN, level)
      lsc.syncoptions.user.givenName.force_value = srcLdap.attribute( srcLdap.list( "ou=services", "uniqueMember=" + srcBean.getDistinguishName() + "" ), 'description').get(0) Example
    14. See also
      • Official LSC page : http://lsc-project.org
      • LDAP Tool Box project :
        • Nagios and Cacti scripts
        • OpenLDAP RPM
        • LDAP scripts
        • Web application for user to change their password (OpenLDAP and Active Directory)
        • http://ltb-project.org
    15. Thank you for your attention Visit us at our stand 107 - hall 7.2b

    + coudotcoudot, 4 months ago

    custom

    1290 views, 1 favs, 5 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1290
      • 1021 on SlideShare
      • 269 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 17
    Most viewed embeds
    • 123 views on http://www.toolinux.com
    • 78 views on http://linagora.org
    • 35 views on http://www.linagora.org
    • 32 views on http://toolinux.com
    • 1 views on http://www.toolinux.net

    more

    All embeds
    • 123 views on http://www.toolinux.com
    • 78 views on http://linagora.org
    • 35 views on http://www.linagora.org
    • 32 views on http://toolinux.com
    • 1 views on http://www.toolinux.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories