【发布时间】:2018-03-05 23:12:31
【问题描述】:
我正在尝试使用 CURL 命令发布从 IDP 接收到的响应,即在我拥有的别名之一上对 SP 的 SAML 响应。 我正在使用 Spring-SAML 框架。 如果我想使用 CURL 命令将 SAML 响应发布到 SP,有人可以帮助我使用需要使用的确切命令吗?
【问题讨论】:
标签: spring curl spring-saml
我正在尝试使用 CURL 命令发布从 IDP 接收到的响应,即在我拥有的别名之一上对 SP 的 SAML 响应。 我正在使用 Spring-SAML 框架。 如果我想使用 CURL 命令将 SAML 响应发布到 SP,有人可以帮助我使用需要使用的确切命令吗?
【问题讨论】:
标签: spring curl spring-saml
SAML 响应相当复杂,包含一系列随时间过期的值,需要对应于最初发送的 SAML 身份验证请求,并取决于特定 SAML 联合的配置。由于这些原因,无法制作通用的 CURL 命令。
【讨论】:
curl --data @path/to/file https://host
其中文件包含SAMLResponse=,后跟 Base64 编码,然后是 URL 编码的 SAML 响应 XML,例如
SAMLResponse=PHNhbWxwOlJlc3B...snip...R0cmlidXRlU3RhdGVtZW50PgogIDwvc2FtbDpBc3NlcnRpb24%2BCjwvc2FtbHA6UmVzcG9uc2U%2B
如果您不对 Base64 编码字符串进行 URL 编码,任何 + 字符都会导致 XML 被截断并解析失败。我在 Keycloak 日志中看到的错误类似于 Element type "Response" must be followed by either attribute specifications, ">" or "/>".
【讨论】: