Keycloak SSO e problema de logout

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.

Minhas configurações SAML no Keycloak:

Minhas configurações Openid Connect no Keycloak:

O plugin OpenID Connect suporta RP Initiated Logout. Isso é suportado pelo Keybase?

Agora resta entender o que é isso e se isso está no Keycloak ))))
Onde essa opção é configurada no plugin openid-connect?

Isso é configurado nas configurações do site:

Obrigado! Vou tentar pesquisar no Google o que o Keycloak tem sobre essa questão.

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:

Mas se eu usar o plugin OpenID Connect, ao criar um novo usuário, aparece a seguinte janela:

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?

Muito obrigado antecipadamente!

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.

Por que, então, o plugin SAML ignora isso?

No plugin SAML, isso é controlado pela configuração global saml_default_emails_valid (padrão: true).

Encontrei a solução! ))))
No Keycloak:

Desative essas opções:

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.

Sim, está correto…
Agora testando novo caso - dois fóruns com um cliente OpenID do Keycloak ))

A propósito, @david, o que você acha mais correto:

  1. Usar um único cliente OpenID para todos os fóruns e especificar as URLs de redirecionamento válidas necessárias, como faço agora:

  2. Ou usar um cliente OpenID próprio para cada fórum?

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 :man_shrugging: