-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eine Matrix-Domain für mehreren Organisationen #176
Comments
Hallo @benkuly , Unsere finale Erkenntnis war, dass die Spec es grundsätzlich nicht verbietet. Wir würden das Thema aber gerne im Rahmen von einem der geplanten Tech-Talks genauer betrachten bzw. erzählt bekommen. Tatsächlich auch mit dem Ziel den Vorschlag in der Präsentation auf die Probe zu stellen und zu schauen, ob es wirklich keine verhindernden Gründe gibt. Wäre das eine Option? Gruß, |
Ich finde der Begriff "Matrix-Domain", wie er überall in der Spec verwendet wird, lässt keine Interpretation zu, die es erlauben würde mehrere Organisationen pro Matrix-Domain zu erlauben. Vor allem im Teil Berechtigungskonzept wäre der Begriff "Organisation" an mancher Stelle eindeutiger, um Domain von Organisation zu trennen. Dennoch können wir dies gerne in Tech-Talks behandeln. |
We were also doing our architecture design following the discussions 1,5 years ago. |
Aus unserer Sicht ist eine Domain pro Organisation absolut notwendig. Matrix ist ein dezentrales Protokoll und Domains eignen sich optimal für die Identifikation von juristischen Personen (So funktioniert das Internet). Neben einer Domain pro Organisation MUSS ein Matrix Homeserver die jeweiligen Organisationen im Backend logisch trennen. Wenn der Homeserver das nicht kann, dann MUSS man einen Matrix Homeserver pro Organisation nehmen und diese logisch trennen. Das kann man sehr gut betreiben und ist keine so große Herausforderung. Wenn man nicht einen Matrix Homeserver pro Organisation betreiben möchte, dann MUSS man einen Matrix Homeserver nehmen der mandantenfähig ist und eine logische Trennung macht. Hier MUSS aus unserer Sicht der Nachweis erbracht werden, dass es hier auch wirklich zu einer logischen Trennung kommt. Am Ende des Tages ist die Diskussion hier alleinig relevant für die Kostenseite bei den FD Anbietern. PS: Bzgl der Diskussion um Python (Da Synapse vermutlich der Homeserver der Wahl ist). Als Anbieter ist man verpflichtet einen SDLC, SLA, etc. nachzuweisen. Das heißt wenn man ein Python Produkt betreibt, wo man nicht der PO ist, MUSS man entweder entsprechende Serviceverträge mit den Herstellern des Produktes eingehen, oder die eigenen Fähigkeiten aufbauen. Wie will man ansonsten denn sicherstellen, dass alles wie gewünscht läuft und Fehler entsprechend schnell gelöst werden. |
In der aktuellen Version der Spec können mehrere Messenger-Services innerhalb eines Fachdienstes betrieben werden (https://gemspec.gematik.de/docs/gemSpec/gemSpec_TI-M_Basis/latest/#2). Daher gehe ich davon aus, dass sich dieses Thema erledigt hat. |
@Johennes Nein das Thema ist nach wie vor offen. Fachlich: Ein Krankenhaus kann z. B. mehrere SMC-B/BSNR/etc. haben und ist dadurch gezwungen, auch mehrere Domains mit mehreren Messenger-Services zu nutzen. Dadurch ist kein klassisches Inhouse-Messaging über TIM mehr möglich. Auch Verbände möchten ihren Mitgliedern ggf. einen TIM auf ihrer Domain anbieten. Auch das ist nach meinem Verständnis nicht wirklich möglich. Technisch Der Homeserver Synapse, den nach meinem Kenntnisstand fast alle TIM-Mitbewerber nutzen, ist nicht Multi-Domain fähig. Dadurch ergibt sich der Bedarf, für jede winzige Organisation eigene Infrastruktur hochzufahren. Das skaliert aber ökonomisch überhaupt nicht, selbst wenn man davon ausgeht, dass alles in Containern läuft. Klima Aufgrund der technischen Beschränkungen ergibt sich ein massiver unnötiger Ressourcenmehrverbrauch. Ich kenne die Lösung nicht und habe sie mit euch (gematik) seit 3 Jahren regelmäßig mit immer wechselden Teammitgliedern diskutiert. Das Problem bleibt aber dennoch bestehen und ist meiner Meinung nach nicht zu unterschätzen, weil sich dadurch ergibt, ob ein Nutzer nun 10 Cent oder 10 Euro im Betrieb kostet. |
Sorry, ich glaube ich habe die Problematik bisher nicht richtig verstanden. Es scheint im Kern eigentlich gar nicht um Domains zu gehen sondern darum aus Wirtschaftlichkeitsgründen mehrere Organisationen auf demselben Messenger-Service (= Homeserver + Proxy) zu betreiben, richtig? |
Prinzipiell schon ja. Bedeutet aber auch, dass eine Domain von mehrere Organisationen verwendet werden kann. Quasi eine logische Trennung. Das ist auch ohne weiteres durch den Proxy möglich (PoC haben wir bereits schon vor 2,5 Jahren gezeigt). Dennoch habt ihr bisher bei der gematik dagegen argumentiert, da anderer Proxies in der Föderation diese Trennung nicht kennen und daher nicht die selbe Prüfung durchführen können, wir der logische-trennung-proxy. |
Ok, ich habe mir intern nochmal historischen Kontext zu diesem Thema geholt.
Ich glaube das ist genau der Knackpunkt. Der ausgehende Proxy könnte die logische Trennung auflösen. Der eingehende allerdings nicht, so dass hier Proxy-Prüfungen wegfallen müssten. Ich finde insgesamt ist es eine gute Idee aus Gründen der Wirtschaftlichkeit mehrere Organisationen auf einem Homeserver zu kombinieren. Der Gedanke dafür dieselbe Domain zu verwenden scheint aber Nachteile zu haben und rührt wahrscheinlich auch daher, dass Synapse momentan nicht multi-domain-fähig zu sein scheint. Anstatt die TIM-Spec an diese Feature-Lücke von Synapse anzupassen fände ich es daher besser darauf hinzuwirken, dass Synapse das fehlende Feature in Zukunft erhält. |
Ich denke vor allem die fachliche Probleme wie hier beschrieben sollten gelöst werden und das ist Stand jetzt mit mehreren Domains nicht möglich. Die einfachste Lösung wäre halt auf die doppelte Einladungs-Prüfung zu verzichten, wobei ich mich sogar gerade Frage, ob das mit der aktuellen Vorab-Spec überhaupt noch der Fall wäre. |
Hm, soweit ich sehe haben wir momentan folgende Einschränkungen an der CS-API:
An der SS-API haben wir Invites nicht explizit eingeschränkt. Allerdings gibt es diese generischen Einschränkungen:
Wenn jetzt jemand mehrere Organisationen hinter einer Domain betreibt, dann müsste doch jede Organisation einen Eintrag in die Föderationsliste einpflegen. Wenn es dort mehrere Einträge mit derselben Domain gibt, wäre es dann bei allen eingehenden Prüfungen aber unmöglich die Domain in die sendende Organisation aufzulösen. Im Extremfall könnte eine Organisation dann gar nicht mehr in der Föderationsliste stehe und trotzdem noch ander Föderation teilnehmen weil die eingehenden Prüfungen das gar nicht feststellen können. |
Stimmt, genau das war das Problem. Dennoch könnte dieses Verhalten ja durch entsprechende automatisierte Tests und ggf. sogar im Sicherheitsgutachten überprüft werden. Aber nach meinem letzten Stand ist die gematik nicht dazu bereit, diesen Kompromiss einzugehen und setzt weiterhin auf Multi-Domain (auch wenn dies verschiedene fachliche Anwendungsfälle komplett ausklammert). |
Aus SI-Sicht kann ich das als nicht-SI-Mensch leider nur teilweise bewerten. Wir würden hier allerdings eine harte Sicherheitsprüfung im Betrieb durch einen Zulassungstest und ein Gutachten ersetzen. Ein gewisser Abstrich scheint mir das schon zu sein. Kannst du vielleicht nochmal die fachlichen Probleme erläutern, die du bei einem 1:1-Mapping von Organisationen und Domains siehst?
Könnten mehrere Homeserver in einem Krankenhaus nicht einfach in-house föderieren? Spielst du darauf an, dass Dinge wie das User Directory hier nur lokal verfügbar wären? Den Fall mit den Verbänden verstehe ich auch nicht ganz. Sorry, ist mit Sicherheit fehlendes Domainwissen (😜) auf meiner Seite. |
Ja, es gibt kein gemeinsames user directory. Außerdem springt aufgrund der Föderation die vom Nutzer hinterlegte Berechtigungsprüfung an. Mal davon abgesehen, dass sich ein Krankenhaus berechtigterweise fragen wird, warum er denn jetzt mehrere Fachdienste einkaufen und bezahlen muss.
Gespräche mit verschiedenen Verbänden hat ergeben, dass sie gerne ihren Mitgliedern einen oder mehrere TIM-Accounts anbieten wollen. Beispielsweise für Einzelpraxen. Nach meinem Verständnis ist das nicht möglich ohne Domain-Trennung. Am Ende bedeutet es, dass für jede noch so kleine Organisation eine eigene Domain notwendig ist, was insgesamt auch Verwirrung stiften könnte, weil es dann massenweise Matrix-IDs nach folgendem Schema geben wird: |
Ok danke, verstanden. Mir ist mittlerweile noch von einem Mitlesenden ohne GitHub-Account folgendes zugetragen worden:
|
Vielleicht könnten wir das Thema mal von einer anderen Seite her betrachten. Was müsste sich technisch ändern damit die Föderationsprüfung bei eingehender Kommunikation auch dann möglich ist wenn mehrere Organisationen hinter derselben Domain hängen? Dass wir hier anstatt der aktuellen Proxyprüfung auf Tests oder Gutachten setzen kann ich mir momentan nur schwer vorstellen. Vielleicht gibt es aber Möglichkeiten diese Problem technisch zu lösen. Wäre es z.B. möglich, dass Fachdienste bei Server-Server-Requests im Header zusätzlich zum Servernamen noch ein weiteres Feld senden, mit dem der empfangende Fachdienst die Organisation gegen die Föderationsliste verifizieren kann? Für Prüfungen die den Servernamen aus der URL extrahieren würde das wahrscheinlich nicht funktionieren. |
Kurze Zusammenfassung von IRL Diskussionen mit verschiedenen Leuten:
|
Aus wirtschaftlicher und ökologischer Sicht ergibt es keinen Sinn, warum pro Organisation ein kompletter Fachdienst hochgefahren werden muss. So müssen hier bei sehr kleinen Organisationen schnell mal tausende Fachdienste betrieben werden. Dies bedeutet mit den aktuell gängigen Matrix-Komponenten einen enormen Ressourcen-Bedarf und ist im Angesicht der Energie- und Klimakrise mindestens kritisch anzusehen. Auch der Betrieb wird dadurch deutlich komplexer und aufwendiger.
Aus technischer und organisatorischer Sicht ist solch eine Anforderung gar nicht notwendig. Es können problemlos tausende Organisationen auf einem Fachdienst existieren. Die Regeln der Sichtbarkeit und Einladungsprüfung (wenn nicht bereits auf den Client ausgelagert via #155) können hier problemlos durch den Proxy (über Client-Server-API) geschehen. Ein Proof-Of-Concept zeigt uns, dass solch ein Szenario auf jeden Fall umsetzbar ist.
Mein Vorschlag wäre nun, dass man es den Betreibern überlässt, wie Organisationen getrennt werden, ob über Domains oder erweiterte Proxies.
Bemerkung: Manchen mag die angesprochenen Probleme sicherlich bekannt vorkommen. Wir setzen uns bereits seit 1,5 Jahren dafür ein und wollen hier nochmals die öffentliche Diskussion dazu anregen.
The text was updated successfully, but these errors were encountered: