出于安全角度的考虑,一般情况下使用BUA .NET客户端是无法修改上下文的应用系统参数的,这些参数在Web.config文件的BUAClient配置节进行修改。如果你想要访问另一个应用系统的权限、角色等信息。你需要做以下两件事情:
1、具有被访问应用系统的密码(ApplicationPassword)。
2、通过代码修改BUA客户端的运行时配置,参考代码如下:
// 复制一份运行时配置用于动态修改完成以后恢复回去
var oldConfig = RuntimeConfig.Instance.Clone();
var config = RuntimeConfig.Instance;
config.ApplicationCode = "xxx";
config.ApplicationPassword = "xxx";
// 调用BUA客户端提供的接口
......
config.ApplicationCode = oldConfig.ApplicationCode;
config.ApplicationPassword = oldConfig.ApplicationPassword;
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)
UFFICE 7 部署工作量参考.docx (219.9KB)
文档中包含:
1 部署工时计算
2 端口开通
3 安装环境信息
4 安装补丁下载地址
公司的统一身份认证及单点登录服务系统,简称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完成身份认证的解决方案请参考其它博客。
统一身份认证及单点登录服务系统即SSO(Single Sign-on)是公司的一个标准产品。SSO是单点登录解决方案的总称,目前公司的产品支持两类协议:
1、SAML
2、BSSO
SAML是行业内的一个标准,而BSSO是公司自主定义的安全认证协议。默认使用SAML。
1、打开管理中心(Administration)站点的Web.config,查看<appSettings>下名为"IntegrateContainer"的值,例如:CentralAdministration
2、访问BUA的权限管理,编辑要整合的应用系统。修改应用系统的"应用系统集成模式"字段。格式:#{IntegrateContainer}${StartPrivilegeCode}#
{IntegrateContainer}:对应管理中心的配置
{StartPrivilegeCode}:起始权限菜单代号,如果希望从根权限加载可以为空
示例:#CentralAdministration$BUA#
# 问题现象
启用DES加密以后,调用BUA的SOA服务有一定机率出现"调用UserBFO中的GetUserByUid方法出错"。开启SOA下的log4net日志以后并查看详细错误如下:
System.Security.Cryptography.CryptographicException:不正确的数据。
# 问题原因
由于BUA 2.5以前版本使用的DES加密类内部使用了共享变量导致多个调用出现了变量篡改。
# 解决方案
下载附件的dll,更新BUA的SOA Web服务。
Beyondbit.Security.zip (2.7KB)
UFFICE 7安装完成,用户在门户可以正常登陆,但移动端登陆失败,提示“用户名或密码错误”。查看SmartBoxHost服务日志看到"权限标识不存在"。
问题原因:
SmartBoxHost默认使用的权限标识是SmartBox。
解决方案:
1、登陆管理中心,访问用户授权管理系统。在权限管理模块选择新增应用系统。应用系统名称为:移动办公模块、应用系统标识为:SmartBox。
2、重启Windows服务"Beyondbit.SmartBoxHost"。
[FIX]清空权限缓存后,IIS应用程序池回收访问出错
[NEW]应用整合时可以指定起始加载父权限
下载附件,更新附件的bin 目录 下dll即可。
升级时注意备份。
附件:
BCOP_Portal.zip (76.4KB)