Olá! @david, por favor, ajude-me, grande homem! ))))
Configurei com sucesso o pacote de plugins Discourse + Keycloak SSO + SAML + Openid Connect. Há apenas uma coisa que ofusca essa beleza: o logout.
Faço o logout do fórum, o usuário é desautorizado; essa parte funciona bem.
Em seguida, verifico as sessões ativas no Keycloak, mas a sessão do usuário que saiu do fórum não foi excluída.
Suspeito que isso se deva às configurações da URL de logout. Só não sei onde ajustar: no Discourse ou no Keycloak.
Sim! Funciona perfeitamente! Gostaria de esclarecer que é necessário definir a variável openid_connect_rp_initiated_logout_redirect.
@david, tenho mais uma pergunta. Uma pergunta importante.
Agora estou nas etapas finais de teste do SSO com Keycloak e preciso escolher um protocolo: SAML ou OpenID Connect.
Gostei mais do OpenID Connect, mas, no momento, encontrei um problema irritante ao criar novos usuários usando o OpenID Connect.
Para entender o problema, vou começar por outro ângulo. Quando um novo usuário do fórum é criado usando o SAML, o usuário é criado no SSO e enviado de forma transparente para criação no Discourse. E ele é imediatamente ativado — isso é importante!
Ou seja, quando clico em “Cadastrar” no fórum Discourse, sou redirecionado para o Keycloak, onde crio o usuário, confirmo o e-mail, etc. Depois disso, sou levado de volta ao fórum Discourse, onde o usuário já foi criado e ATIVADO automaticamente:
Isso é extremamente inconveniente! Para que serve? Afinal, o e-mail do usuário já foi confirmado ao criar a conta no SSO. Existe alguma maneira de eliminar essa janela?
Se essa mensagem estiver aparecendo para o OpenID Connect, significa que o provedor de identidade enviou uma mensagem email_verified: false para o Discourse. Se você ativar a configuração de depuração detalhada, ela imprimirá todos os dados de autenticação em /logs para que você possa examinar. Esperemos que haja alguma maneira de instruir o Keycloak a passar o estado de verificação corretamente.
Desde que você tenha 100% de certeza de que o Keycloak verificou os e-mails, está tudo bem. Se os e-mails não forem verificados, fazer isso deixará seu site Discourse vulnerável a ataques.
Não estou familiarizado com o Keycloak, mas ambas as abordagens parecem boas. Se no futuro você quiser ter controles de acesso separados para cada fórum, tê-los como clientes separados pode facilitar isso