В чём смысл OpenID

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

Так ведь нет.

Всё, что берёт на себя OpenID - это заменяет связку “логин-пароль” для входа на сайт. То есть, подразумевается, что вы уже залогинились однажды у своего OpenID-провайдера и повторять эту процедуру везде нет необходимости - сайт может довериться вашему OpenID-провайдеру в том что Вы - это Вы и не задавать лишних вопросов.

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

Однако, из OpenID сайт не знает о пользователе нечего, даже его email адрес. Да, конечно, есть Simple Registration Extension, но он поддерживается далеко не всеми OpenID-провайдерами и клиентами, так что это не выход. Можно использовать микроформат hCard, но примеры его использования ещё более редки.

Так что, выходит, на любом сайте, где от пользователя требуется что-то большее, чем просто оставить комментарий и забыть, нужна своя система учётных записей. Хотя, она вполне может опираться на OpenID.

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

К тому же, представьте себе такую ситуацию: ваш публичный OpenID-провайдер падает. И что получается? Вы теряете возможность входа во все сервисы, где использовался OpenID от этого провайдера. Не очень-то хорошая перспектива.

Это проблема частично решается техникой делегирования. Тогда я могу менять OpenID-провайдеров как перчатки, но опять же, этот вариант подходит далеко не всем.

Что же делать?

Лучший вариант, который я придумал таков:

Вам всё же нужно регистрироваться на сайте для использования всех его возможностей. Но кроме обычной регистрации (логин, пароль, email) есть возможность использования регистрации с OpenID. Тогда всё, что вам нужно - это указать адрес электронной почты и OpenID, который вы будете использовать для входа. Зачем электронная почта? На случай, если ваш OpenID-провайдер перестанет работать и вы потеряете возможность входить на сайт, используя его. Тогда нужно просто нажать кнопку “аварийный вход” и на ваш адрес электронной почты будет выслан пароль, используя который вы сможете войти в учётную запись и изменить свой OpenID на актуальный.

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