Nochmal: moodle, nextcloud und oauth2-Services

Hallo.
Ich habe mich nun nochmal an die Integration von Nextcloud in moodle „gewagt“ und stolpere über die gleichen Fehlermeldungen wie beim letzten Mal.

Wenn ich
Startseite --> Website-Administration --> Server --> OAuth 2-Services aufrufe und alles so eintrage wie es in der Doku steht, erhalte ich beim Verbinden des Systemaccounts mit der Nextcloud immer diese Meldung:

error/Could not discover end points for identity issuer: Nextcloud [URL: https://nextcloud.meine-domain.de/nextcloud/.well-known/openid-configuration]

Dieses Verzeichnis gibt es auf dem NC-Server auch nicht …
Wie habt Ihr das gelöst?

Viele Grüße,
Michael

Hallo Michael,
dieser .well-known-Ordner, ist das nicht der, für den man einen Redirect einrichten muss, um die Nextcloud „Sicherheits- & Einrichtungswarnungen“ unter „Einstellungen → Verwaltung → Übersicht“ wegzubekommen? Oder war der .well-known direkt nach der Domain? Gibt es den Ordner openid-configuration im Root Deines Nextcloud-Ordners?
LG
Max

Ich kann hier so einen Ordner überhaupt nicht finden … hast du den bei Dir?

nein, ich habe so einen Ordner nicht. Ggf. wird der von einem Plugin angelegt?

Weiter gefragt: Was möchtest Du genau erreichen? Ich kann als Nutzer im Dashboard das Moodle-Konto verknüpfen und dort Dinge sehen, finde das aber gar nicht nützlich. Also: was kann die Integration und lohnt sich die?

LG
Max

Hi. Die Idee ist ja genau umgekehrt: Daten, die man einmal in der NC hochgeladen hat, sollen direkt unter moodle zur Verfügung stehen – ohne sie erneut hoch-/runterladen zu müssen. Das wurde hier irgendwann schon mal diskutiert. Wie gut und performant das läuft, müssen aber die sagen, bei denen es funktioniert :slight_smile:
Viele Grüße,
Michael

Hallo,
Da wir gerade kein Moodle nutzen kann ich das nicht selber testen, aber soviel schonmal. Die .well-known bezieht sich nicht auf ein gesondertes Verzeichnis innerhalb der NC, sondern wird von NC selber bereit gestellt. In der NC Doku wird dafür auch zB für NGINX als Webserver folgendes eingetragen: (einsehbar hier)

location ^~ /.well-known {
        # The following 6 rules are borrowed from `.htaccess`

        location = /.well-known/carddav     { return 301 /remote.php/dav/; }
        location = /.well-known/caldav      { return 301 /remote.php/dav/; }
        # Anything else is dynamically handled by Nextcloud
        location ^~ /.well-known            { return 301 /index.php$uri; }

        try_files $uri $uri/ =404;
    }

Alles, was .well-known ist, wird also von der Index.php gehandhabt, abgesehen von CardDAV und CalDAV. Wenn ich jetzt in unserer NC aber einen OAuth2-Client eintrage und die von eurem Moodle angegebene URL Aufrufe, erhalte ich leider nur:

{"message":"openid-configuration not supported"}

Ich bin mir aber ziemlich sicher, das schon einmal am laufen gehabt zu haben, mit NC 21. Vielleicht komme ich die Tage dazu, den alten Moodle-Server nochmal zu starten um nachzuschauen, was da genau läuft.

LG,
Charles

Hallo Charles (und herzlich Willkommen im Forum)!
Wir haben unsere NC (aus historischen Gründen) auf einem Apache-Server laufen. Die beiden redirects von carddav und caldav sind dort auch eingerichtet – in deiner nginx-Konfiguration scheint es aber so zu sein, dass dieses „Anything else“ ebenfalls an die Nextcloud umgeleitet wird.
Den Eintrag habe ich hier nicht und die Syntax in der apache-Konfiguration müssten dazu auch etwas anders lauten – ich weiß jedoch nicht wie. Du?

Viele Grüße,
Michael

Herzlichen Dank für das Willkommen :slight_smile: Folge euch schon länger und hab jetzt mal eine Gelegenheit gesehen, auch einen kleinen Beitrag zu leisten.

Zur Frage von Apache. Ich habe jetzt keinen Apache mit einer NC bei Hand, aber generell sollte es eigentlich auch eine .htaccess geben in deinem NC-Root, wo diese Konfiguration vorhanden sein sollte. Existiert diese und, wenn ja, fehlt dir vielleicht das allow override in der Apache conf?

Ansonsten, aus dem Gedächtnis raus, ohne Garantie auf Richtigkeit müsste es ungefähr so aussehen:

Für die .htaccess:

<IfModule mod_rewrite.c>
  ...
  RewriteRule ^\.well-known/ /index.php$uri [R=301,L]
  ...
</IfModule>

Für deine virtualhost:

RewriteEngine On
RewriteRule  ^/.well-known/$ /index.php$1 [R=301,L]

Vor allem letzteres ist aber arg geraten, weil ich grad im Urlaub bin und es nicht eben mal schnell testen kann. Evtl kannst du ja mal kurz einen Auszug aus deiner .conf posten, resp den Inhalt deiner .htaccess? Dann kann man das abgleichen.

LG,
Charles

In der Zwischenzeit habe ich diese Anleitung gefunden, die viel weiter ins Detail geht.

Leider sind einige Dinge aber auch damit nicht klar:

  • Was bzw welcher Login ist gemeint, wenn von einem „Nextcloud Systemaccount“ gesprochen wird? Ist das der Admin-Account?

  • Zudem steht dort auf Seite 7, wie man die Endpoints konfigurieren soll. Das habe ich zwar getan – wenn ich sie jedoch nun wieder aufrufe, ist die Liste wieder leer. Beides ist seltsam … die Verbindung kommt hier weiterhin nicht zustande. Dabei wäre ein „kollaborativer Ordner“ (Plugin) eigentlich 'ne gute Sache: Einmal hochladen und überall benutzen!

  • Die Nutzerfeldzuordnung auf Seite 8 ist ebenfalls nicht ganz eindeutig. Sind das die Feldnamen, die Nextcloud intern verwendet?
    Viele Grüße,
    Michael

Hallo,
wir haben bei uns an der Schule zwar (noch) keine linuxmuster net, aber da ich bei der Fehlersuche auf diesen Thread gestoßen bin, teile ich gerne meine Suchergebnisse.

Sobald bei mir die neuste Nextcloud-Version (mit Patch) von unserem Anbieter eingespielt ist, werde ich die Funktionen in Moodle testen und kann bei Bedarf dann evtl. hier weiter helfen.

Liebe Grüße,
Simon

Hallo Simon,

recht herzlichen Willkommen hier bei uns und Danke für dein Angebot.

Beste Grüße

Thorsten

kleines Update:

  • Damit Zugriffsgesteuerte Links funktionieren, muss der Systemaccount mit allen Nutzern teilen können und umgekehrt. Hierfür musste ich diesen dann doch zum admin machen und da ich LDAP (für Nutzer und Gruppen) nutze außerdem das Teilen über Gruppengrenzen hinweg erlauben.
  • Das mit den zugriffsgesteuerten Links macht aber wohl nicht überall in Moodle Sinn. Ich muss noch ein wenig testen, um sinnvolle Anwendungsszenarien zu erkennen…
  • Gut funktioniert aber Nextcloud als Repo einzubinden oder öffentliche Links über Moodle zu setzen. Und das müsste auch ohne den Systemaccount funktionieren.

Beste Grüße,
Simon

Hallo!
Hast Du da für die Leute komplett ohne Vorstellung, was das bedeutet, mal ein konkretes Szenario (Screenshot o.ä.) damit ich mir vorstellen kann, was uns das bringt (wir haben Moodle und NC, bisher fand ich den Synergieeffekt (Moodle im Dashboard der NC) nicht wirklich gewinnbringend).
Danke und LG
Max

Gerne:

  • Die Integration geht in die andere Richtung. Wir können von Moodle auf die Dateien in der Nextcloud zugreifen.

  • Dateien aus der Cloud können dann entweder kopiert werden (kein Unterschied zu bisher, es ist wie ein Upload, eben nur aus einer anderen Quelle.

  • Interessanter ist es lediglich einen Link zur Datei anzulegen. So könnte ich als Lehrer mein Unterrichtsmaterial für die Schüler z.B. für mich logisch sortiert in der Cloud haben, zusammen mit dem Material, welches nur für mich bestimmt ist. Vorteil: Die Datei wird nicht mehrfach gespeichert (-> Speicherplatz auf dem Moodle-Server ist in der Regel teurer, als in einer gemanagten Cloud). Nachteil: Die Datei wird in der Cloud öffentlich mit Link geteilt.

  • Die Dritte Möglichkeit versucht den Nachteil auszugleichen und steuert den Zugriff auf den Link. Hier habe ich die Funktionsweise aber selbst noch nicht vollständig durchdrungen. Wenn jemand mehr weis, gerne her mit den Infos.
    grafik

LG,
Simon

Hallo Simon,

das habe ich vor einiger Zeit auch probiert, aber es hat nicht funktioniert. Es wurde immer eine Kopie der Datei in Moodle angelegt.
Klappt das jetzt mit Links aus dem NC-Repository?

Ein weiteres Problem war, dass ich mich jedes Mal in Moodle wieder an NC authentifizieren musste, wenn ich das NC-Repository nutzen wollte (2FA an NC). Das ist dann unökonomisch und vermutlich gehen dann auch verlinkte Dateien nicht.

Vielleicht ist aber bei der Config, wie ich das umgesetzt und getestet habe, etwas falsch.

Könntest du mal beschreiben, was du wo in NC und Moodle eingestellt hast, damit das ohne jedes Mal an NC anmelden und mit verlinkten Dateien klappt?

Viele Grüße
Steffen

Hallo Simon,
danke für die ausführliche Info. Coole sache! v.a. wenn ich Dokumente im Nachhinein nochmal ändern muss, muss ich sie nicht überall neu hochladen…
Ich denke „zugriffsgesteuerter Link“ macht den öffentlichen Link passwortgeschützt. Aber nur eine Vermutung.
LG
Max

Hallo Max,

Ich denke „zugriffsgesteuerter Link“ macht den öffentlichen Link passwortgeschützt.

Nein. Es wird kein Passwort gesetzt. Statt dessen wird die Datei in einen Ordner des Systemusers kopiert/verschoben und von dort mit denjenigen aktiv geteilt, die über Moodle Zugriff auf den „zugriffsgesteuerten“ Link haben.
Das bedeutet, dass alle Nutzer in dem Kurs, ihren Moodleaccount mit einem entsprechenden Account in der Nextcloud verbunden haben müssen. Wenn sie dann auf den zugriffsgesteuerten Link zugreifen, dann wird die Datei automatisch mit ihnen geteilt.
Falls nun ein Schüler einen solchen zugriffsgesteuerten Link in einer Abgabe nutzt, dann wird die Datei kopiert/verschoben und gleichzeitig mit dem Lehrer geteilt. Der Schüler hat dann keinen Schreibzugriff mehr, aber der Lehrer kann z.B. Anmerkungen ergänzen.

Soweit zumindest die Theorie. ABER: Bei mir funktioniert das nur beim ersten Zugriff. Danach erhalte ich einen Fehler, dass die Datei nicht via Webdav verschoben werden konnte. Und dieses Problem konnte ich bisher nicht lösen.

LG,
Simon

Hallo,

wenn ich beim bestehenden oauth-Service versuche, einen Systemaccount zu verbinden, erhalte ich die Fehlermeldung

error/moodle/Could not upgrade oauth token

Hat jemand einen heißen Tipp?

Viele Grüße
Steffen

Hallo Steffen,
eventuell bringt dich dieser Artikel auf moodle.org weiter.
VG Andreas

Hallo Andreas,

hm, ich stelle gerade fest, dass mir als Moodle-User noch nicht mal mehr das NC-Repository angezeigt wird, wenn ich eine Datei im Kurs anlegen will, obwohl das Repository (nach wie vor) aktiviert ist und die Haken gesetzt sind.
Das Repository konnte ich aber schon verwenden und mich als User mit der NC verbinden.

Viele Grüße
Steffen