如何验证新的SAML证书

时间:2017-04-23 21:10:26

标签: ruby-on-rails omniauth saml onelogin

我正在开发充当SAML服务提供商的应用。它是用Rails编写的,使用omniauth-saml和ruby-saml宝石。

我们的证书即将过期,我们需要创建一个新证书。我的任务是验证新的工作正常。但是,我测试过的IdP中没有一个似乎关心我使用的证书。当我使用旧证书设置它们然后将我们的应用程序切换到使用新版本时,它们都允许SP启动的登录,就像没有任何改变一样。

应用程序需要与所有IdP一起工作,我认为其中一些确实验证了断言签名。当签名与设置的签名不匹配时,我需要找到一个无法接受SP发起的登录声明的IdP。我没有运气就试过Okta,Jumpcloud和Ping。

一个问题是:为什么这些IdP不关心SP发起登录的签名。但主要的问题是:我如何找到一个关心的人,以便我可以测试新的证书?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用SP证书的地方有两个:(1)SP可以对IdP的身份验证请求进行数字签名,以及(2)IdP可以使用SP的公钥加密部分响应。

对于情况(1),如果您的SP使用新证书签署其请求但IdP像以前一样响应,则很可能IdP只是忽略签名。可能必须将IdP配置为期望并要求签名请求才能在未知证书上失败。但请注意,IdP是否会验证已签名的请求;例如,根据this post,Okta不会验证签名身份验证请求的签名。

对于情况(2),使用Firefox的SAML跟踪器或类似的东西来验证来自IdP的部分响应是否已加密。如果没有,这将解释为什么切换到IdP不知道的新证书继续工作。

也可能是您的SP只需要知道该人成功通过IdP认证,而不是其他任何内容,在这种情况下,您的SP证书是多余的。

特别是,Shibboleth IdP可以配置为发回加密的断言。

答案 1 :(得分:0)

对我来说,到目前为止,最容易使用和配置IdP或SP测试连接器可以在这里找到:https://support.onelogin.com/hc/en-us/articles/202673944-How-to-Use-the-OneLogin-SAML-Test-Connector

有一个测试连接器列表可以帮助您测试不同类型的连接。