LDAP: groupOfNames

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

LDAP: groupOfNames

Beitrag von scientific » 09.04.2018 16:04:36

Hi Leute!

Ich bin noch relativ neu mit LDAP unterwegs. Und wahrscheinlich stehe ich genau deswegen auch an.

Ich möchte gerne in der ou=hosts,dc=example,dc=com meine Hosts verwalten.
Für die Authentikation hätte ich gerne Gruppen aus ou=groups,dc=example,dc=com die "groupOfNames" sind dafür verwenden.

Ein Beispiel für eine Gruppe mit Usern:

Code: Alles auswählen

$ ldapsearch -h ldap.example.com -D cn=server_id,cn=de-hetfs-ldap-01,ou=server,ou=hosts,dc=example,dc=com -w  verYSecret -b cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com
# extended LDIF
#
# LDAPv3
# base <cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# perm-srv-aldebaran_user, server, group, example.com
dn: cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com
objectClass: customposixGroup
objectClass: groupOfNames
cn: server_user
cn: perm-srv-aldebaran_user
gidNumber: 6000
description: Server User Group
member: cn=userA,ou=people,dc=example,dc=com
member: cn=userB,ou=people,dc=example,dc=com
member: cn=userC,ou=people,dc=example,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Und im Host sieht das dann so aus:

Code: Alles auswählen

$ ldapsearch -h ldap.example.com -D cn=server_id,cn=de-hetfs-ldap-01,ou=server,ou=hosts,dc=example,dc=com -w  verYSecret -b cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com
# extended LDIF
#
# LDAPv3
# base <cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# groups, aldebaran, laptops, hosts, example.com
dn: cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com
cn: groups
member: cn=perm-srv_admin,ou=server,ou=group,dc=example,dc=com
member: cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com
gidNumber: 6000
objectClass: groupOfNames
objectClass: top
objectClass: customposixGroup

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
Damit hab ich beim Host selber direkt die zugehörigen Gruppen für User und Admins über das groupOfNames-Element.
In den Gruppen selber kann ich dann zuordnen, welche User dann Berechtigungen haben.

Wie kann ich abfragen, dass ich bei aus der Zweiten Abfrage die Member der member-groups bekomme? Es müssten die beiden "member" also noch einmal aufgelöst werden?
Geht das überhaupt?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von Colttt » 09.04.2018 20:26:33

Sorry, aber ich hab das jetzt mehrmals gelesen und nicht wirklich verstanden was du genau möchtest. Kannst du das nochmal erläutern
Debian-Nutzer :D

ZABBIX Certified Specialist

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 09.04.2018 23:19:06

Hmmm... ich habs befürchtet...

Ich habe eine DN=cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=at
Diese hat als objectClass: groupOfNames
Und diese groupOfNames hat mehrere member die wiederum groupOfName-Objekte sind.
Die Member dieser OU sind die beiden dn mit Namen "cn=perm-srv_admin,ou=server,ou=group,dc=example,dc=com" und "cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com"sind:

Code: Alles auswählen

$ ldapsearch -h ldap.example.com -D cn=server_id,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com -w Shai1vohxoaF -b dc=example,dc=com -s sub memberof=cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com member
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: memberof=cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=com
# requesting: member 
#

# perm-srv_admin, server, group, example.com
dn: cn=perm-srv_admin,ou=server,ou=group,dc=example,dc=com
member: cn=userA,ou=people,dc=example,dc=com

# perm-srv-aldebaran_user, server, group, example.com
dn: cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=com
member: cn=userA,ou=people,dc=example,dc=com
member: cn=userB,ou=people,dc=example,dc=com
member: cn=userC,ou=people,dc=example,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2
Diese beiden DN sind ihrerselbst wiederum Gruppen, welche dann die gelisteten member user[A|B|C]... beinhalten. Der oben genannte ldap-Befehl spuckt gleich die Member der beiden Gruppen aus.

Also in DN cn=perm-srv-aldebaran_user,ou=server,ou=group,dc=example,dc=at die wiederum ein objectClass=groupOfNames ist, sind die drei User:
member: cn=userA,ou=people,dc=example,dc=com
member: cn=userB,ou=people,dc=example,dc=com
member: cn=userC,ou=people,dc=example,dc=com

enthalten.

Was ich möchte:

Ich habe in der DN cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=at als member die DN von einer oder mehreren Gruppen, welche wiederum eine Anzahl von Usern enthalten.

sssd soll nun eine Abfrage an slapd machen, dass nur die member dieser Gruppen Zugang zum Host erhalten. Und ich weiß nicht, wie ich diese Abfrage formuliere.
So wie sie oben ist, zeigt sie mir schon die korrekten User, nur kann ich in der Abfrage nicht auf diese member zugreifen... ein ergänztes "uid" gibt mir wieder die DN der Gruppen aber nicht der User aus.

Ich hoffe es ist jetzt klarer...

lg scientific
Zuletzt geändert von scientific am 13.04.2018 19:12:50, insgesamt 1-mal geändert.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von Colttt » 10.04.2018 19:50:45

Ok du hast also eine Gruppe in der Gruppen sind und davon die User willst du haben!?
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: LDAP: groupOfNames

Beitrag von bluestar » 10.04.2018 19:56:09

Wenn ich dich richtig verstehe, dann brauchst du als Scope = base oder one und nicht subtree

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 11.04.2018 12:21:08

Das funktioniert alles so nicht...

Mittlerweile steige ich auch beim Thema ein wenig durch... trotzdem noch keine Lösung in Sicht.

Also ich habe eine Gruppe (1) (groupOfNames), welches als Member wiederum Gruppen (A,B,C) hat (groupOfNames), die dann User (A: X,Y) (B: Z) enthalten.

Ich möchte mittels sssd nun den Zugriff auf einen Rechner anhand der Gruppe (1) erlauben.
Damit ich die User bekomme, setze ich in der DOMAIN-Section von sssd.conf
ldap_user_search_base = ou=people,dc=example,dc=com?subtree?

Damit bekomme ich mit getent oder id alle User zu Gesicht.

Den Zugriff hingegen regle ich mit
access_provider = ldap
ldap_access_filter = ...

Aber was setze ich in den ldap_access_filter ein? Der DN von Gruppe (1) funktioniert nicht. Auch ein "memberOf = " mit dem DN der Gruppe (1) klappt nicht.
Was funktioniert ist (|(DN,von,Gruppe,A)(DN,von,Gruppe,B)). Dann können sich nur die Mitglieder von Gruppe A und B einloggen. getent passwd $UID liefert aber für alle User ein Ergebnis. (Passt auch!)

Was ich so mitbekommen habe, dürfte openldap/slapd ein Auflösen von solcherart verschachtelten Gruppen nicht unterstützen... Also "Bist du ein Mitglied einer Gruppe, welches in der gefragten Gruppe Mitglied ist?" geht nicht.

Oder doch? Und ich schaff es nur nicht?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: LDAP: groupOfNames

Beitrag von bluestar » 11.04.2018 12:31:06

scientific hat geschrieben: ↑ zum Beitrag ↑
11.04.2018 12:21:08
Also ich habe eine Gruppe (1) (groupOfNames), welches als Member wiederum Gruppen (A,B,C) hat (groupOfNames), die dann User (A: X,Y) (B: Z) enthalten.
Dein Dump aus dem ersten Post sieht so leider nicht aus ... Da hast du zwei Gruppen
scientific hat geschrieben: ↑ zum Beitrag ↑
11.04.2018 12:21:08
Was ich so mitbekommen habe, dürfte openldap/slapd ein Auflösen von solcherart verschachtelten Gruppen nicht unterstützen... Also "Bist du ein Mitglied einer Gruppe, welches in der gefragten Gruppe Mitglied ist?" geht nicht.
Verschachtelte Gruppen sind einfach nur böse, versuch so etwas auf jeden Fall zu vermeiden.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 11.04.2018 12:54:50

Ob in der zweiten Ebene 2 oder 17 Gruppen sind, spielt für das Beispiel keine Rolle. Genau das soll es ja sein.
Ich gebe dem Eintrag eines jeden Hosts eine Gruppe, welche die Gruppen enthält, die dann die User enthalten, die erlaubt sein sollen. Ob das bei einem host 2 Gruppen und beim anderen 5 Gruppen sind, soll eben genau dieses Konstrukt egal machen.

Die Idee ist, dass ich eine sssd-Config auf dem Host einmal ausrolle, wo als Filter diese eine Gruppe gesetzt ist, welche dann die erlaubten Gruppen enthält.

Damit muss ich dann bei einer Änderung der Gruppen die erlaubt sind, nur im LDAP Gruppen hinzufügen oder entfernen, aber nicht mehr am Host selbst die sssd-Config ändern, weil der ja über diese "Meta-Gruppe" die benötigten Gruppen erhält...

Sind verschachtelte Gruppen böse, weil sie nicht abfragbar sind, oder weil es einen anderen Grund gibt, den ich noch nicht kenne? Ich las davon schon mehrfach bei meinen Recherchen zum Thema.

Es gäbe ja auch noch dyngroup... aber das verstehe ich noch nicht.
Mir würde es ja auch reichen, wenn ich im ldap_access_filter eine Wildcard angeben kann, wo dann nur auf Gruppen geprüft wird, die mit perm-srv-$HOSTNAME* im cn beginnen... Dann löse ich meine veränderliche Gruppenprüfung auf die Namenskonventionsebene... wäre mir auch recht.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: LDAP: groupOfNames

Beitrag von bluestar » 11.04.2018 17:44:02

Ich hätte da für dich eine Idee, abseits von kaskadierenden Gruppen.

Du legst für jeden Host ein ou=hostname,dc..... an und gibst dieses Ou als LDAP-Search Base an.
Die Gruppen die auf dem Host Zugriff bekommen sollen, legst du als Alias unterhalb des OU an.

Und hier noch den Beispiellink: http://www.openldap.org/faq/data/cache/1111.html

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von Colttt » 11.04.2018 23:27:51

Guck mal hier, das sollte genau das sein was du suchst..
https://help.univention.com/t/sssd-und- ... uppen/1862
Debian-Nutzer :D

ZABBIX Certified Specialist

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 13.04.2018 14:00:43

Wenn auf Google alles Links zum Thema bereits Violett sind, weiß ich, dass ich im Forum nachfragen muss...
Die beiden Seiten kannte ich schon, hab aber offenbar den Inhalt nicht ganz richtig interpretieren können.

Leider funktioniert es immer noch nicht.

Prinzipiell läuft es ja so ab, dass der auth_provider eine Authentifikation durchführt. Wenn ich als searchbase die OU angebe, in der alle meine User zu finden sind, dann kann sich jeder User am Server authentifizieren.
Dann gibt es den access_provider, der checkt dann die Gruppenzugehörigkeiten und gibt den Zugang frei - oder denied und pam wirft einen dann wieder raus.

Ich bin jetzt soweit, dass der auth_provider eine Authentifikation ermöglicht, aber der access_provider erlaubt den Zutritt nur dann, wenn ich ihm direkt die Gruppen angebe, in der die erlaubten User sind.

Code: Alles auswählen

ldap_access_filter = (|(memberOf=cn=perm-srv_admin,ou=hosts,ou=groups,dc=example,dc=at)(memberOf=cn=perm-srv-server-01_users,ou=hosts,ou=groups,dc=example,dc=at))
in der ersten Gruppe sind alle Admin-User enthalten, in der zweiten Gruppe sind alle User enthalten, die auf den Server server-01 zugriff haben sollen.
Mit diesem access_filter klappt ein Login.

Gebe ich jedoch als

Code: Alles auswählen

ldap_access_filter = memberof=cn=groups,cn=srv_server-01,ou=servers,ou=hosts,dc=example,dc=at
an, dann klappt der Login nicht.
Diese DN ist eine Gruppe, welche als member die beiden oben genannten enthält.

Das log von sssd spuckt folgendes aus:

Code: Alles auswählen

[sdap_get_generic_ext_step] (0x0400): calling ldap_search_ext with [(&(uid=adminjs)(objectclass=inetOrgPerson)(memberof=cn=groups,cn=srv_server-01,ou=servers,ou=hosts,dc=example,dc=at))][cn=adminjs,ou=people,dc=example,dc=at].
  [sssd[be[LDAP]]] [sdap_get_generic_ext_step] (0x2000): ldap_search_ext called, msgid = 24
[sssd[be[LDAP]]] [sdap_op_add] (0x2000): New operation 24 timeout 6
[sssd[be[LDAP]]] [sdap_process_result] (0x2000): Trace: sh[0x563b74261fa0], connected[1], ops[0x563b742a8cd0], ldap[0x563b74261d90]
[sssd[be[LDAP]]] [sdap_process_message] (0x4000): Message type: [LDAP_RES_SEARCH_RESULT]
[sssd[be[LDAP]]] [sdap_get_generic_op_finished] (0x0400): Search result: Success(0), no errmsg set
[sssd[be[LDAP]]] [sdap_op_destructor] (0x2000): Operation 24 finished
[sssd[be[LDAP]]] [sdap_id_op_done] (0x4000): releasing operation connection
[sssd[be[LDAP]]] [sdap_access_filter_done] (0x0100): User [adminjs@ldap] was not found with the specified filter. Denying access.
[sssd[be[LDAP]]] [sdap_access_filter_done] (0x0400): Access denied by online lookup
Man sieht schön in der LDAP-Abfrage, dass der ldap_access_filter um eine Abfrage der uid und objectclass erweitert wird. aber die Searchbase ist in der zweiten Eckigen Klammer und ist die DN des Users... dort findet ldapt aber die Gruppe nicht..

Und dann finde ich im journal eine Meldung von slapd:

Code: Alles auswählen

=> mdb_idl_insert_keys: c_put id failed: MDB_MAP_FULL: Environment mapsize limit reached (-30792)
Sowohl der Tipp von hier:
https://github.com/cveda/cveda_databank/issues/1
als auch von der RedHat-Support-Seite:

Code: Alles auswählen

Problembeschreibung

    Openldap: Slapd service crashing with below error

Raw

mdb_idl_insert_keys: c_put id failed: MDB_MAP_FULL: Environment mapsize limit reached (-30792)

Lösung

    Increase or setting the attribute olcDbMaxSize higher than the default value of 10 MB resolved the issue.

Grundursache

    olcDbMaxSize with higher value than 10 MB default value was not set due to which the slapd service was throwing error.
Ändert nichts am Verhalten. Ich hab die olcDbMaxSize auf 942949672960 gesetzt. Bei jeder Abfrage kommt diese Fehlermeldung, keys nicht inserted werden können, weil die Environment mapsize ausgeschöpft ist...

Liegt es daran?
Wie kann ich das beheben?
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 13.04.2018 18:54:39

So. Ich hab den ganzen Krempel noch einmal neu aufgesetzt.

Und bin wieder um eine Erkenntnis reicher geworden bzgl. nested Groups.

Ein ldap_access_filter fragt nach den "memberof"-Zugehörigkeiten eines Users. Das memberof-Overlay spuckt diese also aus.
Das heißt, ich kann mit diesem Access-Filter direkt die Gruppen abfragen, wo der User direkt Member ist. Der Access-Filter fragt also nicht eine Gruppe: "Ist User A bei dir Mitglied?" Sondern er fragt den User: "Sag mir in welchen Gruppen du überall Mitglied bist". Und wenn eine gewünschten Gruppen in der Antwort des Users ist, dann gewährt der access_provider Einlaß.

Das Statement schaut so aus:

Code: Alles auswählen

ldap_access_filter = (|(memberof=cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at)(memberof=cn=perm-sys-ldap_users,ou=systems,ou=groups,dc=example,dc=at))
Der Filter will wissen, ob der User in einer der beiden Gruppen cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at oder cn=perm-sys-ldap_users,ou=systems,ou=groups,dc=example,dc=at dabei ist.

Die LDAP-Abfrage ergibt:

Code: Alles auswählen

$ ldapsearch -LL -D cn=server_id,cn=ldap,ou=servers,ou=hosts,dc=example,dc=at -W -Z  -b uid=scientific,ou=people,dc=example,dc=at memberof
dn: uid=scientific,ou=people,dc=example,dc=at
memberOf: cn=perm-sys-aldebaran_users,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-sys-mac_users,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-sys-kisti_users,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-sys-book_users,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-sys-ldap_users,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=perm-app-mymail_users,ou=apps,ou=groups,dc=example,dc=at
memberOf: cn=perm-app-mymail_admins,ou=apps,ou=groups,dc=example,dc=at
Hier scheint die Gruppe, welche nur Gruppen beinhaltet nicht auf.
Also die Gruppe cn=groups,cn=ldap,ou=servers,ou=hosts,dc=example,dc=at ist ein "groupOfNames"-Element und beinhaltet
cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at und cn=perm-sys-ldap_users,ou=systems,ou=groups,dc=example,dc=at

Ich müsste aber in meinem ldap_access_provider in der Liste auch noch die Gruppe als memberof: cn=groups,cn=ldap,ou=servers,ou=hosts,dc=example,dc=at gelistet bekommen. Also von unten nach oben. Und das dürfte die Schwierigkeit sein. Denn die beiden Links geben mir auch darüber keine Auskunft, wie ich das ganz konkret im sssd machen könnte.

Spannend finde ich, dass in meinem LDAP-Browser (Apache Directory Studio) auf dem openldap-Server beim User "memberof:..." nicht angezeigt wird, obwohl es mir die ldapsearch wie oben gezeigt, ausgibt.
Die member einer Gruppe werden hingegen schon angezeigt.

Gehe ich mit dem selben LDAP-Browser auf einen AD, dann sehe ich sowohl member: als auch memberof:
Ist das eine Eigenheit von openLDAP?

Gehe ich mit meiner Abfrage nicht auf eine Person sondern auf eine der Gruppen, die mir die obige Abfrage ausgibt, so bekomme ich die Gruppen zurück wo diese Gruppen memberof: sind.

Code: Alles auswählen

$ ldapsearch -LL -D cn=server_id,cn=ldap,ou=servers,ou=hosts,dc=example,dc=at -w Shai1vohxoaF -Z  -b cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at memberof
version: 1

dn: cn=perm-sys_admins,ou=systems,ou=groups,dc=example,dc=at
memberOf: cn=groups,cn=kisti,ou=laptops,ou=hosts,dc=example,dc=at
memberOf: cn=groups,cn=mac,ou=laptops,ou=hosts,dc=example,dc=at
memberOf: cn=groups,cn=book,ou=laptops,ou=hosts,dc=example,dc=at
memberOf: cn=groups,cn=virgo,ou=servers,ou=hosts,dc=example,dc=at
memberOf: cn=groups,cn=ldap,ou=servers,ou=hosts,dc=example,dc=at
memberOf: cn=groups,ou=mymail,ou=apps,ou=services,dc=example,dc=at
memberOf: cn=basic_authentication,ou=mymail,ou=apps,ou=services,dc=example,dc=
 at
memberOf: cn=groups,cn=aldebaran,ou=laptops,ou=hosts,dc=example,dc=at
Ich kriegs einfach nicht hin... :-/

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von Colttt » 13.04.2018 22:01:04

Ich guck mir das nächste woche mal an und versuche es nach zu stellen
Debian-Nutzer :D

ZABBIX Certified Specialist

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 13.04.2018 23:27:23

Apache kann das offenbar.

https://httpd.apache.org/docs/trunk/mod ... uthldapurl

Also dürfte es an sssd liegen.
Ich werd das jetzt mit Apache mal testen.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 14.04.2018 03:56:55

Mit Apache funktioniert es anstandslos. Ich verlange nur nach der obersten Gruppe, und die Basic-Auth gibt frei wenn der User in einer darin verschachtelten Gruppe Mitglieder.

Mit sssd will es einfach nicht gelingen.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 15.04.2018 22:55:25

Hier ist ganz genau erklärt, was ich haben will.
Mit OpenLDAP/Slapd geht das offenbar nicht.

https://cwiki.apache.org/confluence/pag ... d=66854729

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 16.04.2018 11:24:12

Da es mir keine Ruhe lässt...

Ich hab jetzt rausgefunden, dass die Option
ldap_use_tokengroups = false
die Suche in nested Groups unterbindet. Habe diese Option entfernt (irgendwo in einem Tutorial war die angegeben, seitdem hatte ich sie in der Config)

Nachdem ich dann sssd neu gestartet habe und den cache geleert (sssctl cache-remove), sehe ich mit id $USERNAME die Gruppe, welche dies anderen Gruppen beinhaltet.

Um es klarer zu sagen:
Die Gruppe "3000(allowed_users)" beinhaltet unter anderem "30000(sysadmins)" und in dieser wiederum ist "2000(scientific)"

id scientific ergibt dann auszugsweise:
uid=2000(scientific) gid=2000 3000(allowed_users) ... 30000(sysadmins)

Mit verboteten tokengroups fehlte darin die Gruppe 3000.

Aber der
ldap_access_filter = memberof=cn=allowed_users,ou=meinhost,ou=hosts,dc=example,dc=com
der auf genau die richtige Gruppe zeigt, liefert mir dann, dass nichts gefunden wird und verweigert den Zutritt.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

[GELÖST] Re: LDAP: groupOfNames

Beitrag von scientific » 16.04.2018 13:41:03

JETZT KLAPPT ES!!!!!

Ich verwende statt dem access_provider = ldap einfach simple.
In
simple_allow_groups = allowed_users
eintragen, und schon funktionieren die nested Groups!!!

YEAH!!!!! :THX: :mrgreen:

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: LDAP: groupOfNames

Beitrag von ThorstenS » 16.04.2018 21:03:27

wow, da hat sich dein Durchhaltevermögen aber gelohnt! Glückwunsch :-)

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: LDAP: groupOfNames

Beitrag von scientific » 16.04.2018 21:42:12

Aufgeben tut man einen Brief :lol: :lol: :lol:

Ich bin noch am experimentieren, da ich mit der Searchbase für die User noch nicht zufrieden bin. Ich möchte nur die für den jeweiligen Rechner relevanten und erlaubten User abfragen, und nicht auf jedem Rechner alle User und alle Gruppen.
Bei den Gruppen ist es mir schon gelungen, sie zu beschränken. Bei den Usern noch nicht.
Aber das ist nur noch ein kosmetisches Problem. Und das lös ich auch noch.

lg scientific

PS: Soll ich die sssd.conf posten? Wäre wohl sinnvoll. Ich hols noch nach.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten