Установка

Модуль SSOSP подключается как приложение Django. Поддерживается Django версии 1.3 и старше.

Для функционирования, модулю SSOSP требуется установка дополнительных библиотек.

Необходимые библиотеки

  • lxml >= 3.0
  • rsa >= 3.1.2
  • xmldsig == 1.0.0

Их можно установить одной командой:

pip install lxml rsa xmldsig -i https://<PyPi_сервер_БАРС_Груп>

Подключение PyPi сервера необходимо для пакета xmldsig.

Используя pip

Установите пакет ssosp из репозитория пакетов компании БАРС Груп

pip install ssosp -i https://<PyPi_сервер_БАРС_Груп>

В этом случае будут установлеты также все необходимые пакеты.

Теперь можно приступать к настройке Django-приложения.

Скачать архив

Скачайте и распакуйте архив модуля https://bitbucket.org/barsgroup/ssosp/downloads

Используя Mercurial

Клонируйте исходный код модуля из репозитория

hg clone https://bitbucket.org/barsgroup/ssosp

Установка из каталога

Установка

python setup.py install

Настройка

Основная настройка модуля осуществляется в settings.py приложения. В нем надо создать словарик парметров настройки SSO_CONFIG.

Пример заполнения словаря настройки:

SSO_CONFIG = {
    'idp': 'https://localhost:9443/samlsso', # адрес Identity Provider
    'issuer': 'saml2.demo2', # код связи между IdP и SP
    'acs': 'http://localhost:9000/sso/acs/', # адрес сервиса ACS
    'index': '1906473741',
    'session_map': 'ssosp.backends.cache', # бэкенд соответствия сессий
    'get_user': 'demo2.views.get_or_create_user', # получение пользователя
}

Параметры настройки:

  • idp - адрес IdP. Именно на этот адрес будут отправляться SAML-запросы.

    Обязательный параметр

  • issuer - код приложения, под которым оно зарегистрировано в IdP.

    Обязательный параметр

  • acs - адрес сервиса ACS. Этот адрес должен быть зарегистрирован в IdP

    для этого приложения и также указывается в SAML-запросах. Именно по этому адресу будут приходит SAML-запросы от IdP в приложение и происходить редирект. Т.е. это должен быть внешний адрес! Обязательный параметр

  • index - код набора атрибутов (Claims), передаваемых при аутентификации

    пользователя на IdP. При изменении набора передаваемых атрибутов на IdP изменяется и этот код. По умолчанию, этот параметр отсутствует и атрибуты не передаются.

  • session_map - путь к бэкенду, отвечающему за хранение соответствий

    django-сессии и сессии на IdP. В состав SSOSP входят 2 бэкенда:

    • ‘ssosp.backends.db’ - хранение в БД (модель SSOSession)
    • ‘ssosp.backends.cache’ - хранение в кэше django

    Значение по умолчанию: ‘ssosp.backends.db’.

  • cache_timeout - длительность хранения сессий в кэше django в случае использования

    ‘ssosp.backends.cache’. Значение по умолчанию: 2592000 (30 дней).

  • get_user - путь к функции поиска пользователя в приложении, по переданным

    данным из IdP (передаются userid и список claims). На выходе функции должен быть соответствующий пользователь django, либо None, если не нашли. Если параметр не указан, то пользователь ищется в модели User по соответствию username = userid.

  • login - путь к функции входа пользователя в приложение. В функцию передается

    request и user. Этот параметр предназначен для обработки входа в приложение.

    По умолчанию, используется функция login из модуля django.contrib.auth.

  • logout - путь к функции выхода пользователя из приложения. В функцию

    передается request. Этот параметр предназначен для обработки выхода из приложения.

    По умолчанию, используется функция logout из модуля django.contrib.auth.

  • zipped - логический параметр, определяющий, необходимоть распаковки данных

    при получении SAML-сообщений. (Предыдущий версии WSO2IS отправляли запросы с упаковкой - теперь нет)

    Значение по умолчанию: False.

  • validate - логический параметр, определяющий, необходимость проверки цифровой

    подписи поступающих SAML-сообщений, подписанных по спецификации XMLDSIG.

    Значение по умолчанию: False.

  • public_key - строка публичного ключа для проверки цифровой подписи

    SAML-сообщений. Используется совместно с параметром validate.

    Значение по умолчанию: None.

  • signing - логический параметр, определяющий, необходимость цифровой подписи

    отправляемых SAML-сообщений, по спецификации SimpleSign.

    Значение по умолчанию: False.

  • private_key - строка закрытого ключа для цифровой подписи SAML-сообщений.

    Используется совместно с параметром signing.

    Значение по умолчанию: None.