Configuração do site para desativar cadastros locais

Olá,

Estou procurando uma configuração do site que desative as inscrições locais, mas mantenha as criações de conta via OpenID Connect.

Ao analisar os relatórios de usuários de janeiro, a maioria apontava para um texto do site: Esta foi a mensagem de erro: Novos registros de conta não são permitidos neste momento. e isso teria me levado a ativar Allow_new_registrations.

Navegando por todas as configurações disponíveis, não vejo uma opção explícita para permitir registros via OIDC, mas não via local.

No entanto, usei uma consulta do Data Explorer para verificar se há usuários (agindo contra os Termos de Serviço, é claro) que usaram suas Ferramentas de Desenvolvedor para desocultar o botão de cadastro ou desabilitar seletivamente um redirecionamento JS;

SELECT
  u.id,
  u.username,
  u.name,
  ue.email,
  u.active,
  u.approved,
  u.created_at,
  u.last_seen_at
FROM users u
LEFT JOIN user_associated_accounts uaa
  ON uaa.user_id = u.id
LEFT JOIN user_emails ue
  ON ue.user_id = u.id
 AND ue.primary = true
WHERE uaa.user_id IS NULL
  AND u.staged = false
ORDER BY u.last_seen_at DESC NULLS LAST, u.created_at DESC

Entendo que o usuário que age contra minha política ainda precisaria verificar seu endereço de e-mail, mas o problema é que não quero que se registrem usuários que podem não ter uma conta na instituição que me fornece meus requisitos de OIDC.

Alternativamente, poderíamos escopar must_approve_users com um must_approve_local_users

mas isso eliminaria a possibilidade de desativar a página inicial que redireciona para /login como efeito colateral da resolução dessa vulnerabilidade de segurança.

Desmarque enable local logins. Isso ainda permitirá cadastros/logins por meio de métodos externos, como um provedor OpenID.

o principal problema ao desmarcar essa opção é que meu fórum é redirecionado diretamente para o entra, o que faz com que meu fórum pareça ser gerenciado por uma instituição (o que não é).

Seu site exige login? Se sim, consulte esta configuração:

Sim, isso está ativado. Essa é a configuração para a qual enviei um pull request — para remover a palavra ‘externo’ da descrição da configuração.

Então, se você quiser exibir uma tela de splash no site, mas com o OIDC habilitado como único método de login, você precisa:

  • desmarcar “habilitar logins locais”
  • desmarcar “autenticar imediatamente”
  • ter um método de login externo habilitado

Uma vez que essas condições forem atendidas, as pessoas verão uma tela de “login necessário” como esta:

Ambos os botões aqui (cadastrar / entrar) levarão ao seu único método de login externo.

Sim, foi exatamente isso que fiz no https://physicswithethan.discourse.diy

Também desabilitei meu componente personalizado “substituições de cadastro”.

1 curtida

Então você está pronto, ou está faltando o botão de Cadastro? Agora você pode permitir novos cadastros, o que habilitará apenas o cadastro via OIDC.

Desabilitar auth immediately impede que os usuários criem uma nova conta por meio do fluxo de login OIDC?

Não, isso apenas controla se o splash é exibido ou se os usuários são redirecionados imediatamente para o gateway de login.

Ok, eu ajustei tanto login_required.welcome_message quanto site_description, e isso fez com que a tela inicial parecesse muito mais personalizada.

Também desativei Auto_skip_create_confirm para que minha login_required.welcome_message esteja correta em relação à escolha do nome de usuário.

2 curtidas