如何发送我的 SAML 2.0 响应以验证与服务提供商的通信?

How to send my SAML 2.0 response to verify the communication to the Service Provider?

用例 :
在我的用例中,我必须执行 IdP 发起的 SSO,因此我不需要身份验证请求。我只需要在我的 IdP Java 应用程序中创建一个 SAML 响应,以发送到已配置的服务提供商以接受 POST 请求。

假设我有一个使用 OpenSaml (IdP) 的 Java 应用程序,它创建了一个包含签名断言的 saml 响应。我还有一个配置为接收我的 saml 响应的服务提供商。

如何将我的 saml 响应发送给服务提供商以验证我的响应是否正确写入,从而验证 IdP 和 SP 之间的通信是否正常?

我想在 Java 中通过 POST 完成,但我不知道不使用浏览器是否可行。这个想法只是为了检查 SAML 响应是否正确写入并显示 POST 请求的响应。

您当然可以使用 Java 中的 POST 测试您的 SAML 配置,但您也可以使用 Postman 或 cUrl 等工具。

POST 看起来像这样:

POST /SAML2/SSO/POST HTTP/1.1 
Host: sp.example.com 
Content-Type: application/x-www-form-urlencoded 
Content-Length: nnn 
SAMLResponse=response&RelayState=token

确保 SAMLResponseRelayState(如果有)是 url 编码的。

您可能还想看这里:http://saml.xml.org/wiki/idp-initiated-single-sign-on-post-binding