URL der Kontakte

Hallo Zusammen,

im Laufe des Augusts hat sich wohl einiges bei den Kontakten verändert, was ich prinzipiell gut finde. Allerdings ist es für uns zu einem großen Problem geworden, da ich keine Doku dazu finde. Konkret:

Die Mehrheit unserer Kontakte ist als VCards mit der Nextcloud synchronisiert. D.h., wir nehmen die Daten aus dem Schulverwaltungssystem, erstellen daraus VCards und synchronisieren diese per vdirsyncer mit der Nextcloud. Das läuft alles prima.

Allerdings haben wir bisher über den Tag “RELATED” die Kontakte über ihre URLs mit einander verbunden. Tolle Sache!

Die URL war leicht zu generieren, das sie über die einfach über die UID lief.

Das haben wir Anfang August zum Schuljahreswechsel auch noch getestet. Doch Anfang September steht, wenn man einen Konktakt aufruft dort keine URL mit der UID, sondern ein Token.

Klar, bei sensiblen Daten war die alte Lösung natürlich ein Sicherheitsproblem.

Doch, wie komme ich an das Token?

Ich habe alle changelogs durchsucht und keinen Eintrag dazu gefunden.

Ich nehme an, dass es dazu einen API-Aufruf gibt. Doch wo finde ich die Doku dazu?

Hat jemand eine Idee?

Für uns ist das Problem tatsächlich sehr ärgerlich, da wir auf dem Wege die Eltern und die Schulkinder miteinander verbunden haben. Das war ein gerne genutztes Feature!

Auch ja, wir nutzen NC 31.0.9 mit aktuellen Apps.

Vielen Dank!

Liebe Grüße
Jason

Ich versuche es mal kürzer und konkreter darzustellen:

Anfang August konnten wir Kontakte noch in folgender Form aufrufe:

https://unserurl.de/apps/contacts/Alle Kontakte/UUID~Adressbuch

Jetzt sieht die URL eines Kontaktes so aus:

https://unsereurl.de/apps/contacts/Alle Kontakte/UFBJRC0zMDMxfmVsdGVybl9zaGFyZWRfYnlfc2NodWxl

Ich suche jetzt nach einem Weg, aus UUID und Adressbuch das Token zu machen.

1 Like

Hi,

hier ist die Änderung dazu: fix: routing based on base64 encoding by st3iny · Pull Request #4615 · nextcloud/contacts · GitHub .

Also base64 von uid~addressbookuri.

Es soll auch einen Fallback geben, bei mir funktioniert der allerdings auch nicht.

Der Fallback funktioniert mit der richtigen Route :see_no_evil_monkey:

Beispiel: https://server.internal/index.php/apps/contacts/direct/contact/admin~z-server-generated--system

Also falls dein System kein base64 erzeugen kann, dann kannst du das alte Schema weiterverwenden, indem auf /contacts/direct/contact/admin~z-server-generated--system verlinkt wird.

4 Likes

Vielen Dank, für die schnelle Antwort!

Nach genügend langem Suchen im Quelltext, habe ich das mit dem base64 auch gerade gefunden und sofort umgesetzt.

Der Import der Kontakte auf dem DevServer läuft noch, aber die ersten importierten Kontakte klappen schon. :slight_smile:

Ich gehe mal davon aus, dass die Lösung über „direct“ auch nur eine Übergangslösung ist und die Base64-Codierung wohl bleibend. Also bin ich froh, lieber auf die Codierung setzen zu können, zumal die Umsetzung ja wirklich einfach ist.

Bei so einer grundlegenden Änderung hätte ich mir eine deutlichere Meldung im changelog gewünscht. Bei „fix:“ denke ich eher an eine Fehlerbehebung, als an etwas komplett Neues.

Aber ich bin froh, überhaupt eine Lösung zu haben. Und es zeigt sich: Die Community funktioniert! :+1:

5 Likes

Im Nachhinein frage ich mich, wie hilfreich die Base64-Verschlüsselung ist. Bei Base64 handelt es sich ja lediglich um eine Codierung, die sich genauso umkehren lässt.

Der vermeintliche Sicherheitsgewinn bezieht sich somit nur darauf, dass der unbedarfte Anwender weder die UID noch das Adressbuch erkennt.

Ich hatte zuerst angenommen, dass es sich um eine echte Verschlüsselung (über einen API-Aufruf) handelt.

Was bringt eine einfache Codierung?

Die Base64-Codierung löst das Problem, dass durch Slashes in der UID das routing zerstört wurde.

Ref: Slashes in vCard UIDs break routing · Issue #4603 · nextcloud/contacts · GitHub

1 Like

Danke! So verstehe ich es wenigstens.

1 Like

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.