Установка ========= Модуль 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 сервера необходимо для пакета xmldsig. Используя pip ------------- Установите пакет ssosp из репозитория пакетов компании ``БАРС Груп`` :: pip install ssosp -i https:// В этом случае будут установлеты также все необходимые пакеты. Теперь можно приступать к `настройке 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'. * 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*. * signing - логический параметр, определяющий, необходимость цифровой подписи SAML-сообщений и проверки корректности подписи поступающих SAML-сообщений. **На текущий момент подписывание работает не корректно.** Значение по-умолчанию: *False*. * public_key - строка публичного ключа для проверки цифровой подписи SAML-сообщений. Используется совместно с параметром *signing*. Значение по-умолчанию: *None*.