Ich habe mich gefragt, wie andere Leute dieses Szenario implementiert haben. Ich habe eine interne Rails-App (Bestandsverwaltung, Etikettendruck, Versand usw.). Ich überschreibe Sicherheit auf dem System, weil der alte Weg mühsam zu verwalten war (Benutzertabelle, Passwörter, Rollen) - ich benutzte restful_authentication und roles. Es wurde vor etwa 3 Jahren eingeführt. Ich habe bereits AuthLogic mit ruby-ldap-net implementiert, um Benutzer zu authentifizieren (eigentlich war das überraschend einfach, verglichen mit dem, wie ich vorher mit anderen Frameworks / Sprachen gekämpft habe). Der nächste Schritt ist Rollen. Ich habe bereits Gruppen in Active Directory definiert - also möchte ich kein separates Rollensystem in meiner Rails-App ausführen, ich möchte nur Active Directory-Gruppen wiederverwenden - da dieser Teil des Systems bereits für andere Zwecke (gemeinsame Laufwerke) verwaltet wird , Backups, PC-Zugriff, usw.)
Ich habe mich also gefragt, ob andere Benutzer Erfahrung mit der Implementierung von Berechtigungen / Rollen in einer Rails-App hatten, basierend auf Gruppen in Active Directory oder LDAP. Auch die Rollenanforderungen sind ziemlich komplex .
Hier ist ein Beispiel:
Zum Beispiel habe ich Benutzer, die zu der Supervisor-Gruppe in AD und Inventory Dept gehören, also war ich dieser Benutzer in der Lage, "erweiterte" Aufgaben in Invetory auszuführen - anpassen, führen Sie Berichte, aber andere "Supervisor" aus andere Abteilungsmannen sollten dies nicht können, auch Top Management - sollte in der Lage sein, diese Berichte zu verwenden (unabhängig davon, ob sie dem Inventar angehören oder nicht), aber nicht das mittlere Management, es sei denn, sie befinden sich in der Inventargruppe. Administratoren des Systems (Domänen-Admins) sollten unbeschränkten Zugriff auf das System haben, mit Ausnahme von HR & amp; Finanzen Teil, es sei denn, sie sind in HR (wie Sie nicht wollen, dass alle Systemadministratoren (außer einem autorisierten) persönliche Informationen anderer Mitarbeiter sehen).
Ich schaute acl9, cancan, aegis. Ich habe mich gefragt, ob es irgendwelche Vorteile / Nachteile gibt, einen für den anderen zu verwenden, für diesen bestimmten Gebrauch des Systemzugriffs basierend auf AD. Schlage andere Systeme vor, wenn du gute Erfahrungen gemacht hast.
Danke !!!
ActiveLDAP ( Dokumentation , Github ) hat einige der Funktionen, nach denen Sie suchen, insbesondere:
Tags und Links ruby ruby-on-rails permissions active-directory ldap