Beim massenhaften Hinzufügen von Benutzern zu einer Gruppe über die hier beschriebene Schnittstelle wird eine Einladungs-E-Mail gesendet, falls eine E-Mail-Adresse in der Eingabeliste noch nicht in Discourse vorhanden ist.
Klickt man auf den Link, wird man zu einer Seite zur Kontoeinrichtung innerhalb von Discourse weitergeleitet:
Füllt man das Formular aus, wird ein Konto erstellt. Das erstellte Konto enthält jedoch keine SSO-Informationen.
Es ist ziemlich klar, warum dies ein Problem darstellt:
Die Umgehung unseres SSO-Authentifizierungssystems ist sehr bedenklich.
Ohne eine Warnung wie „X Personen werden gleich eine E-Mail erhalten
Vielen Dank für die Meldung. Ich kann das Problem auf meiner Entwicklungsumgebung reproduzieren. Wenn SSO aktiviert ist, sollten E-Mail-Adressen, die noch nicht auf der Seite registriert sind, ignoriert werden, wenn sie zu einer Gruppe hinzugefügt werden. Wir werden dies beheben. Entschuldigen Sie bitte die dadurch verursachten Unannehmlichkeiten.
@Grayden_Shand Eigentlich prüfen wir derzeit, ob wir die SSO-Authentifizierung stattdessen auf der Seite zum Einlösen von Einladungen hinzufügen können. Beim Einlösen der Einladung muss sich der Benutzer über SSO authentifizieren, anstatt das Registrierungsformular auszufüllen. Würde das Ihren Anwendungsfall erfüllen?
@sam Ich denke gerade über den Ablauf von Einladungen nach, und eine Sache, bei der ich unsicher bin, ist, ob die E-Mail-Adresse, an die die Einladung gesendet wurde, mit der SSO-E-Mail übereinstimmen muss. Es scheint, als könnten wir dies bei einladungen per E-Mail durchsetzen, aber nicht bei einladungen über Links. Was denkst du?
Für unseren Anwendungsfall wäre es deutlich besser, Einladungs-E-Mails vollständig unterdrücken zu können. Bei den meisten unserer Seiten (vorübergehende Communities für Online-Kurse) gibt es ein begrenztes Zeitfenster zur Registrierung (und eine Gebühr). Daher stelle ich mir vor, dass jemand, der eine Einladung erhält, sich dann auf der Seite meldet und feststellt, dass er nicht mehr beitreten kann, frustriert wäre. Es gibt wirklich keinen Fall, in dem wir möchten, dass jemand eine Einladung zu einer unserer Seiten erhält.
Falls Sie dies dennoch umsetzen, bitte ich darum, auch eine Warnung einzufügen, die sinngemäß lautet: „Sie sind dabei, XX Personen eine E-Mail zu senden, die keine Benutzer Ihrer Seite sind: bob@example.com, alice@example.com, …". So könnten wir diese Benutzer finden und aus der Liste für die Massen-Einladung entfernen.
Könntest du für deinen Anwendungsfall stattdessen Einladungslinks verwenden? Auf diese Weise werden keine E-Mails versendet und du hast ein Ablaufdatum.
Ich unterstütze weiterhin einen Ninja-Modus, um das Versenden von E-Mails zu umgehen, sodass du eine große Anzahl von E-Mail-Adressen zu einer Whitelist hinzufügen kannst. Mich interessiert jedoch, ob die Funktion für Einladungslinks deinen Bedarf hier bereits abdeckt.
Ich glaube nicht, aber vielleicht habe ich die Frage auch nicht richtig verstanden. Lassen Sie mich erklären, wie wir Discourse, die SSO-Funktion nutzen und warum ich ursprünglich auf diesen Fehler gestoßen bin.
Wir betreiben eine E-Learning-Plattform, die für jede Sitzung jedes Workshops (Kurses) einen temporären Discourse-Instanz verwendet.
Wir nutzen SSO mit einem eigenen Authentifizierungssystem aus zwei Gründen:
Damit ein Benutzer nur ein einziges Set an Anmeldedaten benötigt, um auf jeden Kurs zuzugreifen, für den er sich registriert hat.
Um Richtlinien durchzusetzen, wer basierend auf beliebigen Daten in unserer Datenbank in jeden Discourse hineinkommt. Beispielsweise prüfen wir in unserem Discourse-SSO-Endpunkt, ob der Benutzer eine gültige Registrierung hat und ob das Datum innerhalb der Grenzen unserer Öffnungs- und Schließdaten liegt.
Ich bin auf den oben genannten Fehler gestoßen, als wir in einem Workshop nur für Personen, die in einem anderen waren (wie eine Alumni-Gruppe), eine Gruppe erstellen wollten. Also habe ich die vollständige Klasseliste aus dem anderen Workshop in das Modal für die Massenaddition eingefügt und versehentlich Einladungen an alle auf dieser Liste gesendet, die sich nicht für den aktuellen Workshop angemeldet hatten.
Wir würden also die Einladungs-Funktion in Discourse (egal ob per Link oder per E-Mail) eigentlich nie nutzen. Falls wir doch eine Einladungs-Funktion benötigen würden, müssten wir diese wahrscheinlich selbst entwickeln, da wir bestimmte Geschäftslogik über die gesendeten Einladungen legen möchten. Beispielsweise möchten wir, wenn die Anmeldefrist für den Workshop abgelaufen ist, eine Fehlermeldung auf dem Link anzeigen. Oder vielleicht möchten wir einen Rabatt in den Link integrieren.
All dies soll heißen, dass es funktioniert, wenn wir es nicht nutzen müssen, aber wir möchten wirklich nicht in Sorge sein, versehentlich E-Mails an Personen ohne Konto in diesem Discourse zu senden.