单点登录系统提供统一的认证页面、统一的当前用户加密和解密服务。
用户通过统一认证页面登录系统,当用户需要访问企业内部应用系统时,单点登录加密当前用户身份跳转至指定的应用系统,指定应用系统获取到当前加密身份后,通过调用单点登录服务进行解密,获取到用户真实身份进行认证。
当统一认证页面采用Windows认证模式时,那么同样采用Windows认证模式的应用系统,必须部署在同一应用程序池下,对于其他非Windows认证的系统,将采取上述加密跳转的方式。
图:应用系统单点登录实现过程
由单点登录系统提供,使用统一用户管理平台的账号和密码进行验证。用户访问企业内网门户或应用系统时,如果检测到未登录,则跳转至统一认证页面,用户登录后,再跳转至用户访问的页面。
统一认证页面地址:http://10.16.0.168/Portal/Login.aspx
统一认证页面输入输出参数如下
应用系统未认证时,跳转至统一认证页面,输入参数:
编码 | 输入方式 | 描述 |
SystemCode | Get/post | 系统编码,由单点登录系统提供指定的编码,每个应用系统唯一,输入为空时,跳转至默认的门户页面 |
URL | Get/post | 登录成功后,跳转到的应用系统URL,输入为空时,跳转至默认的门户页面 |
统一认证完成后,跳转至应用系统指定URL,输出参数:
编码 | 输入方式 | 描述 |
Token | Get | 一次有效的验证Token,调用单点登录服务,可以得到当前用户的真实信息 |
单点认证服务是提供给企业应用系统进行登录验证的服务,企业应用系统获取到Token后,以自己对应单点登录的SystemCode和Secret值,进行调用单点登录服务,解析得到统一平台的用户登录信息。
服务地址:http://10.16.0.168/SSO.asmx
单点认证服务提供2个WebService服务接口:
- 获取统一认证平台用户账号接口
接口名称 | GetAuthenticationUser | |
接口说明 | 获取已登录统一认证平台的用户账号 | |
输入参数 | ||
参数编码 | 类型 | 说明 |
SystemCode | String | 传入系统编码 |
Secret | String | 传入系统秘钥 |
Token | Stirng | 登录信息 |
输出参数 | ||
类型 | 说明 | |
String | 返回当前已登录统一认证系统的登录账号 |
- 更改Secret接口
接口名称 | UpdateSecret | |
接口说明 | 更改统一认证Secret信息 | |
输入参数 | ||
参数编码 | 类型 | 说明 |
SystemCode | String | 传入系统编码 |
Secret | String | 传入旧的系统秘钥 |
NewSecret | Stirng | 传入新的Secret信息 |
输出参数 | ||
类型 | 说明 | |
bool | 返回更改Secret值是否成功 |
系统编码是由单点登录服务提供的系统编码和解密秘钥。
编码 | 名称 | 说明 |
SystemCode | 系统编码 | 文本类型,系统编码、企业内部唯一,不可变更 |
Secret | 解密秘钥 | 文本类型,调用解密服务需要传入的参数,可以调用单点登录服务修改 |
以下是各应用系统编码,Secret可调用接口(参考3.4.4章节)自行修改:
系统名称 | SystemCode | Secret |
电子考勤系统 | DZKQ | DZKQ |
生产经营系统 | SCJY | SCJY |
招投标系统 | ZTB | ZTB |
无纸化会议 | WZHHY | WZHHY |
领导动态 | LDDT | LDDT |
注:该功能为预留使用,本期项目可以不实现,应用系统只需要做好单点登录,仍然可保留已有的登录界面,让用户即可从统一平台登录界面进行登录系统,也可以从已有的系统登录界面进行登录系统。
统一单点登录页面URL:http://10.16.0.168/Portal/Login.aspx
当用户请求页面,并且未登录时,统一跳转至单点登录服务提供的登录页面地址,
http://10.16.0.168/Portal/Login.aspx?q={URL}&SystemCode={SystemCode}
参数说明
编码 | 名称 | 说明 |
URL | 应用系统URL | 单点登录成功后跳转到应用系统的URL地址 |
SystemCode | 系统编码 | 单点登录系统编码 |
示例:当前应用系统编码是SCJY,用户请求的页面URL为:http://192.0.0.1/Default.aspx,
则跳转至:
http://10.16.0.168/Portal/Login.aspx?q= http://192.0.0.1/Default.aspx&SystemCode=SCJY |
系统之家的单点登录实现,都需要通过统一登录页面进行实现,例如A系统访问B系统的 Default.aspx页面,则需要使用:http://10.16.0.168/Portal/Login.aspx?q=http://B/Default.aspx。
本章节描述了应用系统对于单点登录需要做的事情和过程。
应用系统从URL中获取到Token值,通过SystemCode和Secret调用单点登录服务,解析得到用户的统一用户管理平台中的账号,在本系统实现登录验证。
单点登录需要支持的页面:所有在统一平台中需要加上链接的页面和表单界面。
以上页面中,在判断当前系统用户登录认证之前,按照以下步骤进行:
- 如果URL中有Token值,则进入3,否则进入2
- 跳转至本系统的登录界面;
- 调用单点登录服务进行解密,得到用户的真实账号;
- 使用解密得到的账号自动进行本系统登录认证,完成单点登录;
-
- 单点登录界面说明
-
本期项目以下功能需要实现单点登录:
系统名称 | 集成功能 |
公文管理系统 | 公司发文、公司收文、公司工作联系单、公司会议记要审批件流转、部门发文、流程审核表单 |
合同管理系统 | 合同查询、合同台账、流程审核表单 |
招投标系统 | 招投标流程运行监控、项目运行监控、招标会议安排招标项目台账、评标专家维护、流程审核表单 |
生产经营管理系统 | 业务跟踪查询、流程审核表单 |
电子考勤系统 | 考勤管理、特殊考勤申请、考勤记录查询、流程审核表单 |
无纸化会议系统 | 会议室使用情况、无纸化会议申请、会议材料上传、流程审核表单 |
领导动态 | 行程动态登记、行程动态查询 |
内控管理系统 | 部门控制目标、内控手册查询、内控全文索引 |
电子邮件系统 | 未处理邮件数提醒 |
注:请各应用系统将以上功能的测试环境和正式环境的URL访问地址,提供给信息化管理中心董小诗。
-
-
- 获取Token
-
从统一认证平台跳转至应用系统时,统一认证平台会将当前的用户加密信息以Get方式进行发送至应用系统。
例如:应用系统URL地址http://192.0.0.1/Default.aspx,统一认证平台返回的URL地址为
http://192.0.0.1/Default.aspx?Token={Token}
参数说明
编码 | 名称 | 说明 |
Token | 访问的Token | 一次性使用,可以通过单点登录服务得到真实账号 |
注:每次登录Token值只一次有效。
应用系统获取Token后,调用单点登录服务提供的解密服务,得到真实账号,单点登录服务以WebService方式提供。
接口名称 | GetAuthenticationUser | |
接口说明 | 获取已登录统一认证平台的用户账号 | |
输入参数 | ||
参数编码 | 类型 | 说明 |
SystemCode | String | 传入系统编码 |
Secret | String | 传入系统秘钥 |
Token | Stirng | 登录信息 |
输出参数 | ||
类型 | 说明 | |
String | 返回当前应用系统的用户账号 |
应用系统获取到返回当前应用系统的用户账号后,需要进行本系统的登录操作。
为了安全考虑,Secret值可以根据应用系统需要进行请求修改。修改过程调用统一单点登录服务进行完成。
单点登录系统提供接口如下:
接口名称 | UpdateSecret | |
接口说明 | 更改统一认证Secret信息 | |
输入参数 | ||
参数编码 | 类型 | 说明 |
SystemCode | String | 传入系统编码 |
Secret | String | 传入旧的系统秘钥 |
NewSecret | Stirng | 传入新的Secret信息 |
输出参数 | ||
类型 | 说明 | |
bool | 返回更改Secret值是否成功 |
如果应用系统不是使用AD域账号,并且本系统用户没有与AD用户对应的用户关系映射表,那么需要做2个事情:
- 对于已有的系统用户,导出系统用户清单提供给统一平台,导出格式为:
所属组织 | 用户姓名 | 当前系统账号 |
|
|
|
- 对于新增用户(不在系统用户清单的用户),严格使用AD账号,否则不能正常单点登录。