2013-10-20 54 views
0

当用户正在查看SP并且他单击“登录”按钮时,会打开指向IDP登录表单的弹出窗口。在用户提供其用户名/密码并在弹出窗口中提交登录表单后,假设凭据有效,如何将IDP生成的SAML断言返回给SP。我可以使用window.postMessage吗?从IDP向SP发送SAML断言

回答

1

IDP的响应(包括SAML声明)将发送到您的SP的Assertion Consumer Service URL。此时,您可以随心所欲地做所有事情,并假设SAML断言是正确的,则在SP级别创建经过身份验证的登录会话。

根据您的使用情况,您现在可以退出弹出窗口并刷新(也许部分)父窗口,以便它能够接收登录的用户。您可以使用windows.opener对象在父窗口上调用函数。 window.postMessage的主要用途是跨域之间的窗口/帧之间发送数据。但是因为你在SP URL上收到回复,你不应该需要这个。

根据您的故事,我想知道您是否正在通过向IDP发送AuthnRequest来执行SP发起的SSO?

+0

“IDP的响应(包括SAML断言)将转到SP的断言消费者服务URL。”你的意思是“将去”?这基本上是我的问题。 – tlovett1

+0

此外,弹出窗口(位于IDP上)将位于与SP不同的域上。该软件将免费分发,因此SP不是可信站点。不知道这是否重要。 – tlovett1

+0

当您通过Web浏览器SSO配置文件使用SAML时,SP应提供断言消费者服务URL。 IDP通过交换元数据必须知道该URL。换句话说,您应该向IDP注册SP。如果这是不可能的,我不确定SAML是否可以帮助您。 –