Ich schreibe ein Web-Frontend (Django) für einen LDAP-Server. Es gibt verschiedene Arten von Personen mit verschiedenen Arten von Berechtigungen. Daher richte ich LDAP-ACL ein, um zu steuern, wer ein bestimmtes Attribut sehen oder bearbeiten darf. Jetzt ist es einfach festzustellen, ob ein bestimmter Benutzer Lesezugriff hat - versuchen Sie zu lesen, und Sie werden sehen, was Sie bekommen. Aber ich sehe keine elegante Möglichkeit, zwischen Lese- und Schreibzugriff zu unterscheiden vor Ich versuche tatsächlich, einige Änderungen zu schreiben. Das heißt, ich möchte an der Schnittstelle deutlich machen, ob der angemeldete Benutzer Schreibzugriff hat oder nur lesen kann. Damit Benutzer nicht versuchen, ein Attribut zu bearbeiten, das nicht möglich ist.check ldap Zugriffsrechte mit Python
Das einzige, was mir in den Sinn kam, war zu versuchen, vorübergehend eine Art Dummy in ein Attribut zu schreiben und zu sehen, ob das erfolgreich war. Wenn dies der Fall ist, wird der ursprüngliche Wert wiederhergestellt, und ich weiß, dass dieser Benutzer Schreibzugriff hat. Ich kann dieses Attribut dann als bearbeitbar anzeigen. Das Problem dabei ist, dass, wenn der Server abstürzt, nachdem der Dummy geschrieben wurde und bevor der ursprüngliche Wert wiederhergestellt wurde, bleiben Dummy-Werte in meinem LDAP-Server.
Was ich brauche, ist eine Möglichkeit, die ACLs abzufragen, ähnlich wie ich Schemadefinitionen abfragen kann. Aber vielleicht ist das durch LDAP "verboten"?
Irgendwelche Ideen?
Isaac
Welche LDAP-Server Sie tun benutzen? Welche Schnittstelle/Bindungen verwenden Sie, um darauf zuzugreifen? – ThomasH
Ich benutze Openldap 2.3.32 und Python 2.6 ldap Bindings (Import ldap) – Isaac
Es kommt mir vor, dass ich keinen Dummy schreiben muss, um zu sehen, ob ich Schreibzugriff habe. Ich könnte einfach versuchen, den ursprünglichen Wert zu schreiben, was zu einem Fehler führen würde, wenn ich keinen Schreibzugriff hätte und nichts ändern würde, wenn ich Lesezugriff hätte. Trotzdem, scheint nicht so elegant. – Isaac