我在rails 4.2中使用omniauth-saml 1.3.1和omniauth 1.2.2。它适用于我在openidp.feide.no上设置的测试身份提供程序(对于那些设置SAML服务提供程序的人来说,这是一个非常好的工具)。它甚至可以在生产中使用。
现在我正在尝试与我的客户建立一个IdP。当用户访问/ auth / saml时,会按预期将它们定向到客户端的IdP。用户可以使用他们的电子邮件/密码登录。
然后,IdP会响应我的SP,但是omniauth会重定向到失败回调。
如here所示,收到错误消息“invalid_ticket”。但是,错误本身并没有传递给env["omniauth.error"]
中的故障控制器操作,因为我应该在某处读取它(不幸的是我现在无法找到该文档)。
我希望有人会就如何弄清楚导致“invalid_ticket”发生的原因提出一些建议。是否有可能从IdP中看到原始SAML响应?
我应该注意,我需要在生产中找到这些信息,因为客户端的IdP指向我们的生产SP而我无法说服他们指出它可以做一些更广泛的测试(比如我的localhost dev机器)。但是,我可以写一些更多的日志记录或Honeybadger异常报告,如果这会有所帮助。
目前,当omniauth重定向到失败路由时,我向Honeybadger报告所有env["omniauth.*"]
值和params
,但我没有收到Omniauth message: invalid_ticket
以外的任何信息。
非常感谢能够帮助我朝着正确方向前进的人!
答案 0 :(得分:1)
您可能想尝试将其他环境添加到failure_raise_out_environments:
OmniAuth.config.failure_raise_out_environments = ['development', 'staging', 'production']
到您的初始化程序。您将在日志或Honeybadger中收到有意义的错误消息。
默认情况下,这些错误仅在开发环境中引发。