Joomla und LDAP

  • Hallo miteinander


    Ich verwende für ein Intranet Joomla in der aktuellen Version 3.9.xy... ändert sich ja fast täglich ;)

    Die Voraussetzungen waren Zugriff von Intern und Extern, Windows AD Benutzer und Joomla User (für Anwender wo keinen Windows Account besitzen)

    Der Mix mit der Joomla Userverwaltung und LDAP funktioniert dank Shmanic Addons wunderbar, sogar SSO werkelt im internen Netz.

    Die ganze Sache ist so konfiguriert das beim erstmaligen Anmelden eines Windows Anwenders per SSO dieser Account im Joomla erstellt wird, eingestellt auf den Zugriffslevel Registered ( auf Mitarbeiter umgetauft)

    So langsam kommen mehr und mehr Anforderungen daher, es sind mehrere Zugriffslevel erwünscht. Per Joomla kein Problem, einfach einen neuen Level fix und fertig erstellen und die Mitglieder zuweisen.... aber halt.

    Ich möchte das nicht so machen, generell sollte alles in der AD passieren. Dort sollten Gruppen angelegt werden und die jeweiligen Berechtigungen dann für alle angeschlossenen Systeme - in diesem Fall auch das Joomla - sollten dies umsetzten.


    Noch mal langsam, ich weise einen Windows Anwender im AD in einen neue AD Gruppe zu, bei Login bei Joomla sollte dieser dann automatisch diese neue Berechtigung bekommen.


    Hoffentlich ihr kommt mit was ich genau meine ;)

    Vielleicht bin ich nicht der einzige auf diesem Globus wo Joomla in dieser Form verwendet.

    Und ja, ich habe dieses "Groupmapping" noch nicht getestet, erst mal angedacht.


    Details zu den Settings:

    Synch on Login ist EIN

  • Ich kenne das Addon nicht und weiß nicht welche Schnittstellen es bietet (ich habe mir für AD eine eigene Erweiterung gebaut), aber einen Nutzer in eine Benutzergruppe zu schieben ist relativ einfach:

    PHP
    Joomla\CMS\User\UserHelper::addUserToGroup($userId, $groupId)

    Ganz dynamische Berechtigungen wirst du aber schwer umsetzen können, die Gruppen müssen vorher schon vorhanden sein*. Dann ist es ein Klacks hier hin und her zu schieben.


    Der Gegenweg ist folgender:

    PHP
    Joomla\CMS\User\UserHelper::removeUserFromGroup($userId, $groupId)


    Um die Berechtigungen immer frisch zu setzen, nimmst du:

    PHP
    Joomla\CMS\User\UserHelper::setUserGroups($userId, $groups)


    zu * : Das stimmt so natürlich nicht...theoretisch kannst du auch dynamisch eigene Gruppen "berechnen" und anlegen. Ich bin aber eher ein Fan davon Benutzergruppen hierachisch nach Funktion anzulegen und dann einfach entsprechend zuzuweisen:


    Und dann einfach die Kombination zuweisen.