Links de convite (botão Aceitar Convite) com SSO não funcionando para a versão estável v2.8.10

Olá equipe do Discourse,

O botão Aceitar Convite não funciona na versão estável v.2.8.10. Ao tentar fazer login via SSO, ele apenas redireciona de volta para a página de convite, e Aceitar Convite não faz nada. Nenhum erro no console é exibido. Alguém pode ajudar?

Acredito que esteja relacionado à última atualização: SECURITY: Fix invite link validation (stable) (#18818) · discourse/discourse@7e4e8c8 · GitHub

Abraços

2 curtidas

Você pode confirmar como seu site está configurado?

Os convites historicamente não funcionavam com o SSO ativado. Isso pode ser uma regressão, mas precisaremos saber mais.

1 curtida

Olá @Stephen,

Obrigado pela sua resposta! Que informações você precisa especificamente? Nós o hospedamos em branch estável (v2.8.10) usando o plugin discourse-saml com Okta (SSO). Antes da atualização para a 2.8.10, conseguíamos criar links de convite para grupos e eles funcionavam, o usuário fazia login via SSO e era redirecionado para o tópico especificado na configuração do convite.

Informações Adicionais:

Na versão estável anterior v2.8.9, em domain.com/invites/invitecode:

  • Um usuário não logado seria apresentado a uma tela que pede para fazer login via SSO (Okta, que é especificado na configuração SAML do app.yml), que o redirecionará para o SSO para fazer login/registrar, depois executará as ações de convite (redirecionar para o tópico, adicionar ao grupo, etc.)

  • Um usuário logado contornaria automaticamente a tela de convite e as ações de convite seriam executadas

Na versão estável atual v2.8.10, em domain.com/invites/invitecode:

  • Tanto usuários não logados quanto logados serão apresentados à tela de convite com 2 botões:
    – Botão Login via SSO
    – Aceitar Convite (este é novo)

Quando o botão Login via SSO é clicado, o usuário é solicitado a fazer login (se não estiver logado) e será redirecionado de volta para a página de convite novamente.
Quando o botão Aceitar Convite é clicado, nada acontece.

Observamos no console do navegador de rede que há uma solicitação PUT para domain.com/invites/show/invitecode.json que está retornando um erro 504 (apenas na versão 2.8.10)

1 curtida

Existe alguma categoria para a qual eu possa mover isso para que eu possa relatar este bug?

1 curtida

Confirme que temos visibilidade sobre o problema, de alguma forma você pode confirmar que não é um problema em tests-passed e só existe em stable no momento?

2 curtidas

Olá @sam ,

Obrigado por responder! Fico feliz em saber que você tem visibilidade sobre o problema.

Infelizmente, não temos uma instância com teste aprovado e SSO, pois sempre ficamos com a versão estável. Tenho um branch com teste aprovado sem SSO e não há problemas lá.

EDIT: Vou tentar ver se consigo rodar uma instância com teste aprovado e SSO.

Olá @sam,

Consegui iniciar uma instância de tests-passed e não tive problemas com ela em tests-passed.
Consegui aceitar convites. Espero que isso ajude!

1 curtida

Olá @sam!

Há alguma chance de o estável poder ser retroportado para que possa ser corrigido no estável?

Vi que o Discourse teve uma atualização: 2.8.11: Security Release

Há alguma chance de esta atualização corrigir este problema? :slight_smile:

1 curtida

Sim, atualizaremos, muito obrigado por relatar, avisaremos assim que terminar. Dê-nos uma ou duas semanas.

2 curtidas

Isso é incrível! Obrigado @sam ! :raised_hands:

EDIT:
Apenas um aviso para outros que podem estar passando por isso:

A versão 2.8.11 estável não corrige o problema. Clicar em Aceitar Convite agora gera um erro no log do console:
PUT https://<DOMAIN>/invites/show/<INVITE_CODE>.json 404
O URL .json leva você para:

// https://<DOMAIN>/invites/show/<INVITE_CODE>.json

{
  "errors": [
    "O URL ou recurso solicitado não pôde ser encontrado."
  ],
  "error_type": "not_found"
}

Olá @hyphalos, comecei a analisar isso hoje. Não estou familiarizado com nossa configuração SAML, então, por favor, tenha paciência comigo.

Isso é um pouco estranho, o botão “Aceitar Convite” só deve aparecer para usuários logados. Você poderia, por favor, postar uma captura de tela do que usuários logados e deslogados veem para um convite específico, e também quais opções você está escolhendo para o convite aqui:

3 curtidas

Olá @martin!

Obrigado por retornar. Desculpe pela demora na resposta, eu estava doente.

Fiz mais alguns testes e o que observei é que, após atualizar para a v2.8.11, as pessoas só podem aceitar um convite uma vez, independentemente das configurações de criação do convite. Testei com “Chegar ao tópico”, sem “Chegar ao tópico”, “Adicionar ao grupo”, sem “Adicionar ao grupo”, etc., e as pessoas só podem aceitar convites uma vez. Este é o comportamento pretendido?

E se um convidado se inscrever, mas usar o mesmo URL de convite novamente, ele ficará preso na página de convite (sem redirecionamento com “Chegar ao tópico”). Ao clicar em Aceitar Convite, este erro aparece:

EDIT: Apenas queria acrescentar que, se for o comportamento pretendido, não há nenhum erro que mostre “Você já aceitou este convite antes” ou algo nesse sentido, ou apenas redirecione para onde quer que o “Chegar ao tópico” esteja definido no convite.

2 curtidas

Sim, isso é esperado. Não o erro, mas a parte em que eles não conseguem Aceitar o Convite várias vezes. Discutimos isso em New 'accept invitation' prompt feature causing issues with invitation links - #14 by martin, onde fiz uma correção, mas agora vejo que precisarei fazer o backport dessa correção para o stable também, cc @sam

2 curtidas

Olá @martin , ótimo, obrigado por investigar!

2 curtidas

Acabei de confirmar esta correção em stable aqui:

2 curtidas

Olá @martin!

Obrigado novamente pela correção!

Atualizei para a versão 2.8.12 (que, de acordo com a tag do commit no painel de administração, inclui as correções) e agora vejo uma mensagem de erro (em uma conta de teste) ao tentar aceitar um convite que já aceitei na conta de teste:

O que é ótimo!

Embora, como alguém já logado, eu não esperasse que o botão “Okta SSO” fosse exibido. Quando o botão é clicado, ele entra em loop no SSO e, em seguida, me traz de volta para a página de convite. Como o usuário está logado, o botão de login não deveria ser ocultado para evitar confusão?

Este tópico foi fechado automaticamente após 4 dias. Novas respostas não são mais permitidas.