2008-09-17 3 views
16

Мне нравится идея OpenID. Я поддерживаю его на своем сайте и использую его везде, где это возможно (например, здесь!). Но я не совсем понимаю одно.провайдеры OpenID - что мешает злоумышленникам?

Сайт, поддерживающий OpenID, в принципе принимает любой поставщик OpenID там, не так ли? Как это работает с сайтами, которые хотят сократить бот-регистрации? Что должно остановить вредоносный провайдер OpenID от автоматической установки неограниченных идентификаторов ботов?

У меня есть идеи и опубликую их как возможный ответ, но мне было интересно, может ли кто-нибудь увидеть что-то очевидное, что я пропустил?

ответ

13

Вы путаете две разные вещи - идентификацию и авторизацию. Просто потому, что вы знаете, кто есть кто-то, это не значит, что вы должны автоматически дать им разрешение на все. Саймон Уиллисон прекрасно это понимает в An OpenID is not an account!. Еще одно обсуждение по белым спискам доступно в Social whitelisting with OpenID.

+11

Идентификация и аутентификация - это одно и то же. Я думаю, вы имеете в виду разницу между аутентификацией и авторизацией. – skaffman 2009-06-25 18:19:44

2

Возможное решение - вы все равно можете запросить новые идентификаторы для прохождения теста CAPTCHA. Точно так же, как боты могут регистрироваться с фальшивыми/несколькими адресами электронной почты на любой сайт, но также не выполняют «проверку».

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

3

OpenId не намного больше, чем имя пользователя и пароль, которые пользователь выбирает при регистрации на вашем сайте. Вы не полагаетесь на структуру OpenId для отсеивания ботов; ваша система регистрации все равно должна это делать.

2

Насколько я могу судить, OpenID адресует только идентификацию, а не авторизацию. Остановка ботов - вопрос авторизации.

9

Короткий ответ на ваш вопрос: «Это не так». OpenID преднамеренно предоставляет только механизм для централизованного сайта аутентификации; вам решать, какие поставщики OpenID вы считаете приемлемыми. Например, Microsoft recently decided to allow OpenID on its Healthvault site only from a select few providers. Компания может решить только разрешить вход OpenID из своей точки доступа с поддержкой LDAP, государственное агентство может принимать только OpenID с сайтов, поддерживаемых биометрикой, и блог может принимать только TypePad из-за их интенсивного проверки спама.

Кажется, что существует много путаницы в отношении OpenID. Его первоначальной целью было просто обеспечить стандартный механизм входа, так что, когда мне нужен безопасный механизм входа, я могу выбрать любой или всех поставщиков OpenID для обработки этого для меня. Разрешить кому бы то ни было устанавливать собственный доверенный поставщик OpenID никогда не был целью. Выполнение второго эффективно невозможно — в конце концов, даже с шифрованием, нет причин, по которым вы не можете настроить своего собственного провайдера, чтобы надежно лежать и сказать, что он проверяет, кого вы хотите. Наличие единого стандартизованного механизма входа в систему уже является большим шагом вперед.

2

Обратите внимание, что в отличие от обычных логинов «на сайт» OpenID дает вам идентификационную информацию, которая потенциально превосходит отдельные сайты. Еще лучше, это тождество - это даже URI, поэтому он идеально подходит для использования с RDF для обмена или запроса произвольных метаданных об идентичности.

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

Во-первых, вы можете выполнить некоторые простые операции с белыми списками. Если * .bigcorp.example являются OpenIDs от сотрудников Big Corp, и вы знаете, что Big Corp не являются спамерами, тогда вы можете использовать белый список этих OpenID. Это должно хорошо работать для сайтов, которые являются полузакрытыми, может быть, это социальный сайт для нынешних и прошлых сотрудников.

Лучше, однако, вы можете сделать выводы из других мест, в которых используется определенный OpenID. Предположим, что у вас есть карта OpenIDs для значений репутации от Stackoverflow.com. Когда кто-то появляется на вашем веб-форуме с OpenID, вы можете узнать, есть ли у них приличная репутация в Stackoverflow и пропустить CAPTCHA или испытательный срок для этих пользователей.

Смежные вопросы