Agregar usuarios programáticamente cuando se utiliza SSO

Tenemos una copia interna de Discourse configurada de modo que el SSO sea obligatorio y está conectada a nuestro servidor LDAP. Esto significa que cualquier miembro del personal puede iniciar sesión fácilmente con su nombre de usuario y contraseña comunes, pero su cuenta solo se crea cuando inician sesión por primera vez.

Existe cierta discusión interna sobre intentar fomentar la interacción social entre el personal, pero muchos de ellos se muestran reacios a hacer algo que no sea usar el correo electrónico.

Por lo tanto, estoy tratando de averiguar cómo resolver este desafío utilizando Discourse. Ya he resuelto el aspecto del correo electrónico en sí (es decir, configurar Discourse para que las categorías tengan su propia dirección de correo electrónico entrante), pero puedo ver dos desafíos de los que no estoy seguro de cómo solucionarlos:

  1. Idealmente, me gustaría que todos tuvieran una cuenta en Discourse antes de iniciar sesión en él. La razón de querer esto es que, si envían un correo electrónico a Discourse sin tener una cuenta primero, Discourse tenga los datos completos del usuario en lugar de tratarlos como anónimos.

  2. Me gustaría que todos pudieran recibir correos electrónicos de resumen de Discourse para que estén al tanto de los hilos que se crean (incluso si nunca visitan Discourse), pero eso también requiere que la cuenta exista.

¿Alguna sugerencia sobre qué puedo hacer? ¿Existe alguna manera de crear cuentas en Discourse de forma programática para que se vinculen con el SSO cuando las personas inician sesión?

Gracias.

1 me gusta

You can do it via the API. Here’s an example: GitHub - pfaffman/discourse-user-creator: Create an activated user, optionally assigning to group

3 Me gusta

Thanks … one issue I can think of is that I have to supply a password when creating the user. Presumably, if SSO is being enforced, Discourse actually ignores the password I’ve provided? (Testing would prove that, I guess!)

1 me gusta

Yeah. Since you’re using SSO the password won’t matter, or can be omitted. Testing would be the way to prove it! If you’d like help and have a budget, my contact info is in my profile.

You can create users with the sync_sso route. There is some PHP code in this post that gives an example of how to do it: If someone changes their email in WordPress, change it in Discourse - sso_sync. In that code, it’s being used to update a user’s email, but the same idea will work to create a new user.

5 Me gusta