
¿Alguna vez se preguntó cómo elegir un proveedor de servicios de autenticación?
Estamos en medio de una tendencia creciente de usar identificadores federados para proporcionar autenticación a los sitios web que usamos todos los días.
Podemos iniciar sesión en innumerables aplicaciones utilizando nuestras cuentas de redes sociales, todas nuestras cuentas de trabajo tienen capacidades de SSO e incluso podemos iniciar sesión en sitios web gubernamentales utilizando nuestras credenciales bancarias en línea.
Conceptualmente, la autenticación (y SSO) es simple, pero es difícil y costoso de implementar correctamente. Aunque las empresas se han centrado tradicionalmente en la creación de funciones, ahora en realidad también deben centrarse en reducir la contención del registro de usuarios sin exponer la aplicación a vulnerabilidades. Al igual que las plataformas de infraestructura en la nube (como AWS) ahora permiten a las empresas centrarse en la creación de aplicaciones, vemos lo mismo con la autenticación.
La autenticación como servicio (o los proveedores de servicios de autenticación) brindan servicios de autenticación y administración de usuarios para las aplicaciones.
No son solo un proveedor de identidad, sino que proporcionan páginas de inicio de sesión de usuario configurables (o widgets), funcionalidad de cierre de sesión, identidades federadas con cuentas de redes sociales, bases de datos de usuarios y cierto grado de gestión de usuarios. Tienen capacidades listas para usar para admitir protocolos de autenticación comunes como SAML y OpenID Connect.
Los clientes empresariales que desean SSO a menudo pueden aprovechar las configuraciones fáciles de un clic con aplicaciones de terceros como JIRA, Office 365 y Salesforce a través del uso de SAML2.
¿Cuáles son tus metas?
A veces, implementar sistemas de autenticación para una aplicación puede parecer como reinventar la rueda. El concepto de autenticación como servicio (AaaS) intenta resolver este problema, pero hay cosas que considerar antes de elegir un proveedor (o decidir implementar una solución personalizada).

Criterios

Una vez que haya elaborado una lista de consideraciones importantes para su organización, es hora de comenzar a evaluar la autenticación como proveedores de servicios (AaaSp) en el mercado. En los últimos años, hemos visto entrar y desaparecer a varios AssSp. Esto hace que elegir el AaaSp correcto sea mucho más crítico. Vienen en todas las formas y tamaños, desde pequeñas empresas con pequeños clientes hasta grandes proveedores empresariales establecidos.
Confianza y reputación
Confiar algo tan importante como la autenticación requiere una cantidad considerable de confianza, por lo que es importante que el proveedor elegido sea de confianza y una autoridad confiable en la autenticación. Considere si su arquitectura ha sido revisada por otros expertos en seguridad y revise cualquier comentario en línea sobre el proveedor.
Como hemos visto con Stormpath (comprado por Okta en 2017, luego abandonó la API de Stormpath), la transmisión de un proveedor externo abre el riesgo de abandono del proveedor . En el peor de los casos, como sucedió con la adquisición mencionada anteriormente, muchos se quedaron sin ruta de migración de Strompath a Okta y se les pidió que implementaran sus propios sistemas de autenticación.
El tamaño del vendedor, la lista de clientes y el perfil de la empresa son pautas generales que se pueden tener en cuenta, pero aún así, corre un riesgo. Los proveedores de empresas emergentes más pequeños pueden ofrecer incentivos significativos, pero su capacidad de desaparecer rápidamente sin el aviso adecuado puede convertirlos en una elección arriesgada. Alternativamente, los proveedores más grandes aún pueden cerrar sus servicios si esa línea de negocio deja de ser rentable.
Usuarios previstos
Algunos proveedores de AaaS, como One Login, se centran exclusivamente en B2E, proporcionando una experiencia de SSO para los empleados internos de una empresa con sus servicios basados en la web. Piense en las páginas del portal de la empresa con enlaces a recursos de recursos humanos, la Wiki de la empresa, Sharepoint y Salesforce. Auth0 y AWS Cognito son proveedores que prestan servicios tanto a B2E como a B2C y brindan asistencia explícita a clientes que tienen cientos de miles de clientes.
Bloqueo de vendedor
La integración con un AaaSp introduce una cantidad más significativa de interdependencia que la simple integración de una pila de aplicaciones en una solución basada en la nube, porque se debe escribir código específico del proveedor para completar la integración.
Esto no solo tiene que deshacerse, sino que también tendrá que escribir más código de integración para el nuevo proveedor. Pasar de un AaaS a implementar una solución personalizada es aún más costoso, ya que todo debería estar escrito desde cero.
A diferencia de los cambios de infraestructura, donde existen puertas estelares de mitigación para reducir la interrupción del usuario, el intercambio de proveedores de AaaS casi siempre afectará a los usuarios. Recuerde, estamos cambiando componentes que interactúan directamente con los usuarios finales.
Importación de datos
La mayoría de los proveedores de AaaS definen un mecanismo para importar usuarios a su sistema mediante importación masiva (donde los usuarios deben pasar por un flujo de restablecimiento de contraseña) o un proceso de migración gradual. Con la migración gradual, las credenciales de usuario se validan primero con la base de datos anterior y luego se cifran y almacenan en la nueva base de datos. En este caso de uso, los usuarios no se ven afectados por la migración.
Exportación de datos
Esta función es especialmente importante en el caso de que las aplicaciones utilicen el almacén de datos de AaaS. Por razones de seguridad, los proveedores de AaaS no publican su algoritmo de hash de contraseñas. Por lo tanto, cuando se requiere una exportación, todos los usuarios deben iniciar un flujo de restablecimiento de contraseña.
Si eso no suena lo suficientemente mal, muchos proveedores de AaaS NO brindan una función de exportación de datos masivos, lo que agrega complejidad adicional y pasos manuales para migrar los datos del usuario desde un AaaS.
Subcontratistas
Algunos servicios ofrecidos por los proveedores de AaaS son realizados por otro servicio de terceros. 2fa / mfa y el correo electrónico a veces son funciones que requieren registros separados (y pago adicional) con el tercero.
Tomando 2FA como ejemplo, algunos servicios AaaS no le permiten elegir el proveedor 2FA subyacente y lo obligan a utilizar su proveedor preferido. No solo se ve obligado a asociarse con ese proveedor, sino que también se ve obligado a pagar sus tarifas (donde a veces hay alternativas más baratas disponibles).
Soporte Tecnológico
Protocolos
La mayoría de los proveedores de AaaS admiten los principales protocolos federados (OpenID Connect y SAML). Otros tienen conectores adicionales que permiten fuentes de datos personalizadas (Microsoft AD o LDAP) y configuraciones sencillas para aplicaciones de terceros como JIRA, Office 365 y Salesforce mediante el uso de SMAL.
Integración
La integración del servicio de AaaS en su aplicación aún puede ser una tarea importante (especialmente si está ejecutando una aplicación heredada). Por lo tanto, una consideración es ver si AaaS ofrece bibliotecas para su pila de tecnología.
Por ejemplo: la mayoría de los principales proveedores de AaaS, junto con los sitios web de redes sociales, proporcionan bibliotecas de clientes para solicitar, consumir y validar varios documentos y tokens de autenticación. Si está ejecutando una pila de Java, muchos servicios ofrecen bibliotecas de Java para incluir con su proyecto para cualquier procesamiento de backend. Si su pila es compatible, el proceso de integración puede ser tan simple como colocar un archivo JS, incluido un JAR, y completar algunos valores en un valor de propiedad.
Documentación
La documentación amplia y bien redactada y el apoyo de la comunidad contribuirán en gran medida a facilitar la integración. Algunos proveedores ofrecen proyectos iniciales y de muestra para comenzar.
Otras características
Muchos servicios ofrecen funciones adicionales como la creación de perfiles de usuario, correo electrónico y 2fa / mfa.
Flujos e interfaces de usuario personalizables
Los proveedores de AaaS permiten distintos niveles de personalización para las páginas de la interfaz de usuario, los widgets y los atributos del usuario. Además, algunos sistemas tienen "ganchos" donde se puede realizar la personalización de los flujos (consulte Auth0 y AWS Cognito para obtener más detalles).
Dependiendo de su organización específica, puede ser difícil lograr el equilibrio entre satisfacer los deseos de UX y lo que el proveedor puede personalizar (dentro de lo razonable). En algunos casos, es posible que la AaaS elegida no admita los flujos solicitados por la empresa.
Una nota sobre la personalización:
Las capacidades de autenticación listas para usar son uno de los grandes beneficios de usar un AaaSp. Cuando se utilizan los componentes prediseñados, la integración es increíblemente simple.
Por otro lado, una gran personalización de la interfaz de usuario y los flujos aumenta el tiempo y la complejidad. Es posible que se encuentre personalizando de manera tan intensa y extensa la interfaz de usuario y los flujos de autenticación que debe preguntarse si será más barato implementar una solución interna personalizada (también considerando el costo anual). La respuesta puede ser SÍ .
Mi recomendación es retener tanta personalización como sea posible dentro del marco AaaS. Este es especialmente el caso cuando se trata de los flujos de autenticación y restablecimiento de contraseñas, ya que agregar personalización a estos componentes tiende a aumentar la complejidad de la integración y crear un bloqueo del proveedor.
Soporte para pruebas y desarrollo
Entornos de desarrollo, control de calidad y producción
Algunas empresas tienen entornos aislados de desarrollo y control de calidad. Para admitir estos requisitos, algunos proveedores de AaaS permiten que una sola cuenta tenga varias bases de datos de identidad. Desafortunadamente, esta no es una función universal y es posible que se requieran varias cuentas con AaaS para admitir cada entorno de prueba.
Prueba de carga
Todos los sistemas AaaS prohíben las pruebas de carga no autorizadas. Esto puede ser un problema si su aplicación requiere una prueba de carga de un extremo a otro para ser aprobada para la producción. En este caso, algunos proveedores de AaaS permiten las pruebas de carga si están preautorizadas antes de que se lleve a cabo la prueba. A menudo existen estrictas restricciones y plazos en los que se debe ejecutar la prueba.
De manera más realista, probablemente tendrá que implementar un mecanismo de desvío de inicio de sesión para que la aplicación admita pruebas de carga.
Precios
Los modelos de precios varían significativamente entre los proveedores de AaaS. Algunos proveedores tienen incentivos para pequeñas organizaciones de nueva creación y tienen un nivel más bajo gratuito o muy asequible. En términos generales, espere ver un gráfico de precio / usuario como el siguiente:

El precio por usuario es inicialmente muy bajo (o $ 0), lo que es ideal para organizaciones pequeñas o empresas emergentes con volúmenes bajos. Sin embargo, a medida que crece su base de usuarios, el precio / usuario se mantiene constante. Eventualmente, comenzará a disminuir después de cierto punto, porque ha alcanzado el nivel de uso más alto o está en condiciones de negociar precios.
El costo puede parecer razonable al comenzar, pero una vez que esté bloqueado, ¡una aplicación con 100,000 usuarios activos en un mes podría tener una factura anual de 150k a 200k!
Si su aplicación ya tiene una base de usuarios de varios cientos de miles de usuarios, ¡podría resultar más económico implementar su propia solución! Además de las tarifas por usuario, a menudo hay tarifas por servicios adicionales en los que puede incurrir (nuevamente, 2fa y correo electrónico).
B2C
Negocie el precio si su aplicación tiene períodos de uso intensivo. Algunos servicios tienen precios variables por mes según el número de usuarios activos reales, mientras que otros fijan el precio por mes según una estimación del mes más pesado del año (independientemente de cuántos usuarios utilicen realmente el sistema). La diferencia entre estos planes de precios puede ser significativa.
B2E
Los precios siempre se establecen en una cantidad por cuenta de empleado. ¡Tenga cuidado con las tarifas mínimas en letra pequeña!
Gestión de usuarios y panel
La mayoría de las AaaS tienen alguna forma de gestión de usuarios básica integrada en sus paneles de administración. En algunos casos, puede crear cuentas que no sean de administrador para sus representantes de servicio al cliente u otros asociados para realizar cambios en las identidades de los usuarios.
Se debe evitar entregar cuentas de administrador completo a los empleados simplemente para que puedan tener acceso al panel de administración de usuarios . La cuenta de administrador solo debe estar en manos de los empleados debidamente capacitados; de lo contrario, corre el riesgo de que alguien elimine accidentalmente toda su base de datos de usuarios o exponga las identidades de los usuarios.
El hecho de que el panel de control AaaS integrado sea compatible con sus necesidades depende de los cambios diarios en los atributos del usuario que su organización debe realizar. Asegúrese de que AaaS proporcione un seguimiento de auditoría / registro adecuado según las políticas de su organización.
SLA y servicio al cliente
No todos los proveedores de AaaS ofrecen un contacto directo con un administrador de cuentas del proveedor. Los niveles gratuitos o de bajo uso a menudo solo tienen acceso a foros de la comunidad. Algunos proveedores ofrecen soporte de pago, servidores dedicados, acceso a registros y cumplimiento de HIPAA / PCI a un costo adicional.
La mayoría de los AaaSp ofrecen el tiempo de actividad estándar de SLA del 99,9% al 99,995%, pero esto aún permite tiempos de inactividad durante el año. Esto puede ser de importancia si su aplicación debe estar activa durante períodos críticos. Algunas AaaSp ofrecen soluciones empresariales (implementaciones personalizadas) para garantizar algún tipo de redundancia en caso de falla del sistema.
Conclusión

Para las empresas emergentes, las AaaSp proporcionan una solución asequible para la autenticación para que pueda concentrarse en su producto. Para organizaciones más grandes con aplicaciones heredadas y una base de usuarios establecida, debe tener en cuenta una lista mucho más amplia de criterios para asegurarse de seleccionar el AaaS que se adapte a sus necesidades de migración, auditoría / registro y presupuesto.
Como seguimiento, escribí una introducción a las identidades federadas y la autenticación.