Что такое OpenID?

На модерации Отложенный При обсуждении темы о масках в ЖЖ был поднят вопрос об OpenID, достаточно важный в свете разрастающегося вокруг OpenID шума. Что же такое на самом деле OpenID? Что он даёт пользователям и сервисам, а чего не даёт (несмотря на то, что многие думают иначе)?

Популярность OpenID во многом связана с тем, что он, как и всё гениальное, очень прост. Он не требует отдельных центральных серверов, не требует от обеих участвующих сторон никаких дополнительных знаний кроме знания самого протокола. Всё, что нужно для его функционирования уже есть в интернете повсеместно.

OpenID позволяет людям получить уникальный идентификатор, который (если это требуется и если никто ничего не взломает) не может быть использован никем кроме его владельца. Сайтам OpenID предоставляет надёжный способ отличать один идентификатор от другого (ни Cookie, ни IP адрес такой возможности не предоставляют).

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

На этом его возможности, в общем то, заканчиваются.

А теперь немного о заблуждениях, связанных с OpenID:

Почему-то распространено мнение, что пользователю, залогинившемуся по OpenID стоит доверять больше, чем пользователю, просто заполнившему форму "Имя, Емейл, Текст комментария".
Это не так. И это явным образом указывается в спецификации (SRE и AX).

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

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

Конечно, можно использовать OpenID для составления белых списков, чёрных списков, уровней доверия и прочего, но в этом плане он ни чем не отличается от e-mail или IP-адреса.