Adicionando usuários programaticamente quando o SSO está sendo usado

Temos uma cópia interna do Discourse configurada para exigir o uso de SSO, e ela está conectada ao nosso servidor LDAP. Isso significa que qualquer membro da equipe pode fazer login facilmente usando seu nome de usuário e senha comuns, mas a conta só é criada no primeiro login.

Há alguma discussão interna sobre tentar aumentar a interação social entre os funcionários, mas muitos deles relutam em fazer qualquer coisa além de usar e-mail.

Portanto, estou tentando descobrir como resolver esse desafio usando o Discourse. Já resolvi a parte relacionada ao e-mail (ou seja, configurar o Discourse para que as categorias tenham seus próprios endereços de e-mail de entrada), mas vejo dois desafios sobre os quais não tenho certeza de como resolver:

  1. Idealmente, gostaria que todos tivessem uma conta no Discourse antes de fazer login. O motivo é que, se eles enviarem um e-mail ao Discourse sem ter uma conta primeiro, o sistema terá os dados completos do usuário, em vez de tratá-los como anônimos.

  2. Gostaria que todos pudessem receber e-mails de resumo do Discourse, para que fiquem cientes da criação de tópicos (mesmo que nunca acessem o Discourse), mas isso também exige que a conta já exista.

Alguma sugestão sobre o que posso fazer? Existe uma maneira de criar contas no Discourse programaticamente para que elas se integrem ao SSO quando as pessoas fizerem login?

Obrigado.

1 curtida

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 curtidas

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 curtida

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 curtidas