Inhaltsverzeichnis

Separate Domain für Projektadministration

Die Administration von SoSci Survey (Verzeichnis admin/) kann auf eine eigene (Sub-)Domain geschaltet werden, z.B. https://admin.example.org, während die Befragungen weiterhin unter https://www.example.org laufen. Das erhöht die Sicherheit, denn JavaScript in einem Fragebogen (etwa aus importierten Vorlagen) kann dann nicht auf die Administration zugreifen, wenn eine angemeldete Person den Fragebogen aufruft.

Die Trennung ist optional, wird aber empfohlen, wenn eine größere Zahl Personen mit der Installation arbeiten. Ohne weitere Konfiguration bleiben Befragungsprojekte und Projektadministration unter einer gemeinsamen Domain erreichbar.

Die folgenden Beispiele verwenden www.example.org für die Server-URL (Befragungen) und admin.example.org für die Administration.

Neue Installation

Webserver einrichten

Beispiel für Apache

<VirtualHost *:443>
    ServerName admin.example.org
    DocumentRoot /var/www/sosci/admin
    # SSL-Konfiguration wie für www.example.org
</VirtualHost>

Beispiel für nginx

server {
    listen 443 ssl;
    server_name admin.example.org;
    root /var/www/sosci/admin;
    index index.php;
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass <php-fpm>;
    }
}

SoSci Survey installieren

Installieren Sie SoSci Survey wie gewohnt unter der Server-URL (z.B. https://www.example.org/admin/install.php). Die Trennung wird erst nach der Installation eingerichtet.

URLs in der Administration eintragen

Öffnen Sie in der Server-Verwaltung → Server-Einstellungen → Konfiguration den Karteireiter Server:

Einstellung Wert Hinweis
URL des Servers https://www.example.org Bleibt das Hauptverzeichnis der Installation. Die Lizenz ist an diese URL gebunden.
URL der Administration https://admin.example.org Ohne /admin am Ende, die Domain zeigt direkt auf admin/.
URL der Befragungen (leer lassen) Nur ausfüllen, wenn die Projektordner unter einer anderen Basis-URL liegen als die Server-URL (siehe unten).

Klicken Sie auf Speichern.

URL der Administration verifizieren

Nach dem Speichern prüft der Server, ob die URL der Administration diese Installation erreicht. Erst nach dieser Prüfung wird die Trennung durchgesetzt:

Sobald die Trennung aktiv ist, verändert sich das Programmverhalten wie folgt.

Wenn Sie die URL der Administration oder der Befragungen später ändern, ist die Trennung bis zur erneuten Verifizierung aufgehoben.

Nicht betroffen sind die Schnittstellen api.php, interface.php, privacy.php und remote.php. Sie bleiben auch unter der Server-URL erreichbar, ebenso die bei SMS-Anbietern hinterlegten Report-URLs.

Optional: Projektordner außerhalb der Installation

Die Projektordner können in einem anderen Verzeichnis liegen als die Installation, z.B. auf einem eigenen Laufwerk. Tragen Sie den absoluten Pfad in der Datei system/config.php ein:

$GLOBALS['oFb']['path']['projects'] = '/var/www/projects';

Single-Sign-On (SSO)

Die Rücksprungadressen für das Single-Sign-On verwenden die URL der Administration.

OpenID Connect (OIDC): Registrieren Sie beim Identity-Provider als Redirect-URI https://admin.example.org/?sso=<Kennung> (die Kennung ist der Schlüssel des IdP in $GLOBALS['oFb']['sso']['idp']).

SAML (SimpleSAMLphp): Der Identity-Provider kennt nur die Adresse von SimpleSAMLphp, nicht die der Administration. In der Konfiguration von SimpleSAMLphp (config/config.php) ist Folgendes zu beachten.

Zwei-Faktor-Authentifizierung (FIDO2)

Sicherheitsschlüssel (FIDO2/WebAuthn) werden für die Domain registriert, unter der sie eingerichtet werden. Bei einer neuen Installation, die von Anfang an die eigene Domain für die Administration verwendet, ist nichts weiter zu tun. Wurden bereits Schlüssel unter der Server-URL eingerichtet, beachten Sie bitte den Abschnitt zu FIDO2 unter „Bestehende Server“.

Eigene URLs für Projekte

Eine aufgeschaltete URL eines Projekts darf nicht die Domain der Administration verwenden, SoSci Survey lehnt eine solche Eingabe ab. Projekte mit einer eigenen Domain sind weiterhin möglich.

Bestehende Server

Für einen Server, auf dem SoSci Survey bereits unter einer Domain läuft, gelten die Schritte für neue Installationen ab Abschnitt 1. Zusätzlich ist Folgendes zu beachten.

Update der Installation

Auswirkungen auf die Nutzer

Single-Sign-On

OpenID Connect (OIDC): Die Redirect-URI ändert sich, sobald die URL der Administration eingetragen ist, also bereits vor der Verifizierung. Identity-Provider, bei denen bisher https://www.example.org/admin/?sso=<Kennung> registriert ist, würden die Anmeldung dann ablehnen. Sie haben zwei Möglichkeiten:

  1. Der Identity-Provider registriert zusätzlich die neue Adresse https://admin.example.org/?sso=<Kennung>. Die meisten Anbieter erlauben mehrere Redirect-URIs, sodass die neue Adresse schon vor der Umstellung eingetragen werden kann.
  2. Oder Sie behalten die bisherige Adresse bei, indem Sie beim betreffenden IdP in system/config.php die Einstellung oidc.redirect ergänzen. Die Anmeldung kehrt dann zur alten Adresse zurück und wird an die Administration weitergeleitet:
$GLOBALS['oFb']['sso']['idp']['<Kennung>'] = [
    'label' => '...',
    'handler.file' => '...',
    'handler.class' => '...',
    'oidc.redirect' => 'https://www.example.org/admin',
];

SAML (SimpleSAMLphp): Solange SimpleSAMLphp unter seiner bisherigen Adresse bleibt, müssen die Identity-Provider nichts ändern. Ergänzen Sie aber vor der Umstellung trusted.url.domains und session.cookie.domain wie in Abschnitt 6 beschrieben.

Testen Sie die Anmeldung möglichst vorab auf einem Testsystem mit je einem Identity-Provider pro Verfahren.

FIDO2-Sicherheitsschlüssel

Bereits eingerichtete Sicherheitsschlüssel sind an die Domain der Server-URL (www.example.org) gebunden. Damit sie auch unter admin.example.org funktionieren, muss der Browser unter der Server-URL die Datei /.well-known/webauthn abrufen können (WebAuthn „Related Origins“). SoSci Survey erzeugt diese Datei mit dem Skript admin/webauthn.php.

Richten Sie auf dem virtuellen Host www.example.org eine interne Weiterleitung ein:

Konfiguration nginx

location = /.well-known/webauthn {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /var/www/sosci/admin/webauthn.php;
    fastcgi_pass <php-fpm>;
}

Konfiguration Apache

RewriteEngine On
RewriteRule ^/?\.well-known/webauthn$ /admin/webauthn.php [L]

Neue Sicherheitsschlüssel werden für die Domain der Administration registriert. Unterstützt ein Browser „Related Origins“ nicht, zeigt die Anmeldung einen Hinweis statt der alten Schlüssel. Die Person meldet sich dann mit einem anderen Faktor an und richtet den Sicherheitsschlüssel neu ein.

Projektordner verschieben

Sie können die Projektordner an einen anderen Ort verschieben:

  1. Verschieben Sie die Ordner und tragen Sie den neuen Pfad in system/config.php ein.
  2. Tragen Sie die zugehörige Adresse unter URL der Befragungen ein.
  3. Öffnen Sie Server-Verwaltung → Server-Wartung → Verzeichnisse überprüfen und wählen Sie unter Projektverzeichnisse wiederherstellen die Option „Index-Dateien (index.php) aller Projekte zurücksetzen“. Die Index-Dateien verweisen dann auf den neuen Ort der Installation.

Beachten Sie, dass dabei auch Index-Dateien ersetzt werden, die manuell angepasst wurden, z.B. für eine Weiterleitung zu einem anderen Projekt.