Я выполняю аутентификацию пользователей приложений, использующих djangosaml2. Использование NAMEID_FORMAT_TRANSIENT в моей SAML_CONFIG Словаре так:Настройки безопасности Django SAML
'service': {
# My SP SP
'sp': {
'name': 'My local SP',
'name_id_format': NAMEID_FORMAT_TRANSIENT,
'endpoints': { ... }
Пользователь проходит проверку подлинности, но имя пользователя принимается в зашифрованном виде. Это требование от SP. Я вижу в документации pysaml (https://github.com/onelogin/python-saml), что есть «безопасность» набор параметров и один из параметров есть
"nameIdEncrypted": False
Мой вопрос: Как включить «безопасность» параметры в SAML_CONFIG словарь в settings.py? следующее не похож на работу:
'service': {
'sp': { ... }
}
'metadata': {
....
}
'security': {
# The nameID of the <saml:logoutRequest> sent by the SP will be encrypted
"nameIdEncrypted": True,
# Indicates whether the <samlp:AuthnRequest> messages sent by this SP
# will be signed. [Metadata of the SP will offer this info]
"authnRequestsSigned": False
}
Edit: исправляющие себя: Работа с моей SP я удостоверился, что метаданные и сертификаты, являются правильными и моим пользователь может проверить подлинность, если безопасность выключена на стороне SP. Однако, когда они правильно активировать функции безопасности для моего сайта я вижу следующее в моих журналах, когда первоначальный запрос SAML переходит:
INFO 2015-10-13 10: 00: 43478 ответ STATUS_OK 3188 Не успешная операция: подписи требуется ERROR 2015-10-13 10: 00: 43478 client_base parse_authn_request_response 3188 ошибка статуса SAML: Подпись требуется от урновых: оазис: названий: дц: SAML: 2.0: статус: Запрос
Тем не менее проблема остается, как для передачи настроек безопасности в словаре SAML_CONFIG. Я попытался установить их на уровне корня или под «sp» безрезультатно. Другой способ - поместить их в отдельный json-файл, и djangosaml2 каким-то образом использует этот файл, но я не вижу, как это сделать.
Обратите внимание, что вы не используете pysaml2, вы используете python-saml – smartin