{"id":13500359,"url":"https://github.com/rroemhild/docker-test-openldap","last_synced_at":"2025-04-07T22:08:32.258Z","repository":{"id":27649620,"uuid":"31134745","full_name":"rroemhild/docker-test-openldap","owner":"rroemhild","description":"Docker OpenLDAP Server for testing LDAP applications","archived":false,"fork":false,"pushed_at":"2024-10-07T19:30:05.000Z","size":232,"stargazers_count":376,"open_issues_count":22,"forks_count":145,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-31T21:49:05.112Z","etag":null,"topics":["ci","docker","futurama","ldap","openldap","slapd","testing"],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"AEXmod/platform_device_xiaomi_gemini","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rroemhild.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-02-21T18:01:35.000Z","updated_at":"2025-03-28T04:34:02.000Z","dependencies_parsed_at":"2024-02-18T03:31:37.295Z","dependency_job_id":"1f725748-ab0c-4583-bd36-a88a7f19f0a3","html_url":"https://github.com/rroemhild/docker-test-openldap","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rroemhild%2Fdocker-test-openldap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rroemhild%2Fdocker-test-openldap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rroemhild%2Fdocker-test-openldap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rroemhild%2Fdocker-test-openldap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rroemhild","download_url":"https://codeload.github.com/rroemhild/docker-test-openldap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737788,"owners_count":20987721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","docker","futurama","ldap","openldap","slapd","testing"],"created_at":"2024-07-31T22:00:57.297Z","updated_at":"2025-04-07T22:08:32.245Z","avatar_url":"https://github.com/rroemhild.png","language":"Dockerfile","funding_links":[],"categories":["Dockerfile"],"sub_categories":[],"readme":"# OpenLDAP Docker Image for testing\n\nThis Docker image provides an OpenLDAP Server for testing LDAP applications, i.e. unit tests. The server is initialized with the example domain `planetexpress.com` with data from the [Futurama Wiki][futuramawikia].\n\nParts of the image are based on the work from Nick Stenning [docker-slapd][slapd] and Bertrand Gouny [docker-openldap][openldap].\n\nThe Flask extension [flask-ldapconn][flaskldapconn] use this image for unit tests.\n\n[slapd]: https://github.com/nickstenning/docker-slapd\n[openldap]: https://github.com/osixia/docker-openldap\n[flaskldapconn]: https://github.com/rroemhild/flask-ldapconn\n[futuramawikia]: http://futurama.wikia.com\n\n\n## Features\n\n* Initialized with data from Futurama\n* Support for LDAP over TLS (STARTTLS) using a self-signed cert, or valid certificates (LetsEncrypt, etc)\n* memberOf overlay support\n* MS-AD style groups support\n* Supports Forced STARTTLS \n* Supports custom domain and custom directory structure\n\n\n## Usage\n\n```\ndocker pull ghcr.io/rroemhild/docker-test-openldap:master\ndocker run --rm -p 10389:10389 -p 10636:10636 ghcr.io/rroemhild/docker-test-openldap:master\n```\n\n## Testing\n\n```\n# List all Users\nldapsearch -H ldap://localhost:10389 -x -b \"ou=people,dc=planetexpress,dc=com\" -D \"cn=admin,dc=planetexpress,dc=com\" -w GoodNewsEveryone \"(objectClass=inetOrgPerson)\"\n\n# Request StartTLS\nldapsearch -H ldap://localhost:10389 -Z -x -b \"ou=people,dc=planetexpress,dc=com\" -D \"cn=admin,dc=planetexpress,dc=com\" -w GoodNewsEveryone \"(objectClass=inetOrgPerson)\"\n\n# Enforce StartTLS\nldapsearch -H ldap://localhost:10389 -ZZ -x -b \"ou=people,dc=planetexpress,dc=com\" -D \"cn=admin,dc=planetexpress,dc=com\" -w GoodNewsEveryone \"(objectClass=inetOrgPerson)\"\n\n# Enforce StartTLS with self-signed cert\nLDAPTLS_REQCERT=never ldapsearch -H ldap://localhost:10389 -ZZ -x -b \"ou=people,dc=planetexpress,dc=com\" -D \"cn=admin,dc=planetexpress,dc=com\" -w GoodNewsEveryone \"(objectClass=inetOrgPerson)\"\n```\n\n## Exposed ports\n\n* 10389 (ldap)\n* 10636 (ldaps)\n\n## Exposed volumes\n\n* /etc/ldap/slapd.d\n* /etc/ldap/ssl\n* /var/lib/ldap\n* /run/slapd\n\n\n## LDAP structure\n\n### dc=planetexpress,dc=com\n\n| Admin            | Secret           |\n| ---------------- | ---------------- |\n| cn=admin,dc=planetexpress,dc=com | GoodNewsEveryone |\n\n### ou=people,dc=planetexpress,dc=com\n\n#### cn=Hubert J. Farnsworth,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Hubert J. Farnsworth |\n| sn               | Farnsworth |\n| description      | Human |\n| displayName      | Professor Farnsworth |\n| employeeType     | Owner |\n| employeeType     | Founder |\n| givenName        | Hubert |\n| jpegPhoto        | JPEG-Photo (630x507 Pixel, 26780 Bytes) |\n| mail             | professor@planetexpress.com |\n| mail             | hubert@planetexpress.com |\n| ou               | Office Management |\n| title            | Professor |\n| uid              | professor |\n| userPassword     | professor |\n\n\n### cn=Philip J. Fry,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Philip J. Fry |\n| sn               | Fry |\n| description      | Human |\n| displayName      | Fry |\n| employeeType     | Delivery boy |\n| givenName        | Philip |\n| jpegPhoto        | JPEG-Photo (429x350 Pixel, 22132 Bytes) |\n| mail             | fry@planetexpress.com |\n| ou               | Delivering Crew |\n| uid              | fry |\n| userPassword     | fry |\n\n\n### cn=John A. Zoidberg,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | John A. Zoidberg |\n| sn               | Zoidberg |\n| description      | Decapodian |\n| displayName      | Zoidberg |\n| employeeType     | Doctor |\n| givenName        | John |\n| jpegPhoto        | JPEG-Photo (343x280 Pixel, 26438 Bytes) |\n| mail             | zoidberg@planetexpress.com |\n| ou               | Staff |\n| title            | Ph. D. |\n| uid              | zoidberg |\n| userPassword     | zoidberg |\n\n### cn=Hermes Conrad,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Hermes Conrad |\n| sn               | Conrad |\n| description      | Human |\n| employeeType     | Bureaucrat |\n| employeeType     | Accountant |\n| givenName        | Hermes |\n| mail             | hermes@planetexpress.com |\n| ou               | Office Management |\n| uid              | hermes |\n| userPassword     | hermes |\n\n### cn=Turanga Leela,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Turanga Leela |\n| sn               | Turanga |\n| description      | Mutant |\n| employeeType     | Captain |\n| employeeType     | Pilot |\n| givenName        | Leela |\n| jpegPhoto        | JPEG-Photo (429x350 Pixel, 26526 Bytes) |\n| mail             | leela@planetexpress.com |\n| ou               | Delivering Crew |\n| uid              | leela |\n| userPassword     | leela |\n\n### cn=Bender Bending Rodriguez,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Bender Bending Rodriguez |\n| sn               | Rodriguez |\n| description      | Robot |\n| employeeType     | Ship's Robot |\n| givenName        | Bender |\n| jpegPhoto        | JPEG-Photo (436x570 Pixel, 26819 Bytes) |\n| mail             | bender@planetexpress.com |\n| ou               | Delivering Crew |\n| uid              | bender |\n| userPassword     | bender |\n\n### cn=Amy Wong+sn=Kroker,ou=people,dc=planetexpress,dc=com\n\nAmy has a multi-valued DN\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | inetOrgPerson |\n| cn               | Amy Wong |\n| sn               | Kroker |\n| description      | Human |\n| givenName        | Amy |\n| mail             | amy@planetexpress.com |\n| ou               | Intern |\n| uid              | amy |\n| userPassword     | amy |\n\n### cn=admin_staff,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | Group |\n| cn               | admin_staff |\n| member           | cn=Hubert J. Farnsworth,ou=people,dc=planetexpress,dc=com |\n| member           | cn=Hermes Conrad,ou=people,dc=planetexpress,dc=com |\n\n### cn=ship_crew,ou=people,dc=planetexpress,dc=com\n\n| Attribute        | Value            |\n| ---------------- | ---------------- |\n| objectClass      | Group |\n| cn               | ship_crew |\n| member           | cn=Turanga Leela,ou=people,dc=planetexpress,dc=com |\n| member           | cn=Philip J. Fry,ou=people,dc=planetexpress,dc=com |\n| member           | cn=Bender Bending Rodriguez,ou=people,dc=planetexpress,dc=com |\n\n\n## JAAS configuration\n\nIn case you want to use this OpenLDAP server for testing with a Java-based\napplication using JAAS and the `LdapLoginModule`, here's a working configuration\nfile you can use to connect.\n\n```\nother {\n  com.sun.security.auth.module.LdapLoginModule REQUIRED\n    userProvider=\"ldap://localhost:10389/ou=people,dc=planetexpress,dc=com\"\n    userFilter=\"(\u0026(uid={USERNAME})(objectClass=inetOrgPerson))\"\n    useSSL=false\n    java.naming.security.principal=\"cn=admin,dc=planetexpress,dc=com\"\n    java.naming.security.credentials=\"GoodNewsEveryone\"\n    debug=true\n    ;\n};\n```\n\nThis config uses the admin credentials to connect to the OpenLDAP server and to\nsubmit the search query for the user that enters their credentials. As username\nthe `uid` attribute of each entry is used.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frroemhild%2Fdocker-test-openldap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frroemhild%2Fdocker-test-openldap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frroemhild%2Fdocker-test-openldap/lists"}