Então, eu administro um fórum que usa SSO para passar credenciais de usuário/senha para nossa instância do Discourse.
Atualmente, você precisa fazer login no meu site principal e, em seguida, clicar para acessar meu fórum para que a passagem de credenciais ocorra e uma conta no fórum seja criada.
Meus desenvolvedores estão trabalhando para atualizar nosso método de chamada de API desatualizado e adaptá-lo à especificação atual do Discourse. Meu desenvolvedor me disse que é possível que o SSO crie uma conta no Discourse sem que o usuário precise clicar explicitamente para acessar nosso fórum.
Alguém aqui tem a API configurada dessa forma? Estou cauteloso quanto à sincronização automática por padrão. Quais são as vantagens e desvantagens?
Sim, nosso plugin do WordPress possui uma opção que faz algo semelhante. O funcionamento é o seguinte: quando um usuário cria uma conta no WordPress ou faz login no site WordPress, uma chamada é feita para a rota /admin/users/sync_sso do Discourse. Se o usuário ainda não existir no Discourse, isso cria um usuário no Discourse. Se o usuário já existir no Discourse, a chamada pode ser usada para atualizar detalhes sobre o usuário que foram alterados no site do provedor de SSO. Por exemplo, pode ser usado para atualizar o nome, o nome de usuário ou o endereço de e-mail do usuário. Também pode ser usado para adicionar ou remover o usuário de grupos do Discourse.
A única desvantagem que conheço é que isso adiciona alguma complexidade ao código de SSO. Com a forma como foi implementado no plugin do WordPress, também adiciona uma chamada de API ao Discourse toda vez que um usuário faz login no site do provedor de SSO. Isso ocorre porque está acoplado ao evento de login do WordPress. Não tenho conhecimento de que essa chamada de API cause problemas de limite de taxa em nenhum site, mas seria possível fazer a chamada apenas quando uma nova conta for criada, caso isso estivesse causando problemas.
A vantagem dessa abordagem é que ela permite atualizar detalhes sobre seus usuários sem que eles precisem fazer login no Discourse via SSO. Por exemplo, permitiria adicionar usuários a um grupo do Discourse quando eles realizarem uma ação no seu site.
Outra abordagem para integrar um site ao Discourse via SSO é usar links de login SSO no seu site. Isso permite que você coloque seu fórum Discourse no seu site, o que fará o login dos usuários no Discourse e os levará a uma página específica. Este tópico contém detalhes sobre como configurá-lo: Criar um link de login SSO.