Desactivar inicio de sesión local con SAML

Hola, he conseguido configurar la integración SAML y ahora tengo algunas cuentas con cuenta asociada SAML.

Mi pregunta es si puedo deshabilitar el inicio de sesión local para los usuarios que tienen cuenta SAML, de modo que no puedan iniciar sesión con usuario/contraseña.

Sí. Si SAML está funcionando, puede deshabilitar los inicios de sesión locales; creo que eso también deshabilitará los inicios de sesión por correo electrónico, por lo que no necesitará hacer eso también.

Sí, conozco esta opción, pero es una opción global, la necesitaría por opción de usuario.
La mitad de mis usuarios son internos, la otra mitad son externos.
Los usuarios externos solo pueden usar el inicio de sesión local, los internos deben usar SAML, aquí me gustaría eliminar (o deshabilitar) la posibilidad de inicio de sesión local.

¿Es posible?

¿Cómo funcionaría eso? Si no han iniciado sesión, ¿cómo podría ser una opción por usuario?

Supongo que podrías tener un plugin que se negara a iniciarles sesión si el usuario pertenece a un grupo determinado y no ha utilizado SAML. ¿Creo que de 2 a 4 horas de trabajo? Quizás más con especificaciones adecuadas. Pero no lo he mirado. Podrías preguntar en Marketplace si tienes presupuesto.

Hola Jay, ok, quizás usé las palabras incorrectas. Lo siento. :slight_smile:

Estoy pensando en una opción, algo como

Deshabilitar/No permitir el inicio de sesión local para usuarios que tengan cuenta(s) SSO (externa?) activa(s) asociada(s).

Hacer un plugin es una buena idea, lo revisaré, ¡gracias!
No, no hay presupuesto…

1 me gusta

Recuerda que no se trata solo de recaudar los fondos para que se escriba un complemento. También necesitarás mantenerlo para que siga funcionando cuando se actualice Discourse.

Si no puedes permitirte lo anterior y no tienes las habilidades para escribir algo tú mismo, es posible que tengas que aceptar que los usuarios inicien sesión localmente de vez en cuando en lugar de usar SSO.

sí, soy consciente de ello.

tienes razón. Una opción puede ser cambiar su contraseña, pero creo que no puedo evitar que la restablezcan y vuelvan a usar el inicio de sesión local.

Si el inicio de sesión SAML está asociado con su cuenta local, ¿cuál es el problema?

SAML es un IDM central y solo es accesible desde la LAN interna (corporativa), mientras que el servidor Discourse es público.

Nos gustaría que los usuarios internos solo pudieran iniciar sesión desde la oficina (o VPN), pero si bien pueden usar el método de inicio de sesión local, pueden iniciar sesión desde cualquier lugar y no podemos deshabilitar su inicio de sesión a través de SAM/IDM (esto debe hacerse manualmente en el foro).

No es gran cosa, pero tenemos una política que nos ordena conectarnos al IDM central si es posible.

Podrías añadir a tus usuarios internos (los que inician sesión a través de SAML) a un grupo. Luego, ocultar la sección de inicio de sesión local a ese grupo usando JS. También podrías añadir JS para ocultar el inicio de sesión SAML a los usuarios que no estén en ese grupo.

Solo es una solución temporal, pero puede ser suficiente para disuadir a tus usuarios de usar el inicio de sesión incorrecto.

1 me gusta

Pero como no habrán iniciado sesión cuando estén en la página de inicio de sesión, no hay forma de ocultar el inicio de sesión SAML de las personas que tienen inicios de sesión SAML. Podría ser posible hacer algo para ocultar el inicio de sesión SAML de aquellos que no están en la dirección IP corporativa, pero no estoy seguro de cómo hacerlo.

2 Me gusta

¡Ah! Tienes razón :woman_facepalming:t4: Si usan una VPN corporativa, tal vez revisar la dirección IP funcionaría, pero aparte de eso, olvídate de mi solución :sweat_smile:

3 Me gusta

No estoy seguro de que eso sea útil, porque no funcionará de ninguna manera. Si la dirección SSO no es válida externamente, el navegador no podrá acceder a ella a través de Internet pública.

SAML es un protocolo de autenticación, no un IdM o IdP; tiene que consumir datos de otro lugar. Puede ser que tu IdM también soporte SAML, pero a menos que puedas decirnos cuál es este sistema backend, tendremos dificultades para ayudarte aquí.

1 me gusta

Verdad

Sí, lo sé, el servicio de autenticación es un ADFS interno. Pero mi pregunta no es sobre SAML ni ADFS, ya que el inicio de sesión externo funciona perfectamente, me gusta mucho.

Me gustaría saber si hay alguna forma de habilitar solo una fuente de autenticación en una cuenta y deshabilitar todas las demás, o en otras palabras, deshabilitar el inicio de sesión local en los usuarios que tienen SSO funcionando.

Entiendo que puede suceder solo después de un intento de inicio de sesión, no sería un problema.

Necesitarías crear un plugin que hiciera algo como comprobar si eran miembros de algún grupo y luego los desconectara si estaban en el grupo must_use_saml y no iniciaron sesión con saml.

Probablemente sea una o dos horas para un desarrollador familiarizado con esto, dependiendo de cuántas pruebas se requieran y si se crean especificaciones.

1 me gusta

Gracias Jay, ¡lo intentaré!

1 me gusta

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