Как вы препятствуете OneLogin генерировать недопустимое значение InResponseTo? - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь аутентифицировать пользователей через OneLogin в Schwab Compliance Technologies.

Когда пользователи входят в систему с панели управления OneLogin, они аутентифицируются нормально. Когда я использую приведенный ниже код для аутентификации их с нашего сайта intr anet, пользователь переходит на страницу входа в Schwab CT, но получает эту ошибку:

Сбой аутентификации с использованием единого входа. Пожалуйста, проверьте имя пользователя и / или токен.

Это код, который я использую для генерации запроса:

user = view_context.current_user
request = OneLogin::RubySaml::Authrequest.new
settings = OneLogin::RubySaml::Settings.new

settings.idp_entity_id = "https://#{ONELOGIN_HOST}/saml/metadata/#{ONELOGIN_APP_UUID}"
settings.idp_sso_target_url = "https://#{ONELOGIN_HOST}/trust/saml2/http-post/sso/#{ONELOGIN_APP_UUID}"
settings.idp_slo_target_url = "https://#{ONELOGIN_HOST}/trust/saml2/http-redirect/slo/#{ONELOGIN_APP_UUID}"
settings.idp_cert_fingerprint = ONELOGIN_APP_FINGERPRINT
settings.idp_cert_fingerprint_algorithm = XMLSecurity::Document::SHA1

settings.name_identifier_value_requested = user.email
settings.name_identifier_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"

settings.security[:digest_method] = XMLSecurity::Document::SHA1
settings.security[:signature_method] = XMLSecurity::Document::RSA_SHA1

redirect_to(request.create(settings))

Есть ли какой-нибудь способ запретить OneLogin добавить атрибуты InResponseTo? Должен ли <ds:SignatureValue> соответствовать успешному запросу? Нужно ли что-то еще сделать для решения этой проблемы?

РЕДАКТИРОВАТЬ: Я наконец-то услышал от Schwab CT и ошибка, которую они видят, заключается в том, что значение InResponseTo является недействительным:

org.opensaml.common.SAMLException: InResponseToField ответа не соответствует отправленному сообщению _06d42e96-fbc0-4e97-87c3-4d35c558ee8b

Есть что-то, что нужно добавить в мой код, чтобы заставить OneLogin сгенерировать правильное значение для InResponseTo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...