Comments 70
Ухты, превосходно, давно ждал чего либо подобного.
еще бы хотелось более подробного и такого же простого описания, как интегрировать опенид в свой проект.
еще бы хотелось более подробного и такого же простого описания, как интегрировать опенид в свой проект.
Спасибо! Постараюсь, как-нибудь собрать все свои силы и мысли и написать мануал по теме OpenID, основанный на моем опыте. Так как действительно, очень-очень мало документации по OpenID на русском.
а вы пробовали такое искать? ; ) ведь уже достаточно давно существует, например, rpxnow.com — аналог описанного в посте
А как решается проблема с тем что например livejournal не возвращает данные о пользователе (ну или может у меня руки кривые)?
Выглядит очень симпатично, если бы еще не редайректил на отдельную страничку, а всплывал отдельным слоем, было бы еще лучше имхо.
Выглядит очень симпатично, если бы еще не редайректил на отдельную страничку, а всплывал отдельным слоем, было бы еще лучше имхо.
Если OpenID провайдер не возвращает профиля пользователя, то в JSON массиве соответственно его тоже не будет. Будет переданы данные о identity пользователя и ссылка на провайдера provider.
> если бы еще не редайректил на отдельную страничку, а всплывал отдельным слоем, было бы еще лучше имхо.
Так же так и сделано (всплывает отдельным слоем), просто видимо у тебя страница не догрузилась или JS, именно для таких случаев сделано так (редирект), чтобы все работало.
Так же так и сделано (всплывает отдельным слоем), просто видимо у тебя страница не догрузилась или JS, именно для таких случаев сделано так (редирект), чтобы все работало.
> В планах реализовать обратную совместимость с OpenID 1.0 (на данный момент, поддерживается только 2.0 версия)
а как можно определить, используется ли вторая или первая версия протокола OpenID-сервером?
разработка однозначно полезная и нужная
а как можно определить, используется ли вторая или первая версия протокола OpenID-сервером?
разработка однозначно полезная и нужная
Определение версии OpenID сервера сделано очень хитро. Для того чтобы узнать какие версии держит какой либо сервер, нужно обратиться к XRDS документу сервера (путь к нему может передаваться в HTTP-заголовке X-XRDS-Location ответа сервера).
Собственно в этом документе описывается все возможности сервера:
httр://specs.openid.net/auth/2.0/server — как раз указывает на то, что используется 2.0 версия.
Собственно в этом документе описывается все возможности сервера:
- <?xml version="1.0" encoding="UTF-8"?>
- <xrds:XRDS
- xmlns:xrds="xri://$xrds"
- xmlns="xri://$xrd*($v*2.0)">
- <XRD>
- <Service priority="0">
- <Type>httр://specs.openid.net/auth/2.0/server</Type>
- <Type>httр://openid.net/extensions/sreg/1.1</Type>
- <Type>httр://openid.net/srv/ax/1.0</Type>
- <Type>httр://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
- <URI>httрs://loginza.ru/server/</URI>
- </Service>
- </XRD>
- </xrds:XRDS>
* This source code was highlighted with Source Code Highlighter.
httр://specs.openid.net/auth/2.0/server — как раз указывает на то, что используется 2.0 версия.
а почему нет поддержки кастомного OpenID? Или как, например, я сделал просто добавил ссылки на openid сервер и профайл на своем сайте и могу теперь использовать свой сайт для авторизации (как делать написано тут — simonwillison.net/2006/Dec/19/openid/ )
Ппопробывал и через Google аккаунт и через loginza.ru, все хорошо работает но когда на экране остаеться последняя кнопка «Continue» то нажатие на нее обсалютно ничего не дает (Mac Os, Google Chrome), была у меня однажды проблема, что в хроме не работал submit формы на Javascript, возможно причина в этом
в избранные! спасибо!
Раньше — да, действительно не работало, но с недавнего времени (может месяца два назад, или три, точно не помню), они все переработали и исправили баги. Теперь работает на ура.
да, работает
раньше сначала криво работало, потом нормально работало, но не на всех почтовых адресах, теперь вроде работает везде — по крайней мере у меня на всех ящиках работает
только вот на loginza насколько я понял не работает авторизация с других адресов mail.ru, таких как inbox.ru — а это достаточно большая аудитория
раньше сначала криво работало, потом нормально работало, но не на всех почтовых адресах, теперь вроде работает везде — по крайней мере у меня на всех ящиках работает
только вот на loginza насколько я понял не работает авторизация с других адресов mail.ru, таких как inbox.ru — а это достаточно большая аудитория
правда с серверной стороны пришлось сделать костыль специально для обработки их sreg (стандартным обработчиком данные не выдавались, но возможно, что это я где-то накосячил)
> не работает авторизация с других адресов mail.ru, таких как inbox.ru
Спасибо, я про это совсем забыл, буду исправлять.
Спасибо, я про это совсем забыл, буду исправлять.
> Где то полгода назад я сильно увлекся OpenID
Интересное увлечение. А функцией printf вы не увлекаетесь?
Интересное увлечение. А функцией printf вы не увлекаетесь?
Может, выложите исходники на GitHub? Или проект монетизирован?
а https://openid.wmkeeper.com/ не добавите ли?
<a href="javascript:LOGINZA.newUser();">Зарегистрируйтесь</a>
Не работает. По клику ничего не происходит.
Chromium 5.0.368.0 (43430) Ubuntu
причём кнопка продолжить в описанном выше сценарии работает нормально.
Спасибо, будем тестировать и исправлять.
Спасибо большое!
Буду рад обновлению с поддержкой первой версии openid, чтобы можно было использовать без опасений.
Буду рад обновлению с поддержкой первой версии openid, чтобы можно было использовать без опасений.
Большое спасибо, очень интересный вариант для авторизации пользователей, буду пробовать.
Скажите, а локализация интерфейса на другие языки есть/планируется? Навскидку на вашем сайте ничего по этому поводу не нашел…
Скажите, а локализация интерфейса на другие языки есть/планируется? Навскидку на вашем сайте ничего по этому поводу не нашел…
Напомните кто-нибудь зачем экранировать / в json?:
http:\/\/admin.loginza.ru
http:\/\/admin.loginza.ru
Была бы еще опция — при отсутствии учетных записей на сервисах из списка — просто возвращать на сайт с каким-либо специальным параметром, чтобы пользователя можно было зарегистрировать у себя, а не регистрировать на Логинзе и у себя.
оо, спасибо, только сегодня подумал, что на всяких разных форумах надо бы делать сквозную или внешнюю авторизацию. Буду использовать, с вашего разрешения :-)
монетезироваться то будете?
Да, последнее время мне тоже приходится работать с технологией OpenID, но на мой взгляд большой минус в количестве сайтов предоставляющих авторизацию и что самое плохое они возвращают разные наборы данных о пользователе что не очень-то удобно. На мой взгляд я бы предложил другой вариант реализации подобной технологии в двух вариантах:
1. Унификация данных пользователей везде (стандартизированный набор данных всех возможных вариантов), чтобы если где-то заполняется профиль
пользователя, то сразу всей необходимой информацией (пользователь естественно сам решает что и когда ему следует заполнить). Также для более продвинутых пользователей есть возможность установить собственный OpenID сервер для собственной учётной записи или даже нескольких для разных случаев (всякое бывает :)).
2. Создание клиентского приложения в котором пользователь сохраняет все свои данные (что не требует кстати доступа в интернет, и данные хранятся в большей безопасности на его компьютере допустим в зашифрованном виде и доступ к ним есть только у программы через мастер пароль например), и при авторизации на сайтах данная программа выступает в качестве OpenID сервера.
Таким образом достичь надо следующего: все данные должны хранится в одном месте, а потребители этих данных будут запрашивать необходимые записи (стандартизированные) и после разрешения пользователя на предоставление тех или иных данных они будут им переданы.
Лично для себя я сейчас рассматриваю вариант 2, создания такого приложения-паспорта, лично мне он кажется гораздо более удобным вариантом, его например даже можно носить на внешнем носителе, что позволит авторизоваться даже с чужих машин. Пока в стадии проектирования и сбора данных (месяц назад всего начал), если будут заинтересовавшиеся то с радостью поделюсь мыслями, приложение планирую делать open source на базе sourceforge.org так что буду рад если найдутся единомышленники.
1. Унификация данных пользователей везде (стандартизированный набор данных всех возможных вариантов), чтобы если где-то заполняется профиль
пользователя, то сразу всей необходимой информацией (пользователь естественно сам решает что и когда ему следует заполнить). Также для более продвинутых пользователей есть возможность установить собственный OpenID сервер для собственной учётной записи или даже нескольких для разных случаев (всякое бывает :)).
2. Создание клиентского приложения в котором пользователь сохраняет все свои данные (что не требует кстати доступа в интернет, и данные хранятся в большей безопасности на его компьютере допустим в зашифрованном виде и доступ к ним есть только у программы через мастер пароль например), и при авторизации на сайтах данная программа выступает в качестве OpenID сервера.
Таким образом достичь надо следующего: все данные должны хранится в одном месте, а потребители этих данных будут запрашивать необходимые записи (стандартизированные) и после разрешения пользователя на предоставление тех или иных данных они будут им переданы.
Лично для себя я сейчас рассматриваю вариант 2, создания такого приложения-паспорта, лично мне он кажется гораздо более удобным вариантом, его например даже можно носить на внешнем носителе, что позволит авторизоваться даже с чужих машин. Пока в стадии проектирования и сбора данных (месяц назад всего начал), если будут заинтересовавшиеся то с радостью поделюсь мыслями, приложение планирую делать open source на базе sourceforge.org так что буду рад если найдутся единомышленники.
Ммм… очень интересная идея, даже очень… Но сразу возник вопрос, а как будет проводиться проверка подлинности введенной информации, то есть какие гарантии будут того, что пользователь предоставляет реальные данные, а не от «балды»?
Встречный вопрос, а сейчас на сайтах данные разве проверяются? OpenID сервер возвращает то что ввёл пользователь, а что он там ввёл никто не смотрит. Подлинность это уже совсем другой вопрос, сначала надо сделать систему авторизации единую, а потом уже к ней придумывать систему проверки подлинности :)
Ну в случае серверного хранения данных (на конкретном OpenID сервере), в какой то степени есть малось централизации. Ну а если делать такую программу, то полная децентрализация. То есть пользователь полностью сам по себе. Возможно я ошибаюсь, просто сразу возникла такая мысль — рай для «спамеров».
Да, просто рассматривая вопрос централизации хранения данных я решил пойти обратным путем и рассмотрел централизацию просто в другом месте, не чтобы всех пользователей собрать на сервере, а чтобы все данные пользователя собрать у него самого :)
Никаких новых проблем это не привносит как таковых если подумать и рая для спаммеров не создаёт, потому что это та же OpenID авторизация только с сервером на компьютере пользователя, поэтому всё что работает сейчас может работать и дальше также.
Никаких новых проблем это не привносит как таковых если подумать и рая для спаммеров не создаёт, потому что это та же OpenID авторизация только с сервером на компьютере пользователя, поэтому всё что работает сейчас может работать и дальше также.
Немного поясню ещё отличия и почему я решил именно перенести всё к пользователю. Рассмотрим например сайт hh.ru, пользователь заходит на него, нажимает регистарция, сайт запрашивает от него некий набор данных, пользователь подтверждает передачу (можно настроить для каких полей подтверждать, а какие отдавать без вопросов) и всё, он зарегистрирован. Дальше также необходимо подтвердить емайл допустим активировав аккаунт. После этого он заполняет резюме, причём данные уже могут быть вбиты в его локальный паспорт и он опять же просто подтверждает их передачу сайту.
А касательно спаммеров все методы защиты остаются такими же, устраняется лишь необходимость заполнения форм личными данными и автоматическое обновление данных на сайте при его посещении в случае изменения данных в паспорте.
А касательно спаммеров все методы защиты остаются такими же, устраняется лишь необходимость заполнения форм личными данными и автоматическое обновление данных на сайте при его посещении в случае изменения данных в паспорте.
Про меры борьбы со спамом в OpenID:
— сайты принимающие авторизацию по OpenID, могут если увидят что какой то сервер грешит спам учетками, просто запретить регистрацию пользователей с него.
— OpenID сервер знает о своих пользователях некоторый набор данных по его активности, и может ввести показатель доверия, который будет доступен сторонним сайтам (кстати такой рейтинг хотят сделать на OpenID.Яндекса, о чем писалось тут)
Еще ссылки про спам проблемы:
— сайты принимающие авторизацию по OpenID, могут если увидят что какой то сервер грешит спам учетками, просто запретить регистрацию пользователей с него.
— OpenID сервер знает о своих пользователях некоторый набор данных по его активности, и может ввести показатель доверия, который будет доступен сторонним сайтам (кстати такой рейтинг хотят сделать на OpenID.Яндекса, о чем писалось тут)
Еще ссылки про спам проблемы:
ой, ссылки забыл дать:
Планы яндекса источник
А вот полная децентрализация не позволит этого сделать.
Планы яндекса источник
Есть интересная идея придумать (или найти придуманный) протокол, которым Яндекс сможет сообщать целевому сайту относительный уровень доверия пользователю. Сейчас у сайта, который принимает яндексового юзера, есть уверенность только в том, что это не робот, потому что у нас есть CAPTCHA при регистрации. Но ведь мы на стороне сервера знаем, какими сервисами пользуется юзер, а значит можем прикинуть, что если пользователь активно пишет в свой ярушный блог и регулярно загружает фотки, то это скорее всего не спамер, а нормальный сетянин.
А вот полная децентрализация не позволит этого сделать.
Ну есть о чём подумать, конечно, но вводить критерии доверия от разных сайтов можно и при хранении данных у пользователя.
По описанному выше: блочить весь сервер при большом количестве спам учёток на нём это слишком категорично, такие действия не должны затрагивать других пользователей.
Я бы предложил такую схему: в локальном паспорте пользователя хранить информацию о сервисах где он зарегистрирован, тогда при авторизации на неком новом сайте А, тот может проверить зарегистрирован-ли пользователь на одном из сайтов которому А доверяет. Если такой сайт есть, то с него по токену пользователя запрашивается некий показатель доверия. Так даже можно несколько сайтов проверить. А если на этом сайте А пользователь будет спамить, то его кредит доверия на сайтах которые его подтвердили аннулируется.
Ну на самом деле защита от спама вопрос сложный, сходу конечно такие решения сложно сделать, надо рассматривать множество случаев и это дело далеко не одного дня.
PS А ссылочки заново запостите, а то что-то я их не вижу.
По описанному выше: блочить весь сервер при большом количестве спам учёток на нём это слишком категорично, такие действия не должны затрагивать других пользователей.
Я бы предложил такую схему: в локальном паспорте пользователя хранить информацию о сервисах где он зарегистрирован, тогда при авторизации на неком новом сайте А, тот может проверить зарегистрирован-ли пользователь на одном из сайтов которому А доверяет. Если такой сайт есть, то с него по токену пользователя запрашивается некий показатель доверия. Так даже можно несколько сайтов проверить. А если на этом сайте А пользователь будет спамить, то его кредит доверия на сайтах которые его подтвердили аннулируется.
Ну на самом деле защита от спама вопрос сложный, сходу конечно такие решения сложно сделать, надо рассматривать множество случаев и это дело далеко не одного дня.
PS А ссылочки заново запостите, а то что-то я их не вижу.
1. Чтобы авторизоваться надо пройти 5 (!!!) шагов. Вся прелесть OpenID в минимизации усилий. Регистрация должна быть в 2 шага: нажал кнопку на сайте, где хочешь авторизоваться, подтвердил на сайте провайдера OpenID. Как этого достичь — проблема юзабилиста.
2. В Рамблере можно авторизоваться без ввода e-mail. Просто по урлу.
3. В форме регистрации подсказки находятся «где-то рядом».
4. Что станет с авторизацией, если loginza.ru постигнет хабраэффект или попросту взломают сервак?
2. В Рамблере можно авторизоваться без ввода e-mail. Просто по урлу.
3. В форме регистрации подсказки находятся «где-то рядом».
4. Что станет с авторизацией, если loginza.ru постигнет хабраэффект или попросту взломают сервак?
> В Рамблере можно авторизоваться без ввода e-mail. Просто по урлу.
Можно про это поподробнее, что имелось в виду и где на это посмотреть?
Можно про это поподробнее, что имелось в виду и где на это посмотреть?
Авторизация на рамблере происходит аналогично яндексу и гугл. Урл для авторизации:
Примеры: moiplan.ru pip.ec
http://id.rambler.ru/script/openid.cgi
Примеры: moiplan.ru pip.ec
А где Вы видели авторизацию OpenID по email?
Я не понимаю суть Вашего замечания:
>2. В Рамблере можно авторизоваться без ввода e-mail. Просто по урлу.
Я не понимаю суть Вашего замечания:
>2. В Рамблере можно авторизоваться без ввода e-mail. Просто по урлу.
Хорошо, возможно слово e-mail здесь не самое подходящее, хотя суть отражает. Смысл в том, что я захожу на ваш сайт, жму войти, выбираю рамблер, мне пишет: «Введите логин Вашей учетной записи». Зачем? Это еще одно лишнее и ненужное действие. Я привел примеры где данная возможность реализована без ввода дополнительных данных.
Я вас поздравляю, вы сделали из секьюрного протокола несекьюрный =)
теперь если вы залогинились на одном сайте с вашим виджетом и поставили галочку «запомнить», вы автоматически залогинились на всех сайтах, где стоит этот виджет.
теперь если вы залогинились на одном сайте с вашим виджетом и поставили галочку «запомнить», вы автоматически залогинились на всех сайтах, где стоит этот виджет.
Удобный инструмент, поставил себе на ряд проектов. Нюансы на которые я обратил внимание:
— Не хватает удобной возможности легко выбирать из всех способов авторизации те, которые нужны именно под конкретный проект
— Не хватает готовых модулей для популярных CMS с набором функционала
Всё остальное вери гут, большое спасибо и удачного развития проекту. Очень и очень радует.
— Не хватает удобной возможности легко выбирать из всех способов авторизации те, которые нужны именно под конкретный проект
— Не хватает готовых модулей для популярных CMS с набором функционала
Всё остальное вери гут, большое спасибо и удачного развития проекту. Очень и очень радует.
Ну и добавлю, поработайте над безопасностью, есть ряд небольших, но дырок. Стоит закрыть.
Из модулей есть Wordpress наш официальный плагин loginza.ru/wp-plugin
Ну и недавно написанный Drupal плагин docs.drupal.ru/node/45330 от Обухова Никиты
Ну и недавно написанный Drupal плагин docs.drupal.ru/node/45330 от Обухова Никиты
Скажите, а зачем логинза хочет получить список моих контактов с гугла?
Получение собственного контакта self и др. контактов имеет одинаковое разрешение. Ваши контакты Логинза не получает, запрашиваются только данные профиля.
Установил Логинзу на свой проект. Все отлично работает, но есть нюанс. Под окошком Логинзы синий квадратный фон, и он выглядит очень коряво. Нельзя ли что-то с этим сделать?
Sign up to leave a comment.
Javascript виджет авторизации OpenID