OAuth2 Nextcloud Service: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Zum Überarbeiten}}
{{OAuth2}}
{{Neu}}
 
== Nextcloud-Konfiguration ==  
== Nextcloud-Konfiguration ==  
Für die Integration von Nextcloud in Moodle benötigen Sie die Nextcloud Version 14.0.4 (oder neuer). Wenn Sie bislang eine ältere Version verwenden, müssen Sie erst [https://docs.nextcloud.com/server/14/admin_manual/maintenance/upgrade.html Nextcloud aktualsieren]. Danach müssen Sie [https://docs.nextcloud.com/server/14/admin_manual/configuration_server/oauth2.html#add-an-oauth2-application Moodle als einen OAuth2 Client registrieren]. Das geht folgendermaßen:
Für die Integration von Nextcloud in Moodle benötigen Sie die Nextcloud Version 14.0.4 (oder neuer). Wenn Sie bislang eine ältere Version verwenden, müssen Sie erst [https://docs.nextcloud.com/server/14/admin_manual/maintenance/upgrade.html Nextcloud aktualsieren]. Danach müssen Sie [https://docs.nextcloud.com/server/14/admin_manual/configuration_server/oauth2.html#add-an-oauth2-application Moodle als einen OAuth2 Client registrieren]. Das geht folgendermaßen:
Zeile 11: Zeile 9:
# Klicken Sie auf ''Hinzufügen'' (''Add''). Danach sieht die Seite etwa so aus:
# Klicken Sie auf ''Hinzufügen'' (''Add''). Danach sieht die Seite etwa so aus:


[[Image:nextcloud-moodle-client.png|600px]]
[[Image:nextcloud-moodle-client.png|1000px]]


Nun kann Ihre Moodle-Site sich über eine OAuth2-Authentifzierung mit  Nextcloud verbinden.
Nun kann Ihre Moodle-Site sich über eine OAuth2-Authentifzierung mit  Nextcloud verbinden.
Zeile 17: Zeile 15:
== Moodle-Konfiguration ==
== Moodle-Konfiguration ==


After you have [[#Nextcloud configuration|set up Nextcloud]], you can configure Moodle.
Nachdem Sie [[#Nextcloud-Konfiguration|Nextcloud vorbereitet]] haben, können Sie Moodle konfigurieren:


# Go to ''Site administration > Server > OAuth 2 services'' and click '''Create new Nextcloud service'''.
# Gehen Sie auf die Seite ''Website-Administration > Server > OAuth 2-Services'' und klicken Sie auf den Button ''Neuen Nextcloud-Service anlegen''.
# On the next page, enter the '''Name''' of your Nextcloud, the '''Client ID''' and '''Client secret''' (as seen in the Nextcloud admin interface in the screenshot above) and the '''Service base URL''' which is the URL of your Nextcloud. If you use a custom Nextcloud '''Logo''', specify its URL, too.<br>[[File:nextcloud-issuer-settings.png|400px]]  
# Auf der nächsten Seite tragen Sie den ''Namen'', die ''Client ID'' und das ''Client-Secret'' Ihrer Nextcloud-Installation ein (wie auf der Nextcloud-Administrationsseite im Screenshot oben angezeigt). Unter  ''Service-Basis-URL'' geben Sie die URL Ihrer Nextcloud-Installation ein. Wenn Sie ein eigenes Nextcloud-Logo verwenden, geben Sie die ''Logo-URL'' an. i<br><br>[[File:nextcloud-issuer-settings.png|500px]]<br><br>
# You do not need to change any other settings. Click '''Save changes'''.
# Alle anderen Voreinstellungen können Sie beibehalten Klicken Sie auf ''Änderungen speichern''.


Afterwards, you can use the Nextcloud service from your Moodle, for example from the [[Nextcloud repository]].
Jetzt können Sie den Nextcloud-Service in Ihrer Moodle-Site verwenden, z.B. über das [[Nextcloud Repository]].
 
[[File:nextcloud-issuer-configured.png|none]]


[[File:nextcloud-issuer-configured.png|800px]]


==Fehlerbehandlung==
==Fehlerbehandlung==
Bei der Konfiguration können einige Fehler auftreten, so dass Moodle und Nextcloud nicht richtig miteinander kommunizieren. Hier kommen einige mögliche Fehler und passende Lösungsvorschläge:


There are some configuration mistakes that might prevent Moodle from communicating with Nextcloud properly. Some of them are due to the fact that you can host Nextcloud on your own and that it is easy to make mistakes that are hard to spot at first. However, this list will help you resolve them.
; Ich kann kein System-Nutzerkonto verbinden: Melden Sie sich zuerst aus Nextcloud ab. Stellen Sie sicher, dass das System-Nutzerkonto verschieden von allen individuellen Nutzerkonten ist. Das System-Nutzerkonto muss ein Konto sein, das Moodle gehört und keiner Person. Prüfen Sie auch die Einstellungen Ihres OAuth2 Nextcloud Services. Die Checkbox ''Authentifizierungstoken-Anforderungen über HTTP-Header'' muss mit einem Häkchen markiert sein!
 
; Die Authentifizierung scheint zu funktionieren, aber der Datei-Browser zeigt keine Dateien an.: Es kann sein, dass HTTPS auf der Nextcloud-Seite nicht richtig konfiguriert ist. Sie benötigen ein gültiges und vertrauenswürdiges Zertifikat für Ihren Nextcloud-Server! Ein selbstsigniertes Zertifikat wird nicht funktionieren. Anders als im Browser können Sie bei der Verbindung Moodle - Nextcloud einem selbstsignierten Server-Zertifikat nicht manuell "vertrauen". Sie sollten auch prüfen, dass auf dem Nextcloud-Server die Apache-Module '''rewrite''', '''headers''' und '''env''' installiert und aktiviert sind.
; I cannot connect a system account. : Log out from Nextcloud first. Make sure the Nextcloud account that you want to connect as a system account is different from all personal accounts. It has to be an account that belongs to Moodle, not to a person. Also, check the issuer settings. The checkbox '''Authenticate token requests via HTTP headers''' must be enabled!
; Nach der Anmeldung in Nextcloud bekomme ich die Fehlermeldung ''This request is not valid. Please contact the administrator of [your Moodle Name] if this error persists.''. : Es kann sein, dass Sie in der Nextcloud-Konfiguration die falsche Redirection-URI angegeben haben. Es ist wichtig, dass diese mit '''/admin/oauth2callback.php''' endet und dass sie exakt mit der URL übereinstimmt, die Moodle an Nextcloud schickt, wenn es sich verbindet!
; Authentication seems to have succeeded, but the filepicker shows "There are no files". : It is possible that HTTPS is not configured correctly on the Nextcloud end. You need a ''valid'' and ''trusted'' certificate for your Nextcloud server! A self-signed certificate will not work. Unlike in the browser, you cannot manually "trust" a self-signed server certificate. You should also check that the Apache modules "rewrite", "headers" and "env" are installed and enabled in the Nextcloud server.
; Wenn ich auf einen zugriffsgesteuerten Link zugreifen, autorisiere ich Moodle, aber ich kann die Datei nicht sehen. : In älteren Nextcloud Versionen (vor 14.0.1) wird die Nextcloud-Browser-Session beendet, sobald Sie Moodle autorisieren. Wenn Sie auf eine neuere Nextcloud Version aktualisieren, sollte das Problem behoben sein.
; After signing in with Nextcloud I get an error that says "This request is not valid. Please contact the administrator of [your Moodle Name] if this error persists.". : You might have entered the wrong ''Redirect URI'' in Nextcloud. It is important that it ends with '''/admin/oauth2callback.php''' and that it corresponds '''exactly''' to the URL that Moodle is going to send to Nextcloud when attempting to authenticate!
; Seit ich ein System-Nutzerkonto verbinde, ist Moodle sehr langsam.: Nextcloud hat einen Schutz vor Brute-Force-Attacken, der vor Version 14.0.3 etwas naiv war. Wenn dieser Schutz aktiviert ist, werden in einigen Fällen einige Moodle-Anfragen verlangsamt (obwohl Moodle natürlich keine Brute-Force-Attacke auf Nextcloud startet!). Aktualisieren Sie Ihren Nextcloud-Server. Zusätzlich können Sie die [https://apps.nextcloud.com/apps/bruteforcesettings "Brute-force settings" App für Nextcloud] herunterladen. Nach der Installation fügen Sie die IP-Adresse Ihres Moodle-Servers zur Whitelist hinzu.
; When I access an access controlled link I authorise Moodle but then cannot see the file. : In older Nextcloud versions (prior to 14.0.1), when you authorise Moodle, your Nextcloud browser session ends. Upgrade to a recent Nextcloud version (see [[#Nextcloud configuration]]) to resolve this.
; Wenn ich einen zugriffsgesteuerten Link anlege, bekomme ich die Fehlermeldung ''Cannot download this file''. : Das kann passieren, wenn das System-Nutzerkonto nicht richtig verbunden ist. Gehen Sie auf die Seite ''Website-Administration > Server > OAuth 2-Services'' und verbinden Sie das Nextcloud-Systemkonto erneut.
; Since I connected a system account, Moodle is very slow : Nextcloud has a brute-force protection that was somewhat naïve (prior to 14.0.3). When enabled, it slows down some Moodle requests in some cases (even though the Moodle plugin is definitely not going to brute-force your Nextcloud!). First, upgrade to a recent Nextcloud version (see [[#Nextcloud configuration]]) to resolve this. As an additional measure, you can download the [https://apps.nextcloud.com/apps/bruteforcesettings "Brute-force settings" app for Nextcloud]. After installation, add the IP of your Moodle server to the whitelist.
; When I try to create an access controlled link I get a "Cannot download this file" error. : This may happen if the system account is not connected. Go to ''Site administration > Server > OAuth 2 services'' and try to connect again the Nextcloud system account.


[[Category:OAuth2]]
[[Category:OAuth2]]
[[en:OAuth 2 Nextcloud service]]
[[en:OAuth 2 Nextcloud service]]

Aktuelle Version vom 2. Mai 2019, 11:51 Uhr

Nextcloud-Konfiguration

Für die Integration von Nextcloud in Moodle benötigen Sie die Nextcloud Version 14.0.4 (oder neuer). Wenn Sie bislang eine ältere Version verwenden, müssen Sie erst Nextcloud aktualsieren. Danach müssen Sie Moodle als einen OAuth2 Client registrieren. Das geht folgendermaßen:

  1. Melden Sie sich als Administrator/in in Nextcloud an.
  2. Öffnen Sie das Menü oben rechts und wählen Sie die Option Einstellungen (Settings). Auf der nächsten Seite wählen Sie links im Abschnitt Administration den Eintrag Sicherheit (Security) On the next page, select the Security item in the "Administration" section on the left.

    nextcloud-oauth2-settings.png

  3. Oben auf der nächsten Seite sehen Sie die Liste der registrierten Clients (anfangs ist dieseListe leer). Unter Client hinzufügen (Add client) geben Sie im Feld Name den Namen Ihrer Moodle-Site ein (z.B. Mount Orange School Moodle). Dieser Name wird Ihren Moodle-Nutzer/innen angezeigt.
  4. Im Feld Redirection URI geben Sie die URL Ihrer Moodle-Installation, gefolgt von /admin/oauth2callback.php (also z.B. https://school.demo.moodle.net/admin/oauth2callback.php).
  5. Klicken Sie auf Hinzufügen (Add). Danach sieht die Seite etwa so aus:

nextcloud-moodle-client.png

Nun kann Ihre Moodle-Site sich über eine OAuth2-Authentifzierung mit Nextcloud verbinden.

Moodle-Konfiguration

Nachdem Sie Nextcloud vorbereitet haben, können Sie Moodle konfigurieren:

  1. Gehen Sie auf die Seite Website-Administration > Server > OAuth 2-Services und klicken Sie auf den Button Neuen Nextcloud-Service anlegen.
  2. Auf der nächsten Seite tragen Sie den Namen, die Client ID und das Client-Secret Ihrer Nextcloud-Installation ein (wie auf der Nextcloud-Administrationsseite im Screenshot oben angezeigt). Unter Service-Basis-URL geben Sie die URL Ihrer Nextcloud-Installation ein. Wenn Sie ein eigenes Nextcloud-Logo verwenden, geben Sie die Logo-URL an. i

    nextcloud-issuer-settings.png

  3. Alle anderen Voreinstellungen können Sie beibehalten Klicken Sie auf Änderungen speichern.

Jetzt können Sie den Nextcloud-Service in Ihrer Moodle-Site verwenden, z.B. über das Nextcloud Repository.

nextcloud-issuer-configured.png

Fehlerbehandlung

Bei der Konfiguration können einige Fehler auftreten, so dass Moodle und Nextcloud nicht richtig miteinander kommunizieren. Hier kommen einige mögliche Fehler und passende Lösungsvorschläge:

Ich kann kein System-Nutzerkonto verbinden
Melden Sie sich zuerst aus Nextcloud ab. Stellen Sie sicher, dass das System-Nutzerkonto verschieden von allen individuellen Nutzerkonten ist. Das System-Nutzerkonto muss ein Konto sein, das Moodle gehört und keiner Person. Prüfen Sie auch die Einstellungen Ihres OAuth2 Nextcloud Services. Die Checkbox Authentifizierungstoken-Anforderungen über HTTP-Header muss mit einem Häkchen markiert sein!
Die Authentifizierung scheint zu funktionieren, aber der Datei-Browser zeigt keine Dateien an.
Es kann sein, dass HTTPS auf der Nextcloud-Seite nicht richtig konfiguriert ist. Sie benötigen ein gültiges und vertrauenswürdiges Zertifikat für Ihren Nextcloud-Server! Ein selbstsigniertes Zertifikat wird nicht funktionieren. Anders als im Browser können Sie bei der Verbindung Moodle - Nextcloud einem selbstsignierten Server-Zertifikat nicht manuell "vertrauen". Sie sollten auch prüfen, dass auf dem Nextcloud-Server die Apache-Module rewrite, headers und env installiert und aktiviert sind.
Nach der Anmeldung in Nextcloud bekomme ich die Fehlermeldung This request is not valid. Please contact the administrator of [your Moodle Name] if this error persists..
Es kann sein, dass Sie in der Nextcloud-Konfiguration die falsche Redirection-URI angegeben haben. Es ist wichtig, dass diese mit /admin/oauth2callback.php endet und dass sie exakt mit der URL übereinstimmt, die Moodle an Nextcloud schickt, wenn es sich verbindet!
Wenn ich auf einen zugriffsgesteuerten Link zugreifen, autorisiere ich Moodle, aber ich kann die Datei nicht sehen.
In älteren Nextcloud Versionen (vor 14.0.1) wird die Nextcloud-Browser-Session beendet, sobald Sie Moodle autorisieren. Wenn Sie auf eine neuere Nextcloud Version aktualisieren, sollte das Problem behoben sein.
Seit ich ein System-Nutzerkonto verbinde, ist Moodle sehr langsam.
Nextcloud hat einen Schutz vor Brute-Force-Attacken, der vor Version 14.0.3 etwas naiv war. Wenn dieser Schutz aktiviert ist, werden in einigen Fällen einige Moodle-Anfragen verlangsamt (obwohl Moodle natürlich keine Brute-Force-Attacke auf Nextcloud startet!). Aktualisieren Sie Ihren Nextcloud-Server. Zusätzlich können Sie die "Brute-force settings" App für Nextcloud herunterladen. Nach der Installation fügen Sie die IP-Adresse Ihres Moodle-Servers zur Whitelist hinzu.
Wenn ich einen zugriffsgesteuerten Link anlege, bekomme ich die Fehlermeldung Cannot download this file.
Das kann passieren, wenn das System-Nutzerkonto nicht richtig verbunden ist. Gehen Sie auf die Seite Website-Administration > Server > OAuth 2-Services und verbinden Sie das Nextcloud-Systemkonto erneut.