Ich versuche schon seit einiger Zeit, ein SSO-Plugin zu finden, mit dem ich die Claims meines IdP für meine Discourse-Benutzer nutzen kann.
Beim OIDC-Plugin ist man ziemlich auf den Userinfo-Endpunkt beschränkt. Das ist nicht schlecht, aber ich wollte andere Informationen aus unserem Identitätsspeicher verwenden, und das Ergebnis von Userinfo kann nicht angepasst werden. Ich habe versucht, das OIDC-Plugin zu zwingen, die id_token_info zu verwenden, um den Benutzer zu erstellen, aber ohne Erfolg.
Ich bin zum oauth-Plugin zurückgekehrt, aber oberflächlich betrachtet scheint es die gleiche grundlegende Einschränkung zu haben, nämlich dass es auf Benutzerinformationen von einem bestimmten Endpunkt angewiesen ist. Ich versuche herauszufinden, ob ich eines finden kann, das den Inhalt der JWT-Claims zurückgibt, aber das ist kein normaler Anwendungsfall, daher erwarte ich nicht viel.
Ich dachte ursprünglich, dass die “callback userinfo paths” im oauth basic verwendet werden könnten, um die Claims dem Benutzer zuzuordnen, aber ich erhalte immer nur Nullwerte in der Antwort und die Einfügung schlägt fehl. Ich kann den Token vom IdP dekodieren und die richtigen Claims sehen, in diesem Fall auf der Root-Ebene des JSON, wie iss, exp usw., aber ich kann sie nicht mit der ActiveRecord-Seite verbinden.
Ich schaue mir jwt an, aber es scheint keine Zuordnung von Claims zu Benutzern zu geben. Grundsätzlich, wenn man ein 200 erhält, ist alles gut, was auch nicht das ist, wonach ich gesucht habe.
Ich habe auch omniauth-jwt](GitHub - discourse/discourse-omniauth-jwt: An OmniAuth strategy that uses JSON Web Token for Single Sign-On) gefunden, das meinem Ziel näher zu kommen scheint, obwohl es kein Plugin zu sein scheint und nicht aktiv gepflegt wird. Etwas, das ich vielleicht beheben könnte, aber ein größerer Aufwand, als ich gehofft hatte.
Kann mir jemand eine Richtung für ein aktuell gepflegtes Plugin zur Zuordnung von JWT-Claims zu einem Benutzer geben oder wo ich bei einem der bestehenden Plugins falsch liege?