Grundsätzlich versuche ich, Nutzern zu ermöglichen, zu verifizieren, dass sie Inhaber bestimmter Social-Media-Konten sind, die kein OpenID oder OAuth unterstützen (z. B. ein Riot-Konto). Was wäre der beste Ansatz dafür? Wäre es möglich, dass ein Nutzer Discourse als OAuth-Anbieter für eine externe Anwendung nutzt, die die Datenbank bearbeitet? Ich bin mit Discourse noch nicht sehr vertraut und versuche daher, den besten Weg zu finden, um so etwas umzusetzen.
Ich glaube, @falco hat Erfahrung mit Riot?
Das ist ein interessantes Problem. Ein Ansatz, den wir ausprobiert haben, war die Nutzung von Keybase. Keybase verfügt bereits über ein robustes System zum Nachweis der Identität, das mit vielen Plattformen funktioniert. Du kannst mehr über unsere Experimente unter Discourse Keybase Proof lesen. Ich bin mir nicht sicher, wie es jetzt weitergeht, seit Zoom Keybase übernommen hat.
Dieser Teil wirkt etwas verwirrend. Wie würde es helfen, wenn Discourse als IdP für Riot fungiert, um auf Discourse nachzuweisen, dass du ein bestehendes Riot/Matrix-Konto besitzt?
Kannst du das etwas genauer erklären? Ich habe mich gestern mit Matrix SSO beschäftigt, und endlich gibt es dort eine Lösung. Sie implementieren sowohl SAML als auch auf dem develop-Branch OAuth2. Discourse kann weder als Server noch als Client agieren, daher habe ich überlegt, ob ich Discourse als OAuth2-Server einrichten oder Unterstützung für Discourses eigenes SSO-Protokoll in Synapse hinzufügen könnte. Ich bin mir nicht sicher, ob das deine Anforderungen erfüllt…
Gibt es bei Riot eine öffentliche URL, die der Nutzer kontrollieren kann? Zum Beispiel ein öffentlich zugängliches Profil, in das der Nutzer einen Code einfügen könnte? Dann könnte ein Discourse-Plugin einen Code generieren, den der Nutzer in sein Profil einfügt, und wenn er seinen Riot-Nutzernamen eingibt, würde es nach diesem Code unter URL/<riot-username>/bio suchen?
Ein solches System würde ein recht universell einsetzbares Plugin ermöglichen, das über Systemeinstellungen für mehrere Drittanbieterseiten konfiguriert werden könnte.
Der Standard, den ich befürworte, ist der „bidirektionale Link mit rel="me"". Fügen Sie von dieser Seite einen Link zu Ihrem Discourse-Profil hinzu und von Ihrem Discourse-Profil einen Link zu dieser Seite. Beide Systeme crawlen die jeweils andere URL, erkennen das Attribut rel=me und markieren es als
Verifiziert.
Für das Abrufen des Bio-Felds von Plattformen, die dies nicht unterstützen, können Sonderregelungen eingerichtet werden.
Ich meine Discourse als IdP für mein eigenes eigenständiges Programm. Ich bin mir nur nicht sicher, was der beste Weg ist, Dinge wie eine Riot Games-ID zu verknüpfen, da sie noch keine öffentliche OAuth-Lösung anbieten. Ich weiß, dass sie kürzlich RSO angekündigt haben, aber es wurde noch kein Datum für die öffentliche Verfügbarkeit genannt.
Derzeit erfordert es für Drittanbieter-Anwendungen, ein Riot-Konto zu „verifizieren“, dass sich Benutzer in ihren League of Legends-Client einloggen und ein Feld unter dem Reiter Einstellungen ändern. Ich habe nur versucht, einen Weg zu finden, von Discourse zur League-API zu gelangen und dann das benutzerdefinierte Profilfeld hinzuzufügen, sobald es verifiziert wurde.
Hier ist der Teil, in dem der Code zur Referenz kommt. Grundsätzlich kann ich dann die League-API aufrufen und prüfen, ob der Wert dieses Codes mit dem übereinstimmt, der ihnen zur Verwendung mitgeteilt wurde.
Außerdem verwende ich ein SAML-Login-System für mein Discourse, da es mit dem Rest meiner Website verknüpft ist, und wollte eine Möglichkeit haben, „verifizierte“ Discord-Benutzernamen auf ähnliche Weise hinzuzufügen. Wieder bin ich mir nicht ganz sicher, wie ich vorgehen soll, um den angemeldeten Benutzer auf Discourse dazu zu bringen, eine OAuth-Abfrage über Discord OAuth auszulösen und dann den Wert auf der Seite von Discourse zu ändern.
Ich hoffe, das ergibt einen Sinn und zeigt, was ich erreichen möchte. Wenn Sie noch weitere Informationen darüber benötigen, was ich tun möchte, kann ich mehr liefern. Ich möchte nur verifizierte Konten in den Profilen anzeigen. Ich plane, Minecraft (Mojang), Discord und Riot Games (League of Legends) zu haben, aber für meinen Anwendungsfall müsste es sich um verifizierte Werte handeln, um Identitätsdiebstahl zu vermeiden.
Ich glaube, die Twitch ↔ Riot-Verbindung, die für die Valorant-Beta-Veröffentlichungen verwendet wurde, basierte auf OAuth2 unter login. Ob Sie eine client_id erstellen können, ist mir nicht sicher.
Das klingt mit einem benutzerdefinierten Plugin machbar!
[quote=“cookieman768, Beitrag: 6, Thema: 153166”]
Ich verwende ein SAML-Login-System für mein Discourse, da es mit dem Rest meiner Website verknüpft ist, und wollte eine Möglichkeit haben, „verifizierte
Ja, aktuell ist es noch nicht öffentlich und befindet sich noch in den frühen Stadien. Sie haben in diesem Artikel auf ihrer Entwicklerseite darüber gesprochen: https://www.riotgames.com/en/DevRel/rso.
Das dachte ich auch, also werde ich prüfen, ob ich das zum Laufen bekomme.
Der einzige Grund, warum ich die native Discord-Integration nicht verwende, ist, dass der Rest meiner Websites bereits über eine zentrale IdP authentifiziert wird, und ich möchte, dass Benutzer nur ein einziges Konto für meine gesamte Website erstellen, falls das Sinn ergibt. Ich werde prüfen, ob ich das League of Legends-Plugin zum Laufen bekomme und wie aufwendig es wäre, das umzusetzen, was ich im Sinn habe. Ich war mir einfach nicht sicher, ob es Möglichkeiten gibt, Benutzerprofile aus einer PHP-Anwendung oder ähnlichem abzurufen und zu bearbeiten. Letztendlich wollte ich einfach eine einfache OAuth-Anmeldung mit PHP nutzen, bei der sich Benutzer mit Discord anmelden, aber ich habe Probleme damit, wie ich dem PHP-Skript mitteilen kann, welcher Benutzer die Anfrage initiiert hat, es sei denn, ich kann die Anfrage irgendwie über Discourse initiieren und das PHP-Skript lässt sich davon überzeugen, dass sie legitim ist.
Vielen Dank für eure Antworten hier, Leute! Ich bin noch neu in der Verwaltung meines eigenen Discourse und schätze eure Hilfe sehr. ![]()
Nun, ich muss noch herausfinden, ob Plugins über die API mehr Zugriff haben als externe Programme, da ich auf https://docs.discourse.org/ keine Möglichkeit gefunden habe, ein Benutzerfeld über die API zu bearbeiten.
