... | ... | @@ -4,72 +4,71 @@ |
|
|
|
|
|
## Konfigurationsdateien
|
|
|
|
|
|
Zur lokalen Konfiguration (außer den Basispfaden, siehe [Installation](installation/Installation)) sollte die [secdoc.conf.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php) Datei genutzt werden und abhängig von der Installation an einem Ort außerhalb des Document-Roots abgelegt werden. Standardmäßig wird sie unter dem Pfad `/var/www/secdoc` erwartet.
|
|
|
Zur lokalen Konfiguration sollte die [secdoc.conf.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php) Datei genutzt werden und abhängig von der Installation an einem Ort außerhalb des Document-Roots abgelegt werden. Standardmäßig wird sie unter dem Pfad `/var/www/secdoc` erwartet.
|
|
|
|
|
|
Sofern ein anderer Pfad als `/var/www/secdoc` genutzt wird, müssen die Basispfade in der [config.inc.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/config.inc.php#L61-71) im Hauptverzeichnis von SecDoc unter `assets/ajax/config.inc.php` angepasst werden.
|
|
|
|
|
|
Anschließend kann das Installationsskript [install.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/install.php) aufgerufen werden, um die Datenbank anzulegen und diese mit den Default-Daten zu befüllen.
|
|
|
|
|
|
:information_source: Zukünftig soll die Ersteinrichtung und Konfiguration vollständig über das mitgelieferte Installationsskript [install.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/install.php) durchgeführt werden. Dieses befindet sich aktuell allerdings noch in der Entwicklung und ermöglicht bisher nur die Ersteinrichtung der Datenbank und die Befüllung dieser mit Daten.
|
|
|
:information_source: Zukünftig soll die Ersteinrichtung und Konfiguration vollständig über das mitgelieferte Installationsskript [install.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/install.php) durchgeführt werden. Dieses befindet sich aktuell allerdings noch in der Entwicklung und ermöglicht bisher nur die Ersteinrichtung der Datenbank und die Befüllung dieser mit Daten. Die übrige Konfiguration erfolgt über die [secdoc.conf.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php) Datei.
|
|
|
|
|
|
> :warning: **Achtung:** Das Installationsskript muss unbedingt gelöscht oder unbrauchbar gemacht werden (z.B. durch Umbenennung), da es keinen Zugriffsschutz besitzt!
|
|
|
> :warning: **Achtung:** Das Installationsskript muss unbedingt nach der Ersteinrichtung der Datenbank gelöscht oder unbrauchbar gemacht werden (z.B. durch Umbenennung), da es keinen Zugriffsschutz besitzt!
|
|
|
|
|
|
## Allgemeine Konfiguration ([L14-19](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L14-19))
|
|
|
## Allgemeine Konfiguration ([L14-22](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L14-22))
|
|
|
|
|
|
`$prog_name` setzt den Namen der Instanz für verschiedene Stellen (z.B. bei der PDF-Erzeugung).
|
|
|
* `$prog_name` setzt den Namen der Instanz für verschiedene Stellen (z.B. bei der PDF-Erzeugung).
|
|
|
|
|
|
`$prog_url` muss auf den Pfad zur SecDoc Instanz gesetzt werden, welche auch zur Benutzung im Browser aufgerufen wird. Dies wird für Links in E-Mail Benachrichtigungen verwendet.
|
|
|
* `$prog_url` muss auf den Pfad zur SecDoc Instanz gesetzt werden, welche auch zur Benutzung im Browser aufgerufen wird. Dies wird für Links in E-Mail Benachrichtigungen verwendet.
|
|
|
|
|
|
## E-Mail-Konfiguration ([L23-45](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L23-45))
|
|
|
* `$maintenanceMode` und `$maintenanceMessage` ermöglichen die Aktivierung eines Wartungsmodus, z.B. für Updates, mit einer eigenen Nachricht für die Nutzer. Im Wartungsmodus sind nur lesende Zugriffe auf die SecDoc Instanz erlaubt.
|
|
|
|
|
|
## Betreiber-Konfiguration ([L24-42](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L24-42))
|
|
|
|
|
|
An dieser Stelle können Inhalte für Textbausteine konfiguriert werden, welche unter anderem für die Datenschutzerklärung nach Abschluss einer Dokumentation und die Erstellung eines vollständigen VVTs aus allen Dokumentationen genutzt wird.
|
|
|
|
|
|
## E-Mail-Konfiguration ([L44-67](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L44-67))
|
|
|
|
|
|
Für den Versand von E-Mails z.B. nach dem Abschluss von Dokumentationen mit PHPMailer müssen hier die passenden Einstellungen vorgenommen werden. Wenn kein SMTP Server (`$eMail_config['smtp']`) angegeben ist, wird die E-Mail über die `mail()` Funktion in PHP verschickt.
|
|
|
|
|
|
Der E-Mail-Text kann über die Konfigurationsvariable `$eMail_config['text']` sowie die Signatur über `$eMail_config['signatur']` angepasst werden. E-Mails können auch mit einem passenden digitalen Zertifikat signiert werden, wenn gewünscht.
|
|
|
Der E-Mail-Text kann über die Konfigurationsvariable `$eMail_config['text']` sowie die Signatur über `$eMail_config['signatur']` angepasst werden. Der Text kann mehrere Platzhalter enthalten, die durch die jeweiligen Werte aus einer Dokumentation ersetzt werden (`$verfahrensTyp`, `$title`, `$verfahrensId`, `$role`). E-Mails können auch mit einem passenden digitalen Zertifikat signiert werden, wenn gewünscht.
|
|
|
|
|
|
Genauere Informationen zur Konfiguration können in der [PHPMailer Dokumentation](https://github.com/PHPMailer/PHPMailer/wiki) gefunden werden.
|
|
|
|
|
|
## Authentifizierung ([L49-67](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L49-67))
|
|
|
## Authentifizierung ([L69-98](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L69-98))
|
|
|
|
|
|
Die Methode zur Authentifizierung kann über `$auth_method` gewählt werden. Zur Authentifizierung stehen bisher die vier folgenden Möglichkeiten zur Verfügung:
|
|
|
* `demo` - Bietet **keine** Authentifizierung, alle Nutzer haben DSB-Berechtigungen. Nur für Demo-Instanzen!
|
|
|
* `ldap` - Authentifizierung über einen AD/LDAP Server mit Nutzername und Passwort. Es wird eine interne Session-Verwaltung genutzt. Weitere Konfigurationen müssen über `$auth_ldap_config` vorgenommen werden (siehe unten).
|
|
|
* `openid` - Authentifizierung mittels OpenID über Apache Umgebungsvariablen.
|
|
|
* `sso` - Bietet Authentifizierung über SSO-Systeme an (beispielsweise mittles `.htaccess` bei Apache).
|
|
|
* `openid` - Authentifizierung mittels OpenID über Server-Variable (`OIDC_CLAIM_unique_name`).
|
|
|
* `sso` - Bietet Authentifizierung über SSO-Systeme an (beispielsweise mittles `.htaccess` bei Apache). Es wird, je nach Verfügbarkeit, eine der folgenden Server-Variablen genutzt, um die Nutzerkennung zu erhalten: `HTTP_X_TRUSTED_REMOTE_USER`, `REDIRECT_REMOTE_USER` und `REMOTE_USER`.
|
|
|
|
|
|
An dieser Stellen können auch Berechtigungen für den Zugriff auf Admin-, Debug- und DSB-Funktionen anhand von Nutzergruppen (oder teilweise Nutzerkennungen) festgelegt werden. Die Abfrage von Nutzergruppen zu eingeloggten erfolgt bisher über AD/LDAP und muss separat konfiguriert werden (siehe [Datenquellen](#datenquellen)).
|
|
|
|
|
|
Sollte keine der vorhandenen Authentifizierungsmethoden verwendbar sein, kann auch eine eigene Klasse erstellt werden (siehe [Auth.class.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/auth/Auth.class.php)).
|
|
|
|
|
|
### AD/LDAP Authentifizierung Konfiguration
|
|
|
### AD/LDAP Authentifizierung Konfiguration ([L74-87](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L74-87))
|
|
|
|
|
|
Die Konfiguration für die AD/LDAP Authentifizierung erfolgt wie oben erwähnt über das `$auth_ldap_config`-Array. Die wichtigsten Einstellungen sind die folgenden:
|
|
|
* `$auth_ldap_config['host']` - Hostname oder IP des AD/LDAP Servers
|
|
|
* `$auth_ldap_config['host']` - Hostname oder IP des AD/LDAP Servers. Es kann auch die Hilfsfunktion `Utils::getDomainController('xyz.de')` gewählt werden, um automatisch einen passenden AD-Server anhand der DNS-Einträge der Domäne zu wählen.
|
|
|
* `$auth_ldap_config['domain']` - Kann bei Verwendung eines AD Servers genutzt werden, um eine Anmeldung nach [UPN-Schema](https://ldapwiki.com/wiki/UserPrincipalName) zu ermöglichen. Es sollte dann die AD Domäne mit vorangestelltem `@` angegeben werden, z.B. `@wwu.de`. Diese Option ist optional und sorgt nur dafür, dass der Nutzer beim Einloggen einfach `user` anstatt `user@wwu.de` angeben kann.
|
|
|
* `$auth_ldap_config['ldap_dn_template']` - Da normale LDAP Server das UPN-Schema nicht verwenden, kann hier auch ein vollständiger DN für den Login eingetragen werden. Hierfür kann ein Dollarzeichen als Platzhalter genutzt werden, welches durch die Nutzerkennung beim Einloggen ersetzt wird. Wenn sich der Nutzer `xyz` einloggt und in der Konfiguration `$auth_ldap_config['ldap_dn_template'] = 'CN=$,OU=user,DC=wwu,DC=de'` gesetzt ist, wird die Authentifizierung mit dem DN `CN=xyz,OU=use,DC=wwu,DC=de` am LDAP Server versucht.
|
|
|
* `$auth_ldap_config['startTLS']` - Sollte auf `TRUE` gesetzt werden, falls [StartTLS](https://de.wikipedia.org/wiki/STARTTLS) genutzt wird.
|
|
|
|
|
|
## Dokumentenmanagement ([L113-118](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L113-118))
|
|
|
|
|
|
Über die Einstellung `$docmgmt_method` lässt sich das gewünschte Dokumentenmanagementsystem auswählen. Aktuell steht zur Auswahl:
|
|
|
* `demo` - Zeigt die Funktionalität mit einem Dummydokument. Kein Upload möglich.
|
|
|
* `local`- Einfacher Up- und Download von Dokumenten. Speicherung im Verzeichnis `$pdf_dir/$doc_id`.
|
|
|
|
|
|
Mit der Einstellung `$docmgmt_maxAttachSize` lässt sich die maximale Grüße für Uploads einstellen.
|
|
|
|
|
|
Es können weitere Dokumentenmanagementsysteme über eigene Klassen implementiert werden (siehe [DocMGMT.class.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/docmgmt/DocMGMT.class.php)).
|
|
|
Die weiteren Optionen betreffen die Cookie- und Sessionverwaltung und können bei Bedarf angepasst werden. Besonders die Option `$auth_ldap_config['cookie_secure']` sollte gesetzt werden, um Cookies nur über HTTPS-Verbindungen zu übertragen.
|
|
|
|
|
|
## Datenquellen
|
|
|
## Datenquellen ([L110-121](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L110-121))
|
|
|
|
|
|
Bisher werden zwei Datenquellen in SecDoc verwendet: AD/LDAP und SQLite.
|
|
|
Bisher werden zwei Datenquellen für Gruppen- und Nutzerinformationen in SecDoc verwendet: AD/LDAP und lokale SQLite Datenbank. Standardmäßig wird eine Abfrage über AD/LDAP versucht und wenn dies nicht möglich sein sollte, wird die lokale Datenbank gefragt. Diese Einstellung wird nur genutzt, wenn Informationen zu einer Kennung, zu einer Gruppe oder einer Gruppenzugehörigkeit abgefragt werden. Wenn keine AD/LDAP-Anbindung genutzt werden soll, können die Tabellen `personen`, `groups` und `usergroups` selbst mit Inhalten befüllt werden.
|
|
|
|
|
|
### AD/LDAP ([L78-104](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L78-104))
|
|
|
## AD/LDAP ([L123-149](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L123-149))
|
|
|
|
|
|
AD/LDAP wird zur Abfrage von Nutzerinformationen, wie z.B. E-Mail Adressen oder Nutzergruppen, verwendet. Zur Abfrage muss ein gültiger Domänencontroller angegeben werden und gegebenenfalls ein Nutzer mit Passwort konfiguriert werden, um die notwendigen Daten abfragen zu können.
|
|
|
AD/LDAP wird zur Abfrage von Nutzerinformationen, wie z.B. E-Mail Adressen oder Nutzergruppen, verwendet. Zur Abfrage muss ein gültiger Domänencontroller angegeben werden und gegebenenfalls ein Nutzer mit Passwort konfiguriert werden, um die notwendigen Daten abfragen zu können. Der Nutzer benötigt Leseberechtigungen im AD/LDAP.
|
|
|
|
|
|
In `$ldap_configs` müssen die jeweiligen Anfragen an den eigenen Aufbau der Domänenstruktur angepasst werden. Es werden Platzhalter (`$`) bei den Anfragen verwendet, um dynamische Anfragen zu ermöglichen.
|
|
|
|
|
|
Diese Einstellungen sind zwingend notwendig, wenn Zugriffsberechtigungen über Nutzergruppen gesteuert werden sollen. SecDoc selbst enthält bisher keine eigene Gruppenverwaltung!
|
|
|
Die Nutzung der AD/LDAP-Anbindung wird empfohlen, um die notwendigen Nutzer- und Gruppeninformationen sowie Gruppenzugehörigkeiten abzufragen, um den Zugriff auf SecDoc und einzelne Dokumentationen über bereits vorhandene Gruppen steuern zu können. Alternativ können diese Informationen selbst in der lokalen Datenbank verwaltet werden (siehe Datenquellen).
|
|
|
|
|
|
#### Erläuterungen zu den Abfragen
|
|
|
### Erläuterungen zu den Abfragen
|
|
|
|
|
|
* `$ldap_configs['groups']`: Führt die Suche nach Gruppen durch. Die Platzhalter (`$`) in `ldap_filter` werden durch den Suchbegriff ersetzt. Standardmäßig werden die Attribute `cn` und `description` durchsucht, dies kann allerdings durch Anpassung von `ldap_filter` geändert werden. Es müssen zwei Attribute in `ldap_attributes` angegeben werden. Das erste Attribut wird als Gruppenkennung in SecDoc verwendet, während das zweite Attribut eine Beschreibung der Gruppe darstellen soll. Diese können ebenfalls ersetzt werden.
|
|
|
* `$ldap_configs['usergroups']`: Fragt alle Nutzergruppen zu einer Kennung ab, z.B. für die Prüfung von Zugriffsrechten. Der Platzhalter (`$`) in `ldap_filter` wird durch die Nutzerkennung ersetzt. Es wird standardmäßig nach dem Attribut `cn` gesucht, aber eine Suche beispielsweise nach `sAMAccountName` ist durch Anpassung des Filters möglich. Es wird das `memberof` Attribut genutzt. Dies sollte nicht geändert werden!
|
... | ... | @@ -91,7 +90,7 @@ $ldap_configs = [ |
|
|
];
|
|
|
```
|
|
|
|
|
|
#### Erläuterungen zu den Filtern
|
|
|
### Erläuterungen zu den Filtern
|
|
|
Damit bei Personensuchen an unterschiedlchen Stellen in SecDoc verschiedene Werte genutzt werden können, z.B. nur Mitarbeiter als verantwortliche Personen gesucht werden können, aber auch studentische Hilfskräfte in der Nutzersuche für Zugriffsrechte auftauchen, werden die `$ldap_user_filter` Variablen genutzt. Die Filter werden an die vorhandenen LDAP-Filter aus den `$ldap_configs` Variablen angehangen.
|
|
|
|
|
|
* `$ldap_user_filter['active']`: Beschränkt die angezeigten Nutzer auf aktive Kennungen.
|
... | ... | @@ -99,8 +98,18 @@ Damit bei Personensuchen an unterschiedlchen Stellen in SecDoc verschiedene Wert |
|
|
|
|
|
Wird so eine Unterscheidung nicht benötigt oder gewünscht, können die Filter zu leeren Zeichenketten geändert werden.
|
|
|
|
|
|
### SQLite
|
|
|
## Dokumentenmanagement ([L151-156](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L151-156))
|
|
|
|
|
|
Über die Einstellung `$docmgmt_method` lässt sich das gewünschte Dokumentenmanagementsystem auswählen. Aktuell steht zur Auswahl:
|
|
|
* `demo` - Zeigt die Funktionalität mit einem Dummydokument. Kein Upload möglich.
|
|
|
* `local`- Einfacher Up- und Download von Dokumenten. Speicherung im Verzeichnis `$pdf_dir/$doc_id`.
|
|
|
|
|
|
Mit der Einstellung `$docmgmt_maxAttachSize` lässt sich die maximale Grüße für Uploads einstellen.
|
|
|
|
|
|
Es können weitere Dokumentenmanagementsysteme über eigene Klassen implementiert werden (siehe [DocMGMT.class.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/docmgmt/DocMGMT.class.php)).
|
|
|
|
|
|
## SQLite
|
|
|
|
|
|
Die SQLite Datenbank wird automatisch angelegt und von SecDoc verwaltet. Hierfür sind keine Konfigurationen an dieser Stelle notwendig. Die Datenbank enthält die gespeicherten Dokumentationen, sowie die TOM-Listen und Vorschläge für die Eingabefelder. Sie dient auch als Fallback, wenn keine Informationen über andere Wege (z.B. LDAP) abgerufen werden können. Die Tabellendefinitionen befinden sich in der [DBcon.class.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/DBCon.class.php#L13-125).
|
|
|
Die SQLite Datenbank wird automatisch angelegt und von SecDoc verwaltet. Hierfür sind keine Konfigurationen an dieser Stelle notwendig. Die Datenbank enthält die gespeicherten Dokumentationen, sowie die TOM-Listen und Vorschläge für die Eingabefelder. Sie dient auch als Fallback, wenn keine Informationen über andere Wege (z.B. LDAP) abgerufen werden können. Die Tabellendefinitionen befinden sich in der [DBcon.class.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/DBCon.class.php#L171-306).
|
|
|
|
|
|
:information_source: Eigene Inhalte können über das `sqlite3` Kommandozeilentool oder den grafischen [SQLite Browser](https://sqlitebrowser.org/) in die Tabellen importiert werden. Beispielskripte befinden sich im [assets/php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/php) Ordner. |
|
|
\ No newline at end of file |
|
|
:information_source: Eigene Inhalte können über das `sqlite3` Kommandozeilentool oder den grafischen [SQLite Browser](https://sqlitebrowser.org/) in die Tabellen importiert werden. Beispielskripte für automatische Änderungen befinden sich im [assets/php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/php) Ordner. |
|
|
\ No newline at end of file |