Plugin zum Ausloggen des Benutzers über uid von SAML erstellen

Ich verwende SAML-Gruppen, um Benutzer bei verschiedenen Kategorien zu authentifizieren. Wenn sich die Gruppen ändern, muss sich der Benutzer abmelden. Ich möchte dies in meinem IDP automatisieren. Wenn sich Gruppen ändern, wird die API verwendet, um den Benutzer abzumelden

curl -X POST “https://mydiscourse.org/admin/users//log_out.json”   -H “Content-Type: application/json”   -H “Api-Key: XXXX”   -H “Api-Username: Admin” -v

Mit einem API-Token, das nur die Berechtigung zum Abmelden hat, kann dies sehr sicher erfolgen.

Der IDP hat jedoch nicht die numerische ID des Benutzers. Er hat nur eine eindeutige Nummer.

Ich habe bereits herausgefunden, wie man einen Benutzer über die Konsole abmeldet, indem man die App und rails c eingibt

uaa = UserAssociatedAccount.find_by(provider_name: “saml”, provider_uid: “123456”)
user = uaa.user
user.user_auth_tokens.destroy_all

Meine Idee war also, einen benutzerdefinierten Endpunkt mit ähnlicher Verwendung zu erstellen

curl -X POST https://mydiscourse.org/custom/saml-logout/123456   -H “Api-Key: xxx”   -H “Api-Username: Admin” -H “Accept: application/json”

Dies leitet entweder nur das empfangene auth_token an die offizielle API weiter, wahrscheinlich die sicherste Methode. Die ID kann über user.id bezogen werden (siehe oben).

Oder es führt aus

uaa = UserAssociatedAccount.find_by(provider_name: “saml”, provider_uid: “123456”)
user = uaa.user
user.user_auth_tokens.destroy_all

Gibt es einfache Plugins, in die ich diesen sehr kleinen Codeausschnitt einfach einfügen kann? Ich bin kein Ruby-Programmierer, aber das sind nur wenige Codezeilen. Das sollte in wenigen Minuten machbar sein.

Vielen Dank für Ihre Hilfe.