allter [livejournal.com]: comment 17

allter [livejournal.com]
Wed, 09 Jan 2013 12:20:37 +0400

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

Я, как веб-девелопер, термин "авторизация" обычно использую в узком смысле - как процесс (и код для его реализации) аутентификации агента-инициатора сессии работы с информационной системой. Потому что с точки зрения пользователя авторизация в общеупотребляемом (словарном) смысле проходит только в тот момент, когда система "проглатывает" его пароль/смарткарту/подписанное сообщение при входе в систему. Тогда как система проверки прав доступа - отдельная сущность ИС и именно она работает всю сессию невидимо для пользователя (и в большинстве систем можно в другой сессии изменить права доступа по уже работающей сессии), обеспечивая вкупе с аутентификацией авторизацию в общеупотребляемом смысле как свойство/сущность. Использовать вместо этого термина "аутентификацию" не очень удобно, т.к. аутентификация может быть не только пользователей сессии, но и, например, веб-сайтов по ключу или авторов документов, т.е. приходится всегда уточнять.

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

Поэтому использование обязательных программных механизмов аутентификации это не более чем такая защита от собственной забывчивости авторов комментариев. Опять же в юзнете тоже есть такая защита - там клиент автоматически заполняет поле From.

Так вот, с учётом определений выше автозаполнение From:/X-Comment-To: в юзнете/фидо - это только идентификация, причём самого базового уровня, а не аутентификация. К примеру, у меня в Фидо, если я верно помню, было около 15 полных тёзок ("Имя Фамилия") даже без учёта вариантов off/ow - и достаточно регулярно в карбонку падали сообщения к ним - и не было способа вычленить только себя.

При этом такой минимальной идентификации авторов/адресатов сообщений вполне хватало. И, например, если бы я написал текущий коммент от dwшного openid, вы бы нормально проассоциировали меня с автором предыдущего комментария, использовавшего ljшный. Также как все нормально ассоциировали комментарии со сбойной openid`-аутентификацией, когда вы были на DW. Вежливые пользователи просто писали кто они в том же или следующем комментарии. В то же время, если кому-то захочется повандалить, то вандал сможет регистрироваться на разных openid-провайдерах и аутентифицироваться с их помощью быстрее, чем автор блога будет их банить. И никак, кроме как введением капчи или вайт-листов такой вандализм не пресечь. И если для использования вайт-листов аутентификация понадобится, то капча - совсем другой механизм.

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

Наверное, всё таки, зануд мы хотим банить не постфактум, когда они будут ломиться ботами с использованием 10 openid-провайдеров. А мы хотим присвоить некий рейтинг пользователям сети, так что заранее неизвестные лично нам пользователи с положительным рейтингом будут приниматься как званые гости без всяких сложных капч и предварительных регистраций, а известные в сети зануды будут вынуждены проходить капчи, писать в автоскринящиеся комментарии, проходить предрегистрацию, а особо злобные - отправляться в /dev/null.

Т.е. нужна всё таки не авторизация в вашем смысле (аутентификация пользователя + права доступа), а всего лишь идентификация (+ права доступа). Способ узнать, считает ли сеть его занудой. Причём, как я постулировал в своём комментарии, так, что бы ни автор блога не получил зависимость от сети ("сеть считает, что раз автор А выгнал пользователя Б из своего личного блога и по её мнению это не справедливо, то автор А становится персоной нон-грата/экскоммуницируется во всей сети"), ни читатели блога такую зависимость не получили ("сеть считает, что раз пользователь П является пользователем нон-грата на личных блогах известных фриков Ф1, Ф2, Ф3, то и в блоге А он комментировать не сможет"). По моему мнению, такое условие можно соблюсти только отвязав систему идентификации в сети в целом от системы авторизации на конкретном частном блоге. Т.е. авторизация пользователей на твоей системе не должна однозначно зависеть от их авторизации на каких-то левых хостах.

Авторизация же на конкретном частном блоге нужна всего лишь, что бы пользователи впоследствии могли совершать определённые действия со своими же данными, к примеру, удалять собственные посты, указывать e-mail для ответов. Если автор доверяет каким-то операторам single sign-on, то он может принимать их логины для авторизации у себя, но требовать это в обязательном порядке для всех сисопов распределённой блогосферы, думаю, нельзя.