单点登录SSO系统解决方案.docx
- 文档编号:28684269
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:20
- 大小:313.62KB
单点登录SSO系统解决方案.docx
《单点登录SSO系统解决方案.docx》由会员分享,可在线阅读,更多相关《单点登录SSO系统解决方案.docx(20页珍藏版)》请在冰豆网上搜索。
单点登录SSO系统解决方案
单点登录SSO系统
解决方案
***有限公司
20
文档信息
版本历史
版本号
版本日期
作者
说明
V1.0
初稿
1.概述
1.1.背景
***有限公司目前有N个应用系统,每个应用系统都具有自己的身份验证机制,这样势必造成:
生活中的一位用户,在每个应用系统都有一个用户帐号和密码,如果要登录某个应用系统,必须通过该应用系统身份验证,验证通过后才能访问该应用系统;即使用户在所有应用系统上使用同样的用户名和密码,虽然可以在避免用户名和密码忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个应用系统或在不同应用系统间跳转时,还是需要用户登录后,才能以有效的身份访问应用系统。
这样不仅给用户带来了不便,而且应用系统为登录付出了性能的代价。
因此,***有限公司急需一套单点登录系统,用以实现:
Ø通过企业门户统一登录入口,实现对各个应用系统的访问;
Ø对用户信息进行统一管理,减少管理员重复劳动和用户信息在各个应用系统中的不同步问题;
Ø提高用户日常办公效率,解决用户在多个应用系统之间的来回切换;
Ø降低应用系统安全风险和管理消耗。
1.2.目标
通过单点登录认证中心,使企业门户作为访问所有应用系统的唯一身份验证入口。
并对用户信息和组织信息进行统一管理。
1.3.阅读对象
***有限公司项目组和项目组。
1.4.术语和缩略语
单点登录SingleSignOn缩写SSO
2.SSO概述
2.1.SSO规范
2.1.1.名称解释
Ø认证中心:
管理应用系统接入申请、用户信息维护、组织信息维护、登录、登录状态检查、用户信息获取、用户信息同步和组织同步等功能。
Ø应用系统:
需要接入认证中心的应用系统,遵从认证中心规则,享用认证中心统一用户的站点。
Ø应用系统接入申请:
应用系统必须先在认证中心进行站点登记,登记后认证中心生成配置信息,并将该配置信息发给应用系统。
注册应用系统在正式接入认证中心,需要提交配置信息作为验证信息的一部分。
Ø用户和组织:
认证中心从AD域或HR系统接收用户和组织信息;应用系统从认证中心同步用户和组织信息。
接入认证中心的应用系统,必须同步用户信息,原则上所有应用系统中的用户信息相同;如果应用系统中的用户和认证中心的用户账号不统一,需要在应用系统建立用户账号映射关系。
Ø登录:
通过企业门户进行单点登录。
Ø登录状态检查:
对单点登录状态的检查。
Ø用户信息获取:
通过Token查询用户的登录信息。
3.SSO接口规范
3.1.SSO接口图
3.2.SSO接口清单
序号
接口名称
系统A
系统B
方向
协议
接口说明
规范文档
1
登录
企业门户
专业应用
B->A
HTTP
Web方式的单点登录。
本文
2
登录状态检查
企业门户
专业应用
B->A
HTTP
单点登录状态检查。
本文
3
用户信息获取
企业门户
专业应用
B->A
WS
利用Token查询用户登录信息。
本文
4
用户信息接收
专业应用
SSO
B->A
WS
专业应用接收来自企业门户的用户信息。
SSO
5
组织信息接收
专业应用
SSO
B->A
WS
专业应用接收来自企业门户的组织信息。
SSO
6
用户信息同步
企业门户
专业应用
A->B
WS
企业门户向专业应用写入用户信息。
本文
7
组织同步
企业门户
专业应用
A->B
WS
企业门户向专业应用写入组织信息。
本文
8
资源认证
SSO
专业应用
B->A
WS
SSO向外提供用户和资源的认证查询
39
登录状态查询
专业应用
SSO
A->B
HTTP
专业应用向SSO查询用户登录状态
本文
3.3.单点登录接口
3.3.1.登录
1.接口描述
调用方式:
httppost
接口功能:
SSO接收业务系统登录页面FORM的登录参数,对其中的用户身份进行验证,并根据验证结果进行相应操作。
2.使用场景
3.说明
SSO接收用户提交内容,对用户账号、密码以及appid进行校验
●如校验成功,SSO服务器生成Token,进行XML包装,并利用SSO私钥进行签名,通过用户浏览器端的JavaScript提交给应用指定的SuccessURL。
●如校验失败,SSO服务器将ErrorCode作为参数,重定向用户到ErrorURL。
调用方式:
HTTPPost:
https:
//sso.domain-name/login.aspx
输入:
●页面的Get参数
⏹return:
如果此参数不为空,则会将这个参数传递给登录Form的return参数。
●登录Form格式:
Form元素
类型
说明
action
Action
固定值:
https:
//sso.domain-name/login.aspx
login
Text
登录账号,缺省值“”
password
Password
密码,缺省值“”
success
Hidden
SSO认证通过后业务系统获取用户信息的URL地址
error
Hidden
SSO认证失败后返回的URL地址
appid
Hidden
应用appid
return
Hidden
登录成功后,重定向的URL,如果为空,则返回当前网站的根路径。
输出:
●ErrorCode定义:
参见附录A
●SSOTokenXML定义:
参见附录B
3.3.2.登录状态检查
1.接口说明
调用方式:
httpget
接口功能:
利用SSO服务器来检验用户的登录状态,并进行后续操作。
2.使用场景
3.说明
用户访问受保护资源时,应用首先检查用户在本系统的登录状态:
如果已经登录,则允许用户继续访问。
否则发送重定向指令给用户浏览器,进行登录状态检查。
通过Get方式向SSO查询当前用户的登录状态,SSO接收到查询请求后,对用户的SSO状态进行检查
如果当前用户已经登录,SSO服务器生成Token,进行XML包装,并利用SSO私钥进行签名,通过用户浏览器端的JavaScript提交给应用指定的SuccessURL。
如果当前用户并未登录,SSO服务器将ErrorCode以及return作为参数,重定向用户到ErrorURL(一般是登录页面)。
同时会将登录前页面路径(参数名:
return)以Get参数返回给业务系统。
4.调用方式
HTTPGet:
https:
//sso.domain-name/check_login.aspx
输入:
参数表
参数
参数类型
参数说明
success
Nvarchar
登录成功路径
error
Nvarchar
失败路径
appid
Nvarchar
应用appid
return
Nvarchar
当前页面路径(登录成功后,业务系统可以获取该地址跳转到该页面)
输出:
●ErrorCode:
见附录A
●SSOTokenXML:
见附录B
3.3.3.用户信息获取
1.接口说明
经过登录状态检查,或登录后,应用系统通过对接收到的XML进行签名验证,获取其中的Token,将Token通过HTTPGet方式提交给SSO服务器,获取用户信息。
2.使用场景
3.说明
SSO服务器在登录以及登录状态检查成功后,将包含Token的XML使用HttpPost方式提交给应用指定的SuccessURL。
SuccessURL所对应的页面/程序,接收到XML内容后,使用公钥对XML进行签名验证。
从XML中取得查询Token内容,将其和AppID通过HTTPGet方式提交给SSO服务器。
SSO服务器接收到该请求后,利用Token获取用户具体信息。
SSO服务器将用户信息进行XML封装,并进行签名。
专业应用/企业门户接收到此XML之后,校验签名有效性,并获取用户信息。
4.调用方式
输入:
HTTPGet:
https:
//sso.domain-name/check_authentication.aspx
参数
参数类型
参数说明
token
Nvarchar
查询token
appid
Nvarchar
业务系统ID
return
Nvarchar
获取信息后,返回业务系统的地址。
输出:
成功信息:
见附录C
失败状态码:
见附录D
3.3.4.登录状态查询
1.接口说明
专业应用在当前用户登录状态检查后,可以利用本接口进行用户登录状态的快速查询,而无需进行再次登录状态检查调用。
2.使用场景
专业应用通过HTTP协议Get方式直接获取指定用户ID当前是否登录。
3.说明
专业应用以账号为参数,利用HTTPGet方法访问
http:
//sso.domain-name/authentication/accountstatus.aspx?
accountid=[xxxx]
SSO查询该用户的登录状态
返回内容为text/plain
如果该用户已经登出,则返回内容为“1”
如果用户在登录状态,则返回内容为:
“0”
如果查询过程SSO端出现异常,则返回内容为:
-1:
[错误信息]
3.3.5.单点登录使用场景
1.登录状态检查场景
注意:
生成和接收Token传递过程,SSO通过用户浏览器的JavaScript自动将Token提交给应用。
3.4.组织数据WS同步
3.4.1.接口说明
专业应用开发WebService接口,用于接收来自SSO的组织数据同步信息。
3.4.2.使用场景
SSO在组织做出新建或修改,SSO会将组织信息以WebService的方式下发给专业应用。
3.4.3.字段说明
1.InputCollection(组织基本信息)
字段名称
字段描述
数据类型
备注
ID
记录唯一关键字
Int
系统自动生成
BatchId
批次号
Nvarchar
批次号
CommandType
操作类型
Int
1create
2modify
3delete
4disable
5enable
OrgCode
部门编码
Nvarchar
组织编号。
OrgName
部门名称
Nvarchar
中文全称,如:
销售部
OrgNameDisplay
部门显示名称
Nvarchar
必填
OrgType
组织类型
Nvarchar
组织类型
ParentOrgCode
上级组织编号
Nvarchar
MDM系统的上级组织编号
组织类型为渠道时非必填
OrgLevel
组织层级编码
Nvarchar
层级编码
OrgSort
组织排序号
Nvarchar
对应同级顺序号:
树状结构信息生成时的显示顺序
Reserved_1
预留字段1
Nvarchar
Reserved_2
预留字段2
Nvarchar
Reserved_3
预留字段3
Nvarchar
Reserved_4
预留字段4
Nvarchar
Reserved_5
预留字段5
Nvarchar
2.输出:
Response
字段名称
字段描述
数据类型
备注
ServiceFlag
服务标识
Nvarchar
标识服务执行结果,TRUE/FALSE
ServiceMessage
服务消息
Nvarchar
ResponseCollection
错误信息实体
数据实体
3.错误信息数据实体:
ResponseCollection
字段名称
字段描述
数据类型
备注
ID
唯一关键字
Nvarchar
返回InputCollection的ID值
ErrorMessage
错误消息
Nvarchar
具体记录处理出错的信息,需要详细到每一条出错记录。
RecordNumber
单据编号
Nvarchar
BatchId
批次号
Nvarchar
3.4.4.业务规则和逻辑
应用对接收的数据进行业务校验和数据校验,将校验成功的数据进行入库,将失败导入的数据退回给企业门户系统,同时反馈出错/成功信息。
3.5.用户数据WS同步
3.5.1.接口说明
专业应用开发WebService接口,用于接收来自SSO的用户同步信息。
3.5.2.使用场景
企业门户在用户或账号变动时,SSO将检查该用户的权限,并把变更的用户信息分发给该用户具有权限的应用之中,企业门户会将用户以及账号信息以WebService的方式下发给专业应用。
3.5.3.字段说明
1.InputCollection:
人员基本信息
字段名称
字段描述
数据类型
备注
ID
记录唯一关键字
Int
系统自动生成
BatchId
批次号
Nvarchar
CommandType
操作类型
int
1create
2modify
3delete
4disable
5enable
Uid
主数据人员编码
Nvarchar
UserAccount
Nvarchar
DisplayName
员工姓名
Nvarchar
EmployeeNumber
员工编号
Nvarchar
Sex
性别
Nvarchar
1M表示男性;2F表示女性
BirthDate
出生日期
DATE
JoinDate
入职日期
DATE
EffectiveStartDate
生效日期
DATE
EffectiveEndDate
结束日期
DATE
CreationDate
记录创建日期
DATE
DeptName
部门名称
Nvarchar
JobTitle
职位
Nvarchar
JobGrade
级别
Nvarchar
LineManager
直属领导
Nvarchar
邮箱
Nvarchar
Reserved_1
预留字段1
Nvarchar
Reserved_2
预留字段2
Nvarchar
Reserved_3
预留字段3
Nvarchar
Reserved_4
预留字段4
Nvarchar
Reserved_5
预留字段5
Nvarchar
2.Response:
输出
字段名称
字段描述
数据类型
备注
ServiceFlag
服务标识
Nvarchar
标识服务执行结果,TRUE/FALSE
ServiceMessage
服务消息
Nvarchar
ResponseCollection
返回信息实体
数据实体
3.返回信息数据实体:
ResponseCollection
字段名称
字段描述
数据类型
备注
Flag
导入成功标识
Nvarchar
Y-成功N-失败
ID
唯一关键字
Nvarchar
返回InputCollection的ID值
Uid
单据编号
Nvarchar
主数据人员编码
BatchId
批次号
Nvarchar
ErrorMessage
错误信息
Nvarchar
3.5.4.业务规则和逻辑
4.实施建议
4.1.SSO实施(基本认证)
4.1.1.接入流程
1.应用开发商向***有限公司IT部提交接入申请;
2.应用开发商阅读《***有限公司SSO接入规范》,可以跟SSO集成商进行技术交流;
3.应用开发商确定最终的接入方案后,形成文档,提交***有限公司IT部审批;
4.***有限公司IT部审批通过后,依据接入方案,应用开发商开发接口程序,SSO平台集成商做相关配置;
5.以上工作完成后,进行联调测试工作,***有限公司IT部门确认联调结果后,确定上线日期;
6.应用开发商和SSO平台集成商进行上线工作,上线后要做好各自的日常维护。
4.1.2.接入准备
●获取应用ID(APPID)
●获取数字签名校验证书文件
●获取Demo代码
4.1.3.接收数据
●SSO调用应用的组织导入WebService,将组织信息分发给应用。
●SSO调用应用的用户导入WebService,将用户数据分发给应用。
4.1.4.登录状态检查方法
●应用自身应有用户状态检查机制,用户访问被保护资源时,首先检查本应用内的当前用户登录状态。
●在用户访问被保护资源时,自动进行检查。
●如果当前用户在本应用内的状态为未登录,则利用重定向指令,将用户重定向到
https:
//sso.domain-name/check_login.aspx?
appid=00012&&success=successinfo&&error=errorinfo&&return=xxx
进行SSO端登录检查。
4.1.5.登录/检查登录状态成功—主体代码(SuccessURL)编写
●SSO客户端主要代码集中于登录以及登录状态检查过程中,以success参数传递的url所代表页面中。
●该页面主要实现的功能:
用户信息获取(参见3.3.3)
●接收Post参数,参数名称为“token”,参数内容为XML。
●利用XmlUtil.GetToken(StringXML)静态方法,从XML字符串中获取Token
●将解析出来的token放在以下url中
https:
//sso.domain-name/check_authentication?
token=[token]&&appid=[appid]
●利用HttpUtil.XmlForSendRequest(Stringurl)获取xml返回信息。
●获取XML返回信息,并利用XmlUtil.CheckSign(Documentdoc,StringCertPath)校验签名。
●利用XmlUtil.GetUserInfo(Documentdoc)获取用户信息,其格式为用户ID,登录账号,用户其他信息。
●应用自身设置当前用户为已登录状态。
●如参数中包含return,则重定向到return参数指定的url。
4.1.6.登录失败处理
●接收Get参数中的errorcode,根据附录说明做相应处理。
4.1.7.状态检查未登录处理
●一般登录状态检查的结果如果是未登录,则会转向到登录页面,并利用get参数为登录页面指定其中的return参数。
4.2.组织和用户接收
4.2.1.开发框架
SSO使用WebService开发,建议使用WCF进行开发。
4.2.2.开发过程
以SSO生成的WSDL为准,生成WebService接口。
根据接口实现接收逻辑。
5.附录
5.1.SSOErrorCode
errorcode
说明
1
账号或口令错误
2
验证码出错
3
账号停止使用
4
没有访问此站点授权
5
该站点未注册
6
该用户已退出
7
超时
5.2.SSOTokenXML
5.3.SSO用户信息
5.4.SSO获取用户信息失败的状态码
Status
说明
ProcessingError
处理出错
PartialLogout
其他站点已注销
RequestUnsupported
不支持的请求
Forbid
该账号不允许访问该应用系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单点 登录 SSO 系统 解决方案