互软研发团队

Talk is cheap. Show me the code.

使用账号和密码实现SSO的模拟登录

公司的统一身份认证及单点登录服务系统,简称SSO。当用户登录自己的身份认证系统以后希望使用账号和密码模拟登录公司的SSO产品,我们推荐以下两种方式:

1、基于form的POST登录

SSO提供了Login.aspx页面,表单POST以后只需要包含以下命名的输入元素即可完成登录:

  • userUid: 账号,必须
  • password: 密码,必须
  • successUrl: 登录成功以后跳转的地址,可选
  • failUrl: 登录失败以后跳转的地址,可选。emsg会添加到URL查询参数用于获取失败原因。
  • loginedUrl: 用户已经登录过SSO跳转的地址,可选。

2、基于ajax的POST登录,缺点是无法跨域。POST时发送的数据和第一种方式一样。参考示例:

<script type="text/javascript">
    $(document).ready(function () {
        $.post(
            "http://192.168.40.104:30101/Login.aspx",
            {
                userUid: "administrator",
                password: "123456"
            },
            function (response) {

            }
        );
    });
</script>

我们不建议直接模仿SSO的登录页面(/Login/Form.aspx)元素去完成模拟登录,因为这样可能会引发一些不可预期的错误,比如遗漏原来在登录前后执行的客户端脚本代码。

P.S. 如何让SSO为特定用户颁发ticket并使用ticket完成身份认证的解决方案请参考��它博客。



不允许评论