Diferencias entre la autenticación y la autorización

Diferencias entre la autenticación y la autorización

Lorena Fernández

Tanto la autenticación como la autorización tienen significados distintos. Pero, es normal que se piense que estos son sinónimos. De hecho, son procesos de seguridad que tienen propósitos diferentes. En esencia, la autenticación verifica la identidad del usuario que quiere acceder a un recurso. Por otro lado, la autorización valida si efectivamente el usuario tiene el permiso para acceder al mismo o realizar alguna función. Hoy en RedesZone os vamos a explicar en detalle las diferencias entre autenticación y autorización, para que te queden claros estos dos conceptos tan importantes en la seguridad informática.

Autenticación y autorización: aclarando conceptos

Es importante comenzar por lo esencial, es decir, definir qué significa cada cosa. La autenticación es el proceso de identificar a los usuarios y garantizar que los mismos sean quienes dicen ser.

¿Cuál podría ser una prueba de autenticación? La más utilizada es la contraseña. Si el usuario conoce su par de credenciales (nombre de usuario y contraseña), el sistema entenderá que la identidad de dicho usuario es válida. En consecuencia, podrá acceder al recurso o conjunto de recursos deseado.

Hay una tendencia visible a métodos adicionales de autenticación, para evitar únicamente el uso de las contraseñas. Uno de estos métodos de autenticación adicional son los OTP (OTP – One Time Passcodes) que son series alfanuméricas que llegan por mensaje de texto (SMS), correo electrónico o lo generamos con una aplicación autenticadora como Google Authenticator, Authy o Latch. El OTP se utiliza para la autenticación MFA, es decir, multifactor. Es un paso extra que nos da una mayor seguridad a la hora de autenticar a un usuario.

Otra aplicación de autenticación más moderna es el SSO o Single Sign-On en donde un usuario puede acceder a todos los recursos de sistema que necesita. Esto, sin necesidad de ingresar su par de credenciales cada vez que quiere ingresar a tal o cual cosa.

Entonces, ¿en qué consiste la autorización?

La autorización es lo que define a qué recursos de sistema el usuario autenticado podrá acceder. Que haya logrado pasar la instancia de la autenticación, no significa que podrá utilizar el sistema por completo como super administrador. De acuerdo a una serie de reglas, normas y regulaciones propias de cada red interna, se determina que el usuario A tendrá acceso a los recursos X e Y. Sin embargo, el usuario B sólo podrá acceder al recurso Z.

Si fuese un usuario administrador, tendría acceso tanto a los recursos X, Y y Z como a los recursos 1, 2, y 3, que son exclusivos de aquellos que tienen permisos y privilegios de administrador.

Se pueden sintetizar ambos conceptos de la siguiente manera:

  • Autenticación: verifica las identidades, por diferentes métodos (algo que sabemos, algo que tenemos, algo que somos).
  • Autorización: verifica los permisos que corresponden a cada identidad.

Métodos de autenticación más utilizados

Ya hemos repasado uno de los métodos más utilizados: el MFA o autenticación Multifactor. Pasemos a citar otros métodos populares:

  • Sin contraseña o Passwordless. Este es uno de los métodos modernos más prácticos. Un ejemplo de aplicación es el uso de un enlace mágico (magic link). Consiste en que, cada vez que quieras iniciar sesión a un recurso o servicio, se enviará a tu correo electrónico un enlace que te permitirá acceder sin necesidad de contraseña. Este es un método recomendable, ya que se necesita del acceso al correo electrónico y, por ende, hay más garantías de asegurar que es el propio usuario quien está accediendo.
  • Por redes sociales. Sin duda, ya habrás utilizado este método. Varias aplicaciones y servicios te dan como opción iniciar sesión directamente con alguna cuenta social. La ventaja principal es que no hace falta crear una cuenta aparte de forma manual, directamente los datos de esa cuenta social hacen ese paso al iniciar la sesión. Las plataformas sociales más utilizadas son Facebook, Twitter y la cuenta Google.
  • Autenticación API. Este es el proceso de certificar la identidad de un usuario que quiera acceder a recursos y/o servicios en el servidor. Para tener en cuenta, alguna de las APIs de autenticación más populares son: autenticación básica por HTTP, de Core (núcleo) API y OAuth.
  • Autenticación Biométrica. Se vale de las huellas dactilares para validar la identidad del usuario. El caso de uso más popular es en los lugares de trabajo, en donde tanto para registrar la entrada como salida, se posa el dedo para validar la huella dactilar. Esa huella es validada mediante un previo registro de la misma que se almacena en la base de datos.

Métodos de autorización más utilizados

Lo que comentaremos a continuación, es información especialmente útil para todo desarrollador aplicaciones y servicios web en general. Recordemos que parte fundamental de una gran experiencia de usuario es que los mismos puedan acceder con confianza y seguridad a todos los recursos necesarios en todo momento que precisen disponer de los mismos.

  • Autorización HTTP. Así como la autenticación, existe la autorización de tipo HTTP. ¿En qué consiste? La persona ingresa su nombre de usuario y contraseña para poder autenticarse. Es bueno tener presente que este método no implica a las cookies, IDs de sesiones o páginas de inicio de sesión.
  • Autorización API. Así como la autenticación, existe la autorización de tipo API. Cuando el usuario intenta ganar acceso a recursos de un sistema durante su registro, se genera una clave API. Esa misma clave se empareja con un token (una ficha identificadora) que se encuentra oculto. Entonces, esa combinación de clave API y token oculto es la que se utiliza constantemente cada vez que el usuario se autentica e ingresa a su entorno de recursos y servicios que puede utilizar.
  • OAuth 2.0. Este método permite que la API se autentique y acceda a los recursos del sistema que necesita. La versión 2.0 de OAuth es uno de los métodos más seguros tanto de autenticación como autorización.
  • Autorización JWT. Es un estándar abierto que se utiliza para la transmisión segura de datos entre distintas partes. Tiene soporte tanto para la autenticación como para la autorización. JWT es utilizada comúnmente para la autorización, y se vale un par de claves público-privada. Es decir, ese par contiene una clave privada y una pública.

Es sumamente importante implementar y utilizar tanto la autenticación como la autorización. Ambos procesos de seguridad proveen capas adicionales de protección a los sistemas y los recursos. Esta protección extra permite que se prevengan numerosos ciberataques que perjudican especialmente a los usuarios. Recordemos que estos usuarios ponen en manos de las aplicaciones y servicios sus datos personales.

En muchos casos, se incluyen datos sumamente sensibles como los bancarios, financieros y comerciales. Los eventos de filtración de datos son uno de los riesgos más grandes a los que se enfrentan los sistemas. Que una organización y su aplicación o servicio ofrecido se vea afectado por una filtración de datos, implica una gran violación a la seguridad y privacidad de los usuarios, que desemboca en perjuicios de valor incalculable para los mismos.