Pull to refresh

Comments 51

это надежно, все ли OpenId сервисы содержат в user agent строку openId? есть спецификация, документ на который можно положиться?
Это зависит от Вашего браузера. Если вы его перенастроите, то он вообще будет резать все заголовки, поэтому ни о какой спецификации не может быть и речи.
Кроме User-Agent, сервис, согласно спецификации, отдаёт также ещё два параметра (второй из них обязателен):
[«REDIRECT_UNIQUE_ID»]=>
string(19) «SVMr2VzzQ3oAAEn9hA0»
[«UNIQUE_ID»]=>
string(19) «SVMr2VzzQ3oAAEn9hA0»
Т.е. если Вы настроите свой браузер должным образом, OpenId (причём любой). Идентификация происходить уже после перехода на провайдера.
Если что-то пойдёт не так, то просто вы не законнектитесь, и придётся вводить свой обычный OpenId.
Никакого удара по безопасности не будет.
вы не ответили на вопрос
все ли сервисы содержат строку «openid», к которой вы привязались или нет? написано ли про это в спецификации.

про безопасность речи не шло
В спецификации написано, что строка User-agent может изменяться на клиенте из-за клиентских программ, поэтому привязки к ней нет и не будет о обязательном наличии не написано, это повышает вероятность неподключения на каком-либо самописном быдлоресурсе.
«With that said, many web applications and protocols today rely on the security of the Web browser and their hosts.» – «Остаётся надеяться на безопасность Web-браузеров.» (попраьте, если я перевёл неправильно суть.)

спасибо, стало понятнее
В двух словах: в спецификации не указано о обязательном указании такой строки.
Но сервисы, куда я тыкался, всё прекрасно поняли.
Уточните, пожалуйста, что вы считаете быдлоресурсом?
Zend_Openid передаёт совсем другой User-Agent при запросах к OpenID-провайдерам. Остальные известные мне реализации тоже.
Указанную вами строку передаёт одна единственная библиотека — библиотека OpenID от JanRain.
Она в этом плане никак не может являться стандартом.
Вы правы. Виноват, преувеличил.
Я имел в виду (предположил), если начинающий программист Вася Пупкин сам напишет скрипт подключения к провайдеру, а не воспользуется готовыми решениями, то он может и другой UserAgent поставить.
UFO just landed and posted this here
А как на это перенаправление среагируют всевозможные адблоки, ноускрипты, фаерволы, антивирусы, и прочие штуковины обрезания сайтов и безопасности, работающие на клиенте?
Если человек привык, что с habr.ru его не кидает на habrahabr.ru по причине работы мегасуперутилитки, которая режет перенаправления, то он сможет смириться с тем, что надо вводить обычный OpenID.
(Правда, обычный OpenID тоже не заработает.)
соответственно есть второй способ

В HTML-код той страницы, которую вы хотите сделать своим OpenID-адресом, внутрь тегов … добавьте несколько служебных тегов:
/>
/>
/>
/>
Кстати, стандартный скрипт ищет такие link-и на странице, куда его перебросило. Если мы перебросим его на работающий OpenID провайдер, то он увидит те-же самые линки.
Причём это не может быть как и страница OpenId провайдера, так и страница, в которой присутствуют вышеприведённые теги.
У меня всего в две строчки сделано
/>
/>
<link rel=openid.server href=http://openid.yandex.ru/server.xml
<link rel=openid.delegate href=http://openid.yandex.ru/users/tsepelev
Было-бы здорово. Но во-первых, я уже зарегистрирован в нескольких местах под ainu.myopenid.com. А во-вторых, поставить две строки проще, чем полноценный скрипт.
Кстати, если уж ставить свой OpenID (я так понял, это отдельный домен или поддомен, то на нём уже можно настроить безоговорочный редирект на OpenID провайдера (это повысит надёжность в случае отсутствия заголовка). Правда (как и в случае с phpMyId) уберёт сам сайт (блог, например, которого не хочется лишаться, если указывать его в качестве OpenId).
у меня phpMyId прекрасно сожительствует с блогом на WordPress, оба доступны по одному урлу :)
Можно поподробнее?
Я рассказал лишь о сути (и указал рабочий пример, без него идеи никогда не воспринимаются).
Куда подробнее? В DNS Вашего домена прописать CNAME запись, смотрящую на ainu.myopenid.com.
Но я никогда не использовал openid, поэтому я не уверен, что это сработает. Просто предложил вариант.
А, понятно.
Этого делать нельзя, если я настрою перенаправление с ramainen.ru на ainu.myopenid.com, то мой сайт перестанет работать.
CNAME нельзя сделать на основной домен :)
Можно сделать id.ramainen.ru
Ну если с поддомена, то есть ещё альтернатива в виде .htaccess перенаправления. Имхо её сделать даже проще, чем перенастроить DNS. Хотя кому как.
Ну если на сайте больше ничего нет, может и сойдет. А если, скажем, по этому же адресу доступен еще и блог?
Читайте выше, я написал вариант.
Спасибо за инфу =) Вот только из двух слов «свой» и «персональный» достаточно было бы одного ;)
кстати, никто под вордпрессомм не ставил плагин OpenID? у меня он не работает, выдает фатал эррор в методе NeedSigning, эту проблему я кое-как победил, теперь еще несколько фаталов валится(
Может дело в версии PHP?
нет, дело в плагине( не у одного меня такая проблема
я уже откатил свои изменения в плагине, не могу вспомнить что там было…
а вас идентифицирует как ainu.myopenid.com или как ramainen.ru?
Разумеется, как ainu.myopenid.com.
Но я пишу везде ramainen.ru (так проще запомнить и быстрее написать)
понятно. Просто недавно столкнулся с проблемой делегирования, там показывался реальный опенИД провайдер, а хотелось что бы тот кто перенаправлял.
подождите, то есть вся выгода от описанного в посте решения — в простоте запоминания вашего openID?
эээ… да! :)
Для всего остального надо писать свой провайдер (или взять готовый), настроить его и т.д.
А тут я просто пишу везде, где просят openId, адрес своего сайта. И всё работает.
Только я углядел в посте «скрытую» рекламу? :)
Во-первых, если я бы я захотел рекламы или ТиЦа, я бы поставил ссылку.
Во-вторых, у меня на сайте толком нечего смотреть. Это даже не стартап и новых статей я не постил нескольок месяцев. Так что мне както фиолетово.
Глупость какая написана. Никто тебе не будет передавать в юзерагенте «php-openid/2.1.1 (php/5.2.6) curl/7.15.5». Если какой-то один сервер так и делает, то это его личное уникальное свойство (либо свойтво какой-то либы для openid). Для таких вещей предусмотрена делегация и это единственно правильный способ.
Не один. Выкрою время и проверю штук 30 сервисов, для успокоения.
И потом, всегда есть вариант создания поддомена вроде id.имясайта.ru (об этом в комментах говорили)
Тогда, пожалуйста, узнайти и библиотеки, которые используют эти сервисы. Спорю на 20$, что работать это будет только на одной библиотеке или её модификациях :)
А я-то думал, что тут про настройку OpenID сервера у себя=)

Эх...)
IMHO, вредная статья. Т.к. продвигает в массы два глобальных заблуждения по поводу OpenID.

1. Open ID это сложно и для того чтобы его развернуть нужен «персональный сервер (хостинг, можно бесплатный) с поддержкой php, asp или любого другого языка». НЕВЕРНО!!!

Чтобы завести Open ID достаточно иметь одну любую страницу в интернете, адрес которой и будет вашим Open ID. Никакой поддержки скриптов не требуется. Достаточно в хедере страници прописать два или четыре метатега. (См комментарии выше).

2. Зарегистрировав Open ID на бесплатном сервере (например ainu.myopenid.com) можно пользоваться полученным идентификатором как есть. НЕВЕРНО!!!

Пользуясь таким идентификатором вы точно так же попадаете в зависимость от myopenid.com как зависите от микрософт при регистрации на microsoft passport. Правильная схема — использовать в качестве Open ID страницу которой вы гарантированно владеете и использовать openid.delegate. Смотри выше туда же.
UFO just landed and posted this here
Есть какие-то варианты привязки openid к LDAP? OpenID-LDAP не катит, так как OpenID-LDAP is NOT compatible with Suhosin or other hardened PHP systems
Кроме того, что этот способ определит вас как что-то-там.опенайди.ком вместо вашего сайта, так это еще кривой способ. Так что либо поднимаем человеческий опенид-сервер, или пользуемся стандартными link-rel-конструкциями (помещаем их только на главную, естественно)
UFO just landed and posted this here
Sign up to leave a comment.

Articles