WSO2 身份服务器 - 不断获取 "internal error - server connection terminated"
WSO2 Identity server - keep getting "internal error - server connection terminated"
我在使用 WSO2 身份服务器实施 SAML2.0 设置时收到 "Internal error"。
我是 运行 示例应用程序和身份服务器以及示例应用程序是 运行。
运行 link http://127.0.0.1:8080/saml2-web-app-pickup-dispatch.com/
上的取件-调度应用程序正常,点击登录后,它会将我重定向到身份服务器登录页面(预期)。
我输入了我的凭据,但在按下登录时,它 returns "internal error - server connection terminated" 在告诉我重定向到应用程序之后,如下面的屏幕截图所示。
错误跟踪中的一个片段是 HTTP ERROR 500
Problem accessing /saml2-web-app-pickup-dispatch.com/home.jsp. Reason: Server Error
Caused by: javax.servlet.ServletException: org.wso2.carbon.identity.sso.agent.exception.SSOAgentException: Signature validation failed for SAML2 Element
完整的错误堆栈跟踪 - https://gist.github.com/KalemaEdgar/ee9804df5f2786e30af8ad2bd3ccf0fc
这是由于IS在验证应用程序发送的SAML认证请求的签名时签名验证失败。
选项 1:
您可以从管理控制台禁用签名验证。导航服务提供商。按照下面的屏幕截图并取消勾选启用签名验证功能。
选项2:
您可以导出 saml2-web-app-pickup-dispatch 的 public 证书并将其添加到管理控制台。该应用程序的密钥库位于 /WEB-INF/classes/ 文件夹中。
如果应用存在于租户中,可以参考这篇博客:https://medium.com/@piraveenaparalogarajah/trying-out-saml2-pick-up-dispatch-app-with-wso2-identity-server-in-a-tenant-20626ac4865a
这是在 Piraveena 的回复之上对我最终起作用的方法。
由于这是一个签名验证错误,为了正确修复它,我需要将身份服务器 (<is-home>/repository/resources/security/wso2carbon.jks
) 的 public 密钥添加到 saml2-web-app-pickup-dispatch.com
应用程序 (<app-location-in-tomcat>/WEB-INF/classes/wso2carbon.jks
)
但是如果您只是想试用示例,一个快速的解决方法是将示例应用程序 (<app-location-in-tomcat>/WEB-INF/classes/wso2carbon.jks
) 中的密钥库替换为 WSO2 身份服务器 (<is-home>/repository/resources/security/wso2carbon.jks
)
我也鼓励那些使用 WSO2 身份服务器的人加入这个 slack workspace iam4developers.slack.com
我在使用 WSO2 身份服务器实施 SAML2.0 设置时收到 "Internal error"。
我是 运行 示例应用程序和身份服务器以及示例应用程序是 运行。
运行 link http://127.0.0.1:8080/saml2-web-app-pickup-dispatch.com/
上的取件-调度应用程序正常,点击登录后,它会将我重定向到身份服务器登录页面(预期)。
我输入了我的凭据,但在按下登录时,它 returns "internal error - server connection terminated" 在告诉我重定向到应用程序之后,如下面的屏幕截图所示。
错误跟踪中的一个片段是 HTTP ERROR 500
Problem accessing /saml2-web-app-pickup-dispatch.com/home.jsp. Reason: Server Error
Caused by: javax.servlet.ServletException: org.wso2.carbon.identity.sso.agent.exception.SSOAgentException: Signature validation failed for SAML2 Element
完整的错误堆栈跟踪 - https://gist.github.com/KalemaEdgar/ee9804df5f2786e30af8ad2bd3ccf0fc
这是由于IS在验证应用程序发送的SAML认证请求的签名时签名验证失败。
选项 1:
您可以从管理控制台禁用签名验证。导航服务提供商。按照下面的屏幕截图并取消勾选启用签名验证功能。
选项2:
您可以导出 saml2-web-app-pickup-dispatch 的 public 证书并将其添加到管理控制台。该应用程序的密钥库位于 /WEB-INF/classes/ 文件夹中。
如果应用存在于租户中,可以参考这篇博客:https://medium.com/@piraveenaparalogarajah/trying-out-saml2-pick-up-dispatch-app-with-wso2-identity-server-in-a-tenant-20626ac4865a
这是在 Piraveena 的回复之上对我最终起作用的方法。
由于这是一个签名验证错误,为了正确修复它,我需要将身份服务器 (<is-home>/repository/resources/security/wso2carbon.jks
) 的 public 密钥添加到 saml2-web-app-pickup-dispatch.com
应用程序 (<app-location-in-tomcat>/WEB-INF/classes/wso2carbon.jks
)
但是如果您只是想试用示例,一个快速的解决方法是将示例应用程序 (<app-location-in-tomcat>/WEB-INF/classes/wso2carbon.jks
) 中的密钥库替换为 WSO2 身份服务器 (<is-home>/repository/resources/security/wso2carbon.jks
)
我也鼓励那些使用 WSO2 身份服务器的人加入这个 slack workspace iam4developers.slack.com