Oktober 16, 2023
Ich möchte zeigen, wie ich bei Hostsharing einen LDAP Server einrichten kann, und dort Gruppen und Benutzer verwalten kann.
Hier ist das Video:
Hier sind ein paar Abschnitte im Video verlinkt:
- 0:00 Erklärung des Problems
- 0:45 Ansible Skript zum Installieren bei Hostsharing
- 1:01 Arbeiten mit phpLDAPadmin: Benutzer verwalten, Gruppen verwalten
- 3:52 Arbeiten auf der Kommandozeile: Benutzer verwalten, Gruppen verwalten
- 5:44 Ausblick
LDAP/OpenLDAP
Erstmal kurz zum Thema, was ein LDAP Server ist, und wozu er gut ist:
- https://de.wikipedia.org/wiki/OpenLDAP
- https://de.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
Ein LDAP Server speichert Benutzerdaten, also grob gesagt den Benutzernamen und das Passwort, und noch weitere Eigenschaften. Benutzer lassen sich in verschiedenen Gruppen oder Teams zuteilen.
Hostsharing
Ich hoste meine Anwendungen alle bei Hostsharing, das ist eine Genossenschaft.
Die Administratoren passen auf, dass die Server zuverlässig laufen und gesichert werden.
Als Mitglied habe ich sehr viele Freiheiten, auch komplexe Anwendungen zu verwenden.
Ansible Skript
Mit Ansible richte ich einen LDAP Dienst ein, und die Admin Oberfläche phpLDAPadmin.
Zusätzlich installiere ich Skripte, um Benutzer oder Gruppen zu verwalten. Das zeige ich gleich, wie das zum Einsatz kommt.
Arbeiten mit phpLDAPadmin
Bevor ich auf die phpLDAPadmin Seite komme, habe ich eine htpasswd Authentifizierung vorgeschaltet, weil sonst eine anonyme Anmeldung möglich ist und die Benutzernamen und Gruppen sichtbar wären. Jetzt kommt die Anmeldung als Admin, um auch Schreibrechte zu haben.
Ich sehe hier den Verzeichnisbaum von meiner Organisation, die Gruppen und die Benutzer.
Um einen Benutzer anzulegen:
users, neuen Eintrag erzeugen. Vorlage: Standard. Ich wähle inetOrgPerson.
Dann müssen diese Attribute gesetzt werden:
- RDN: uid
- cn: Vorname Nachname
- displayName: Vorname Nachname
- givenName: Vorname
- sn: Nachname
- mail: E-Mail Adresse
- uid: Kürzel
- userPassword: clear eingeben
Um Gruppe anzulegen:
- groups, neuen Eintrag erzeugen, Vorlage: Standard. wähle groupOfNames
- RDN: cn
- cn: Name der Gruppe
- member: Benutzer wählen. Es geht nicht ohne einen ersten Benutzer als Mitglied.
Mitglied hinzufügen und entfernen:
- Gruppe anklicken
- bei member: “Ändern von Gruppenmitgliedern” anklicken
- Es erscheint ein Dialog, mit den verfügbaren Benutzern, und den Benutzern, die bereits Mitglied in der Gruppe sind:
Die Änderungen müssen dann gespeichert werden.
Arbeiten mit der Kommandozeile
Das ganze geht auch mit Skripts auf der Kommandozeile
Um Benutzer anzulegen: Da muss ich den Namen und alles angeben, und dann das Passwort für den neuen Benutzer und das Passwort für den LDAP Admin.
tim03-openldap@h13:~$ ./bin/ldapadduser.sh
usage: ./bin/ldapadduser.sh <username> <email> <firstname> <lastname> <password>
usage: ./bin/ldapadduser.sh <username> <email> <firstname> <lastname>
./bin/ldapadduser.sh klaus klaus@beispielverein.de Klaus Mustermann
Um eine Gruppe anzulegen:
tim03-openldap@h13:~$ ./bin/ldapaddgroup.sh
usage: ./bin/ldapaddgroup.sh <groupname>
./bin/ldapaddgroup.sh mitarbeiter
Um einen Benutzer einer Gruppe hinzuzufügen:
./bin/ldapaddmember.sh
usage: ./bin/ldapaddmember.sh <groupname> <personuid>
./bin/ldapaddmember.sh mitarbeiter klaus
Um einen Benutzer aus Gruppe zu entfernen:
tim03-openldap@h13:~$ ./bin/ldapdropmember.sh
usage: ./bin/ldapdropmember.sh <groupname> <personuid>
./bin/ldapdropmember.sh mitarbeiter klaus
Ausblick
Im nächsten Schritt kann ich jetzt die Benutzer in Gitea aus dem LDAP ziehen, inkl Gruppen, oder die Benutzer in Nextcloud aus dem LDAP beziehen. Dazu gibt es weitere Videos.
Ich hoffe, das hat euch geholfen.
Wenn Ihr Fragen habt, oder Anregungen, könnt ihr mich im Fediverse auf der Adresse @tpokorra@hostsharing.coop oder über das Kontaktformular auf meiner Webseite erreichen.