互软研发团队

Talk is cheap. Show me the code.

SSO如何设置用户在一段时间内重复登录失败超过限制次数不允许再登录

1、确认SSOService.config配置使用的ProvideUser使用Beyondbit.SingleSignOn.Core.UserVerifyProvider。

2、打开Settings.xml文件,定位到<Setting><Security><AfterVerify><Repeats>节点。

3、设置<Repeats enable="true">启用重复登录失败检测。

4、修改<Data><Info>的配置信息,格式 :[数据存储模式] [重复登录次数] [重复失败登录时间] [失败以后锁定时间],例如:

D 5 0:30 0:05

数据存储模式:D|M|R。D=Database、M=Memory、R=Remoting。

重复登录次数:整数值。

重复登录时间:在这个范围内允许用户最大重复登录次数。

失败以后锁定时间:超过重复登录次数以后的锁定时间。

5、修改<Failure>设置重复登录超过限制次数以后的提示信息,例如:当前用户超过登录次数,请5分钟后再登录。

6、保存Setting.xml文件,重启应用程序池。

7、如果数据存储模式使用Database,需要初始化数据库和数据表VerifyFailure。使用附件VerifyFailure.sql。

8、在<Info>节点同级配置<Source>的值为数据库连接字符串。例如:

<Source>Database=SSO;Server=192.168.101.175;Uid=sa;Pwd=111qqq!;</Source>

VerifyFailure.sql (301B)

使用账号和密码实现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完成身份认证的解决方案请参考其它博客。



统一身份认证及单点登录服务系统v2以上版本使用的安全协议

统一身份认证及单点登录服务系统即SSO(Single Sign-on)是公司的一个标准产品。SSO是单点登录解决方案的总称,目前公司的产品支持两类协议:

1、SAML

2、BSSO

SAML是行业内的一个标准,而BSSO是公司自主定义的安全认证协议。默认使用SAML。

ASP.NET应用程序预热解决方案

附件文档中的解决方案基于研发中心提供的AspNet应用预热程序,各位可以根据实际的运行环境下载:

AspNet应用预热程序_40

AspNet应用预热程序_35

ASP.NET应用程序预热解决方案.doc (649.5KB)

单点登录(SSO) 客户端更新 - 修复虚拟站点部署问题和新增正则表达式排除语法

更新版本号为: 2.0.6289.38121


[FIX]

1、当站点部署在虚拟站点后,排除语法 需要增加虚拟站点的路径

如: 要排除的路径为/contact    部署的虚拟站点是/ IM。 则配置必须为  #/IM/Contact 才能排除。

现在修复了此问题。


2、增加正则表达式排除

如:当要排除某一个文件夹下所有的文体,之前版本的做法是 #/Contact/index, #/Contact/list, #/Contact/add, #/Contact/edit

现在:#^/Contact/.*  即可。

其中: #^ 符号代表的是排除登录同时后面采用的正则来匹配。



单点登录(SSO) 服务端配置-开启登录审计

SSO 2.4+ 增加了登录成功审计功能,审计的日志写入到日志中心,默认配置是没有开启的。

开启登录审计

1、检查你的SSO版本是否是2.4+ 版本。
       检查方法:打开SSO站点的bin目录,查看Beyondbit.SignleSignOn.Core.dll的版本是否大于 “2.0.5499.23515

2、打开SSO站点的web.config文件,找打 appSettings,添加以下配置:

<add key="IsOpenLoginAudit" value="true" />
<!-- true是开启,false是不开启,默认是false -->


单点登录(SSO) 客户端配置-采用WebService方式获取用户凭证

SSO自2.4版本以后,默认采取使用memcached存储用户凭证,SSO Client 获取凭证的时候也是采用memcached方式获取用户凭证。  那么SSO 2.4 版本+ 的 Client,如何去适配SSO 2.4以前的服务端呢?

SSO Client 2.4+ 通过配置的方式,可以使用WebService的方式获取用户凭证,去兼容 SSO 2.4 以前的服务端。

  1. 检查你的SSO Client 的版本程序集 是否大于 " 2.0.5497.23430 "
  2. 在你的站点Web.config 找到 appSettings ,添加以下二个下配置节
    <add key="SSO_UserTicketServiceType" value="Beyondbit.SingleSignOn.ClientForAspNet20.ServiceModels.StandardUserTicketService, Beyondbit.SingleSignOn.ClientForAspNet20" />

    <add key="SSO_Service" value="http://{SSO站点地址}/Service/WebService.asmx" />