Skip to content

Instantly share code, notes, and snippets.

@ekosutrisno
Last active December 24, 2021 03:01
Show Gist options
  • Save ekosutrisno/541c7c3ddf0dd5876d44e7f66de50047 to your computer and use it in GitHub Desktop.
Save ekosutrisno/541c7c3ddf0dd5876d44e7f66de50047 to your computer and use it in GitHub Desktop.
RnD Integrate OpenLdap & Keycloak
# Metadata
# Created By Eko Sutrisno
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM
version: 1
# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization
# Entry 2: cn=admin_gh,dc=erajaya,dc=com
dn: cn=admin_gh,dc=erajaya,dc=com
cn: admin_gh
displayname: Admin Github User
givenname: admin_gh
mail: [email protected]
objectclass: inetOrgPerson
sn: AdminGithub
userpassword: admin_gh_pass
# Entry 3: cn=developer,dc=erajaya,dc=com
dn: cn=developer,dc=erajaya,dc=com
cn: developer
displayname: Developer User
givenname: developer
mail: [email protected]
objectclass: inetOrgPerson
sn: Developer
userpassword: developer_pass
# Entry 4: cn=maintainer,dc=erajaya,dc=com
dn: cn=maintainer,dc=erajaya,dc=com
cn: maintainer
displayname: Maintainer User
givenname: maintainer
mail: [email protected]
objectclass: inetOrgPerson
sn: Maintainer
userpassword: maintainer_pass
# Entry 5: ou=Groups,dc=erajaya,dc=com
dn: ou=Groups,dc=erajaya,dc=com
objectclass: organizationalUnit
ou: Groups
# Entry 6: cn=Admins,ou=Groups,dc=erajaya,dc=com
dn: cn=Admins,ou=Groups,dc=erajaya,dc=com
cn: Admins
objectclass: groupOfUniqueNames
uniquemember: cn=admin,dc=erajaya,dc=com
# Entry 7: cn=Maintaners,ou=Groups,dc=erajaya,dc=com
dn: cn=Maintaners,ou=Groups,dc=erajaya,dc=com
cn: Maintaners
objectclass: groupOfUniqueNames
uniquemember: cn=maintainer,dc=erajaya,dc=com
uniquemember: cn=developer,dc=erajaya,dc=com
# Entry 8: ou=Users,dc=erajaya,dc=com
dn: ou=Users,dc=erajaya,dc=com
objectclass: organizationalUnit
ou: Users
# Metadata
# Created By Eko Sutrisno
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM
version: 1
# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization
dn: cn=user_01,ou=Users,dc=erajaya,dc=com
cn: user_01
displayname: User
givenname: user_01
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Pertama
userpassword: password_01
dn: cn=user_02,ou=Users,dc=erajaya,dc=com
cn: user_02
displayname: User
givenname: user_02
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Kedua
userpassword: password_02
dn: cn=user_03,ou=Users,dc=erajaya,dc=com
cn: user_03
displayname: User
givenname: user_03
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Ketiga
userpassword: password_03
dn: cn=user_04,ou=Users,dc=erajaya,dc=com
cn: user_04
displayname: User
givenname: user_04
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Keempat
userpassword: password_04
dn: cn=user_05,ou=Users,dc=erajaya,dc=com
cn: user_05
displayname: User
givenname: user_05
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Kelima
userpassword: password_05
# Metadata
# Created By Eko Sutrisno
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM
version: 1
# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization
dn: uid=user_01,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_01
displayname: User
givenname: user_01
mail: [email protected]
sn: Pertama
userpassword: password_01
description: User Description.
dn: uid=user_02,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_02
displayname: User
givenname: user_02
mail: [email protected]
sn: Kedua
userpassword: password_02
description: User Description.
dn: uid=user_03,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_03
displayname: User
givenname: user_03
mail: [email protected]
sn: Ketiga
userpassword: password_03
description: User Description.
dn: uid=user_04,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_04
displayname: User
givenname: user_04
mail: [email protected]
sn: Keempat
userpassword: password_04
description: User Description.
dn: uid=user_05,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_05
displayname: User
givenname: user_05
mail: [email protected]
sn: Kelima
userpassword: password_05
description: User Description.
dn: uid=people_user_01,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_01
displayname: User
givenname: people_user_01
mail: [email protected]
sn: Pertama
userpassword: people_password_01
description: User Description.
dn: uid=people_user_02,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_02
displayname: User
givenname: people_user_02
mail: [email protected]
sn: Kedua
userpassword: people_password_02
description: User Description.
dn: uid=people_user_03,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_03
displayname: User
givenname: people_user_03
mail: [email protected]
sn: Ketiga
userpassword: people_password_03
description: User Description.
dn: uid=people_user_04,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_04
displayname: User
givenname: people_user_04
mail: [email protected]
sn: Keempat
userpassword: people_password_04
description: User Description.
dn: uid=people_user_05,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_05
displayname: User
givenname: people_user_05
mail: [email protected]
sn: Kelima
userpassword: people_password_05
description: User Description.
# Metadata
# Created By Eko Sutrisno
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM
version: "3.8"
services:
ldap_server_service:
image: osixia/openldap
container_name: ldap_server_service
networks:
- ldapnetwork
ports:
- 389:389
environment:
- LDAP_ORGANISATION=Erajaya Swasembada
- LDAP_DOMAIN=erajaya.com
- LDAP_BASE_DN=dc=erajaya,dc=com
- LDAP_ADMIN_USERNAME=admin
- LDAP_ADMIN_PASSWORD=adminpassword
volumes:
- "openldap_data:/osixia/openldap"
ldap_server_admin_service:
image: osixia/phpldapadmin
container_name: ldap_server_admin_service
networks:
- ldapnetwork
ports:
- 8090:80
environment:
- PHPLDAPADMIN_LDAP_HOSTS=ldap_server_service
- PHPLDAPADMIN_HTTPS=false
depends_on:
- ldap_server_service
volumes:
openldap_data:
driver: local
networks:
ldapnetwork:
name: ldapnetwork
driver: bridge

Integrate Open Ldap and Keycloak

Docker Compose docker-compose.yml

# Metadata 
# Created By Eko Sutrisno 
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM

version: "3.8"

services:
  ldap_server_service:
    image: osixia/openldap
    container_name: ldap_server_service
    networks:
      - ldapnetwork
    ports:
      - 389:389
    environment:
      - LDAP_ORGANISATION=Erajaya Swasembada
      - LDAP_DOMAIN=erajaya.com
      - LDAP_BASE_DN=dc=erajaya,dc=com
      - LDAP_ADMIN_USERNAME=admin
      - LDAP_ADMIN_PASSWORD=adminpassword
    volumes:
      - "openldap_data:/osixia/openldap"

  ldap_server_admin_service:
    image: osixia/phpldapadmin
    container_name: ldap_server_admin_service
    networks:
      - ldapnetwork
    ports:
      - 8090:80
    environment:
      - PHPLDAPADMIN_LDAP_HOSTS=ldap_server_service
      - PHPLDAPADMIN_HTTPS=false
    depends_on:
      - ldap_server_service

volumes:
  openldap_data:
    driver: local

networks:
  ldapnetwork:
    name: ldapnetwork
    driver: bridge

Base Data File base_data.ldif

# Metadata 
# Created By Eko Sutrisno 
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM

version: 1

# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization

# Entry 2: cn=admin_gh,dc=erajaya,dc=com
dn: cn=admin_gh,dc=erajaya,dc=com
cn: admin_gh
displayname: Admin Github User
givenname: admin_gh
mail: [email protected]
objectclass: inetOrgPerson
sn: AdminGithub
userpassword: admin_gh_pass

# Entry 3: cn=developer,dc=erajaya,dc=com
dn: cn=developer,dc=erajaya,dc=com
cn: developer
displayname: Developer User
givenname: developer
mail: [email protected]
objectclass: inetOrgPerson
sn: Developer
userpassword: developer_pass

# Entry 4: cn=maintainer,dc=erajaya,dc=com
dn: cn=maintainer,dc=erajaya,dc=com
cn: maintainer
displayname: Maintainer User
givenname: maintainer
mail: [email protected]
objectclass: inetOrgPerson
sn: Maintainer
userpassword: maintainer_pass

# Entry 5: ou=Groups,dc=erajaya,dc=com
dn: ou=Groups,dc=erajaya,dc=com
objectclass: organizationalUnit
ou: Groups

# Entry 6: cn=Admins,ou=Groups,dc=erajaya,dc=com
dn: cn=Admins,ou=Groups,dc=erajaya,dc=com
cn: Admins
objectclass: groupOfUniqueNames
uniquemember: cn=admin,dc=erajaya,dc=com

# Entry 7: cn=Maintaners,ou=Groups,dc=erajaya,dc=com
dn: cn=Maintaners,ou=Groups,dc=erajaya,dc=com
cn: Maintaners
objectclass: groupOfUniqueNames
uniquemember: cn=maintainer,dc=erajaya,dc=com
uniquemember: cn=developer,dc=erajaya,dc=com

# Entry 8: ou=Users,dc=erajaya,dc=com
dn: ou=Users,dc=erajaya,dc=com
objectclass: organizationalUnit
ou: Users

Base User Data File base_User_data.ldif

# Metadata 
# Created By Eko Sutrisno 
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM

version: 1

# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization

dn: cn=user_01,ou=Users,dc=erajaya,dc=com
cn: user_01
displayname: User
givenname: user_01
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Pertama
userpassword: password_01

dn: cn=user_02,ou=Users,dc=erajaya,dc=com
cn: user_02
displayname: User
givenname: user_02
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Kedua
userpassword: password_02

dn: cn=user_03,ou=Users,dc=erajaya,dc=com
cn: user_03
displayname: User
givenname: user_03
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Ketiga
userpassword: password_03

dn: cn=user_04,ou=Users,dc=erajaya,dc=com
cn: user_04
displayname: User
givenname: user_04
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Keempat
userpassword: password_04

dn: cn=user_05,ou=Users,dc=erajaya,dc=com
cn: user_05
displayname: User
givenname: user_05
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
sn: Kelima
userpassword: password_05

Base User Data With UID base_user_data_with_uid.ldif

# Metadata 
# Created By Eko Sutrisno 
# Email [email protected]
# Kamis, 23 Desember 2021 11:40 AM

version: 1

# dn: dc=erajaya,dc=com
# dc: erajaya
# o: Erajaya Swasembada
# objectclass: top
# objectclass: dcObject
# objectclass: organization

dn: uid=user_01,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_01
displayname: User
givenname: user_01
mail: [email protected]
sn: Pertama
userpassword: password_01
description: User Description.

dn: uid=user_02,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_02
displayname: User
givenname: user_02
mail: [email protected]
sn: Kedua
userpassword: password_02
description: User Description.

dn: uid=user_03,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_03
displayname: User
givenname: user_03
mail: [email protected]
sn: Ketiga
userpassword: password_03
description: User Description.

dn: uid=user_04,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_04
displayname: User
givenname: user_04
mail: [email protected]
sn: Keempat
userpassword: password_04
description: User Description.

dn: uid=user_05,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: user_05
displayname: User
givenname: user_05
mail: [email protected]
sn: Kelima
userpassword: password_05
description: User Description.


dn: uid=people_user_01,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_01
displayname: User
givenname: people_user_01
mail: [email protected]
sn: Pertama
userpassword: people_password_01
description: User Description.

dn: uid=people_user_02,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_02
displayname: User
givenname: people_user_02
mail: [email protected]
sn: Kedua
userpassword: people_password_02
description: User Description.

dn: uid=people_user_03,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_03
displayname: User
givenname: people_user_03
mail: [email protected]
sn: Ketiga
userpassword: people_password_03
description: User Description.

dn: uid=people_user_04,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_04
displayname: User
givenname: people_user_04
mail: [email protected]
sn: Keempat
userpassword: people_password_04
description: User Description.

dn: uid=people_user_05,ou=Users,dc=erajaya,dc=com
changetype: add
objectclass: inetOrgPerson
objectclass: top
cn: User
uid: people_user_05
displayname: User
givenname: people_user_05
mail: [email protected]
sn: Kelima
userpassword: people_password_05
description: User Description.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment