vooid

Very Own OpenID server


Keywords
django, openid, vooid
License
Other
Install
pip install vooid==1.4

Documentation

КРАТКО

Vooid (Very Own OpenID server) — это OpenID-сервер для персонального сайта, написанного на Джанго. Обслуживает единственного пользователя — администратора, позволяя ему использовать любой URL своего сайта для авторизации по OpenID.

Сделан на библиотеке python-openid и поддерживает версии протокола 1.1 и 2.

УСТАНОВКА

Сервер требует наличия:

  • библиотеки python-openid версии 2.x.
  • установленного приложения sites из contrib Джанго

Установка:

  1. Поместить директорию vooid в питоновский путь.

  2. Включить в INSTALLED_APPS:

    INSTALLED_APPS = [
        ...
        'vooid',
    ]
    
  3. Подключить middleware (выдает HTTP-заголовок для XRDS discovery):

    MIDDLEWARE_CLASSES = [
        ...
        'vooid.middleware.YadisMiddleware',
    ]
    
  4. Подключить URL'ы служебных view в urlconf проекта:

    urlpatterns = patterns('',
      ...
      (r'^openid/', include('vooid.urls')),
    )
    
  5. Установить нужные таблицы в базу через ./manage.py syncdb

В простейшем случае этого достаточно. Дополнительные телодвижения требуются для поддержки версии OpenID 1.1, настройки SREG (выдачи дополнительных данных пользователя) и настройки URL'а сайта, который будет использоваться в качестве OpenID.

ВНИМАНИЕ! Чтобы куда-то логиниться по OpenID, пользователь должен быть уже залогинен на своем сервере как администратор. Я посчитал излишним включать в Vooid формочку для логина, поэтому если администратор не залогинен, Vooid просто сразу отказывает в авторизации.

НАСТРОЙКИ

По умолчанию OpenID URL'ом считается корень сайта. Если хочется другой, его надо указать в настройках:

VOOID_IDENTITY = 'http://mysite.com/about/'

Также Vooid умеет выдавать расширенную информацию о пользователе — SREG. Задается она так:

VOOID_SREG = {
    'nickname': 'hax0r',
    'email': 'hax0r@mysite.com',
    'fullname': u'Василий Чапаев', # не-ascii строки должны быть unicode
}

ПОДДЕРЖКА OPENID 1.1

Для поддержки старой версии OpenID (которая все еще распространена) нужно в шаблон той страницы, которая выдается по OpenID URL'у (чаще всего это индекс сайта) включить теги <link> со ссылками на OpenID-сервер. Для этого в Vooid есть шаблонный тег:

{% load openid %}
{% openid_links %}

По умолчанию теги выдаются в HTML-синтаксисе (то есть без " />"), но можно их вывести и в XHTML-фиде:

{% openid_links "xhtml" %}

Этот тег обычно проще всего указать в базовом шаблоне сайта.

КООРДИНАТЫ

Автор: Иван Сагалаев (maniac@softwaremaniacs.org)

Распространяется по лицензии New BSD (3-clause) (см. файл LICENSE).