Каковы преимущества и недостатки использования OpenID? - PullRequest
6 голосов
/ 20 июля 2009

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

Ответы [ 3 ]

5 голосов
/ 20 июля 2009

Преимущества

у вас есть единый вход, который на самом деле довольно крутой, особенно для людей, имеющих много аккаунтов тут и там.

Сервер openid предоставляет базовую информацию о пользователе, избавляя от необходимости каждый раз записывать обычную базовую информацию. В этом смысле вы экономите время своих пользователей.

Он очень хорошо расширяет традиционный механизм user / pass. Существует множество сайтов, предоставляющих обе системы одновременно.

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

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

Недостатки

Вы все равно должны предоставить имя пользователя / пароль тем, кто не понимает новую парадигму или у них нет openid (возможно, у них есть, но они не знают). Если вы пытаетесь обратиться к широкому кругу людей, вы можете их напугать.

Кроме того, я бы не стал использовать его для чего-либо серьезного. Я не доверял бы своему банку, просящему меня войти в систему с моим openid, но также и со многими сайтами электронной коммерции. Это нормально для неважных вещей.

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

Наконец, насколько я видел, во многих случаях серверы openid перемещают пароль в открытом виде, но это мое понимание, и я могу ошибаться. Я развернул свой собственный поставщик OpenID, и я пошел на многое, чтобы пароль был перенесен через https, даже если мой OpenID помечен как http

1 голос
/ 20 июля 2009

Хорошо, взяв SO в качестве примера, он поддерживает оба. Я вхожу, используя свою учетную запись Google через OpenID, но мне все еще нужно иметь учетную запись / имя пользователя для ссылки на мой OpenID. Я предполагаю, что вы разрешаете вход только через OpenID, но не для ваших пользователей, чтобы войти, используя ваш сайт в качестве сервера OpenID.

Итак, чтобы прояснить ситуацию; Вы можете использовать большую часть своего кода для входа / выхода из системы, и он вам понадобится, потому что единственное отличие состоит в том, что вы проходите аутентификацию через сторонних разработчиков, а не через свою собственную базу данных. В псевдокоде представьте это:

authenticate_from_db(String username, String password)
{
      fetch username and password where username = username
      if username = username and password = hash_of(password)
      { 
           return true;
      } 
      else
      {
          return false;
      }
}

authenticate_from_openid(String openId_provider)
{
     provider = contact_openID_provider(openID_provider)
     if(provider)
     {
         login.username = map(returned_user, your_db)
         return true
     }
     else
     {
        return false;
     }
}

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

Преимущество довольно очевидно:

  • Разрешение пользователям входить с существующими учетными записями через своего поставщика OpenID.
  • Ваши существующие пользователи могут при желании войти через своего OpenID провайдера

Недостатки (я мог представить):

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

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

Пользователям OpenID по-прежнему нужна учетная запись, они просто проходят проверку подлинности через стороннего производителя.

1 голос
/ 20 июля 2009

Главное преимущество, которое я вижу, хотя и не обязательно применимо в вашем случае, если вы хотите сохранить существующую систему, заключается в том, что мне не нужно беспокоиться о хранении паролей.

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

Для пользователя теперь он может на законных основаниях иметь только один пароль для всего. Они используют провайдера OpenID, которому доверяют, вместо того, чтобы доверять любому члену или Гарри в Интернете с помощью веб-сайта.

...