Crear plugin para cerrar sesión de usuario vía uid desde SAML

Utilizo grupos SAML para autenticar usuarios en diferentes categorías. Cuando los grupos cambian, el usuario tiene que iniciar sesión. Quiero automatizar esto en mi IDP. Cuando los grupos cambian, utiliza la API para cerrar la sesión del usuario

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

Con un API-Token solo con el permiso de cierre de sesión (log_out), esto se puede hacer de forma muy segura.

Sin embargo, el IDP no tiene el ID numérico del usuario. Solo tiene un número único.

Ya descubrí cómo cerrar la sesión de un usuario a través de la consola, ingresando a la aplicación y a rails c

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

Así que mi idea fue crear un endpoint personalizado, con un uso similar

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

Esto, o bien reenvía el auth_token recibido a la API oficial, probablemente el método más seguro. El ID se puede obtener a través de user.id (ver el resto arriba).

O ejecuta

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

¿Existen plugins sencillos donde pueda simplemente pegar este pequeño fragmento de código? No soy programador de Ruby, pero son muy pocas líneas de código. Esto debería ser factible en pocos minutos.

Muchas gracias por su ayuda.