Newer
Older
Nextcloud-Plugin für Stud.IP
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.
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).
1. Melde Dich im Stud.IP als Root an und gehe unter Admin -> System -> Konfiguration -> Nextcloud.
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.
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.
Die nächsten Schritte sind für beide Wege wieder dieselben:
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.
* 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`