mirror of
				https://github.com/nitnelave/lldap.git
				synced 2023-04-12 14:25:13 +00:00 
			
		
		
		
	Merge branch 'nitnelave:main' into main
This commit is contained in:
		
						commit
						11e04fba7e
					
				
							
								
								
									
										12
									
								
								.github/workflows/docker-build-static.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/docker-build-static.yml
									
									
									
									
										vendored
									
									
								
							@ -80,7 +80,7 @@ jobs:
 | 
				
			|||||||
          restore-keys: |
 | 
					          restore-keys: |
 | 
				
			||||||
            lldap-ui-
 | 
					            lldap-ui-
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - name: install rollup nodejs
 | 
					      - name: install rollup nodejs
 | 
				
			||||||
        run: npm install -g rollup
 | 
					        run: npm install -g rollup
 | 
				
			||||||
      - name: install wasm-pack with cargo
 | 
					      - name: install wasm-pack with cargo
 | 
				
			||||||
@ -119,7 +119,7 @@ jobs:
 | 
				
			|||||||
      - name: smoke test
 | 
					      - name: smoke test
 | 
				
			||||||
        run: rustc --version
 | 
					        run: rustc --version
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - uses: actions/cache@v3
 | 
					      - uses: actions/cache@v3
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          path: |
 | 
					          path: |
 | 
				
			||||||
@ -164,11 +164,11 @@ jobs:
 | 
				
			|||||||
        CARGO_HOME: ${GITHUB_WORKSPACE}/.cargo
 | 
					        CARGO_HOME: ${GITHUB_WORKSPACE}/.cargo
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - name: smoke test
 | 
					      - name: smoke test
 | 
				
			||||||
        run: rustc --version
 | 
					        run: rustc --version
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - uses: actions/cache@v3
 | 
					      - uses: actions/cache@v3
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          path: |
 | 
					          path: |
 | 
				
			||||||
@ -214,7 +214,7 @@ jobs:
 | 
				
			|||||||
        CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER: x86_64-linux-musl-gcc
 | 
					        CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER: x86_64-linux-musl-gcc
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - uses: actions/cache@v3
 | 
					      - uses: actions/cache@v3
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          path: |
 | 
					          path: |
 | 
				
			||||||
@ -262,7 +262,7 @@ jobs:
 | 
				
			|||||||
      - name: install rsync
 | 
					      - name: install rsync
 | 
				
			||||||
        run: sudo apt update && sudo apt install -y rsync
 | 
					        run: sudo apt update && sudo apt install -y rsync
 | 
				
			||||||
      - name: fetch repo
 | 
					      - name: fetch repo
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Download armhf lldap artifacts
 | 
					      - name: Download armhf lldap artifacts
 | 
				
			||||||
        uses: actions/download-artifact@v3
 | 
					        uses: actions/download-artifact@v3
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								.github/workflows/rust.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/rust.yml
									
									
									
									
										vendored
									
									
								
							@ -34,7 +34,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout sources
 | 
					      - name: Checkout sources
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
      - uses: Swatinem/rust-cache@v1
 | 
					      - uses: Swatinem/rust-cache@v1
 | 
				
			||||||
      - name: Build
 | 
					      - name: Build
 | 
				
			||||||
        run: cargo build --verbose --workspace
 | 
					        run: cargo build --verbose --workspace
 | 
				
			||||||
@ -53,7 +53,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout sources
 | 
					      - name: Checkout sources
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - uses: Swatinem/rust-cache@v1
 | 
					      - uses: Swatinem/rust-cache@v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -70,7 +70,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout sources
 | 
					      - name: Checkout sources
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - uses: Swatinem/rust-cache@v1
 | 
					      - uses: Swatinem/rust-cache@v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -87,7 +87,7 @@ jobs:
 | 
				
			|||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout sources
 | 
					      - name: Checkout sources
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3.1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Install Rust
 | 
					      - name: Install Rust
 | 
				
			||||||
        run: rustup toolchain install nightly --component llvm-tools-preview && rustup component add llvm-tools-preview --toolchain stable-x86_64-unknown-linux-gnu
 | 
					        run: rustup toolchain install nightly --component llvm-tools-preview && rustup component add llvm-tools-preview --toolchain stable-x86_64-unknown-linux-gnu
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										15
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## [Unreleased]
 | 
					## [Unreleased]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [0.4.1] - 2022-10-10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - Added support for STARTTLS for SMTP.
 | 
				
			||||||
 | 
					 - Added support for user profile pictures, including importing them from OpenLDAP.
 | 
				
			||||||
 | 
					 - Added support for every config value to be specified in a file.
 | 
				
			||||||
 | 
					 - Added support for PKCS1 keys.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - The `dn` attribute is no longer returned as an attribute (it's still part of the response).
 | 
				
			||||||
 | 
					 - Empty attributes are no longer returned.
 | 
				
			||||||
 | 
					 - The docker image now uses the locally-downloaded assets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## [0.4.0] - 2022-07-08
 | 
					## [0.4.0] - 2022-07-08
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Breaking
 | 
					### Breaking
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							@ -2100,7 +2100,7 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "lldap"
 | 
					name = "lldap"
 | 
				
			||||||
version = "0.4.0"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "actix",
 | 
					 "actix",
 | 
				
			||||||
 "actix-files",
 | 
					 "actix-files",
 | 
				
			||||||
@ -2166,7 +2166,7 @@ dependencies = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "lldap_app"
 | 
					name = "lldap_app"
 | 
				
			||||||
version = "0.4.0"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "anyhow",
 | 
					 "anyhow",
 | 
				
			||||||
 "base64",
 | 
					 "base64",
 | 
				
			||||||
@ -2285,7 +2285,7 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "migration-tool"
 | 
					name = "migration-tool"
 | 
				
			||||||
version = "0.3.0-alpha.1"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "anyhow",
 | 
					 "anyhow",
 | 
				
			||||||
 "base64",
 | 
					 "base64",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										40
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								README.md
									
									
									
									
									
								
							@ -97,8 +97,11 @@ variables `LLDAP_JWT_SECRET_FILE` or `LLDAP_LDAP_USER_PASS_FILE`, and the file
 | 
				
			|||||||
contents are loaded into the respective configuration parameters. Note that
 | 
					contents are loaded into the respective configuration parameters. Note that
 | 
				
			||||||
`_FILE` variables take precedence.
 | 
					`_FILE` variables take precedence.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Example for docker compose for `:stable` tag:
 | 
					Example for docker compose:
 | 
				
			||||||
* When defined with `user: ##:##` , ensure `/data` directory had permission for the defined user, else `1000:1000` used.
 | 
					* You can use either the `:latest` tag image or `:stable` as used in this example.
 | 
				
			||||||
 | 
					* `:latest` tag image contains recently pushed code or feature tests, in which some instability can be expected.
 | 
				
			||||||
 | 
					* If `UID` and `GID` no defined LLDAP will use default `UID` and `GID` number `1000`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
version: '3'
 | 
					version: '3'
 | 
				
			||||||
@ -110,37 +113,6 @@ volumes:
 | 
				
			|||||||
services:
 | 
					services:
 | 
				
			||||||
  lldap:
 | 
					  lldap:
 | 
				
			||||||
    image: nitnelave/lldap:stable
 | 
					    image: nitnelave/lldap:stable
 | 
				
			||||||
    # Change this to the user:group you want.
 | 
					 | 
				
			||||||
    user: "33:33"
 | 
					 | 
				
			||||||
    ports:
 | 
					 | 
				
			||||||
      # For LDAP
 | 
					 | 
				
			||||||
      - "3890:3890"
 | 
					 | 
				
			||||||
      # For the web front-end
 | 
					 | 
				
			||||||
      - "17170:17170"
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - "lldap_data:/data"
 | 
					 | 
				
			||||||
      # Alternatively, you can mount a local folder
 | 
					 | 
				
			||||||
      # - "./lldap_data:/data"
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      - LLDAP_JWT_SECRET=REPLACE_WITH_RANDOM
 | 
					 | 
				
			||||||
      - LLDAP_LDAP_USER_PASS=REPLACE_WITH_PASSWORD
 | 
					 | 
				
			||||||
      - LLDAP_LDAP_BASE_DN=dc=example,dc=com
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example for docker compose for `:latest` tag:
 | 
					 | 
				
			||||||
* `:latest` tag image contain recent pushed codes or feature test, breaks is expected.
 | 
					 | 
				
			||||||
* If `UID` and `GID` no defined LLDAP will use default `UID` and `GID` number `1000`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```yaml
 | 
					 | 
				
			||||||
version: '3'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					 | 
				
			||||||
  lldap_data:
 | 
					 | 
				
			||||||
    driver: local
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
services:
 | 
					 | 
				
			||||||
  lldap:
 | 
					 | 
				
			||||||
    image: nitnelave/lldap:latest
 | 
					 | 
				
			||||||
    ports:
 | 
					    ports:
 | 
				
			||||||
      # For LDAP
 | 
					      # For LDAP
 | 
				
			||||||
      - "3890:3890"
 | 
					      - "3890:3890"
 | 
				
			||||||
@ -256,10 +228,12 @@ folder for help with:
 | 
				
			|||||||
  - [Authelia](example_configs/authelia_config.yml)
 | 
					  - [Authelia](example_configs/authelia_config.yml)
 | 
				
			||||||
  - [Bookstack](example_configs/bookstack.env.example)
 | 
					  - [Bookstack](example_configs/bookstack.env.example)
 | 
				
			||||||
  - [Calibre-Web](example_configs/calibre_web.md)
 | 
					  - [Calibre-Web](example_configs/calibre_web.md)
 | 
				
			||||||
 | 
					  - [Dokuwiki](example_configs/dokuwiki.md)
 | 
				
			||||||
  - [Dolibarr](example_configs/dolibarr.md)
 | 
					  - [Dolibarr](example_configs/dolibarr.md)
 | 
				
			||||||
  - [Emby](example_configs/emby.md)
 | 
					  - [Emby](example_configs/emby.md)
 | 
				
			||||||
  - [Gitea](example_configs/gitea.md)
 | 
					  - [Gitea](example_configs/gitea.md)
 | 
				
			||||||
  - [Grafana](example_configs/grafana_ldap_config.toml)
 | 
					  - [Grafana](example_configs/grafana_ldap_config.toml)
 | 
				
			||||||
 | 
					  - [Hedgedoc](example_configs/hedgedoc.md)
 | 
				
			||||||
  - [Jellyfin](example_configs/jellyfin.md)
 | 
					  - [Jellyfin](example_configs/jellyfin.md)
 | 
				
			||||||
  - [Jitsi Meet](example_configs/jitsi_meet.conf)
 | 
					  - [Jitsi Meet](example_configs/jitsi_meet.conf)
 | 
				
			||||||
  - [KeyCloak](example_configs/keycloak.md)
 | 
					  - [KeyCloak](example_configs/keycloak.md)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[package]
 | 
					[package]
 | 
				
			||||||
name = "lldap_app"
 | 
					name = "lldap_app"
 | 
				
			||||||
version = "0.4.0"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
					authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										25
									
								
								example_configs/dokuwiki.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								example_configs/dokuwiki.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Configuration for dokuwiki
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LDAP configuration is in ```/dokuwiki/conf/local.protected.php```:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					$conf['useacl']         = 1;           //enable ACL
 | 
				
			||||||
 | 
					$conf['authtype']       = 'authldap';  //enable this Auth plugin
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['server']      = 'ldap://lldap_server:3890'; #IP of your lldap
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['usertree']    = 'ou=people,dc=example,dc=com';
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['grouptree']   = 'ou=groups, dc=example, dc=com';
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['userfilter']  = '(&(uid=%{user})(objectClass=person))';
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['groupfilter'] = '(&(objectClass=group)(memberUID=member))';
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['attributes']  = array('cn', 'displayname', 'mail', 'givenname', 'objectclass', 'sn', 'uid', 'memberof');
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['version']    = 3;
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['binddn']     = 'cn=admin,ou=people,dc=example,dc=com';
 | 
				
			||||||
 | 
					$conf['plugin']['authldap']['bindpw']     = 'ENTER_YOUR_LLDAP_PASSWORD';
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DokuWiki by default, ships with an LDAP Authentication Plugin called ```authLDAP``` that allows authentication against an LDAP directory.
 | 
				
			||||||
 | 
					All you need to do is to activate the plugin. This can be done on the DokuWiki Extensions Manager.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Once the LDAP settings are defined, proceed to define the default authentication method.
 | 
				
			||||||
 | 
					Navigate to Table of Contents > DokuWiki > Authentication.
 | 
				
			||||||
 | 
					On the Authentication backend, select ```authldap``` and save the changes.
 | 
				
			||||||
							
								
								
									
										16
									
								
								example_configs/hedgedoc.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								example_configs/hedgedoc.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# Configuration for hedgedoc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Hedgedoc](https://hedgedoc.org/) is a platform to write and share markdown.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Using docker variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Any member of the group ```hedgedoc``` can log into hedgedoc.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					- CMD_LDAP_URL=ldap://lldap:3890
 | 
				
			||||||
 | 
					- CMD_LDAP_BINDDN=uid=admin,ou=people,dc=example,dc=com
 | 
				
			||||||
 | 
					- CMD_LDAP_BINDCREDENTIALS=insert_your_password
 | 
				
			||||||
 | 
					- CMD_LDAP_SEARCHBASE=ou=people,dc=example,dc=com
 | 
				
			||||||
 | 
					- CMD_LDAP_SEARCHFILTER=(&(memberOf=cn=hedgedoc,ou=groups,dc=example,dc=com)(uid={{username}}))
 | 
				
			||||||
 | 
					- CMD_LDAP_USERIDFIELD=uid
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Replace `dc=example,dc=com` with your LLDAP configured domain for all occurances
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[package]
 | 
					[package]
 | 
				
			||||||
name = "migration-tool"
 | 
					name = "migration-tool"
 | 
				
			||||||
version = "0.3.0-alpha.1"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
					authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
					authors = ["Valentin Tolmer <valentin@tolmer.fr>"]
 | 
				
			||||||
edition = "2021"
 | 
					edition = "2021"
 | 
				
			||||||
name = "lldap"
 | 
					name = "lldap"
 | 
				
			||||||
version = "0.4.0"
 | 
					version = "0.4.2-alpha"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
actix = "0.12"
 | 
					actix = "0.12"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user