Идентификационный сервер WSO2 - Ошибка проверки выдателя ответов SAML2 - PullRequest
0 голосов
/ 25 апреля 2020

Я использую примеры приложений wso2 (saml2-web-app-pickup-dispatch и saml2-web-app-pickup-manager) для тестирования единого входа через сервер идентификации WSO2 версии 5.10.0

Развертывание в порядке, и, нажав на логин приложения, оно успешно перенаправляется на страницу входа в WSO2.

Пользователь успешно входит в систему, но получает сообщение об ошибке ниже.

HTTP Status 500 – Internal Server Error
Type Exception Report

Message SAML2 Response Issuer verification failed

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.wso2.carbon.identity.sso.agent.exception.SSOAgentException: SAML2 Response Issuer verification failed
    org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.processSSOResponse(SAML2SSOManager.java:569)
    org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.processSSOResponse(SAML2SSOManager.java:525)
    org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.processResponse(SAML2SSOManager.java:358)
    org.wso2.carbon.identity.sso.agent.SAML2SSOAgentFilter.doFilter(SAML2SSOAgentFilter.java:98)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/8.5.53

Журналы с сервера

TID: [-1234] [2020-04-25 19:16:55,881] [7e977cfd-8304-44ba-ab4f-4644baff988e]  INFO {AUDIT_LOG} - 
Initiator : wickrema | Action : Login | Target : ApplicationAuthenticationFramework | 
Data : { 
   "ContextIdentifier" : "51f93b05-68cf-4bf4-b62b-51e3e2502889",
   "AuthenticatedUser" : "wickrema",
   "AuthenticatedUserTenantDomain" : "carbon.super",
   "ServiceProviderName" : "saml2-web-app-pickup-dispatch",
   "RequestType" : "samlsso",
   "RelyingParty" : "saml2-web-app-pickup-dispatch.com",
   "AuthenticatedIdPs" : "eyJ0eXAiOiJKV1QiLCAiYWxnIjoibm9uZSJ9.eyJpc3MiOiJ3c28yIiwiZXhwIjoxNTg3ODMxNDE1ODA0MzAwMCwiaWF0IjoxNTg3ODMxNDE1ODA0LCJpZHBzIjpbeyJpZHAiOiJMT0NBTCIsImF1dGhlbnRpY2F0b3IiOiJCYXNpY0F1dGhlbnRpY2F0b3IifV19." 
} | Result : Success 

1 Ответ

2 голосов
/ 25 апреля 2020

Ваше приложение поставщика услуг (Pickup-Dispatch) пытается проверить, был ли полученный ответ SAML выдан ожидаемым поставщиком удостоверений SAML. WSO2 включает свой идентификатор в тег <saml:Issuer> ответа SAML.

Ваше приложение имеет предварительно настроенный идентификатор объекта для WSO2 в файле saml2-web-app-pickup-dispatch.com/WEB-INF/classes/sso.properties, как показано ниже.

SAML2.IdPEntityId=localhost

Аналогично, WSO2 IS заполняет отправителя своего ответа SAML значением, которое вы настроили в идентификаторе домашнего царства Резидентного провайдера идентификации *1009*. enter image description here Но вы можете переопределить идентификатор домашней области с помощью псевдонима IdP Entity ID вашей конфигурации SAML вашего поставщика услуг, как показано ниже. enter image description here

В итоге, идентификатор эмитента ответа SAML должен совпадать с тем, что вы настроили в Приложении в качестве идентификатора объекта IdP.

Измените любое значение, чтобы сделать их одинаковыми.

Код для вашей справки

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