1

我开始将 ruby​​-saml 用于其中一个项目。我正在使用的 IDP 期望使用包含 SAMLRequest 的 HTTP 正文进行身份验证请求的 POST。查看 authrequest.rb 的源代码,create 方法只能执行 GET 而不是 POST。

我决定调用 create_params 并获取 base64 令牌,我可以从我的视图中使用它来执行 POST。当我使用以下代码时

      参数 = {}
      请求 = OneLogin::RubySaml::Authrequest.new

      令牌 = request.create_params(saml_settings,参数)
      p 令牌
      p 令牌["SAMLRequest"]
      p 解码(令牌[“SAMLRequest”])

当我尝试 base64decode.org 或调用解码方法时,我得到编码不正确。

1) 我可以用 POST 代替 GET 吗?
2)在创建错误编码的请求时我做错了什么?
谢谢

4

1 回答 1

1

1) 我可以用 POST 代替 GET 吗?

是的,但支持 POST 绑定不仅仅是用 POST 参数替换 GET 参数……POST 绑定上的签名嵌入在 SAML 消息中,而不是另一个 GET 参数。

2)在创建错误编码的请求时我做错了什么?谢谢

AuthNRequest 不仅是 base64 编码的,而且是放气的。

尝试使用Base64 解码 + 膨胀

您会发现该线程很有趣: https ://github.com/onelogin/ruby-saml/issues/124

于 2017-08-07T22:42:39.580 回答