Desativar login local com SAML

Olá, consegui configurar a integração SAML e agora tenho algumas contas com contas associadas SAML.

Minha pergunta é se posso desabilitar o login local para os usuários que têm conta SAML, para que eles não possam fazer login com usuário/senha?

Sim. Se o SAML estiver funcionando, você pode desabilitar os logins locais; acho que isso também desabilitará os logins por e-mail, então você não precisará fazer isso também.

Sim, conheço essa opção, mas é uma opção global. Eu precisaria dela como uma opção por usuário.
Metade dos meus usuários é interna e a outra metade é externa.
Usuários externos só podem usar login local, internos devem usar SAML. Aqui, eu gostaria de remover (ou desabilitar) a possibilidade de login local.

É possível?

Como isso funcionaria? Se eles não estiverem logados, como poderia ser uma opção por usuário?

Suponho que você poderia ter um plugin que se recusaria a fazer o login se o usuário estivesse em um determinado grupo e não tivesse usado SAML. Estou pensando em 2 a 4 horas de trabalho? Talvez mais com especificações adequadas. Mas eu não olhei. Você pode perguntar em Marketplace se tiver um orçamento.

Oi Jay, ok, talvez eu tenha usado as palavras erradas. Desculpe. :slight_smile:

Estou pensando em uma opção, algo como

Desabilitar/Não permitir login local para usuários que tenham conta(s) SSO (externa?) associada(s) ativa(s).

Criar um plugin é uma boa ideia, vou verificar, obrigado!
Não, não há orçamento…

1 curtida

Lembre-se de que não se trata apenas de levantar os fundos para que um plug-in seja escrito. Você também precisará mantê-lo para que continue funcionando quando o Discourse for atualizado.

Se você não puder arcar com o acima e não tiver as habilidades para escrever algo sozinho, talvez precise se contentar com os usuários fazendo login localmente ocasionalmente em vez de usar o SSO.

sim, estou ciente disso.

você está certo. Uma opção pode ser mudar a senha deles, mas acho que não posso impedi-los de redefini-la e usar o login local novamente.

Se o login SAML estiver associado à conta local deles, qual é o problema?

O SAML é um IDM central e acessível apenas da LAN interna (corporativa), enquanto o servidor Discourse é público.

Gostaríamos que os usuários internos pudessem fazer login apenas do escritório (ou VPN), mas, embora possam usar o método de login local, eles podem fazer login de qualquer lugar e não podemos desabilitar o login deles via SAM/IDM (isso deve ser feito manualmente no fórum).

Não é um grande problema, mas temos uma política que nos obriga a nos conectar ao IDM central, se possível.

Você pode adicionar seus usuários internos (aqueles que fazem login via SAML) a um grupo. Em seguida, oculte a seção de login local desse grupo usando JS. Você também pode adicionar JS para ocultar o login SAML de usuários que não estão nesse grupo.

Apenas uma solução alternativa, mas pode ser suficiente para desencorajar seus usuários a usar o login errado.

1 curtida

Mas como eles não estarão logados quando estiverem na página de login, não há como ocultar o login SAML daqueles que têm logins SAML. Pode ser possível fazer algo para ocultar o login SAML daqueles que não estão no endereço IP corporativo, mas não tenho certeza de como fazer isso.

2 curtidas

Ah! Você está certo :woman_facepalming:t4: Se eles usarem uma VPN corporativa, talvez verificar o endereço IP funcione, mas fora isso, esqueça minha solução :sweat_smile:

3 curtidas

Não tenho certeza se isso é útil, porque não funcionará de qualquer maneira. Se o endereço SSO não for válido externamente, o navegador não conseguirá alcançá-lo pela internet pública.

O SAML é um protocolo de autenticação, não um IdM ou IdP - ele tem que consumir dados de outro lugar. Pode ser que seu IdM também suporte SAML, mas a menos que você possa nos dizer qual é esse sistema de backend, teremos dificuldade em ajudá-lo aqui.

1 curtida

Verdadeiro

Sim, eu sei disso, o serviço de autenticação é um ADFS interno. Mas minha pergunta não é sobre SAML nem ADFS, pois o login externo funciona perfeitamente, eu gosto muito dele.

Gostaria de saber se há uma maneira de habilitar apenas uma fonte de autenticação em uma conta e desabilitar todas as outras, ou, em outras palavras, desabilitar o login local nos usuários que têm SSO funcionando.

Entendo que isso pode acontecer apenas após uma tentativa de login, não seria um problema.

Você precisaria criar um plugin que fizesse algo como testar se eles eram membros de algum grupo e, em seguida, desconectá-los se estivessem no grupo must_use_saml e não fizessem login com saml.

Provavelmente levará uma ou duas horas para um desenvolvedor familiarizado com isso, dependendo de quanto teste é necessário e se as especificações são criadas.

1 curtida

Obrigado Jay, vou tentar!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.