-
Приветствую.
Лирика
Спасибо за эту ветку форума :) Нечасто попадаются сообщества где на пинают новичков, а тут именно такое. Можно смело спрашивать.
Конец лирики
По существу вопроса. Поясните пожалуйста, как защитить свой OpenID от стороннего использования?
Я пробую создать свой простой OpenID сервер. Взял пример для django из дистрибутива python-openid
Кое-как что-то завелось, пока еще с тестовыми данными и все такое. Допустим, мой OpenID: http://mydomain/server/user
По идее, его же может указать любой, кто знает о нем, так? Значит, я должен защитить view который обрабатывает этот адрес, паролем?
Немного сумбурно, но суть вопроса в следующем: как запретить посторонним подписываться моим OpenID
Спасибо. -
Вы немного неправильно поняли суть. В схеме аутентификации по OpenID присутствует не один URL, а по крайней мере два (на самом деле больше, но те, как правило, служебные). Первый - это ваш OpenID URL, второй - это URL OpenID-сервера (который указан в содержимом или заголовках, расположенным по OpenID URL).
Ваш OpenID - это URL, о котором можно сказать, что вы являетесь его владельцем, и вы можете это подтвердить посредством какой-либо аутентификации. Определением, являетесь ли вы владельцем этого URL, в конечном итоге занимается OpenID-сервер.
Так что сам OpenID URL ни в коем случае нельзя закрыать паролем - схема перестанет работать, т.к. его содержимое должно быть видно сайту, принимающему OpenID.
Но доступ к специальному URL, по которому происходит проверка, являетесь ли вы владельцем данного URL, требует аутентификации на OpenID-сервере. Если эта аутентификация пропущена или чисто формальна (это называется "анонимный OpenID"), то да, кто угодно может представиться вашим OpenID. Если же она реально требует ввода некого секрета, известного только вам и серверу (пароль, сертификат и т.п.), то ваш OpenID неприкосновенен. -
Другими словами, адрес http://mydomain/server/user — ваш OpenID, то он должен быть открыт. Но на странице по этому URL'у каким-либо способом указывается еще один URL — cлужебный URL сервера, например http://mydomain/server/endpoint. Вот он в ответ на определенные запросы со стороны OpenID-клиентов действительно должен пускать только авторизованного пользователя.
-
Ага, спасибо, кое-что проясняется.
Итак, допустим: в коде страницы http://mydomain/server/user есть теги:
Значит, защищать я должен доступ к http://mydomain/server/endpoint/ ?<link rel="openid.server" href="http://mydomain/server/endpoint/">
<link rel="openid2.provider" href="http://mydomain/server/endpoint/"> -
Иван, спасибо. Пока набирал, появился ответ ) Магия.

