What is the difference between LDAP schema and LDIF? - ldap

Setting up an LDAP server I have to import a couple of schemas, for example eduPerson. There is an LDIF file issued by the developers, that says:
# This LDIF file can be used to add to add the eduPerson schema to
# an OpenLDAP server > 2.4 that uses the new configuration format.
# Put this file to /etc/ldap/schema/ and then execute the following
# comand to add this schema:
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/eduperson.ldif
On the other hand, I've heard an LDAP administrator that he imports a schema by including it into the LDAP config (e.g. /etc/openldap/slapd.conf) and restarting the LDAP demon.
So from what I've researched, it seems to me that including the schema is the proper way and LDIF is rather used for importing data – not the schema itself. Is that correct? What are the differences between both and when should I use each of them?

LDIF is a standard text format to represent LDAP operation or data.
Most directory servers uses LDIF for persisting some of their configuration, especially Schema, but LDIF can be used for other purpose such as Adding, Importing, Exporting, Modifying data.
Most of the schema definitions from different standards and products are distributed in LDIF files. How to load these files to the server is not defined in the LDAP specification and thus server defined.
You question seems to be specific to OpenLDAP, and the answer may vary depending on the version of OpenLDAP.

Related

How to extract all entries in hierarchical order from ldap?

I'm using ldapsearch to move a whole subtree from an existing (Novell eDirectory) server to a new OpenLDAP installation, but it seems that tool is not extracting the entries in hierarchy order, such that cn=man,ou=org,o=company comes before ou=org,o=company in the output, breaking the following ldapmodify -a.
Am I doing something wrong? Is ldapsearch the right tool?
The origin server configuration can't be changed nor it can be stopped for a cold dump.

where can i find "pwdAccountLockedTime" in Apache-DS LDAP?

I do right-click and choose "Fetch->Fetch operational attributes" but there is no pwdAccountLockedTime in attribute list. Where can i find pwdAccountLockedTime?
The Apache information is windows Apache Directory Studio(Version: 2.0.0.v20161101-M12)
EDIT : ads-pwdAccountLockedTime hinted that you use Apache Directory Server, the documentation to configure password policy is here
You have to add the objectClass ads-passwordPolicy to be able to use the attributes on your entry
--
Apache Directory Studio is just a client which fetches informations from a directory.
If you want to see the attribute, then the directory must have it stored.
If you get "Warning! According to the schema attribute ads-pwdAccountLockedTime is not allowed." it's probably because you did not include the schema needed for the password policy to work properly or simply did not enabled the password policy (assuming you're using OpenLDAP)
To do so, you need to enabled the ppolicy overlay and configure it correctly, which requires you to add the ppolicy.schema.
See : http://www.openldap.org/doc/admin24/overlays.html and http://www.zytrax.com/books/ldap/ch6/ppolicy.html

LDAP schema editing on the fly

Is it possible in any of the existing LDAP servers to edit a schema in one of the editors available? Like JXplorer, Apache Directory Studio, LDAP Admin?
I tried with OpenLDAP and all of the above tools (I run the server with -F option) but it looks like it's not possible to modify schema - add new attributes, add descriptions etc.
I would be grateful if any of you have some experience with this.
Cheers
Some LDAP servers allow (authorized users) to change the schema by sending LDAP modify operation affecting the so-called subschema subentry directly, but not OpenLDAP.
In OpenLDAP you have two possible configuration methods:
Static file configuration usually with schema files being simply included (aka slapd.conf) which requires slapd to be restarted to make configuration changes effective
Dynamic configuration backend back-config (aka cn=config) for which you can also define ACLs restricting access to your LDAP admins
The dynamic configuration method allows to tweak the schema via LDAP making it effective without server-restart. But you have to modify the multiple LDAP entries in sub-tree cn=schema,cn=config which you can do with any generic LDAP client.
Since schema descriptions usually reference other schema descriptions the order is important. Standard LDAP does not know about order of entries beneath an entry or order of attribute values. Therefore OpenLDAP implements an extension specified in draft-chu-ldap-xordered.

JXplorer doesn't show LDAP schema

I've got a problem with JXplorer and other LDAP browsers - they don't show schema under schema tab.
I use OpenLdap 2.4. I'm using OLC i.e. I'm running slapd daemon with the -F option.
I can connect to cn=schema,cn=config and view/modify schema there.
But I want to be able to see the schema in the LDAP browsers like JXplorer.
What may I do wrong? Maybe I'm missing any important point here?
Thanks for any suggestions
It turned out to be a permissions case:
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read

Change LDIF suffix openLDAP

I follow the instruction to install OpenLDAP server. Here's the tutorial :
http://kukusan-network.blogspot.com/2012/01/how-to-setting-ldap-openldap-in-windows.html
Actually my case is I have an LDIF file. I want to import that LDIF to my LDAP server. So I decided to install the open LDAP. Then,
after I choose the BDB database. They will build the default suffix "maxcrc.com" .
If I make connection with this suffix, an error appears saying:
[LDAP: error code 53 - no global superior knowledge]
I think that error happened because my connection suffix is different from my LDIF suffix. So, how to change this default suffix? (to the suffix that I have in the LDIF file)
I already changed slapd.conf, but that wasn't a success.
One way you can do is to go through the installation as is and then change the suffix in slapd.conf file. Then restart openldap and then check if the new suffix comes up when you connect to openldap. You can import your ldif file after this. I was able to get this to work with the same installer. This however never worked consistently for me.