{"id":5088,"date":"2020-03-16T20:03:58","date_gmt":"2020-03-16T17:03:58","guid":{"rendered":"https:\/\/kifarunix.com\/?p=5088"},"modified":"2020-03-20T17:19:27","modified_gmt":"2020-03-20T14:19:27","slug":"setup-openldap-master-master-replication-on-centos-8","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/setup-openldap-master-master-replication-on-centos-8\/","title":{"rendered":"Setup OpenLDAP Master-Master Replication on CentOS 8"},"content":{"rendered":"\n<p>In this guide, we are going to learn how to setup OpenLDAP Master-Master Replication on CentOS 8. OpenLDAP supports a wide variety of replication topologies such as <code>provider-slave<\/code>, <code>provider-provider<\/code> topologies. Multi-provider aka multi-master replication therefore, is a replication technique that use the <code><strong>LDAP Sync&nbsp;Replication engine<\/strong><\/code>(<code>Syncrepl<\/code>) to replicate data to multiple providers (&#8220;Masters&#8221;) Directory servers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Setup OpenLDAP Master-Master Replication on CentOS 8<\/h2>\n\n\n\n<p>In our setup, we are using two OpenLDAP server nodes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Provider Node 01: <code>ldapmaster01.kifarunix-demo.com<\/code><\/li><li>Provider Node 02: <code>ldapmaster02.kifarunix-demo.com<\/code><\/li><\/ul>\n\n\n\n<p>Our replication involves both OpenLDAP configuration (<code><strong>olcDatabase={0}config,cn=config<\/strong><\/code>) and database (<code><strong>olcDatabase={1}mdb,cn=config<\/strong><\/code>) replication.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setup Time Synchronization<\/h3>\n\n\n\n<p>Before you can proceed to setup OpenLDAP multi-master replication, ensure that your OpenLDAP servers&#8217; clocks are synchronized.<\/p>\n\n\n\n<p>Refer to the links below to setup your NTP server on CentOS 8.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/setup-ntp-server-using-chrony-on-centos-8\/\" target=\"_blank\">Setup NTP Server using Chrony on CentOS 8<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install and Setup OpenLDAP Server<\/h3>\n\n\n\n<p>In our setup, we are going to replicate entire OpenLDAP configuration and data directories. As such, install, setup and configure one of the Provider nodes. Follow the guide below to install OpenLDAP server on CentOS 8.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/install-and-setup-openldap-on-centos-8\/\" target=\"_blank\">Install and Setup OpenLDAP on CentOS 8<\/a><\/p>\n\n\n\n<p>Once one of the OpenLDAP nodes is configured, clone it to create a second node in the same state of configuration.<\/p>\n\n\n\n<p>If you can&#8217;t clone the OpenLDAP node, simply install and setup other OpenLDAP nodes and then backup the configuration and data directories of the already setup node and restore it on other nodes. Ensure that all necessary directories, files and permissions are set accordingly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Enable LDAP Sync Provider (syncprov) Overlay Module<\/h3>\n\n\n\n<p>In order to enable LDAP content synchronization (syncrepl replication), you need to enable&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.zytrax.com\/books\/ldap\/ch6\/syncprov.html\" target=\"_blank\">syncprov Overlay module<\/a>&nbsp;<strong>on all the Provider nodes<\/strong>.<\/p>\n\n\n\n<p>To enable the Syncprov Overlay Module, you can create an LDIF file as shown below and use <code><strong>ldapmodify<\/strong><\/code> or <code><strong>ldapadd<\/strong><\/code> command to update the OpenLDAP database configuration.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim enable-syncprov-module.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: cn=module{0},cn=config\nchangetype: modify\nadd: olcModuleLoad\nolcModuleLoad: syncprov.la<\/code><\/pre>\n\n\n\n<p>Note that this LDIF file assumes that the <code><strong>syncprov.la<\/strong><\/code> module is located under the defined modules path, <strong><code>\/usr\/libexec\/openldap<\/code><\/strong>. To verify the modules path;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>slapcat -n 0 | grep -i modulepath<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>olcModulePath: \/usr\/libexec\/openldap<\/strong><\/code><\/pre>\n\n\n\n<p>Update the OpenLDAP database configuration;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f enable-syncprov-module.ldif<\/code><\/pre>\n\n\n\n<p>If you do not want to use LDIF file, simply execute the <code>ldapadd<\/code> command as shown below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -Q<\/code><\/pre>\n\n\n\n<p>Once the command runs, paste the content below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: cn=module{0},cn=config\nchangetype: modify\nadd: olcModuleLoad\nolcModuleLoad: syncprov.la<\/code><\/pre>\n\n\n\n<p>Press ENTER and add modify the entry on the database.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>modifying entry \"cn=module{0},cn=config\"<\/strong><\/code><\/pre>\n\n\n\n<p>After the entry is added, press <strong><code>Ctrl+d<\/code><\/strong> to stop the command.<\/p>\n\n\n\n<p>If you are creating a new <code>module<\/code> entry, simply use the content below either in an LDIF file or as input to <code><strong>ldapadd<\/strong><\/code> or <code><strong>ldapmodify<\/strong><\/code> command.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: cn=module,cn=config\nobjectClass: olcModuleList\ncn: module\nolcModulePath: \/usr\/libexec\/openldap\nolcModuleLoad: syncprov.la<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Assign the Server IDs<\/h3>\n\n\n\n<p>On each OpenLDAP node, you need to assign it an ID for uniquely identifying the providers. The server ID is specified in the format;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>olcServerID: &lt;integer&gt; [&lt;URL&gt;]<\/strong><\/code><\/pre>\n\n\n\n<p>Hence, on each node, run the command below to assign the ID.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim assign-server-ID.ldif<\/code><\/pre>\n\n\n\n<p>On the both provider nodes;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: cn=config\nchangetype: modify\nadd: olcServerID\n<strong>olcServerID: 1 ldap:\/\/ldapmaster01.kifarunix-demo.com<\/strong>\n<strong>olcServerID: 2 ldap:\/\/ldapmaster02.kifarunix-demo.com<\/strong><\/code><\/pre>\n\n\n\n<p>Update the database configuration.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f assign-server-ID.ldif<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Setup OpenLDAP Master-Master Replication Settings<\/h3>\n\n\n\n<p>Once you have enable the Sync provider module and set the providers nodes IDs, proceed to configure replication settings.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Enable OpenLDAP Configuration Replication<\/h4>\n\n\n\n<p>To enable the replication of OpenLDAP configuration (<code><strong>olcDatabase={0}config,cn=config<\/strong><\/code>), create an LDIF file with the content below and update the OpenLDAP database <strong>on all provider nodes<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim syncprov-config-options.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config\nchangetype: add\nobjectClass: olcOverlayConfig\nobjectClass: olcSyncProvConfig\nolcOverlay: syncprov<\/code><\/pre>\n\n\n\n<p>Consult the <code><strong>man slapo-syncprov<\/strong><\/code>&nbsp;for descriptions of the options used above.<\/p>\n\n\n\n<p>Update the OpenLDAP database with the replication options defined above.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f syncprov-options.ldif<\/code><\/pre>\n\n\n\n<p>Next, set the root DN password for the OpenLDAP configuration database <strong>on all provider nodes<\/strong>.<\/p>\n\n\n\n<p>Since we do not have the OpenLDAP configuration RootDN password set as shown in the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapsearch -Y EXTERNAL -H ldapi:\/\/\/ -b cn=config olcDatabase={0}config olcRootDN olcRootPW -LLL -Q<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcDatabase={0}config,cn=config\nolcRootDN: cn=config\n...<\/code><\/pre>\n\n\n\n<p>Generate password hash.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>slappasswd<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>New password: P@ssWord\nRe-enter new password: P@ssWord\n<strong>{SSHA}tq3ZI0S1AyyeiAVuB2JZGfNaQ2RYVtZn<\/strong><\/code><\/pre>\n\n\n\n<p>Set the database configuration password.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim rootpwd.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcDatabase={0}config,cn=config\nchangetype: modify\nadd: olcRootPW\n<strong>olcRootPW: <\/strong>{SSHA}h97GS2nwkHFkwMCbhYmeoRqhJ2ROrMLJ<\/code><\/pre>\n\n\n\n<p>Add the database root password.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapmodify -Y EXTERNAL -H ldapi:\/\/\/ -f rootpwd.ldif<\/code><\/pre>\n\n\n\n<p>Confirm;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapsearch -Y EXTERNAL -H ldapi:\/\/\/ -b cn=config olcDatabase={0}config olcRootDN olcRootPW -LLL -Q<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcDatabase={0}config,cn=config\n<strong>olcRootDN: cn=config<\/strong>\n<strong>olcRootPW: {SSHA}6Gdu7FnwaSRYpbCFwMastAyN1CAgHY4n<\/strong><\/code><\/pre>\n\n\n\n<p>Next, enable the replication options for the OpenLDAP configuration on <strong>all nodes<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim enable-config-replication.ldif<\/code><\/pre>\n\n\n\n<p><strong>Be sure to replace the options used here according to your environment setup.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dn: olcDatabase={0}config,cn=config\nchangetype: modify\nadd: olcSyncRepl\nolcSyncRepl: \n  rid=001\n  provider=ldaps:\/\/ldapmaster01.kifarunix-demo.com\n  binddn=\"cn=config\"\n  bindmethod=simple\n  credentials=\"P@ssWord\" \n  searchbase=\"cn=config\"\n  type=refreshAndPersist \n  timeout=0 \n  network-timeout=0 \n  retry=\"30 5 300 +\"\nolcSyncRepl: \n  rid=002\n  provider=ldaps:\/\/ldapmaster02.kifarunix-demo.com\n  binddn=\"cn=config\"\n  bindmethod=simple\n  credentials=\"P@ssWord\" \n  searchbase=\"cn=config\"\n  type=refreshAndPersist \n  timeout=0 \n  network-timeout=0 \n  retry=\"30 5 300 +\"\n-\nadd: olcMirrorMode\nolcMirrorMode: TRUE<\/code><\/pre>\n\n\n\n<p>Update the OpenLDAP database with the replication settings above.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f enable-config-replication.ldif<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Enable OpenLDAP Database Replication<\/h4>\n\n\n\n<p>To enable the replication of OpenLDAP database, simply create an LDIF file with the content below. <strong>Be sure to make the necessary changes on the defined options.<\/strong><\/p>\n\n\n\n<p>NOTE that in our case, we already have a Root DN bind user and the password set for the data store database.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapsearch -Y EXTERNAL -H ldapi:\/\/\/ -b olcDatabase={1}mdb,cn=config  olcRootDN olcRootPW -LLL -Q<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcDatabase={1}mdb,cn=config\n<strong>olcRootDN: cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com\nolcRootPW: {SSHA}DoFW9xVBNRBy4it31167J82ZJ83Qoj1v<\/strong>\n...<\/code><\/pre>\n\n\n\n<p>If you do not have Root DN user and password, create one or reser before you continue.<\/p>\n\n\n\n<p>Enable sync provider for the OpenLDAP databases <strong>on all providers<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim enabl-mdb-syncprov.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config\nchangetype: add\nobjectClass: olcOverlayConfig\nobjectClass: olcSyncProvConfig\nolcOverlay: syncprov\nolcSpSessionlog: 100<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f enabl-mdb-syncprov.ldif<\/code><\/pre>\n\n\n\n<p>Enable the&nbsp;<code><strong>entryCSN<\/strong><\/code>&nbsp;and&nbsp;<code><strong>entryUID<\/strong><\/code>&nbsp;indexes to improve the database scan speed and the performance of the session log on the provider respectively.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim enable-indexing.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dn: olcDatabase={1}mdb,cn=config\nchangetype: modify\nadd: olcDbIndex\nolcDbIndex: entryCSN eq\n-\nadd: olcDbIndex\nolcDbIndex: entryUUID eq<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f enable-indexing.ldif<\/code><\/pre>\n\n\n\n<p>Next, define the database replication options <strong>on all providers<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim enable-database-repl.ldif<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>dn: olcDatabase={1}mdb,cn=config\nchangetype: modify\nadd: olcSyncrepl\nolcSyncrepl: \n  rid=003 \n  provider=ldaps:\/\/ldapmaster01.kifarunix-demo.com\n  binddn=\"cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com\" \n  bindmethod=simple\n  credentials=\"P@ssW0rd\" \n  searchbase=\"dc=ldapmaster,dc=kifarunix-demo,dc=com\" \n  type=refreshAndPersist \n  timeout=0 \n  network-timeout=0 \n  retry=\"30 5 300 +\"\nolcSyncrepl: \n  rid=004 \n  provider=ldaps:\/\/ldapmaster02.kifarunix-demo.com\n  binddn=\"cn=admin,dc=ldapmaster,dc=kifarunix-demo,dc=com\" \n  bindmethod=simple\n  credentials=\"P@ssW0rd\" \n  searchbase=\"dc=ldapmaster,dc=kifarunix-demo,dc=com\" \n  type=refreshAndPersist \n  timeout=0 \n  network-timeout=0 \n  retry=\"30 5 300 +\"\n-\nadd: olcMirrorMode\nolcMirrorMode: TRUE<\/code><\/pre>\n\n\n\n<p>Update the database.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f enable-data-replication.ldif<\/code><\/pre>\n\n\n\n<p>Consult <code>man slapd-config<\/code> for the replication options used in the above LDIF files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verifying OpenLDAP Master-Master Replication<\/h3>\n\n\n\n<p>The OpenLDAP provider-provider (master-master) replication configuration is now done. To confirm that, try to make any changes on one of the providers.<\/p>\n\n\n\n<p>For example, add users, reset password, update any acl. This should be reflected on either of the providers.<\/p>\n\n\n\n<p>For the purposes of demonstration, let us reset the password for the user entry below on Provider 01, <strong>ldapmaster01.kifarunix-demo.com<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>uid=linus,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>[root@ldapmaster01 ~]# <strong>ldappasswd -H ldapi:\/\/\/ -Y EXTERNAL -S \"uid=linus,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com\"<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>New password: <strong>newpassword<\/strong>\nRe-enter new password: <strong>newpassword<\/strong>\nSASL\/EXTERNAL authentication started\nSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth\nSASL SSF: 0<\/code><\/pre>\n\n\n\n<p>Verify the password changes on the Provider 02, <strong>ldapmaster02.kifarunix-demo.com<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>[root@ldapmaster02 ~]# <strong>ldapwhoami -x -h ldapmaster01.kifarunix-demo.com -D \"uid=linus,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com\" -W<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Enter LDAP Password: <strong>newpass<\/strong>\ndn:uid=linus,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com<\/code><\/pre>\n\n\n\n<p>Similarly, try to reset the user password on Provider 02, <strong>ldapmaster02.kifarunix-demo.com<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>[root@ldapmaster02 ~]# <strong>ldappasswd -H ldapi:\/\/\/ -Y EXTERNAL -S \"uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com\"<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>New password: <strong>mypassword<\/strong>\nRe-enter new password: <strong>mypassword<\/strong>\nSASL\/EXTERNAL authentication started\nSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth\nSASL SSF: 0<\/code><\/pre>\n\n\n\n<p>Verify on Provider 01;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>[root@ldapmaster01 ~]# <strong>ldapwhoami -x -h ldapmaster01.kifarunix-demo.com -D \"uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com\" -W<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Enter LDAP Password: <strong>mypassword<\/strong>\ndn:uid=koromicha,ou=people,dc=ldapmaster,dc=kifarunix-demo,dc=com<\/code><\/pre>\n\n\n\n<p>Great. You have successfully setup OpenLDAP Master-master (provider-provider) on CentOS 8.<\/p>\n\n\n\n<p>That marks the end of our guide on how to install and setup OpenLDAP Master-Master Replication on CentOS 8.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Reference:<\/h4>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\"OpenLDAP Replication (opens in a new tab)\" href=\"https:\/\/www.openldap.org\/doc\/admin24\/replication.html\" target=\"_blank\">OpenLDAP Replication<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Related Guide<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/setup-openldap-master-slave-replication-on-centos-8\/\" target=\"_blank\">Setup OpenLDAP Master-Slave Replication on CentOS 8<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/how-to-configure-dokuwiki-openldap-authentication\/\" target=\"_blank\">How to Configure DokuWiki OpenLDAP Authentication<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/kifarunix.com\/implement-openldap-password-policies\/\" target=\"_blank\">Implement OpenLDAP Password Policies<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/how-to-configure-sudo-via-openldap-server\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">How to Configure SUDO via OpenLDAP Server<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, we are going to learn how to setup OpenLDAP Master-Master Replication on CentOS 8. OpenLDAP supports a wide variety of replication topologies<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[285,121,1099],"tags":[1142,1330,1331,1329,1291,1332,1333],"class_list":["post-5088","post","type-post","status-publish","format-standard","hentry","category-directory-server","category-howtos","category-openldap","tag-centos-8","tag-openldap-master-master-replication","tag-openldap-multi-master-replication","tag-openldap-provider-provider-replication","tag-openldap-replication","tag-openldap-syncrepl","tag-syncprov","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5088"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=5088"}],"version-history":[{"count":9,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5088\/revisions"}],"predecessor-version":[{"id":5243,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/5088\/revisions\/5243"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=5088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=5088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=5088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}