Аутентификация, идентификация и авторизация

Довольно важной задачей при разработке веб-сайтов и веб-приложений есть ограничение доступа к некоторым разделам сайта, например к панели администратора. В теории это достаточно сложный процесс, с трема составляющими - аутентификация, идентификация и авторизация (англ. authentication, identification, authorization).

 

Система автентификации.авторизации в представлении разработчиков Symfony framework
Система аутентификации/авторизации в представлении разработчиков Symfony framework

 

Сразу после введения учетных данных (это может быть пара логин/пароль, одноразовый пароль, access token, md5-шифр, сертификат и многое другое) начинается процедура аутентификации (authentication). Она заключается в проверке подлинности. Например, сопоставить имя/пароль пользователя с учетной записью в базе данных, проверка контрольной суммы файла и т.д.

В общем случае, для процедуры аутентификации нужно либо что-то знать (например, пароль), либо иметь устройство аутентификации (например, ваш смартфон во многих современных электронных банковских системах), либо какие-то уникальных биометрические данные - отпечатки пальцев, рельеф лица, голос, радужная оболочка глаза и т.д.

Если процедура аутентификации прошла успешно, следующим шагам является идентификация. Задача идентификации - получить идентификатор пользователя в системе. Это может быть его id, уникальный логин, почта и т.д. Это что-то, с чем манипулирует веб-сайт.

И, наконец-то, после всего этого происходит авторизация. Суть авторизации в наделению пользователя некоторыми правами. Например, права администратора, пользователя, анонима (неавторизированного пользователя).

Зачастую, в php скриптах нет четкого разделения между первым и вторым этапом, или даже тремя. В простейшем случае эти действия можно сделать одной выборкой из БД.

Но написанное здесь важно для понимания системы защиты в более сложных продуктах и фреймворках в частности.

Таким образом, мы теперь знаем, что такое аутентификация, идентификация и авторизация в контексте сайтостроительства.