В данной статье мы разберем понятия идентификации, аутентификации и авторизации в контексте веб разработки.
- Идентификация - позволяет субъекту (пользователю, процессу и тд.) назвать себя (сообщить свое имя). Мы вводим форму на сайте и пишем, что мы Иван Иванов. Система отвечает - Хорошо, ты Иван Иванов. На этом идентификация завершена, потом идет аутентификация.
- Аутентификация - когда вторая сторона убеждается, что субъект действительно тот, за кого он себя выдает (докажи, что ты есть ты). Раз ты ввел в форму Иван Иванов докажи, что ты есть он. Как уже доказать это совершенно другая тема. После того когда ты прошел аутентификацию и доказал, что имеешь доступ к этому аккаунту идет авторизация.
- Авторизация - процесс предоставления прав на запрашивыемый ресурс (сайт, страничку, файл и тд.) для вашего аккаунта. Когда мы ввели в форму Иван Иванов и подтвердили, что мы действительно им являемся, то тогда система нам предоставляет доступ к ресурсу (например, к личному кабинету).
Самое популярное и часто используемое это авторизация. Также в контексте этого вопрос мы нельзя не сказать пару слов про многофакторную аутентификацию. Если вы активный пользователь интернета, то наверняка имели дело с двух факторной аутентификаций. Например, когда первым этапом мы вводим email и пароль, а вторым этапом вводим код из смс сообщения (почты, приложения и тд.). Вообще в теории выделяют 3 основных фактора:
- Знания - когда мы вводим логин и пароль. Я пытаюсь доказать системе, что я есть я. Потому что знаю пароль от аккаунта. Если в системе предусмотрен второй фактор, то чаще всего это проверка владения.
- Владение - система знает, что человек который владеет этим аккаунтом, имеет что-то еще. Например, телефонон, электронный токен. Когда мы вводим код из сообщения, мы тем самым доказываем владение этим аккаунтом.
- Принадлежность свойств определенному субъекту или объекту. Например, биометрические данные (отпечаток пальца, зрачок глаза). В мобильных приложениях это может использоваться как единственный способ.