我正在使用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
您的服务提供者应用程序(分派)正在尝试验证接收的SAML响应是否由预期的SAML身份提供者发出。 WSO2在SAML响应的<saml:Issuer>
标记中包含其ID。
您的应用程序在saml2-web-app-pickup-dispatch.com/WEB-INF/classes/sso.properties
文件中具有WSO2的预配置实体ID,如下所示。
SAML2.IdPEntityId=localhost
同样,WSO2 IS用您在居民身份提供者的家庭领域标识符中配置的值填充其SAML响应的颁发者。但是,您可以使用您的服务提供商SAML配置的IdP实体ID别名覆盖Home领域标识符,如下所示。
底线,SAML响应的颁发者ID应该与您在应用程序中配置的IdP实体ID相同。
更改两个值以使其相同。