Установка¶
Модуль 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
Настройка¶
Основная настройка модуля осуществляется в 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.