Authn es la abreviatura de autenticación, y authz es la abreviatura de autorización. Son dos conceptos distintos, pero que están estrechamente relacionados en el mundo de la gestión de identidades y accesos (IAM).
Después de leer este artículo podrás:
Contenido relacionado
¿Qué es IAM?
Control de acceso
Autenticación de dos factores
Autenticación de múltiples factores
Autenticación mutua
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
En la seguridad de la información, la autenticación (abreviada como authn) y la autorización (authz) son conceptos relacionados pero diferentes. Ambos son una parte importante de la gestión de identidades y accesos (IAM).
¿En qué se diferencian la autenticación y la autorización? En pocas palabras, la autenticación tiene que ver con la identidad, o con quién es alguien, mientras que la autorización tiene que ver con los permisos, o con lo que alguien tiene permiso para hacer.
La autenticación significa asegurarse de que una persona o un dispositivo es quién (o qué) dice ser. A una persona que recoge unas entradas para un evento se le puede pedir que muestre su tarjeta de identificación para verificar su identidad; del mismo modo, una aplicación o base de datos puede querer asegurarse de que un usuario sea legítimo mediante la comprobación de su identidad. La autenticación garantiza que no se presenten los datos a la persona equivocada.
Combinación de nombre de usuario y contraseña
Uno de los métodos más habituales de autenticación es pedir al usuario que introduzca su nombre de usuario y contraseña. Cuando Jessica carga su cuenta de correo electrónico en su navegador, el servicio de correo electrónico aún no sabe quién es ella, pero una vez que introduce su nombre de usuario y contraseña en el formulario de acceso, el servicio puede comprobar esas credenciales, autenticarla como Jessica y dejarle acceder a su cuenta.
Aunque la mayoría de la gente está familiarizada con este tipo de autenticación, los nombres de usuario y contraseñas pueden utilizarse para algo más que autenticar a los usuarios. Por ejemplo, los puntos finales de la API pueden autenticarse de esta manera.
Autenticación multifactor (MFA)
El problema de la autenticación con nombre de usuario-contraseña es que, con frecuencia, agentes malintencionados pueden llegar adivinar o robar las contraseñas. Exigir factores adicionales de autenticación aumenta la seguridad de los usuarios; este concepto se denomina autenticación multifactor (MFA). Cuando se utiliza la MFA, un atacante necesita algo más que una contraseña para autenticarse falsamente como un usuario legítimo.
La AMF se suele implementar como autenticación de dos factores (2FA). En la actualidad, muchos servicios implementan la 2FA pidiendo a los usuarios que demuestren que tienen un token que se les ha proporcionado anteriormente. Hay dos tipos de tokens: "tokens blandos", como un código enviado al usuario por SMS o a través de una aplicación móvil, y "tokens duros", como memorias USB. La 2FA y la MFA también pueden utilizar factores de autenticación biométricos (descritos a continuación).
Certificado de clave pública
La autenticación de clave pública es algo más compleja que estas otras formas de autenticación, pero cuando se implementa correctamente, puede ser más segura. Utiliza la encriptación de clave pública para verificar si la parte autentificada tiene o no la clave privada correcta.
(Consultar ¿Cómo funciona la encriptación de clave pública? para más información sobre cómo funcionan las claves públicas y las claves privadas).
El uso más habitual de la autenticación con clave pública es en Transport Layer Security (TLS), que se utiliza para autenticar un servidor web. Los dispositivos de los usuarios realizan este tipo de autenticación cada vez que cargan un sitio web que utiliza HTTPS.
La autenticación de clave pública también se utiliza para autenticación mutua, que es cuando ambas partes de una comunicación se autentican mutuamente, en lugar de que solo un cliente autentique a un servidor o un servicio web autentique a un usuario. Los dispositivos de la Internet de las Cosas (IoT) y los puntos finales de la API utilizan en ocasiones este tipo de autenticación.
Autenticación biométrica
Solo se puede utilizar para autenticar a seres humanos, la autenticación biométrica consiste en verificar la identidad de alguien cotejando una de sus características físicas con una base de datos de sus características físicas conocidas. El escáner facial o el escáner de retina son ejemplos de este tipo de autenticación.
La autorización determina lo que un usuario autentificado puede ver y hacer. Pensemos en lo que ocurre cuando un cliente de un banco se conecta en línea a su cuenta. Como su identidad ha sido autentificada, puede ver su propio saldo de cuenta y su historial de transacciones, pero no está autorizado a ver el de nadie más. En cambio, un gestor del banco podría estar autorizado a ver los datos financieros de cualquier cliente.
Del mismo modo, una persona puede ser un empleado legítimo de una empresa, y puede haber verificado su identidad, pero eso no significa que deba tener acceso a todos los archivos y datos de esa empresa. Por ejemplo, un empleado ajeno a los departamentos de RR. HH. o de contabilidad no debería poder ver los salarios de todos los empleados.
El nivel de autorización de un usuario determina lo que tiene permiso para hacer; por tanto, un término común para las acciones autorizadas es "permisos." Otro término para este concepto es "privilegios."
Las organizaciones utilizan algún tipo de solución de autorización para permitir o bloquear las acciones de los usuarios. La solución suele saber qué acciones debe permitir o bloquear en función de quién sea el usuario; por eso, la autenticación está estrechamente relacionada con la autorización. Hay varias formas diferentes de determinar los permisos de los usuarios, como las siguientes:
En el control de acceso basado en roles (RBAC), a cada usuario se le asigna uno o más roles predeterminados, y cada rol viene con un conjunto específico de permisos.
En el control de acceso basado en atributos (ABAC), se asignan permisos a los usuarios en función de sus atributos o de los atributos de la acción que intentan llevar a cabo.
En el control de acceso basado en reglas (también abreviado como RBAC), las acciones se permiten o se deniegan en función de un conjunto de reglas que se aplican a todos los usuarios, independientemente de su rol.
OAuth es un estándar técnico para pasar la autorización de un servicio a otro. Con frecuencia utilizado para los servicios en la nube y las aplicaciones web, OAuth permite a los usuarios autenticarse en un servicio y luego pasar su autorización a otro servicio. Su nivel de autorización suele estar determinado por un proveedor de identidad (IdP), que es un servicio separado.
OAuth hace posible el uso de los servicios de inicio de sesión único (SSO), con los que un usuario puede iniciar sesión una vez para acceder a todas sus aplicaciones en la nube. Sin el uso de OAuth, los permisos de un usuario tendrían que configurarse por separado en cada aplicación.
Cloudflare Zero Trust es una plataforma que permite o bloquea las acciones de los usuarios en aplicaciones locales, autoalojadas y SaaS. Se integra con cualquier IdP para la autenticación. Cloudflare Zero Trust también evalúa la postura de seguridad del dispositivo antes de garantizar el acceso, una característica importante para la implementación de un modelo Zero Trust.
Más información sobre Zero Trust.