【发布时间】:2015-02-11 20:51:13
【问题描述】:
标准 SSO 例程涉及主动将用户从 SP 重定向到 IDP 并返回。虽然这种机制有几个很大的优点,但缺点是重定向可能会使用户感到困惑。 (“嘿,我刚刚在 azure.com,现在我是 live.com 吧?”)。
我想支持在 SP 的网站中包含用户名/密码登录表单的场景。在这个特定场景中,我既是 SP 又是 IDP 的所有者,并且可以完全控制其实施。怎么会达到这样的境地?我可以想象以下方法:
<form action="https://idp.contoso.com/login" method="post">
<input type="hidden" name="issuer" value="sp.contoso.com">
Username: <input type="text" name="username"><br>
Password: <input type="text" name="password"><br>
<input type="submit" value="Submit">
</form>
- 在 SP 的网站中包含上述表格。
- IDP 接受 POST、验证凭据并创建 SAML 响应
- IDP 返回带有自动提交表单的网站,该表单 POST 是对颁发者的 SAML2 端点 url 的 SAML 响应(例如 https://sp.contoso.com/saml)
- SP 接受 POST,验证 SAML 响应并根据 SP 特定标准构建用户会话
这是一个可行的解决方案吗?如果是这样,是否以符合标准的产品(如 WSO2 身份服务器)支持的任何方式支持它?如果不是,那么在使用来自 SP 的登录表单时,针对 IDP 对用户进行身份验证的正确方法是什么?
【问题讨论】:
-
听起来你想要的东西更像是 STS 而不是 SAML...我建议研究类似 WS-Trust 的东西。
标签: security oauth identity saml wso2is