Download the PHP package wheregroup/symfonymultiencoderldapprovider without Composer
On this page you can find all versions of the php package wheregroup/symfonymultiencoderldapprovider. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download wheregroup/symfonymultiencoderldapprovider
More information about wheregroup/symfonymultiencoderldapprovider
Files in wheregroup/symfonymultiencoderldapprovider
Package symfonymultiencoderldapprovider
Short Description Extension for multi encoder in Symfony LDAP Auth
License MIT
Homepage https://www.wheregroup.com/
Informations about the package symfonymultiencoderldapprovider
Readme
This module is mainly developed for the use in the Mapbender Project 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
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 :
Parameter | Beschreibung | Default |
---|---|---|
host | Hostname des Verzeichnisdienstes | - |
port | Port des Verzeichnisdienstes | - |
useSSL | Soll SSL Verschlüsselung bei der Verbindung genutzt werden | true |
useTLS | Soll TLS Verschlüsselung bei der Verbindung genutzt werden | true |
bind.dn | Distinguished Name des lesenden Nutzers | - |
user.query | Query, um nach Nutzern zu suchen | - |
user.baseDn | Distinguished Name der Nutzer | - |
user.nameAttributte | Attribut das den Username enthält | - |
group.query | Query, um nach Gruppen zu suchen | - |
group.nameAttribute | Attribut das den Gruppennamen enthält | - |
group.filter | Filter, um Suche nach Gruppen einzuschränken. | - |
group.adminFilter | Filter, um Suche nach Gruppen einzuschränken. | - |
user.adminfilter | Filter, 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 eingerichtet werden. Folgend ist beispielhaft die Definition für den symfony-eigenen LDAP-Client mit den in Schritt 1 genutzten Parametern.
Weiter muss ein LDAPUserProvider installiert und konfiguriert werden. Hier empfiehlt es sich den 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.
Danach muss noch der neu eingerichtete UserProvider registriert werden. Dafür muss in der security.yml der Key providers , um folgende Wert erweitert werden.
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.
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
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.
muss der Encoder in der security.yml auch SHA512 heißen. Folgend eine Konfiguration für plaintext und SHA512 Encoder.
Falls nur ein Encoder genutzt werden soll, kann dieser direkt an die Entitiy gebunden werden.