Skip to content
Snippets Groups Projects
readme.md 4.35 KiB
Newer Older
Nextcloud-Plugin für Stud.IP
Rasmus Fuhse's avatar
Rasmus Fuhse committed
===========================

Mit diesem Plugin kann man ab der Stud.IP-Version 5.0 eine Nextcloud (oder OwnCloud) als persönlichen Dateibereich einbinden und von und zu der Nextcloud Dateien nach oder von Stud.IP kopieren.
Rasmus Fuhse's avatar
Rasmus Fuhse committed

## Installation

Moritz Strohm's avatar
Moritz Strohm committed
1. Das Plugin wird wie jedes gewöhnliche Stud.IP-Plugin installiert. Falls das OwnCloudPlugin im Stud.IP bereits
   installiert ist, wird dessen Konfiguration bei der Installation übernommen, sowohl die systemweite, als auch die
   persönliche. Bereits angebundene Nextcloud-Installationen können somit weiterhin mit Stud.IP genutzt werden,
   ohne dass sie neu in Stud.IP eingerichtet werden müssen.
2. Für OAuth in der Nextcloud hinter einem Apache braucht man das mod_rewrite und mod_env Modul, das die Regel
   `RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]` umsetzt. Wenn das nicht aktiv ist, kann OAuth
   nicht funktionieren, weil der Apache alle Authorization-Header entfernt.
3. Es muss in Nextcloud ein Client angelegt werden: Dazu öffnet man „Verwaltungs-Einstellungen“ -> „Sicherheit“ und
   trägt unter „OAuth 2.0-Clients“ einen Client für Stud.IP ein. Im Feld „Weiterleitung“
   trägt man die Redirect-URI ein, mit der das NextcloudPlugin das Zugriffstoken von Nextcloud
   erhält. Sie ist in der folgenden Form:
   `https://meinstud.ip/plugins.php/nextcloudplugin/oauth/receive_access_token`
   „meinstud.ip“ muss durch den Basispfad (oft die Domain) des Stud.IP ersetzt werden.
4. Nachdem der OAuth2-Client in Nextcloud erstellt wurde, müssen das
   Client-Identifikationsmerkmal und das Geheimnis in Stud.IP eingetragen werden. Dafür
   gibt es zwei Möglichkeiten: Zentral (eine Nextcloud für das gesamte Stud.IP) oder
   individuell (jede Person bindet eine eigene Nextcloud an).
Rasmus Fuhse's avatar
Rasmus Fuhse committed

Zentral:
Rasmus Fuhse's avatar
Rasmus Fuhse committed

1. Melde Dich im Stud.IP als Root an und gehe unter Admin -> System -> Konfiguration -> Nextcloud.
Moritz Strohm's avatar
Moritz Strohm committed
2. Trage das oben gewonnene Client-Identifikationsmerkmal in die Einstellung `NEXTCLOUD_CLIENT_ID` ein.
3. Trage das oben gewonnene Geheimnis in die Einstellung `NEXTCLOUD_CLIENT_SECRET` ein.
Rasmus Fuhse's avatar
Rasmus Fuhse committed

Rasmus Fuhse's avatar
Rasmus Fuhse committed
Individuell:

Moritz Strohm's avatar
Moritz Strohm committed
1. Personen müssen alleine die obigen Schritte durchführen bzw. deren Nextcloud-Administration fragen, ob diese das für ihn tun kann und die Zugangsdaten zurücksenden kann.
2. Im persönlichen Dateibereich von Stud.IP 5.0 gibt es in der Seitenleiste den Punkt "Nextcloud konfigurieren". Dieser muss ausgewählt werden, um die Nextcloud zu konfigurieren.
3. Im sich öffnenden Dialog muss die Adresse der Nextcloud eingetragen werden (z.B. `https://meineuni/nextcloud`). Bei App-ID wird das Client-Identifikationsmerkmal eingetragen, bei Secret das Geheimnis. Sobald der Haken bei „Aktiviert“ gesetzt wurde und auf „Speichern“ geklickt wurde, ist die Nextcloud mit Stud.IP verknüpft.
Rasmus Fuhse's avatar
Rasmus Fuhse committed

Die nächsten Schritte sind für beide Wege wieder dieselben:
Rasmus Fuhse's avatar
Rasmus Fuhse committed

1. Wer es individuell eingestellt hat, kennt es schon: Im persönlichen Dateibereich von Stud.IP 5.0 gibt es in der Sidebar den Punkt "Nextcloud konfigurieren". Da muss man drauf klicken.
2. Man muss das Häkchen für "aktiviert" setzen und speichern.
3. Das Fenster lädt sich neu und ein Button erscheint oben "Nextcloud für Stud.IP freigeben". Dort klicken.
4. Dann landet man in der Nextcloud und wird aufgefordert sich anzumelden. Vergewissern Sie sich in solchen Situationen immer (nicht nur jetzt), dass die URL stimmt und Sie Ihre Passwörter nicht einer anderen Seite als genau Ihrer Nextcloud zusenden.
5. Die Nextcloud fragt Sie, ob Stud.IP in Ihrem Namen Daten abrufen und verändern darf. Klicken Sie auf "Authorisieren".
6. Jetzt landen Sie wieder in Stud.IP und die Schnittstelle zwischen Stud.IP und Nextcloud sollte eingerichtet sein.
Rasmus Fuhse's avatar
Rasmus Fuhse committed

Probleme?

* Manchmal scheint fast alles zu funktionieren. OAuth-Access-Token ist da, Refresh-Token ist da und der Refresh scheint auch zu klappen, aber es werden keine Dateien und Ordner angezeigt. Es erscheint stattdessen eine Fehlermeldung: "No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured, No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured, No 'Authorization: Bearer' header found. Either the client didn't send one, or the server is mis-configured". In dem Fall muss man vermutlich in die Datei .htaccess die Zeile einbauen `SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1`