Grupo OpenID Connect pode remover usuários de todos os grupos não sincronizados

Sob certas condições, a sincronização de grupos do OpenID Connect expulsa os usuários de todos os grupos do Discourse que não têm um grupo OIDC sincronizado.

Os logs e a situação geral indicam que isso é acionado quando um usuário perde um único grupo OIDC (não sincronizado). O sistema aparentemente pretende remover o usuário apenas desse único grupo (que não existe), pois usa o nome do grupo perdido em sua nota de alteração.
No entanto, em vez disso, ele remove o usuário de todos os grupos não sincronizados.

Considerando a perda de acesso que isso pode causar, considero esse um bug de prioridade bastante alta.

A propósito, existe um registro global de alterações de associação a grupos? Isso facilitaria muito a recuperação, mas encontrei apenas o registro por grupo.

Você pode me confirmar se este resumo está correto?

  • estado anterior:
    • o usuário bilbo está nos grupos A, B, C no Discourse
    • os grupos B e C estão configurados para associação automática com os grupos OIDC b e c (respectivamente)
    • a OpenID Connect groups claim está definida, por exemplo, como groups
  • ação realizada:
    • o usuário bilbo faz login via OIDC
    • a claim do OIDC contém os grupos c, d
    • (o grupo D não existe no Discourse)
    • o Discourse remove bilbo dos grupos A e B
      :red_exclamation_mark: a remoção da associação ao grupo A está incorreta

Ainda não tenho um segundo grupo sincronizado B. Caso contrário, sim.

1 curtida