pradeepagrawal8184 commented on code in PR #1193:
URL: https://github.com/apache/ranger/pull/1193#discussion_r3869209931


##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration
+
+This blueprint covers the implementation, property configurations, and 
lifecycle operations required to run an integrated Apache Ranger stack 
synchronized natively with a local OpenLDAP server on Docker.
+
+## 1. Run the Prerequisite Setup Script
+
+Execute the setup script (`ldap_us_setup.sh`) to automatically configure the 
required integration settings for the Docker environment. This script acts as a 
**Master Alignment Script** that seamlessly synchronizes LDAP settings across 
four key layers:
+
+- **Ranger Admin Properties:** Injects the core Corporate OpenLDAP 
authentication variables into `ranger-admin-install-postgres.properties`.
+- **Ranger UserSync Properties:** Configures source targets, lean search base 
fallbacks, and group synchronization optimizations inside 
`ranger-usersync-install.properties`.
+- **Docker Compose Overrides:** Safely aligns container privilege blocks 
(`user: root`) and native initialization runtimes within 
`docker-compose.ranger.yml`.
+- **Infrastructure Generation:** Dynamically auto-generates the 
`docker-compose.local-ldap.yml` file with matching environment variables 
(domains, passwords, and mapped ports).
+
+> **IMPORTANT:** Running this script **fully automates the manual 
configurations described in Step 2 and Step 4**. If you execute this script, 
please **do not** manually create the Compose file or edit the properties 
mentioned below—doing both will cause conflicts. Sections 2 and 4 are provided 
strictly as a reference matrix. After running the script, you can jump straight 
to Step 3 (LDIF seed) and Step 5 (Deployment Lifecycle).
+
+```bash
+./ldap_us_setup.sh
+```
+
+---
+
+## 2. Infrastructure Layer Setup (Reference)
+
+Deploy this file (directory: `ranger/dev-support/ranger-docker`) to spin up 
your ARM64-compatible local directory service daemon and web admin console. It 
is configured to join the internal network stack natively.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, this file is generated 
automatically. The snippet below is for reference only.
+
+```yaml
+services:
+  local-ldap:
+    image: osixia/openldap:1.5.0
+    container_name: local-ldap
+    hostname: local-ldap.rangernw
+    ports:
+      - "389:389"
+      - "636:636"
+    environment:
+      - LDAP_ORGANISATION=RangerNW
+      - LDAP_DOMAIN=example.com
+      - LDAP_ADMIN_PASSWORD=p@ssw0rd
+      - LDAP_TLS=false
+    networks:
+      - ranger
+
+  local-ldap-admin:
+    image: osixia/phpldapadmin:0.9.0
+    container_name: local-ldap-admin
+    ports:
+      - "8080:80"
+    environment:
+      - PHPLDAPADMIN_HTTPS=false
+      - PHPLDAPADMIN_LDAP_HOSTS=local-ldap
+    networks:
+      - ranger
+    depends_on:
+      - local-ldap
+
+networks:
+  ranger:
+    name: rangernw
+```
+
+---
+
+## 3. Directory Information Tree Seed (`ldapusergroup.ldif`)
+
+Create this data file to map out your primary directory structures. It creates 
the required `ou=People` structural organizational unit, seeds the user `john`, 
and provisions the `engineering` group with `john` assigned as an active member.
+
+```ldif
+# 1. Base Structural Container
+dn: ou=People,dc=example,dc=com
+objectClass: organizationalUnit
+ou: People
+
+# 2. User Profile
+dn: cn=john,ou=People,dc=example,dc=com
+cn: john
+sn: doe
+objectClass: inetOrgPerson
+userPassword: password123
+uid: john
+
+# 3. Group Profile
+dn: cn=engineering,ou=People,dc=example,dc=com
+cn: engineering
+objectClass: groupOfNames
+member: cn=john,ou=People,dc=example,dc=com
+```
+
+---
+
+## 4. Configuration Profiles Reference Matrix
+
+Once fully synchronized via automation, your configuration files must maintain 
the following parameters to execute native LDAP mapping and container privilege 
coordination.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, these settings are 
applied automatically. The values below are for reference only.
+
+### 4.A Docker Compose State (`docker-compose.ranger.yml` Snippet)
+
+The `ranger:` block utilizes `user: root` to safely bypass folder ownership 
permission locks while initializing custom execution scripts:
+
+```yaml
+    environment:
+      - RANGER_VERSION
+      - RANGER_DB_TYPE
+      - KERBEROS_ENABLED
+      - DEBUG_ADMIN=${DEBUG_ADMIN:-false}
+      - JAVA_OPTS
+    user: root
+    entrypoint:
+      - /bin/bash
+      - -c
+      - |
+        # Hand execution off directly to the native initialization runtime
+        chown -R ranger:ranger /opt/ranger/admin/
+        su -s /bin/bash ranger -c "/home/ranger/scripts/ranger.sh"
+```
+
+### 4.B Ranger Admin Native Properties
+
+File: 
`ranger/dev-support/scripts/admin/ranger-admin-install-postgres.properties`
+
+```properties
+authentication_method = LDAP
+
+xa_ldap_url = ldap://local-ldap:389
+xa_ldap_base_dn = dc=example,dc=com
+xa_ldap_bind_dn = cn=admin,dc=example,dc=com
+xa_ldap_bind_password = p@ssw0rd
+xa_ldap_userDNpattern = cn={0},ou=People,dc=example,dc=com
+xa_ldap_userSearchFilter = (cn={0})
+xa_ldap_groupSearchBase = ou=People,dc=example,dc=com
+xa_ldap_groupSearchFilter = (member=cn={0},ou=People,dc=example,dc=com)
+xa_ldap_groupRoleAttribute = cn
+xa_ldap_referral = ignore
+```
+
+### 4.C Ranger UserSync Native Properties
+
+File: `ranger/dev-support/scripts/usersync/ranger-usersync-install.properties`
+
+```properties
+SYNC_SOURCE = ldap
+SYNC_LDAP_URL = ldap://local-ldap:389
+SYNC_LDAP_BIND_DN = cn=admin,dc=example,dc=com
+SYNC_LDAP_BIND_PASSWORD = p@ssw0rd
+
+SYNC_LDAP_USER_SEARCH_BASE = ou=People,dc=example,dc=com
+SYNC_LDAP_USER_SEARCH_FILTER = (objectClass=inetOrgPerson)
+
+SYNC_LDAP_GROUP_SEARCH_BASE = ou=People,dc=example,dc=com

Review Comment:
   `That property does not exist. The correct install property is 
SYNC_GROUP_SEARCH_BASE; check ranger-usersync-install.properties and 
installprop2xml.properties`



##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration
+
+This blueprint covers the implementation, property configurations, and 
lifecycle operations required to run an integrated Apache Ranger stack 
synchronized natively with a local OpenLDAP server on Docker.
+
+## 1. Run the Prerequisite Setup Script
+
+Execute the setup script (`ldap_us_setup.sh`) to automatically configure the 
required integration settings for the Docker environment. This script acts as a 
**Master Alignment Script** that seamlessly synchronizes LDAP settings across 
four key layers:
+
+- **Ranger Admin Properties:** Injects the core Corporate OpenLDAP 
authentication variables into `ranger-admin-install-postgres.properties`.
+- **Ranger UserSync Properties:** Configures source targets, lean search base 
fallbacks, and group synchronization optimizations inside 
`ranger-usersync-install.properties`.
+- **Docker Compose Overrides:** Safely aligns container privilege blocks 
(`user: root`) and native initialization runtimes within 
`docker-compose.ranger.yml`.
+- **Infrastructure Generation:** Dynamically auto-generates the 
`docker-compose.local-ldap.yml` file with matching environment variables 
(domains, passwords, and mapped ports).
+
+> **IMPORTANT:** Running this script **fully automates the manual 
configurations described in Step 2 and Step 4**. If you execute this script, 
please **do not** manually create the Compose file or edit the properties 
mentioned below—doing both will cause conflicts. Sections 2 and 4 are provided 
strictly as a reference matrix. After running the script, you can jump straight 
to Step 3 (LDIF seed) and Step 5 (Deployment Lifecycle).
+
+```bash
+./ldap_us_setup.sh
+```
+
+---
+
+## 2. Infrastructure Layer Setup (Reference)
+
+Deploy this file (directory: `ranger/dev-support/ranger-docker`) to spin up 
your ARM64-compatible local directory service daemon and web admin console. It 
is configured to join the internal network stack natively.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, this file is generated 
automatically. The snippet below is for reference only.
+
+```yaml
+services:
+  local-ldap:
+    image: osixia/openldap:1.5.0
+    container_name: local-ldap
+    hostname: local-ldap.rangernw
+    ports:
+      - "389:389"
+      - "636:636"
+    environment:
+      - LDAP_ORGANISATION=RangerNW
+      - LDAP_DOMAIN=example.com
+      - LDAP_ADMIN_PASSWORD=p@ssw0rd
+      - LDAP_TLS=false
+    networks:
+      - ranger
+
+  local-ldap-admin:
+    image: osixia/phpldapadmin:0.9.0
+    container_name: local-ldap-admin
+    ports:
+      - "8080:80"
+    environment:
+      - PHPLDAPADMIN_HTTPS=false
+      - PHPLDAPADMIN_LDAP_HOSTS=local-ldap
+    networks:
+      - ranger
+    depends_on:
+      - local-ldap
+
+networks:
+  ranger:
+    name: rangernw
+```
+
+---
+
+## 3. Directory Information Tree Seed (`ldapusergroup.ldif`)
+
+Create this data file to map out your primary directory structures. It creates 
the required `ou=People` structural organizational unit, seeds the user `john`, 
and provisions the `engineering` group with `john` assigned as an active member.
+
+```ldif
+# 1. Base Structural Container
+dn: ou=People,dc=example,dc=com
+objectClass: organizationalUnit
+ou: People
+
+# 2. User Profile
+dn: cn=john,ou=People,dc=example,dc=com
+cn: john
+sn: doe
+objectClass: inetOrgPerson
+userPassword: password123
+uid: john
+
+# 3. Group Profile
+dn: cn=engineering,ou=People,dc=example,dc=com
+cn: engineering
+objectClass: groupOfNames
+member: cn=john,ou=People,dc=example,dc=com
+```
+
+---
+
+## 4. Configuration Profiles Reference Matrix
+
+Once fully synchronized via automation, your configuration files must maintain 
the following parameters to execute native LDAP mapping and container privilege 
coordination.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, these settings are 
applied automatically. The values below are for reference only.
+
+### 4.A Docker Compose State (`docker-compose.ranger.yml` Snippet)
+
+The `ranger:` block utilizes `user: root` to safely bypass folder ownership 
permission locks while initializing custom execution scripts:
+
+```yaml
+    environment:
+      - RANGER_VERSION
+      - RANGER_DB_TYPE
+      - KERBEROS_ENABLED
+      - DEBUG_ADMIN=${DEBUG_ADMIN:-false}
+      - JAVA_OPTS
+    user: root
+    entrypoint:
+      - /bin/bash
+      - -c
+      - |
+        # Hand execution off directly to the native initialization runtime
+        chown -R ranger:ranger /opt/ranger/admin/
+        su -s /bin/bash ranger -c "/home/ranger/scripts/ranger.sh"
+```
+
+### 4.B Ranger Admin Native Properties
+
+File: 
`ranger/dev-support/scripts/admin/ranger-admin-install-postgres.properties`

Review Comment:
   Correct path:
   
   dev-support/ranger-docker/scripts/admin/...



##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration
+
+This blueprint covers the implementation, property configurations, and 
lifecycle operations required to run an integrated Apache Ranger stack 
synchronized natively with a local OpenLDAP server on Docker.
+
+## 1. Run the Prerequisite Setup Script
+
+Execute the setup script (`ldap_us_setup.sh`) to automatically configure the 
required integration settings for the Docker environment. This script acts as a 
**Master Alignment Script** that seamlessly synchronizes LDAP settings across 
four key layers:
+
+- **Ranger Admin Properties:** Injects the core Corporate OpenLDAP 
authentication variables into `ranger-admin-install-postgres.properties`.
+- **Ranger UserSync Properties:** Configures source targets, lean search base 
fallbacks, and group synchronization optimizations inside 
`ranger-usersync-install.properties`.
+- **Docker Compose Overrides:** Safely aligns container privilege blocks 
(`user: root`) and native initialization runtimes within 
`docker-compose.ranger.yml`.
+- **Infrastructure Generation:** Dynamically auto-generates the 
`docker-compose.local-ldap.yml` file with matching environment variables 
(domains, passwords, and mapped ports).
+
+> **IMPORTANT:** Running this script **fully automates the manual 
configurations described in Step 2 and Step 4**. If you execute this script, 
please **do not** manually create the Compose file or edit the properties 
mentioned below—doing both will cause conflicts. Sections 2 and 4 are provided 
strictly as a reference matrix. After running the script, you can jump straight 
to Step 3 (LDIF seed) and Step 5 (Deployment Lifecycle).
+
+```bash
+./ldap_us_setup.sh
+```
+
+---
+
+## 2. Infrastructure Layer Setup (Reference)
+
+Deploy this file (directory: `ranger/dev-support/ranger-docker`) to spin up 
your ARM64-compatible local directory service daemon and web admin console. It 
is configured to join the internal network stack natively.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, this file is generated 
automatically. The snippet below is for reference only.
+
+```yaml
+services:
+  local-ldap:
+    image: osixia/openldap:1.5.0
+    container_name: local-ldap
+    hostname: local-ldap.rangernw
+    ports:
+      - "389:389"
+      - "636:636"
+    environment:
+      - LDAP_ORGANISATION=RangerNW
+      - LDAP_DOMAIN=example.com
+      - LDAP_ADMIN_PASSWORD=p@ssw0rd
+      - LDAP_TLS=false
+    networks:
+      - ranger
+
+  local-ldap-admin:
+    image: osixia/phpldapadmin:0.9.0
+    container_name: local-ldap-admin
+    ports:
+      - "8080:80"
+    environment:
+      - PHPLDAPADMIN_HTTPS=false
+      - PHPLDAPADMIN_LDAP_HOSTS=local-ldap
+    networks:
+      - ranger
+    depends_on:
+      - local-ldap
+
+networks:
+  ranger:
+    name: rangernw
+```
+
+---
+
+## 3. Directory Information Tree Seed (`ldapusergroup.ldif`)
+
+Create this data file to map out your primary directory structures. It creates 
the required `ou=People` structural organizational unit, seeds the user `john`, 
and provisions the `engineering` group with `john` assigned as an active member.
+
+```ldif
+# 1. Base Structural Container
+dn: ou=People,dc=example,dc=com
+objectClass: organizationalUnit
+ou: People
+
+# 2. User Profile
+dn: cn=john,ou=People,dc=example,dc=com
+cn: john
+sn: doe
+objectClass: inetOrgPerson
+userPassword: password123
+uid: john
+
+# 3. Group Profile
+dn: cn=engineering,ou=People,dc=example,dc=com
+cn: engineering
+objectClass: groupOfNames
+member: cn=john,ou=People,dc=example,dc=com
+```
+
+---
+
+## 4. Configuration Profiles Reference Matrix
+
+Once fully synchronized via automation, your configuration files must maintain 
the following parameters to execute native LDAP mapping and container privilege 
coordination.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, these settings are 
applied automatically. The values below are for reference only.
+
+### 4.A Docker Compose State (`docker-compose.ranger.yml` Snippet)
+
+The `ranger:` block utilizes `user: root` to safely bypass folder ownership 
permission locks while initializing custom execution scripts:
+
+```yaml
+    environment:
+      - RANGER_VERSION
+      - RANGER_DB_TYPE
+      - KERBEROS_ENABLED
+      - DEBUG_ADMIN=${DEBUG_ADMIN:-false}
+      - JAVA_OPTS
+    user: root
+    entrypoint:
+      - /bin/bash
+      - -c
+      - |
+        # Hand execution off directly to the native initialization runtime
+        chown -R ranger:ranger /opt/ranger/admin/
+        su -s /bin/bash ranger -c "/home/ranger/scripts/ranger.sh"
+```
+
+### 4.B Ranger Admin Native Properties
+
+File: 
`ranger/dev-support/scripts/admin/ranger-admin-install-postgres.properties`
+
+```properties
+authentication_method = LDAP
+
+xa_ldap_url = ldap://local-ldap:389
+xa_ldap_base_dn = dc=example,dc=com
+xa_ldap_bind_dn = cn=admin,dc=example,dc=com
+xa_ldap_bind_password = p@ssw0rd
+xa_ldap_userDNpattern = cn={0},ou=People,dc=example,dc=com
+xa_ldap_userSearchFilter = (cn={0})
+xa_ldap_groupSearchBase = ou=People,dc=example,dc=com
+xa_ldap_groupSearchFilter = (member=cn={0},ou=People,dc=example,dc=com)
+xa_ldap_groupRoleAttribute = cn
+xa_ldap_referral = ignore
+```
+
+### 4.C Ranger UserSync Native Properties
+
+File: `ranger/dev-support/scripts/usersync/ranger-usersync-install.properties`
+
+```properties
+SYNC_SOURCE = ldap
+SYNC_LDAP_URL = ldap://local-ldap:389
+SYNC_LDAP_BIND_DN = cn=admin,dc=example,dc=com
+SYNC_LDAP_BIND_PASSWORD = p@ssw0rd
+
+SYNC_LDAP_USER_SEARCH_BASE = ou=People,dc=example,dc=com
+SYNC_LDAP_USER_SEARCH_FILTER = (objectClass=inetOrgPerson)
+
+SYNC_LDAP_GROUP_SEARCH_BASE = ou=People,dc=example,dc=com
+SYNC_LDAP_GROUP_SEARCH_FILTER = (objectClass=groupOfNames)
+
+SYNC_USERNAME_CASE_CONVERSION = lower
+SYNC_GROUPNAME_CASE_CONVERSION = lower
+LGSYNC_LDAP_LARGEGROUPSYNC_ENABLED = true

Review Comment:
   `Both the script and doc set this, but it is not mapped in 
unixauthservice/scripts/templates/installprop2xml.properties. It will not reach 
ranger-ugsync-site.xml during setup. The runtime key is 
ranger.usersync.ldap.largegroupsync.`
   
   Fix: Add the mapping, or remove the setting from script and doc.



##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration

Review Comment:
   Not linked from README.md
   The LDAP guide is orphaned. A one-line pointer under “Run Ranger Services” 
would help discovery.



##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration
+
+This blueprint covers the implementation, property configurations, and 
lifecycle operations required to run an integrated Apache Ranger stack 
synchronized natively with a local OpenLDAP server on Docker.
+
+## 1. Run the Prerequisite Setup Script
+
+Execute the setup script (`ldap_us_setup.sh`) to automatically configure the 
required integration settings for the Docker environment. This script acts as a 
**Master Alignment Script** that seamlessly synchronizes LDAP settings across 
four key layers:
+
+- **Ranger Admin Properties:** Injects the core Corporate OpenLDAP 
authentication variables into `ranger-admin-install-postgres.properties`.
+- **Ranger UserSync Properties:** Configures source targets, lean search base 
fallbacks, and group synchronization optimizations inside 
`ranger-usersync-install.properties`.
+- **Docker Compose Overrides:** Safely aligns container privilege blocks 
(`user: root`) and native initialization runtimes within 
`docker-compose.ranger.yml`.
+- **Infrastructure Generation:** Dynamically auto-generates the 
`docker-compose.local-ldap.yml` file with matching environment variables 
(domains, passwords, and mapped ports).
+
+> **IMPORTANT:** Running this script **fully automates the manual 
configurations described in Step 2 and Step 4**. If you execute this script, 
please **do not** manually create the Compose file or edit the properties 
mentioned below—doing both will cause conflicts. Sections 2 and 4 are provided 
strictly as a reference matrix. After running the script, you can jump straight 
to Step 3 (LDIF seed) and Step 5 (Deployment Lifecycle).
+
+```bash
+./ldap_us_setup.sh
+```
+
+---
+
+## 2. Infrastructure Layer Setup (Reference)
+
+Deploy this file (directory: `ranger/dev-support/ranger-docker`) to spin up 
your ARM64-compatible local directory service daemon and web admin console. It 
is configured to join the internal network stack natively.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, this file is generated 
automatically. The snippet below is for reference only.
+
+```yaml
+services:
+  local-ldap:
+    image: osixia/openldap:1.5.0
+    container_name: local-ldap
+    hostname: local-ldap.rangernw
+    ports:
+      - "389:389"
+      - "636:636"
+    environment:
+      - LDAP_ORGANISATION=RangerNW
+      - LDAP_DOMAIN=example.com
+      - LDAP_ADMIN_PASSWORD=p@ssw0rd
+      - LDAP_TLS=false
+    networks:
+      - ranger
+
+  local-ldap-admin:
+    image: osixia/phpldapadmin:0.9.0
+    container_name: local-ldap-admin
+    ports:
+      - "8080:80"
+    environment:
+      - PHPLDAPADMIN_HTTPS=false
+      - PHPLDAPADMIN_LDAP_HOSTS=local-ldap
+    networks:
+      - ranger
+    depends_on:
+      - local-ldap
+
+networks:
+  ranger:
+    name: rangernw
+```
+
+---
+
+## 3. Directory Information Tree Seed (`ldapusergroup.ldif`)
+
+Create this data file to map out your primary directory structures. It creates 
the required `ou=People` structural organizational unit, seeds the user `john`, 
and provisions the `engineering` group with `john` assigned as an active member.
+
+```ldif
+# 1. Base Structural Container
+dn: ou=People,dc=example,dc=com
+objectClass: organizationalUnit
+ou: People
+
+# 2. User Profile
+dn: cn=john,ou=People,dc=example,dc=com
+cn: john
+sn: doe
+objectClass: inetOrgPerson
+userPassword: password123
+uid: john
+
+# 3. Group Profile
+dn: cn=engineering,ou=People,dc=example,dc=com
+cn: engineering
+objectClass: groupOfNames
+member: cn=john,ou=People,dc=example,dc=com
+```
+
+---
+
+## 4. Configuration Profiles Reference Matrix
+
+Once fully synchronized via automation, your configuration files must maintain 
the following parameters to execute native LDAP mapping and container privilege 
coordination.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, these settings are 
applied automatically. The values below are for reference only.
+
+### 4.A Docker Compose State (`docker-compose.ranger.yml` Snippet)
+
+The `ranger:` block utilizes `user: root` to safely bypass folder ownership 
permission locks while initializing custom execution scripts:
+
+```yaml
+    environment:
+      - RANGER_VERSION
+      - RANGER_DB_TYPE
+      - KERBEROS_ENABLED
+      - DEBUG_ADMIN=${DEBUG_ADMIN:-false}
+      - JAVA_OPTS
+    user: root
+    entrypoint:
+      - /bin/bash
+      - -c
+      - |
+        # Hand execution off directly to the native initialization runtime
+        chown -R ranger:ranger /opt/ranger/admin/
+        su -s /bin/bash ranger -c "/home/ranger/scripts/ranger.sh"
+```
+
+### 4.B Ranger Admin Native Properties
+
+File: 
`ranger/dev-support/scripts/admin/ranger-admin-install-postgres.properties`
+
+```properties
+authentication_method = LDAP
+
+xa_ldap_url = ldap://local-ldap:389
+xa_ldap_base_dn = dc=example,dc=com
+xa_ldap_bind_dn = cn=admin,dc=example,dc=com
+xa_ldap_bind_password = p@ssw0rd
+xa_ldap_userDNpattern = cn={0},ou=People,dc=example,dc=com
+xa_ldap_userSearchFilter = (cn={0})
+xa_ldap_groupSearchBase = ou=People,dc=example,dc=com
+xa_ldap_groupSearchFilter = (member=cn={0},ou=People,dc=example,dc=com)
+xa_ldap_groupRoleAttribute = cn
+xa_ldap_referral = ignore
+```
+
+### 4.C Ranger UserSync Native Properties
+
+File: `ranger/dev-support/scripts/usersync/ranger-usersync-install.properties`

Review Comment:
   Correct paths:
   
   dev-support/ranger-docker/scripts/usersync/...



##########
dev-support/ranger-docker/openldap-usersync-setup.md:
##########
@@ -0,0 +1,206 @@
+# Containerized Apache Ranger & OpenLDAP Native Integration
+
+This blueprint covers the implementation, property configurations, and 
lifecycle operations required to run an integrated Apache Ranger stack 
synchronized natively with a local OpenLDAP server on Docker.
+
+## 1. Run the Prerequisite Setup Script
+
+Execute the setup script (`ldap_us_setup.sh`) to automatically configure the 
required integration settings for the Docker environment. This script acts as a 
**Master Alignment Script** that seamlessly synchronizes LDAP settings across 
four key layers:
+
+- **Ranger Admin Properties:** Injects the core Corporate OpenLDAP 
authentication variables into `ranger-admin-install-postgres.properties`.
+- **Ranger UserSync Properties:** Configures source targets, lean search base 
fallbacks, and group synchronization optimizations inside 
`ranger-usersync-install.properties`.
+- **Docker Compose Overrides:** Safely aligns container privilege blocks 
(`user: root`) and native initialization runtimes within 
`docker-compose.ranger.yml`.
+- **Infrastructure Generation:** Dynamically auto-generates the 
`docker-compose.local-ldap.yml` file with matching environment variables 
(domains, passwords, and mapped ports).
+
+> **IMPORTANT:** Running this script **fully automates the manual 
configurations described in Step 2 and Step 4**. If you execute this script, 
please **do not** manually create the Compose file or edit the properties 
mentioned below—doing both will cause conflicts. Sections 2 and 4 are provided 
strictly as a reference matrix. After running the script, you can jump straight 
to Step 3 (LDIF seed) and Step 5 (Deployment Lifecycle).
+
+```bash
+./ldap_us_setup.sh
+```
+
+---
+
+## 2. Infrastructure Layer Setup (Reference)
+
+Deploy this file (directory: `ranger/dev-support/ranger-docker`) to spin up 
your ARM64-compatible local directory service daemon and web admin console. It 
is configured to join the internal network stack natively.
+
+> **Note:** If you ran `ldap_us_setup.sh` in Step 1, this file is generated 
automatically. The snippet below is for reference only.
+
+```yaml
+services:
+  local-ldap:
+    image: osixia/openldap:1.5.0
+    container_name: local-ldap
+    hostname: local-ldap.rangernw
+    ports:
+      - "389:389"
+      - "636:636"
+    environment:
+      - LDAP_ORGANISATION=RangerNW
+      - LDAP_DOMAIN=example.com
+      - LDAP_ADMIN_PASSWORD=p@ssw0rd
+      - LDAP_TLS=false
+    networks:
+      - ranger
+
+  local-ldap-admin:
+    image: osixia/phpldapadmin:0.9.0
+    container_name: local-ldap-admin
+    ports:
+      - "8080:80"

Review Comment:
   phpLDAPadmin on 8080 conflicts with Trino in the full stack. Worth noting in 
the doc or using another host port (e.g. 8089).



##########
dev-support/ranger-docker/ldap_us_setup.sh:
##########
@@ -0,0 +1,216 @@
+#!/bin/bash
+

Review Comment:
   Add license header



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to