PHPackages                             wheregroup/symfonymultiencoderldapprovider - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. wheregroup/symfonymultiencoderldapprovider

ActiveLibrary

wheregroup/symfonymultiencoderldapprovider
==========================================

Extension for multi encoder in Symfony LDAP Auth

0.1(8y ago)080MITPHP

Since Oct 19Pushed 8y agoCompare

[ Source](https://github.com/WhereGroup/SymfonyMultiEncoderLDAPProvider)[ Packagist](https://packagist.org/packages/wheregroup/symfonymultiencoderldapprovider)[ Docs](https://www.wheregroup.com/)[ RSS](/packages/wheregroup-symfonymultiencoderldapprovider/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Readme
======

[](#readme)

This module is mainly developed for the use in the [Mapbender Project](https://github.com/mapbender/mapbender-starter) but should also work fine in other projects. There is an example security.yml and parameter.yml in the example directory.

Konfiguration LDAP im Mapbender
===============================

[](#konfiguration-ldap-im-mapbender)

Um einen Verzeichnisdienst über LDAP im Mapbender einzubinden, müssen einige Änderungen an der Konfiguration vorgenommen werden:

Zuerst müssen in der paramter.yml folgende Parameter eingetragen werden Alle Parameter befinden sich im ldap Namespace :

ParameterBeschreibungDefaulthostHostname des Verzeichnisdienstes-portPort des Verzeichnisdienstes-useSSLSoll SSL Verschlüsselung bei der Verbindung genutzt werdentrueuseTLSSoll TLS Verschlüsselung bei der Verbindung genutzt werdentruebind.dnDistinguished Name des lesenden Nutzers-user.queryQuery, um nach Nutzern zu suchen-user.baseDnDistinguished Name der Nutzer-user.nameAttributteAttribut das den Username enthält-group.queryQuery, um nach Gruppen zu suchen-group.nameAttributeAttribut das den Gruppennamen enthält-group.filterFilter, um Suche nach Gruppen einzuschränken.-group.adminFilterFilter, um Suche nach Gruppen einzuschränken.-user.adminfilterFilter, um Suche nach Usern im Adminbereich einzuschränken.-| `Tabelle 1. - Auflistung aller benötigten Parameter` |

Zusätzlich muss die security.yml der Mapbender-Installation angepasst werden. Hier muss ein LDAP-Client als [Symfonyservice](https://symfony.com/doc/2.8/service_container.html) eingerichtet werden. Folgend ist beispielhaft die Definition für den symfony-eigenen LDAP-Client mit den in Schritt 1 genutzten Parametern.

```

services:
    ldapClient:
        class: Symfony\Component\Ldap\LdapClient
        arguments:
            - %ldap.host% #Address to LDAPServer
            - %ldap.port% #Port where LDAPServer is listening
            - %ldap.version% #LDAP Protocol version
            - %ldap.useSSL%          # SSL #Use SSL
            - %ldap.useTLS%          # SSL #Use SSL

```

Weiter muss ein LDAPUserProvider installiert und konfiguriert werden. Hier empfiehlt es sich den [WhereGroup/SymfonyMultiEncoderLDAPProvider](https://github.com/WhereGroup/SymfonyMultiEncoderLDAPProvider) zu nutzen. Dieser ist direkt für den Mapbender entwickelt und steht als composer-Paket zur Verfügung. Er kann mit

`composer require WhereGroup/SymfonyMultiEncoderLDAPProvider`

zum Projekt hinzugefügt werden. Die Konfiguration erfolgt wie im folgendem Beispiel. Hierbei ist zu beachten, dass der Wert `@ldapClient` mit dem Namen des zuvor definierten LDAPClient-Service gefüllt werden muss. Alle anderen Werte sind in der Tabelle 1. beschrieben.

```
    mb.ldap.userProvider:
            class: Wheregroup\Component\LdapMultiEncoderUserProvider
            arguments:
                - @ldapClient
                - %ldap.user.base_dn%
                - %ldap.bind.dn%
                - %ldap.bind.pwd%
                - %ldap.group.defaultGroups%
                - %ldap.user.nameAttribute%
                - %ldap.user.query% #dn
                - %ldap.group.dn%
                - %ldap.group.query%
                - %ldap.group.nameAttribute%

```

Danach muss noch der neu eingerichtete UserProvider registriert werden. Dafür muss in der security.yml der Key providers , um folgende Wert erweitert werden.

```

    ldapProvider:
        id: mb.ldap.userProvider

```

Zuletzt muss noch der ldap-login in den FireWall-Definitionen aktiviert werden. Hierzu muss in der Firewall-Konfiguration der Block fom\_login mit folgender Code ausgetauscht werden.

```

form_login_ldap:

                check_path: /user/login/check
                login_path: /user/login
                service:  ldapClient
                dn_string: %dn_search%

```

Wenn neben des LDAP-Logins noch zusätzlich, der standard Mapbender-Login basierend auf der fom\_user Tabelle genutzt werden soll. Darf der Codeblock fom\_login nicht ausgetauscht werden. Dann wird der Block form\_login\_ldap zusätzlich hinzugefügt.

Nutzung von mehreren Password Encodern innerhalb eines Verzeichnisses
---------------------------------------------------------------------

[](#nutzung-von-mehreren-password-encodern-innerhalb-eines-verzeichnisses)

Falls innerhalb des Verzeichnisdienstes die Möglichkeit genutzt wird für unterschiedliche Passwörter verschiedene Encoder zu nutzen, müssen diese in der `security.yml` konfiguriert werden. Jeder Encoder der genutzt werden soll, wird als benannter Encoder definiert.

Hierbei muss der Name des Encoders exakt so lauten, wie dieser auch im Verzeichnisdienst lautet z.B. wenn der Wert für das Passwort so aussieht.

```
{SHA512: 9a8cda40689d57f401ac182f034573d20360db3c62bb3338f83e8c11bd83bdd1
8440d1b066a0387d0a466bb945c8b6741d6d11dffa154a48b5c0fae755477b86 }

```

muss der Encoder in der security.yml auch SHA512 heißen. Folgend eine Konfiguration für plaintext und SHA512 Encoder.

```

    encoders:
      FOM\UserBundle\Entity\User: plaintext
      plaintext:
           algorithm: plaintext
      SHA512:
          algorithm: sha512
          iterations: 1

```

Falls nur ein Encoder genutzt werden soll, kann dieser direkt an die Entitiy gebunden werden.

```
encoders:
      FOM\UserBundle\Entity\User: SHA512

```

Beispiel Konfiguration der Parameter
------------------------------------

[](#beispiel-konfiguration-der-parameter)

```

# LDAP

ldap.host: localhost
ldap.port: 389
ldap.version: 3 # LDAP Version (default: 3)
ldap.user.baseDn: 'ou=user,dc=wheregroup,dc=com'
ldap.user.nameAttribute: cn
ldap.user.query: 'cn={username}'
ldap.group.baseDn:  ou=groups,dc=exampleORG,dc=com
ldap.group.query: member=cn={username},ou=user,dc=exampleORG,dc=com
ldap.bind.dn: cn=admin ,dc=exampleORG,dc=com
ldap.bind.pwd: root
ldap.group.nameattribute: cn
ldap.group.adminFilter: (objectclass=top)
ldap.user.adminFilter: (objectclass=top)

```

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3129d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e93698c8e1784f88100eab35a186fab222bcbb5dc805d52f36cb6c459fa4743c?d=identicon)[werrolf](/maintainers/werrolf)

![](https://www.gravatar.com/avatar/0154eb5bdfa738d2bbc95bb345ba5f971d9395a2318f8724e42fa3bd384ae9c2?d=identicon)[LazerTiberius](/maintainers/LazerTiberius)

---

Top Contributors

[![DavidPatzke](https://avatars.githubusercontent.com/u/5700151?v=4)](https://github.com/DavidPatzke "DavidPatzke (17 commits)")

---

Tags

extension

### Embed Badge

![Health badge](/badges/wheregroup-symfonymultiencoderldapprovider/health.svg)

```
[![Health](https://phpackages.com/badges/wheregroup-symfonymultiencoderldapprovider/health.svg)](https://phpackages.com/packages/wheregroup-symfonymultiencoderldapprovider)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
