Ich benötige Anregungen zur Entwicklung und Umsetzung eines Konzepts für einen Server zur Dateibereitstellung im I-Net
Guten Tag Kollegen,
ich habe folgendes Problem:
Stand der Dinge
Wir verwenden eine Verwaltungssoftware, die die Vorgänge zentral verwaltet und gewisse Tabellenexporte erlaubt.
Es wäre also möglich, hieraus eine Liste der Kommunikationspartner zu exportieren. Die Datensätze enthielten auch eine eindeutige ID, die zur Anonymisierung herangezogen werden könnte.
Die Verwendung von Plattformen wie OwnCloud, nextCloud u.d.gl. scheidet aus meiner Sicht aus, da das Anlegen der Nutzerkonten vorallem in dieser Stückzahl händisch nicht in guter Zeit zu machen scheint. Selbst wenn es ginge, müssten unsere Mitarbeiter sicherstellen, dass das jeweilige Nutzerkonto auch nur den Vorgängen (1:n-Beziehung ist möglich) zugeordnet ist, die wirklich es betreffen.
Plattformen, die den Upload von einzelnen Dateien ermöglichen (wie z.B. Jirafeau) gefallen mir dahingehend sehr, aber hier verlagert sich die Last und die Fehleranfälligkeit auf die Kommunikationswege mit den Partnern.
Was ich mir vorstellen könnte...
...ist eine Lösung auf Basis einer Kombination aus SAMBA + htpasswd + htgroup + htaccess + Apache + FancyIndexing.
Die Überlegung ist, dass unsere Mitarbeiter eine zentrale Tabelle im CSV-Format pflegen. Jeder Mitarbeiter kann für seine Vorgänge die entsprechenden Exporte machen und bereinigt diese so, dass jeder Datensatz nur noch folgendes enthält:
1. Spalte: Name
2. Spalte: eindeutige ID
3. Spalte: VBA-makrogeneriertes Zufalls-PW
4. Spalte: Vorgangsnummer
5. Spalte: VBA-makrogenerierter Link zum Dateiverzeichnis des jeweiligen Kommunikationspartners auf dem Server
Überlegung zu Spalte 2:
Zur Anonymisierung und korrekten Zuordnung der für einen bestimmten Partner vorgesehenen Dateien, reicht es meiner Ansicht nach aus, wenn das Dateisystem immer nach dem Schema "\\server\vorgangsnr\Partner-ID\" aufgebaut ist.
Überlegung zu Spalte 3 + 5:
Das halte ich für realisierbar, solange das Schema wie oben beschrieben statisch und programmatissch nachvollziehbar bleibt.
Zum Dateibereitstellungsserver:
Intern würde er, wie man an den Links erkennt, mittels Samba unseren Mitarbeitern die Dokumentenzuordnung in die Vorgänge ermöglichen.
Wenn ich die Partner-ID als Präfix im Dateinamen verwende, kann ich das auch noch per Skript (in diesem Fall VBScript) automatisieren.
Nach außen würden die Dateien über Apache angeboten.
Mittels htaccess + htpasswd + htgroup würde ich versuchen, die Struktur entsprechend zu sichern und hier käme die automatische Auswertung der zentralen CSV-Tabelle zum Tragen:
Jedes Mal, wenn ein Mitarbeiter diese Tabelle ändert, kopiert er sie auf den Server in ein bestimmtes Verzeichnis. Ein Bash-Script läuft durch die Datei durch und prüft in der Reihenfolge:
Ich könnte mir solch einen Verzeichnisbaum vorstellen:
Zu den einzelnen htaccess-Dateien:
htaccess¹:
In dieser Datei würde ich das FancyIndexing definieren (und hoffen, dass diese Einstellung für die Unterverzeichnisse auch greift und sicherstellen, dass die htaccess-Dateien in den Verzeichnissen ausgeblendet und geschützt sind.
htaccess²:
Pro Vorgang eine htaccess. Sie definiert, welche Gruppe von Nutzern in diesen Ordner rein kann. Dazu könnten die entsprechenden Datensätze der CSV auf Basis der Vorgangsnummer zusammengefasst werden. Die Partner-ID ist der Nutzername. Also müsste bei Nichtvorhandensein des Vorgangsverzeichnisses neben der htaccess eine passende htpasswd per Skript angelegt werden.
htaccess³:
Pro Nutzerverzeichnis unter einem Vorgang wird eine erstellt. Sie erlaubt nur den Zugriff durch den Nutzer, dessen username, der dem Verzeichnisnamen entspricht, da es die Partner-ID ist, der erfolgreich authentifiziert wurde. Auch diese Datei würde per Skript automatisch erstellt werden.
Bevor ich mich jetzt ans Bauen, Testen und Analysieren mache...
...wollte ich mal nach Eurem fachlichen Rat fragen.
Ich möchte so viel wie möglich automatisieren. Speziell die Erstellung der Nutzer und entsprechender Verzeichnisstrukturen.
Ich habe zwar noch eine gewisse Erfahrung mit Apache und htaccess (weil ich so etwas in vereinfachter Form manuell mal gemacht habe), allerdings schon lange nicht mehr auf aktuellem Stand und was Scripting unter Linux angeht, muss ich gestehen, dass ich da überhaupt nicht sicher bin, was machbar ist und was nicht von meinen obigen Überlegungen.
Relativ sattelfest bin ich mit Ubuntu-Server. Der wäre auch meine Präferenz, da ich LAMP-Systeme bisher immer damit aufgebaut habe, die gängigen Befehle, Konfigdateien und Verzeichnisaufbau von daher noch gewohnt bin.
Meine Fragen zu Linux, Apache, htaccess, Linux-Scripting an diejenigen, die darin Erfahrung haben:
Haltet Ihr obiges Konzept überhaupt für umsetzbar?
Mir ist klar, dass bei Änderung an den htaccess-Dateien der Apache-Dienst ggf. reloaden muss. Das ist kein Problem.
Erstellung der benötigten .htaccess-Dateien aus einer Vorlage mit Platzhalter abgeleitet oder besser direkt per Skript?
Ich weiß nicht, was da besser ist, geschweige denn ob das mit Skript überhaupt machbar ist.
Welche Script-Sprache wäre am besten geeignet? Bash, Perl oder gar etwas anderes?
Ich bin in keiner der Sprachen sattelfest und müsste mich einarbeiten. Deswegen frage ich, mit welcher Script-Sprache ich alles erschlagen könnte.
Gibt es die Möglichkeit, mittels .htaccess Verzeichniseinstellungen auf untergeordnete Objekte zu "vererben"?
...so dass ich nur auf oberster Ebene den Rahmen für Darstellung und Sicherheit definiere und nach unten weitergebe.
Könnte man das auch auf Skriptebene weiterspinnen, so dass Änderungen in einem Verzeichnis per E-Mail automatisch kommuniziert werden?
Wenn die zentrale CSV pro Datensatz auch eine E-Mailadresse enthielte, könnte man dann im Falle, dass Verzeichnisänderungen im Vorgangsverzeichnis (neue Dateien eingefügt) stattfinden, dieses Ereignis an alle betroffenen Kommunikationspartner (über die Unterverzeichnisse über die CSV zurückverfolgbar) und im Falle, dass Änderungen in einem bestimmten Verzeichnis eines Partners stattfinden, diese an genau den einen per E-Mail automatisiert versenden?
Und jetzt die Gretchenfrage an alle:
Kennt vielleicht jemand eine solche Plattform (Cloud-Plattformen scheiden aus. Wir müssen das selbst hosten.), auf der das obige Konzept umsetzbar wäre?
Habt vielen Dank für Eure Zeit!
Und Euch, die antworten: habt nochmals Dank für jeden richtungsweisenden Hinweis!
Viele Grüße
bdmvg
ich habe folgendes Problem:
- Per Verordnung müssen wir unseren Kommunikationspartnern eine Dateibereitstellungsplattform anbieten.
- Die Plattform muss zwei Klassen von Dateien vorgangsbezogen anbieten:
- pro Kommunikationspartner eines Vorgangs (Zugriff nur für den einzelnen Kommunikationspartner)
- für alle Kommunikationspartner eines Vorgangs (Zugriff für alle, die in den Vorgang involviert sind)
- Pro Vorgang können mehrere tausend Kommunikationspartner vorkommen
- Anonymisierung ist erforderlich im Zuge der DSGVO. Die Kommunikationspartner dürfen sich auf dieser Plattform nicht erkennen.
Stand der Dinge
Wir verwenden eine Verwaltungssoftware, die die Vorgänge zentral verwaltet und gewisse Tabellenexporte erlaubt.
Es wäre also möglich, hieraus eine Liste der Kommunikationspartner zu exportieren. Die Datensätze enthielten auch eine eindeutige ID, die zur Anonymisierung herangezogen werden könnte.
Die Verwendung von Plattformen wie OwnCloud, nextCloud u.d.gl. scheidet aus meiner Sicht aus, da das Anlegen der Nutzerkonten vorallem in dieser Stückzahl händisch nicht in guter Zeit zu machen scheint. Selbst wenn es ginge, müssten unsere Mitarbeiter sicherstellen, dass das jeweilige Nutzerkonto auch nur den Vorgängen (1:n-Beziehung ist möglich) zugeordnet ist, die wirklich es betreffen.
Plattformen, die den Upload von einzelnen Dateien ermöglichen (wie z.B. Jirafeau) gefallen mir dahingehend sehr, aber hier verlagert sich die Last und die Fehleranfälligkeit auf die Kommunikationswege mit den Partnern.
Was ich mir vorstellen könnte...
...ist eine Lösung auf Basis einer Kombination aus SAMBA + htpasswd + htgroup + htaccess + Apache + FancyIndexing.
Die Überlegung ist, dass unsere Mitarbeiter eine zentrale Tabelle im CSV-Format pflegen. Jeder Mitarbeiter kann für seine Vorgänge die entsprechenden Exporte machen und bereinigt diese so, dass jeder Datensatz nur noch folgendes enthält:
1. Spalte: Name
2. Spalte: eindeutige ID
3. Spalte: VBA-makrogeneriertes Zufalls-PW
4. Spalte: Vorgangsnummer
5. Spalte: VBA-makrogenerierter Link zum Dateiverzeichnis des jeweiligen Kommunikationspartners auf dem Server
Überlegung zu Spalte 2:
Zur Anonymisierung und korrekten Zuordnung der für einen bestimmten Partner vorgesehenen Dateien, reicht es meiner Ansicht nach aus, wenn das Dateisystem immer nach dem Schema "\\server\vorgangsnr\Partner-ID\" aufgebaut ist.
Überlegung zu Spalte 3 + 5:
Das halte ich für realisierbar, solange das Schema wie oben beschrieben statisch und programmatissch nachvollziehbar bleibt.
Zum Dateibereitstellungsserver:
Intern würde er, wie man an den Links erkennt, mittels Samba unseren Mitarbeitern die Dokumentenzuordnung in die Vorgänge ermöglichen.
Wenn ich die Partner-ID als Präfix im Dateinamen verwende, kann ich das auch noch per Skript (in diesem Fall VBScript) automatisieren.
Nach außen würden die Dateien über Apache angeboten.
Mittels htaccess + htpasswd + htgroup würde ich versuchen, die Struktur entsprechend zu sichern und hier käme die automatische Auswertung der zentralen CSV-Tabelle zum Tragen:
Jedes Mal, wenn ein Mitarbeiter diese Tabelle ändert, kopiert er sie auf den Server in ein bestimmtes Verzeichnis. Ein Bash-Script läuft durch die Datei durch und prüft in der Reihenfolge:
- 1. Existiert ein Verzeichnis passend zur Vorgangsnummer?
- Wenn ja, dann weiter zum nächsten Schritt, sonst erstelle es und generiere passende htaccess-Datei darin.
- 2. Existiert ein Verzeichnis passend zur Vorgangsnummer und Partner-ID (Unterordner zur Vorgangsnummer)?
- Wenn ja, weiter zum nächsten Schritt, sonst prüfe, ob Erstellung laut Tabelle erforderlich, erstelle ggfs. Verzeichnis + htaccess-Datei.
- 3. Existiert der Nutzer passend zur Vorgangsnummer?
- Wenn ja, fertig, sonst erteile Zugriff auf korrespondierendes Vorgangs- und Partnerverzeichnis
Ich könnte mir solch einen Verzeichnisbaum vorstellen:
.
^---www-root
^---.htaccess¹
^---Vorgang1
^---.htaccess²
^---Partner-ID1
^--- .htaccess³
^--- Partner-ID1-Datei1.pdf
^---Vorgang2
^---Partner-ID2
^--- .htaccess³
^--- Partner-ID2-Datei1.pdf
Zu den einzelnen htaccess-Dateien:
htaccess¹:
In dieser Datei würde ich das FancyIndexing definieren (und hoffen, dass diese Einstellung für die Unterverzeichnisse auch greift und sicherstellen, dass die htaccess-Dateien in den Verzeichnissen ausgeblendet und geschützt sind.
htaccess²:
Pro Vorgang eine htaccess. Sie definiert, welche Gruppe von Nutzern in diesen Ordner rein kann. Dazu könnten die entsprechenden Datensätze der CSV auf Basis der Vorgangsnummer zusammengefasst werden. Die Partner-ID ist der Nutzername. Also müsste bei Nichtvorhandensein des Vorgangsverzeichnisses neben der htaccess eine passende htpasswd per Skript angelegt werden.
htaccess³:
Pro Nutzerverzeichnis unter einem Vorgang wird eine erstellt. Sie erlaubt nur den Zugriff durch den Nutzer, dessen username, der dem Verzeichnisnamen entspricht, da es die Partner-ID ist, der erfolgreich authentifiziert wurde. Auch diese Datei würde per Skript automatisch erstellt werden.
Bevor ich mich jetzt ans Bauen, Testen und Analysieren mache...
...wollte ich mal nach Eurem fachlichen Rat fragen.
Ich möchte so viel wie möglich automatisieren. Speziell die Erstellung der Nutzer und entsprechender Verzeichnisstrukturen.
Ich habe zwar noch eine gewisse Erfahrung mit Apache und htaccess (weil ich so etwas in vereinfachter Form manuell mal gemacht habe), allerdings schon lange nicht mehr auf aktuellem Stand und was Scripting unter Linux angeht, muss ich gestehen, dass ich da überhaupt nicht sicher bin, was machbar ist und was nicht von meinen obigen Überlegungen.
Relativ sattelfest bin ich mit Ubuntu-Server. Der wäre auch meine Präferenz, da ich LAMP-Systeme bisher immer damit aufgebaut habe, die gängigen Befehle, Konfigdateien und Verzeichnisaufbau von daher noch gewohnt bin.
Meine Fragen zu Linux, Apache, htaccess, Linux-Scripting an diejenigen, die darin Erfahrung haben:
Haltet Ihr obiges Konzept überhaupt für umsetzbar?
Mir ist klar, dass bei Änderung an den htaccess-Dateien der Apache-Dienst ggf. reloaden muss. Das ist kein Problem.
Erstellung der benötigten .htaccess-Dateien aus einer Vorlage mit Platzhalter abgeleitet oder besser direkt per Skript?
Ich weiß nicht, was da besser ist, geschweige denn ob das mit Skript überhaupt machbar ist.
Welche Script-Sprache wäre am besten geeignet? Bash, Perl oder gar etwas anderes?
Ich bin in keiner der Sprachen sattelfest und müsste mich einarbeiten. Deswegen frage ich, mit welcher Script-Sprache ich alles erschlagen könnte.
Gibt es die Möglichkeit, mittels .htaccess Verzeichniseinstellungen auf untergeordnete Objekte zu "vererben"?
...so dass ich nur auf oberster Ebene den Rahmen für Darstellung und Sicherheit definiere und nach unten weitergebe.
Könnte man das auch auf Skriptebene weiterspinnen, so dass Änderungen in einem Verzeichnis per E-Mail automatisch kommuniziert werden?
Wenn die zentrale CSV pro Datensatz auch eine E-Mailadresse enthielte, könnte man dann im Falle, dass Verzeichnisänderungen im Vorgangsverzeichnis (neue Dateien eingefügt) stattfinden, dieses Ereignis an alle betroffenen Kommunikationspartner (über die Unterverzeichnisse über die CSV zurückverfolgbar) und im Falle, dass Änderungen in einem bestimmten Verzeichnis eines Partners stattfinden, diese an genau den einen per E-Mail automatisiert versenden?
Und jetzt die Gretchenfrage an alle:
Kennt vielleicht jemand eine solche Plattform (Cloud-Plattformen scheiden aus. Wir müssen das selbst hosten.), auf der das obige Konzept umsetzbar wäre?
Habt vielen Dank für Eure Zeit!
Und Euch, die antworten: habt nochmals Dank für jeden richtungsweisenden Hinweis!
Viele Grüße
bdmvg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 644444
Url: https://administrator.de/forum/ich-benoetige-anregungen-zur-entwicklung-und-umsetzung-eines-konzepts-fuer-einen-server-zur-644444.html
Ausgedruckt am: 31.03.2025 um 16:03 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
fern ab von deinen Überlegungen, möchte ich doch nochmal mit NextCloud um die Ecke kommen.
NextCloud bietet eine mächtige API an, mit der du sowohl User als auch Berechtigungen für User anlegen/setzen kannst. Aus meiner Sicht ist dein Vorhaben gerade mit dieser Plattform gut realisierbar, ohne sich dort eigene Lösungen von der Picke aus zu basteln.
UserManagement:
https://docs.nextcloud.com/server/15/developer_manual/app/users.html
Shares:
https://docs.nextcloud.com/server/15/developer_manual/core/ocs-share-api ...
Web-Hooks:
https://docs.nextcloud.com/server/15/developer_manual/app/hooks.html#ava ...
Du schriebst zwar, dass Cloud-Lösungen rausfallen, aber NextCloud kannst du ja selbst hosten.
Viele Grüße
Daemmerung
fern ab von deinen Überlegungen, möchte ich doch nochmal mit NextCloud um die Ecke kommen.
NextCloud bietet eine mächtige API an, mit der du sowohl User als auch Berechtigungen für User anlegen/setzen kannst. Aus meiner Sicht ist dein Vorhaben gerade mit dieser Plattform gut realisierbar, ohne sich dort eigene Lösungen von der Picke aus zu basteln.
UserManagement:
https://docs.nextcloud.com/server/15/developer_manual/app/users.html
Shares:
https://docs.nextcloud.com/server/15/developer_manual/core/ocs-share-api ...
Web-Hooks:
https://docs.nextcloud.com/server/15/developer_manual/app/hooks.html#ava ...
Du schriebst zwar, dass Cloud-Lösungen rausfallen, aber NextCloud kannst du ja selbst hosten.
Viele Grüße
Daemmerung