¿Existen razones objetivas para usar un usuario / contraseña dedicado en lugar de proveedores de identidad dentro de una organización grande?

6

Trabajo para una organización grande (miles de empleados + tal vez decenas de miles de usuarios externos que tienen acceso parcial a una fracción de la información interna) y muchas de estas personas se autentican con un nombre de usuario / contraseña (que caduca regularmente).

Sin embargo, la mayoría de estas personas (para los empleados es cierto, independientemente de si trabajan en Windows, Linux o iOS) cuentan con una cuenta de Active Directory (dirección de correo electrónico interna) y AFAIK. Todos nuestros sistemas permiten iniciar sesión usando ADFS / Active Directory / LDAP Identity Provider.

Incluso para aquellos usuarios externos que tienen acceso muy limitado (por ejemplo, para algunos informes) podemos implementar una solución utilizando un proveedor de identidad importante (por ejemplo, Proveedor de identidad de Google ), si ADFS no está permitido.

Tener nombres de usuario / contraseña crea una carga para los usuarios y muchos están usando archivos de Excel y correos electrónicos para almacenarlos, lo que representa un riesgo para la seguridad. Además, he oído hablar de usuarios compartidos, por lo que posiblemente no se pueda saber quién utilizó realmente a un determinado usuario.

Por lo tanto, al usar exclusivamente las credenciales de Windows y tal vez algún otro proveedor de identidad, el usuario debe cuidar solo un par de credenciales cuando trata con todos los sistemas de la compañía. Además, las credenciales compartidas desaparecerán.

Pregunta: ¿Existen razones objetivas para usar un usuario / contraseña dedicado en lugar de proveedores de identidad dentro de una organización grande?

    
pregunta Alexei 30.06.2018 - 08:23
fuente

6 respuestas

3

Para la mayoría de las organizaciones, un sistema completo de identidad unificada es algo positivo. Usted preguntó si hay alguna razón para no hacer esto. Enumeraré algunas que pueden o no ser válidas en diferentes organizaciones:

  1. El sistema no es compatible con el proveedor de identidad. Es posible que tenga un sistema de mainframe basado en terminal heredado que no es fácil vincular a AD. Hay muchos productos comerciales para vincular productos heredados con sistemas de identidad, aunque estos pueden ser costosos. De manera alternativa, puede tener sistemas basados en la nube (como Salesforce) con los que tiene dificultades para integrarse.

  2. El sistema es sensible y no desea exponerlo en caso de una violación del sistema de identidad. Esto puede ser válido para un pequeño número de sistemas altamente sensibles, aunque este argumento se utiliza en exceso en entornos empresariales. Si su proveedor de identidad es AD, es probable que una violación de AD signifique una violación de todas las estaciones de trabajo que las personas usarían para administrar estos sistemas, por lo que la separación es poco más que un teatro de seguridad.

  3. No se puede acceder al proveedor de identidad desde el sistema. Un ejemplo común es que los sistemas con acceso a Internet en una DMZ que están bloqueados por un firewall no pueden acceder al AD interno. He visto grandes organizaciones que crean un AD separado para los sistemas DMZ. Un problema similar puede ocurrir con los sistemas de desarrollo vs producción.

  4. Algunos usuarios no forman parte del proveedor de identidad. El ejemplo clásico es cuando tienes unos pocos usuarios externos que acceden a un sistema interno. Puede lidiar con esto haciendo que el sistema admita múltiples métodos de autenticación, o permitiendo que los usuarios externos estén en su proveedor de identidad, con las restricciones correspondientes.

Si las dificultades de integrar un sistema con el proveedor de identidad merecen los beneficios es un acto de equilibrio. La mayoría de los administradores de TI aceptan que administrar una horda de credenciales es parte del trabajo.

    
respondido por el paj28 12.07.2018 - 12:55
fuente
3

En primer lugar, Active Directory es un protocolo propietario que puede no ser el más sencillo de usar fuera del mundo de Windows. Por esa razón, es común tener al menos 2 autenticaciones, una para el mundo de Windows y otra para otros sistemas (comúnmente Unix / Linux). Esto se puede hacer casi transparente para los usuarios siempre que uno de los proveedores de autenticación esté sincronizado en el otro.

Esto normalmente puede resolver la mayoría de las necesidades de autenticación. Lo que aún puede quedar son:

  • software propietario que insiste en tener su propio sistema de autenticación privado. Es aún más común de lo que podríamos desear ...
  • cuentas de sistema de bajo nivel (por ejemplo, raíz en un sistema Unix o cuenta dba en una base de datos). Si bien a las cuentas de usuario normales se les pueden otorgar privilegios o la posibilidad de obtenerlos a través de sudo, es común permitir el acceso administrativo local de bajo nivel para cuando las cosas van mal . Pero no debería ser una preocupación para los usuarios estándar.
  • cuentas dev. En la fase de desarrollo, es posible que una aplicación no esté conectada a los principales proveedores de autenticación. Así que los desarrolladores y evaluadores tienen que usar cuentas dedicadas.

Esto es para casos aceptables . Pero todavía hay otra categoría: resolver un sistema SSO tiene un costo en términos de tiempo y dinero. Algunas organizaciones pueden optar por no ir allí porque piensan que no vale la pena o, a veces, porque no son conscientes de la posible ganancia. Solo en este último caso de uso, podría sugerir a su administrador directo que sería muy interesante, pero tendrá que encontrar un caso de uso real en el que ahorraría tiempo o evitaría errores. Todo el mundo lo hace puede no ser suficiente para convencer a un gran jefe ...

    
respondido por el Serge Ballesta 12.07.2018 - 16:03
fuente
2

Active Directory es inseguro (por defecto)

Esto es un golpe en contra de ADFS porque se basa en AD, lo que requiere un esfuerzo para asegurarla adecuadamente.

Si está utilizando Active Directory, y especialmente si controla el acceso a sistemas críticos, debe diseñar su entorno para hacer frente a sus graves deficiencias de seguridad.

Como mínimo, debería estar implementando el diseño de bosque rojo de Microsoft en de acuerdo con su modelo de administración escalonada para mitigar el paso de hash (PtH), pass-the-ticket (PtT) y ataques de boletos dorados.

La federación es el futuro

Al tratar con usuarios externos, ADFS es muy superior a la creación de cuentas en su dominio o al establecimiento de confianzas de AD. Si puedes usar ADFS, absolutamente hazlo.

Dado que menciona específicamente Google Identity, se basan en OAUTH y OAUTH debe interactuar con ADFS .

Dado que ADFS es simplemente la implementación de un proveedor de identidad SAML por parte de Microsoft, debería ser más útil con el tiempo. En términos empresariales, SAML sigue siendo bastante nuevo, pero ha estado creciendo.

Se requieren varias cuentas

Los usuarios administrativos seguirán necesitando varias cuentas. Usted no puede eliminar razonablemente esa necesidad. Cualquier cuenta que pueda acceder a Internet no debe tener acceso privilegiado para administrar su infraestructura o realizar cambios en los entornos de desarrollo / prueba.

Es posible que aún puedas consolidar, incluso si los administradores deben tener 2-3 cuentas de AD individuales. Por ejemplo, tanto Oracle como MS SQL admiten la autenticación con credenciales de Windows, por lo que sus DBA y los desarrolladores ya no necesitarán cuentas de usuario / pase únicas en cada instancia.

    
respondido por el DoubleD 12.07.2018 - 16:35
fuente
1

Una de las cuestiones que plantearía sería la falta de acceso a los ataques en tiempo real del sistema de gestión de identidad. Por ejemplo, si alguien está atacando su servidor de administración de identidades y entra con éxito, puede actuar tan pronto como lo sepa. En el caso de alguien que comprometa a un proveedor de identidad de terceros, es posible que no sepa durante un par de meses cuándo y si deciden revelar la violación.

    
respondido por el MikeSchem 12.07.2018 - 08:32
fuente
1

En primer lugar, es posible que ni siquiera me deseen que algunos sistemas tengan un sistema de "inicio de sesión único". En un comentario mencionaste bases de datos y otros sistemas. Como técnico, prefiero una clave SSH separada (protegida por contraseña) para conectarse a servidores, contraseñas para acceder a bases de datos, etc. Por lo tanto, la solución de un proveedor de identidad centralizado no es adecuada para todas las necesidades. Especialmente teniendo en cuenta que este enfoque agrega otro sistema (su proveedor de identidad) que debe ser accesible para poder autenticarse. Es muy probable que este sea el caso durante la mayor parte del tiempo, pero aún así, es un requisito a tener en cuenta.

Además, los sistemas deben ser capaces de trabajar con proveedores de identidad. Dudo que el acceso a una base de datos se pueda autorizar generalmente utilizando un proveedor de identidad en lugar de un nombre de usuario / contraseña. La migración de todos los sistemas para utilizar un proveedor de identidad puede (y seguramente lo hará) causar problemas que no esperaba. Tal vez nadie quiera invertir tiempo y dinero para cambiarlo, ya que el nombre de usuario / contraseña es ciertamente más fácil de implementar.

Suponiendo que los usuarios que escriben sus credenciales es el problema que está tratando de resolver, promovería el uso de los administradores de contraseñas (¿tal vez enviaré la imagen con el sistema operativo predeterminado?) una contraseña para gobernarlos a todos

Para ser claro, me gusta la idea de un proveedor de identidad centralizado. Esos son todos los puntos en contra, que se me ocurren ahora mismo. Cualquier adición es bienvenida (es una pregunta interesante).

    
respondido por el GxTruth 12.07.2018 - 12:26
fuente
1

Muchas buenas respuestas / comentarios antes, así que trato de ser breve:

Para mí, la razón principal para usar diferentes cuentas de usuario con diferentes credenciales es la seguridad de las credenciales a largo plazo, sin importar si está utilizando contraseñas (por ejemplo, LDAP), secretos compartidos (por ejemplo, Kerberos, TOTP, etc.), asimétrico esquemas de firma (por ejemplo, claves SSH).

Un ejemplo simple para contraseñas:

No desea aceptar la misma contraseña que un usuario ha guardado en su teléfono móvil para leer el correo electrónico y otorgar acceso administrativo a un servidor de base de datos backend bloqueado con todos los datos de sus clientes.

Otro ejemplo para claves SSH separadas:

Para un subconjunto de sistemas SSH, es posible que se vea obligado a usar el reenvío del agente de la clave SSH, o incluso peor, para copiar su clave privada personal en un host de salto. Y, por lo tanto, no desea utilizar esta misma clave privada como clave autorizada en otros sistemas con diferentes requisitos de seguridad.

Sí, mantener cuentas separadas en un archivo de Excel o similar es una pesadilla y muestra que la mayoría de los sistemas y procesos de IAM no manejan muy bien varias cuentas por persona. Este problema se puede resolver eligiendo un sistema IAM decente.

(Podrías requerir diferentes combinaciones de esquemas de autenticación para diferentes sistemas, pero eso también es una pesadilla por sí sola).

Con respecto a todo tipo de dispositivos de inicio de sesión único como CAS, SAML, OpenID (Connect), etc .:

Creo que es un objetivo admirable usarlos si es posible porque las credenciales a largo plazo no pasan a sistemas que son potencialmente más inseguros que su servicio de inicio de sesión central. Hoy en día es bastante fácil integrar aplicaciones web. Debe comprobar si pueden gestionar varias sesiones de identidad o configurar diferentes instancias de SSO.

Pero por ejemplo para los inicios de sesión SSH o el control de acceso a la red con 802.1x, actualmente no veo soluciones SSO o 2FA fácilmente utilizables. Para estos casos de uso, la emisión de certificados a corto plazo (certificados OpenSSH o certificados X.509) podría ser una solución viable.

TLDR: No caigas en la trampa de uno u otro. Use un sistema IAM decente y proporcione los front-end de autenticación correctos para cualquier sistema y aplicación con los que tenga que lidiar.

    
respondido por el Michael Ströder 17.07.2018 - 21:19
fuente

Lea otras preguntas en las etiquetas