Wie bereits hier erwähnt, halte ich es für eine nützliche Funktion, wenn Discourse das SCIM-Protokoll unterstützen würde. SCIM ist ein Standard, der von der IETF über RFC7644 und RFC7643 vorgeschlagen wurde und darauf abzielt, eine Lösung für die Benutzer-/Gruppenverwaltung über eine einfache Rest-API bereitzustellen. Unser Anwendungsfall wäre die Verwaltung von Benutzeridentitäten und Gruppenmitgliedschaften über einen separaten Dienst, der als SCIM-Client fungiert, in unserem Fall Keycloak. Discourse würde als SCIM-Dienstanbieter fungieren. Zusätzlich zu jeder bestehenden SSO und zentralisierten Kontoerstellung hätte dies folgende Vorteile:
Benutzer Gruppen zuweisen;
Benutzerinformationen sofort in mehreren Apps ändern;
Benutzer löschen, wenn sie aus der SSO entfernt werden;
Benutzer oder Gruppen auf standardisierte Weise auflisten;
…
Wir haben einige Mittel von NGI über NLNet für SCIM-Implementierungen erhalten. Sie können den Vorschlag und verwandte Arbeiten in unserem Forum hier lesen. Ich würde versuchen, zunächst eine erste Lösung in einem Discourse-Plugin zu implementieren, aber es wäre schön, dies irgendwann in den Discourse-Kern zu integrieren. Lassen Sie mich Ihre Gedanken und Meinungen wissen!
Es erscheint seltsam, dass ihre Spezifikation /Users und /Groups verwendet und nicht etwas wie .well-known/scim/Users. Es scheint sicher, dass dies mit vorhandenen Routen in vielen Anwendungen in Konflikt geraten wird.
Ich würde gerne dabei helfen, wenn Sie etwas Budget übrig haben.
Ich kann mir vorstellen, dass es ein offizielles Plugin werden könnte, wenn es gut geschrieben und weit verbreitet wäre (oder von mehreren Unternehmenskunden benötigt würde).
Ich glaube nicht, dass es jemals Teil des Kerns werden würde – selbst OAuth2 ist ein Plugin.
Ich denke, es ist möglich, jeden Pfad als Präfix für die SCIM-Endpunkte zu verwenden, z. B. api/scim/v2/Users oder von Ihnen vorgeschlagene bekannte Pfade.
Ja, ich verstehe die Bedenken bezüglich des Kerns, daher könnte ein Ziel sein, dass er ein offizielles Plugin wird. Vielen Dank auch für das Hilfsangebot, es gibt kein zusätzliches Budget, aber mal sehen, wie sich das in Zukunft entwickelt.
Ah. Das ergibt Sinn. Ich vermutete, dass dies der Fall sein muss, habe es aber bei meiner schnellen Lektüre nicht gesehen. Ich würde mir als Referenz die anderen Authentifizierungs-Plugins ansehen.
Eine erste Version des Plugins ist jetzt hier verfügbar:
Das Mapping ist noch sehr einfach, nur die Basis-Felder von Benutzern und Gruppen werden funktionieren. Ich habe es mit dem Keycloak SCIM Plugin getestet und man kann bereits Benutzer in Keycloak hinzufügen/ändern, die dann in Discourse erstellt/aktualisiert werden. Das Keycloak SCIM Plugin ist hier:
Jedes Feedback ist sehr willkommen Wir werden in unserer Umgebung mehr mit Keycloak testen und ich möchte es immer noch mit authentik testen.