Базовая аутентификация WSO2 возвращает ошибку

Я пытаюсь использовать приложение для проверки подлинности, которое поставляется с WSO2, в качестве новой единственной точки входа для входа в старое приложение. Для тестирования я только что сделал страницу, которая перенаправляет на этот URL

https://localhost:9443/authenticationendpoint/login.do?relyingParty=My-Issuer&sp=Test-App&sessionDataKey=14792551&authenticators=BasicAuthenticator:LOCAL

Страница входа в систему выглядит, как и ожидалось, но как только я установлю имя пользователя и пароль, появится следующее сообщение:

Ошибка аутентификации! Внимание: что-то пошло не так во время процесса аутентификации. Пожалуйста, попробуйте войти снова.

Видя вывод в консоли в режиме отладки, это то, что показано

... Многие из той же ошибки говорят, что контекст аутентификации имеет значение null [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - контекст аутентификации null [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - контекст аутентификации равен null [2017-01-06 15:40:08,836] DEBUG {org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils} - контекст проверки подлинности равен нулю [2017-01-06 15:40:08,837] DEBUG {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - Ключ данных сеанса: 22451696 [2017-01-06 15:40:08,837] ОШИБКА {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - контекст не существует. Вероятно, из-за недействительного кэша

Я думаю, что я делаю что-то не так, возможно, отправлено недостаточно параметров, или они неправильные, пользователь и пароль верны, потому что я могу войти в сам углерод с ним, и он также является действительным пользователем для тестирование SP.

Конфигурация SP описана:

Основная информация

Название поставщика услуг: Test-App

Конфигурация претензии

Использовать локальный URI диалекта претензии Subject Subject http://wso2.org/claims/username

Роль / Разрешение Конфигурация Разрешения AdminTest Сопоставление ролей AdminTest->Admin

Конфигурация входящей аутентификации

  • SAML2 Web SSO Конфигурация эмитента: My-Issuer

    URL получателя утверждения: https: //localhost/Test/main.asp URL получателя подтверждения по умолчанию: https: //localhost/Test/main.asp Формат NameID: urn:oasis:names:tc:SAML:1.1:nameid-format: Псевдоним сертификата emailAddress: wso2carbon Алгоритм подписи ответов: ...#rsa-sha1 Алгоритм дайджеста ответов: ...#sha1

Проверенные значения Включить подпись ответа Включить однократный выход из системы Включить профиль атрибутов Включить атрибуты в ответ Всегда включать инициированный IdP SSO Включить SLO инициированный IdP

Другие в пустых OAuth, OpenID, и т. Д. (Дайте мне знать, если это, возможно, проблема, поэтому должны быть заполнены.

Конфигурация локальной и исходящей аутентификации

Тип аутентификации: я пробовал с Default и Local Authentication = basic и password-reset-принудительно

Это проверено:

  • Подтвердить идентичность, используя сопоставленный локальный субъектный идентификатор
  • Использовать домен арендатора в локальном идентификаторе субъекта.
  • Использовать домен магазина пользователя в локальном идентификаторе темы

    Запрос конфигурации пути аутентификации basic-auth

Конфигурация входящей инициализации Конфигурация SCIM PRIMARY Dumb Mode не включен

Остальное оставлено пустым

Я потратил много дней, отслеживая эту проблему, но не получил ответов или для более старых версий.

Я тестировал с JDK 7 и 8 (последний из них) Я работаю с WSO2 IS 5.2.0. Кто-то может привести меня к решению использовать это приложение в качестве единственной точки входа для моих SP? Идея заключается в том, чтобы отправить ответ SAML2 на страницу на стороне SP, которая считывает информацию и управляет частью авторизации.

Заранее спасибо.

1 ответ

Решение

Вы настроили сценарий единого входа SAML. Поэтому ваш SP должен вызвать конечную точку единого входа SAML WSO2 Identity Server с действительным запросом SAMLRequest. Это https: // имя хоста: порт / samlsso.

AuthenticationEndpoint - это просто промежуточное приложение. Конечная точка единого входа SAML - это та, которая должна перенаправить пользователя в AuthenticationEndpoint после первой обработки SAMLRequest. Вы не должны называть это напрямую.

Обратитесь к этому, чтобы узнать, как запустить пример приложения SAML SSO с WSO2 IS. Во время этого вы можете отслеживать поток HTTP-запросов / ответов с помощью такого инструмента, как SSOTracer for Firefox, и понимать, как работает связь.

Аналогично потоку единого входа SAML, если вы используете какой-либо другой протокол аутентификации, вы сначала должны вызвать конкретную конечную точку протокола. Например, если вы используете OAuth2 или OpenIDConnect, вам следует вызвать конечную точку /oauth2. Никогда / проверка подлинности конечной точки напрямую.

Другие вопросы по тегам