发明内容
本发明提供了一种单点登录方法和***、通信装置,针对现有技术中用户身份信息在不同子***之间传递过程中可能被篡改的缺陷,用以实现防止用户身份信息在传递过程中被篡改。
本发明提供了一种单点登录方法,包括:
应用门户接收用户终端发送的业务请求信息与单点登录消息,所述业务请求信息中包括用户请求访问的应用页面信息,所述单点登录消息中包括摘要信息与对所述摘要信息以所述应用门户的独立共享密钥进行信息-摘要算法签名后生成的认证码,所述摘要信息包括所述应用门户的统一资源定位符和以所述应用门户的独立共享密钥进行数据加密标准加密的用户标识;
所述应用门户使用保存的独立共享密钥对所述认证码进行信息-摘要算法解密,并比较解密得到的摘要信息与所述单点登录消息中携带的摘要信息是否一致;
若一致,所述应用门户根据所述应用页面信息,向所述用户终端返回用户请求访问的应用页面;
若不一致,所述应用门户向所述用户终端返回提示用户登录页面;
所述摘要消息中还包括认证平台分配给所述应用门户的用于标识所述应用门户的应用门户标识和用于标识本次会话的会话标识;
所述应用门户接收用户终端发送的业务请求信息与单点登录消息包括:
认证门户接收所述用户终端发送的用户身份信息,调用所述认证平台对所述用户身份信息进行认证,并在认证通过后生成所述会话标识,向所述用户终端返回所述会话标识及认证结果;
所述应用门户接收所述用户终端通过认证门户中的链接地址发送的所述业务请求消息,并在所述用户未登录时,生成第一单点登录消息并发送给所述用户终端,所述第一单点登录消息包括第一认证码和第一摘要信息,所述第一认证码包括根据存储的所述应用门户的独立共享密钥进行信息-摘要算法签名的所述第一摘要信息,所述第一摘要信息包括应用门户标识和所述应用门户的统一资源定位符;
所述认证门户接收所述用户终端发送的所述第一单点登录消息、会话标识和认证结果,根据所述认证结果使用存储的所述应用门户的独立共享密钥对所述第一单点登录消息进行信息-摘要算法解密获取所述应用门户标识和所述应用门户的统一资源定位符,生成所述单点登录消息并发送给所述用户终端;
所述应用门户接收所述用户终端发送的所述单点登录消息。
本发明提供了一种单点登录装置,包括:
接收模块,用于接收用户终端发送的业务请求信息与单点登录消息,所述业务请求信息中包括用户请求访问的应用页面信息,所述单点登录消息中包括摘要信息与对所述摘要信息进行信息-摘要算法签名后生成的认证码,所述摘要信息包括所述应用门户的统一资源定位符和以所述应用门户的独立共享密钥进行数据加密标准加密的用户标识;
解密模块,用于使用保存的独立共享密钥对所述认证码进行信息-摘要算法解密;
比较模块,用于比较所述解密模块解密得到的摘要信息与所述单点登录消息中携带的摘要信息是否一致;
业务处理模块,用于根据所述比较模块的比较结果,在解密得到的摘要信息与所述单点登录消息中携带的摘要信息一致时,根据所述应用页面信息,向所述用户终端返回用户请求访问的应用页面,在解密得到的摘要信息与所述单点登录消息中携带的摘要信息不一致时,向所述用户终端返回提示用户登录页面;
所述摘要信息中还包括认证平台分配给所述应用门户的用于标识所述应用门户的应用门户标识和用于标识本次会话的会话标识;
所述接收模块包括:
接收单元,用于接收所述用户终端通过认证门户中的链接地址发送的所述业务请求消息,以及接收所述用户终端发送的所述单点登录消息;
第一生成单元,用于在所述用户未登录时,生成第一单点登录消息并发送给所述用户终端,所述第一单点登录消息包括第一认证码和第一摘要信息,所述第一认证码包括根据存储的所述应用门户的独立共享密钥进行信息-摘要算法签名的所述第一摘要信息,所述第一摘要信息包括应用门户标识和所述应用门户的统一资源定位符。
本发明还提供了一种通信装置,包括:
认证模块,用于接收所述用户终端发送的用户身份信息,调用认证平台对所述用户身份信息进行认证,并在认证通过后生成所述会话标识,向所述用户终端返回所述会话标识及认证结果;
第一接收模块,用于接收所述用户终端发送的第一单点登录消息、会话标识和认证结果;
第一解密模块,用于根据所述认证结果使用存储的所述应用门户的独立共享密钥对所述第一单点登录消息进行信息-摘要算法解密获取所述应用门户标识和所述应用门户的统一资源定位符,生成所述单点登录消息并发送给所述用户终端。
本发明提供了一种单点登录***,包括认证平台、认证门户与应用门户,所述应用门户包括:
接收模块,用于接收用户终端发送的业务请求信息与单点登录消息,所 述业务请求信息中包括用户请求访问的应用页面信息,所述单点登录消息中包括摘要信息与对所述摘要信息进行信息-摘要算法签名后生成的认证码,所述摘要信息包括所述应用门户的统一资源定位符和以所述应用门户的独立共享密钥进行数据加密标准加密的用户标识;
解密模块,用于保存的独立共享密钥对所述认证码进行信息-摘要算法解密;
比较模块,用于比较所述解密模块解密得到的摘要信息与所述单点登录消息中携带的摘要信息是否一致;
业务处理模块,用于根据所述比较模块的比较结果,在解密得到的摘要信息与所述单点登录消息中携带的摘要信息一致时,根据所述应用页面信息,向所述用户终端返回用户请求访问的应用页面,在解密得到的摘要信息与所述单点登录消息中携带的摘要信息不一致时,向所述用户终端返回提示用户登录页面;
所述认证平台用于对所述应用门户装置进行认证,并保存所述用户身份信息;
所述认证门户包括:
认证模块,用于接收所述用户终端发送的用户身份信息,调用认证平台对所述用户身份信息进行认证,并在认证通过后生成所述会话标识,向所述用户终端返回认证成功页面;
第一接收模块,用于接收所述用户终端发送的所述第一单点登录消息、会话标识和认证结果;
第一解密模块,用于根据所述认证结果使用存储的所述应用门户的独立共享密钥对所述第一单点登录消息进行信息-摘要算法解密获取所述应用门户标识和所述应用门户的统一资源定位符,生成所述单点登录消息并发送给所述用户终端。
本发明提供的单点登录方法和***、通信装置,采用每个应用门户的独立共享密钥分别对用户身份信息加密,防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明SSO方法第一实施例的流程图,具体可以包括如下步骤:
步骤101、应用门户接收用户终端发送的业务请求信息与SSO消息,该业务请求信息中包括用户请求访问的应用页面信息,该SSO消息中包括摘要信息与对该摘要信息以应用门户的独立共享密钥(Sharekey)进行信息摘要算法(Message-digest algorithm 5,以下简称:MD5)签名后生成的认证码(Authenticator),该摘要信息包括所述应用门户的统一资源定位符(Uniform Resource Location;以下简称:URL)和以应用门户的独立共享密钥进行数据加密标准(Data Encryption Standard,以下简称:DES)加密的用户标识;
步骤102、应用门户使用保存的独立共享密钥对认证码进行MD5解密,并比较解密得到的摘要信息与SSO消息中携带的摘要信息是否一致;若一致,执行步骤103,若不一致,执行步骤104;
步骤103、应用门户根据所述应用页面信息,向用户终端返回用户请求访问的应用页面;
步骤104、应用门户向用户终端返回提示用户登录页面,以提示用户继续输入用户身份信息并到认证门户中进行认证。
在本实施例中,应用门户先对接收的SSO消息使用保存的独立共享密钥进行解密,通过比较解密后的信息确定传递的信息是否被篡改,从而防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性,简单有效、安全可靠、易于实现的方法实现了SSO机制。
如图2所示,为本发明SSO方法第二实施例的流程图,在图1所示技术方案基础上,摘要消息中还包括认证平台分配给该应用门户的用于标识该应用门户的应用门户标识和用于标识本次会话的会话标识,步骤101具体可以包括如下步骤:
步骤201、认证门户接收用户终端发送的用户身份信息,调用认证平台对用户身份信息进行认证,并在认证通过后生成会话标识(SessionID),向用户终端返回认证成功页面;其中,用户身份信息具体可以包括用户的用户编号和密码,用户身份信息被保存在认证平台,认证结果和会话标识被保存在用户终端;
步骤202、应用门户接收用户终端通过认证门户中的链接地址发送的业务请求消息,并在用户未登录时,生成第一SSO消息并发送给用户终端,该第一SSO消息包括第一认证码和第一摘要信息,该第一认证码包括根据存储的应用 门户的独立共享密钥进行MD5签名的第一摘要信息,该第一摘要信息包括应用门户标识和应用门户的URL;
具体地,根据应用门户没有接收到SSO消息,可以确定用户未登录;如下所示,为一个第一SSO消息的具体实例:
<xml version=“1.0”>
<SSOMessage version=”2.0”>
<SSOParas>
<SrcDeviceID>SrcDeviceID</SrcDeviceID>
<BackURL>BackURL</BackURL>
<TimeStamp>YYYYMMDDHHMMSS</TimeStamp>
<Authenticator>Authenticator</Authenticator>
</SSOParas>
</SSOMessage>
如表1所示,为第一SSO消息的一个具体内容实例,其中,BackURL表示由认证门户生成并返回应用门户的应用门户的URL;SrcDeviceID表示应用门户标识;SHARE KEY表示由认证平台分配给应用门户的独立共享密钥,并预先配置在对应应用门户以及认证门户的配置文件中;Authenticator表示第一认证码,如下式所示,对上述所有字段做MD5签名,并对签名结果做Base64编码。
Authenticator=Base64(MD5(SHARE KEY+
”$”+SrcDeviceID+”$”+BackURL+$”+TimeStamp))
该第一SSO消息具体还可以包括:TimeStamp,表示当前时间。
表1第一SSO消息的一个具体内容实例
参数名 |
可选/必选 |
参数类型 |
出现次数 |
参数说明 |
SrcDeviceID |
必选 |
字符串 |
1 |
应用门户编号,由 认证门户统一分 配 |
BackURL |
必选 |
字符串 |
1 |
返回应用门户的 URL |
TimeStamp |
必选 |
字符串 |
1 |
YYYYMMDDHHMMSS, 共14位 |
Authenticator |
必选 |
字符串 |
1 |
对以上所有字段 做MD5签名,然后 做BASE64编码 |
应用门户生成第一SSO消息后采用Post方式传递给用户终端,用户终端附带该第一SSO消息和认证结果、会话标识重定向至认证门户。
步骤203、认证门户接收用户终端发送的第一SSO消息、会话标识和认证结果,根据认证结果使用存储的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端;
具体地,认证门户根据认证结果确定用户已经登录,故不再让所述用户进行身份认证而是解析第一SSO消息获取应用门户标识和应用门户的URL,对摘要信息采用应用门户的独立共享密钥进行MD5签名再进行BASE64编码生 成认证码,SSO消息包括该摘要信息和认证码。摘要信息具体可以包括该摘要信息包括所述应用门户的URL和以应用门户的独立共享密钥进行DES加密的用户标识,在本实施例中,用户标识为用户编号,用户标识还可以为其他能够标识用户的信息。该摘要信息还可以包括认证结果、会话标识、应用门户标识、用户归属省信息等。
如下所示,为一个SSO消息的一个具体实例:
<xml version=″1.0″encoding=″UTF-8″>
<SSOMessage version=″2.0″>
<SSOParas>
<SessionID>dd5f6b606c6f455bcbc8d7fb71bac3c9</SessionID>
<SrcDeviceID>229901070001</SrcDeviceID>
<LoginID>uX/1IqCttlqoQDE0L6+5Fg==</LoginID>
<EchoURL>http://133.193.13.199:7001/portal-ussp/EchoURL</EchoURL>
<Resultcode>0</LoginID>
<Province>22</Province>
<Timeout>1800</Timeout>
<TimeStamp>20080322155004</TimeStamp>
<Authent icator>qkpUhRzdDYT1k0ZDAdfL9A==</Authenticator>
</SSOParas>
如表2所示,为SSO消息的一个具体内容实例,其中SHARE KEY表示应用门户的独立共享密钥,预先配置在对应应用门户以及认证门户的配置文件中;EchoURL被认证门户用于生成并返回应用门户的URL;LoginID=Base64(Encrypt(LoginID)),其中LoginID表示用户编号,加密算法使用应用 门户的独立共享密钥进行DES加密,加密后采用BASE64进行编码;Resultcode表示认证结果,0表示认证失败,1表示认证成功;Province表示用户归属省;SessionID表示会话标识;Timeout表示会话在认证门户的超时时间。Authenticator表示认证码,如下式所示,对所有字段做MD5签名,并对签名结果做Base64编码:
Authenticator=Base64(MD5(SHARE KEY+
”$”+SrcDeviceID+”$”+Resultcode+
”$”+SessionID+”$”+EchoURL+
”$”+Base64(Encrypt(LoginID))+
”$”+Province+”$”+Timeout+$”+TimeStamp))
表2SSO消息的一个具体内容实例
参数名 |
可选/必选 |
参数类型 |
出现次数 |
参数说明 |
SrcDeviceID |
必选 |
字符串 |
1 |
用户归属省认证门 户编号 |
Resultcode |
必选 |
整型 |
1 |
0:成功 1:失败 |
SessionID |
必选 |
字符串 |
1 |
用户在用户的认证 门户的SessionID
|
LoginID |
必选 |
字符串 |
1 |
登陆ID,取值为相应 的用户编号,需要做 DES加密,然后做 BASE64转码 |
[0091]
Province |
必选 |
字符串 |
1 |
用户归属省 |
EchoURL |
必选 |
字符串 |
1 |
发送保持用户会话 请求消息的URL |
Timeout |
必选 |
字符串 |
1 |
Session在认证门户 这边的超时时间,应 用门户发送Echo消 息的时间间隔必须 小于Timeout |
TimeStamp |
必选 |
字符串 |
1 |
YYYYMMDDHHMMSS,共 14位 |
Authenticator |
必选 |
字符串 |
1 |
对以上所有字段做 MD5签名,然后做 BASE64编码 |
步骤204、应用门户接收用户终端发送的SSO消息。
在图1所示技术方案基础上,步骤103之后具体还可以包括如下步骤:
步骤205、应用门户根据应用门户的独立共享密钥对加密后的用户编号进行DES解密,得到用户编号。
摘要信息中还包括会话有效期信息;该会话有效期信息为表2中Timeout表示的时间,应用门户在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,在会话有效期信息表示的有效期内保持所述用户标识的有效性;具体地,步骤205之后还可以包括如下步骤:
步骤206、应用门户向认证门户发送保持用户标识请求消息;
步骤207、认证门户向应用门户返回保持用户标识应答消息。
用户首先访问认证门户,并用户身份信息传给认证平台进行身份认证,身份认证通过后,认证门户生成会话标识,然后用户访问应用门户,应用门户发现用户未通过身份认证,生成第一SSO消息,并将用户终端重定向至认证门户进行身份认证,认证门户通过认证结果得知用户已通过身份认证,重新生成SSO消息返回给用户终端,用户终端传递SSO消息到应用门户,应用门户解密SSO消息以判断用户是否通过身份认证,从而实现SSO,然后解密获取用户标识。采用应用门户的独立共享密钥对用户标识进行加密和解密,有效防止了用户信息在传递过程中被篡改,保证了用户信息的安全性。
如图3所示,为本发明SSO方法第三实施例的流程图,在图2所示技术方案基础上,步骤201之后还可以包括如下步骤:
步骤301、认证门户生成Cookie消息并将该Cookie消息保存在用户终端,Cookie消息包括认证结果和会话标识。
在图2所示技术方案基础上,步骤203具体可以为:
步骤302、认证门户接收用户终端发送的第一SSO消息和Cookie消息,Cookie消息包括所述会话标识和所述认证结果;
步骤303、认证门户根据Cookie消息中的认证结果使用存储的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端;具体地,认证门户根据Cookie消息中的认证结果确定用户已经通过身份认证,使用应用门户的独立共享密钥对第一SSO消息解密并生成SSO消息。
当用户再次登录认证门户时,认证门户接收用户终端发送的登录请求消息,并识别该登录请求消息中是否包括Cookie消息,并在登录请求消息中包 括Cookie消息时,处理登录请求,在登录请求消息中不包括Cookie消息时,向用户终端返回登录失败的提示消息。
由于Cookie消息保存在用户终端,因此,当其他用户采用其他用户终端登录仿冒用户身份信息登录认证门户时,用户终端上没有Cookie消息,认证门户不允许用户通过身份认证,在防止用户身份信息在传递过程中被篡改的基础上,有效防止了用户仿冒,从而实现了对用户身份信息的双重保护。
如图4所示,为本发明SSO方法第四实施例的流程图,在图1所示技术方案基础上,摘要消息中还包括应用门户标识和会话标识,步骤101具体可以包括如下步骤:
步骤401、应用门户接收用户终端发送的业务请求信息,并在用户未登录时,生成第一SSO消息并发送给用户终端,该第一SSO消息包括第一认证码和第一摘要信息,该第一认证码包括根据存储的应用门户的独立共享密钥进行MD5签名的第一摘要信息,该第一摘要信息包括应用门户标识和应用门户的URL;该第一摘要消息与本发明SSO消息第二实施例中的第一摘要信息相同,在此不再赘述;用户终端附带该第一SSO消息重定向至认证门户;
步骤402、认证门户接收用户终端发送的第一SSO消息,向用户终端返回登录页面,接收用户终端发送的用户身份信息,调用所述认证平台对用户身份信息进行认证,并在认证通过后生成会话标识,使用存储的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端;其中,用户身份信息具体可以包括用户标识和密码,在本实施例中,用户标识具体为用户编号,用户标识还可以为其他能够标识用户的标志信息;该SSO消息与本发明SSO方法第二实施例中的SSO消息相同,在此不再赘述;用户终端附带该SSO消息重定向至应用门户;
步骤403、应用门户接收用户终端发送的SSO消息。
在图1所示技术方案基础上,步骤103之后还可以包括如下步骤:
步骤404、应用门户根据应用门户的独立共享密钥对加密后的用户编号进行DES解密,得到用户编号。
SSO消息中的摘要信息中还包括会话有效期信息;该会话有效期信息具体可以为表2中Timeout表示的时间,应用门户在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,为了保持用户标识的有效性,防止用户在认证门户上超时,应用门户在会话有效期信息表示的有效期内保持所述用户标识的有效性;具体地,在用户浏览服务/应用门户期间,步骤404之后还可以包括如下步骤:
步骤405、应用门户向认证门户发送保持用户标识请求消息;
步骤406、认证门户向应用门户返回保持用户标识应答消息。
在本实施例中,用户首先访问应用门户,应用门户发现用户未通过身份认证,则生成第一SSO消息重定向至认证门户进行身份认证,认证门户确认用户未登录,发送登录页面给用户,认证门户对用户身份信息进行认证,认证通过后,生成会话标识和SSO消息,应用门户对SSO消息中的认证码进行MD5解密,将解密得到的摘要信息与SSO消息中的摘要信息进行比较,如果二者一致,确定用户身份信息在传递过程中未被篡改,否则,确定用户身份信息在传递过程中被篡改,向用户返回登录失败界面,从而防止用户身份信息在传递过程中被篡改,提高了信息传递的安全性。
如图5所示,为本发明SSO方法第五实施例的流程图,在图4所示技术方案基础上,步骤402具体可以包括如下步骤:
步骤501、认证门户接收用户终端发送的第一SSO消息,向用户终端返回登 录页面,接收用户终端发送的用户身份信息;该用户身份信息中还包括用户的归属地标识信息;
步骤502、认证门户根据所述用户的归属地标识信息获知该用户不属于本归属地时,从用户终端获取用户的归属地信息并据此生成归属地URL,根据该URL向用户的归属地认证门户发送应用门户的独立共享密钥,将用户身份信息、第一SSO消息和归属地认证门户的链接地址发送给用户终端;用户终端附带该第一SSO消息和用户身份信息,通过归属地认证门户的链接地址重定向至归属地认证门户;
步骤503、归属地认证门户调用所述认证平台对用户身份信息进行认证,并在认证通过后生成会话标识,使用接收的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端;其中,归属地认证门户接收到应用门户的独立共享密钥后,向认证门户返回应答消息;用户身份信息具体可以包括用户标识和密码,在本实施例中,用户标识具体为用户编号,用户标识还可以为其他能够标识用户的信息;该SSO消息与本发明SSO方法第二实施例中的SSO消息相同,在此不再赘述;用户终端附带该SSO消息重定向至应用门户。
为了保持用户标识的有效性,防止用户在认证门户上超时,在图4所示技术方案基础上,步骤406之后具体可以包括如下步骤:
步骤504、认证门户向归属地认证门户发送保持用户标识请求消息;
步骤505、归属地认证门户向认证门户返回保持用户标识应答消息。
在本实施例中,当用户访问的应用门户为非归属省时,应用门户生成第一SSO消息重定向至非归属省认证门户进行身份认证,非归属省认证门户根据用户提供的归属地信息生成归属地URL,将归属省应用门户的独立共享密 钥发送给归属地认证门户,归属地认证门户对用户身份信息进行认证,认证通过后,根据接收的应用门户的独立共享密钥对第一SSO消息进行解密,根据应用门户的独立共享密钥加密生成SSO消息,非归属地应用门户对SSO消息MD5解密,将解密得到的摘要信息与SSO消息中的摘要信息进行比较,如果二者一致,确定用户身份信息在传递过程中未被篡改,否则,确定用户身份信息在传递过程中被篡改,向用户返回登录失败界面,从而防止用户身份信息在传递过程中被篡改,提高了信息传递的安全性。此外,本实施例提供了用户访问非归属地应用门户时怎样实现单点登陆的方法。
如图6所示,为本发明SSO方法第六实施例的流程图,在图4所示技术方案基础上,步骤402之后还包括如下步骤:
步骤601、认证门户生成Cookie消息并将该Cookie消息保存在用户终端,Cookie消息包括认证结果和会话标识。
当用户再次登录认证门户时,认证门户接收用户终端发送的登录请求消息,并识别该登录请求消息中是否包括Cookie消息,并在登录请求消息中包括Cookie消息时,处理登录请求,在登录请求消息中不包括Cookie消息时,向用户终端返回登录失败的提示消息。
由于Cookie消息保存在用户终端,因此,当其他用户采用其他用户终端登录仿冒用户身份信息登录认证门户时,用户终端上没有Cookie消息,认证门户不允许用户通过身份认证,在防止用户身份信息在传递过程中被篡改的基础上,有效防止了用户仿冒,从而实现了对用户身份信息的双重保护。
如图7所示,为本发明SSO方法第七实施例的流程图,在图4所示技术方案基础上,应用门户向用户终端返回用户请求访问的应用页面之后还包括如下步骤:
步骤701、第二应用门户接收到用户终端通过应用门户的链接地址发送的第二业务请求消息,并在用户未登录时,生成第二SSO消息并发送给用户终端,该第二业务请求消息包括用户请求访问的第二应用页面信息,该第二SSO消息包括第二认证码和第二摘要信息,第二认证码包括根据存储的第二应用门户的独立共享密钥进行MD5签名的第二摘要信息,第二摘要信息包括认证平台分配给第二应用门户的用于标识第二应用门户的第二应用门户标识和第二应用门户的URL;该第二摘要信息与本发明SSO方法第二实施例中的第一摘要信息相同,在此不再赘述,用户终端附带第二SSO消息、会话标识和认证结果重定向至认证门户;
步骤702、认证门户接收用户终端发送的第二SSO消息、会话标识和认证结果,根据认证结果使用存储的第二应用门户的独立共享密钥对第二认证码进行MD5解密获取第二应用门户标识和第二应用门户的URL,生成第三SSO消息,将第三SSO消息发送给用户终端,该第三SSO消息中包括第三摘要信息与对第三摘要信息以第二应用门户的独立共享密钥进行MD5签名后生成的第三认证码,第三摘要信息包括第二应用门户标识、第二应用门户的URL、会话标识和以第二应用门户的独立共享密钥进行DES加密的用户标识;该第三摘要信息与本发明SSO方法第三实施例中的SSO消息相同,在此不再赘述,用户终端附带第三SSO消息重定向至第二应用门户;在本实施例中,用户标识为用户编号,用户标识还可以为其他能够标识用户的信息;
步骤703、第二应用门户接收用户终端发送的第三SSO消息,使用保存的第二应用门户的独立共享密钥对第三认证码进行MD5解密,并比较解密得到的摘要信息与第三SSO消息中携带的第三摘要信息是否一致;若一致,执行步骤704;若不一致,执行步骤705;
步骤704、第二应用门户根据第二应用页面信息,向用户终端返回用户请求访问的第二应用页面;执行步骤706;
步骤705、第二应用门户向用户终端返回第二提示用户登录页面,以提示用户再次输入用户身份信息并到认证门户中进行认证,结束。
步骤706、第二应用门户根据第二应用门户的独立共享密钥对加密后的用户编号进行DES解密,得到用户编号。
第三SSO消息中的摘要信息中还包括会话有效期信息;第二应用门户在解密得到的摘要信息与第三SSO消息中携带的第三摘要信息一致时,为了保持用户标识的有效性,防止用户在认证门户上超时,第二应用门户在会话有效期信息表示的有效期内保持用户标识的有效性;具体地,在用户浏览服务/第二应用门户期间,步骤706之后还可以包括如下步骤:
步骤707、第二应用门户向认证门户发送保持用户标识请求消息;
步骤708、认证门户向第二应用门户返回保持用户标识应答消息。
本实施例考虑了用户访问应用门户后再访问第二应用门户的情况,由于第二SSO消息和第三SSO消息均采用了第二应用门户的独立共享密钥进行了加密,有效防止了用户身份信息在传递过程中被篡改,提高了信息传递的安全性。
需要说明的是:本发明不局限于包括应用门户和第二应用门户,可以根据需要包括多个应用门户。
如图8所示,为本发明SSO方法第八实施例的流程图,在图7所示技术方案基础上,步骤702具体可以包括如下步骤:
步骤801、认证门户接收所述用户终端发送的第二SSO消息和Cookie消息,该Cookie消息包括会话标识和认证结果;
步骤802、认证门户根据Cookie消息中的认证结果使用存储的第二应用门户的独立共享密钥对第二认证码进行MD5解密获取第二应用门户标识和第二应用门户的URL,生成第三SSO消息,将第三SSO消息发送给用户终端。
由于Cookie消息保存在用户终端,因此,当其他用户采用其他用户终端登录仿冒用户身份信息登录认证门户时,用户终端上没有Cookie消息,认证门户不允许用户通过身份认证,在防止用户身份信息在传递过程中被篡改的基础上,有效防止了用户仿冒,从而实现了对用户身份信息的双重保护。
如图9所示,为本发明SSO方法第九实施例的流程图,在图7所示技术方案基础上,步骤702具体可以包括如下步骤:
步骤901、认证门户接收用户终端发送的第二SSO消息、会话标识和认证结果;
步骤902、认证门户根据归属地URL向用户的归属地认证门户发送第二应用门户的独立共享密钥,将所述第二SSO消息和归属地认证门户的链接地址发送给用户终端;用户终端根据归属地认证门户的链接地址重定向至归属地认证门户。
步骤903、归属地认证门户接收第二应用门户的独立共享密钥,并接收用户终端发送的第二SSO消息、会话标识和认证结果,根据认证结果使用第二应用门户的独立共享密钥对第二认证码进行MD5解密获取第二应用门户标识和第二应用门户的URL,生成第三SSO消息,并将第三SSO消息发送给用户终端。归属地认证门户接收到第二应用门户的独立共享密钥后,还向第二应用门户发送应答消息。
本实施例充分考虑了用户登录的第二应用门户为非归属省应用门户的情况,使用第二应用门户的独立共享密钥对用户身份信息进行加密和解密,防 止了用户身份信息在传递过程中被篡改,保证了用户信息传递的安全性。
在上述几个实施例中,SSO消息、第一SSO消息、第二SSO消息、第三SSO消息采用超文本传输协议(Hypertext transfer protocol,以下简称:Http)等标准通信协议进行传输。
如图10所示,为本发明通信装置第一实施例的结构示意图,具体可以包括:接收模块1001、解密模块1002、比较模块1003和业务处理模块1004。其中接收模块1001用于接收用户终端发送的业务请求信息与SSO消息,该业务请求信息中包括用户请求访问的应用页面信息,该SSO消息中包括摘要信息与对摘要信息进行MD5签名后生成的认证码,该摘要信息包括应用门户的URL和以应用门户的独立共享密钥进行DES加密的用户标识;解密模块1002用于使用保存的独立共享密钥对认证码进行MD5解密;比较模块1003用于比较解密模块1002解密得到的摘要信息与SSO消息中携带的摘要信息是否一致;业务处理模块1004用于根据比较模块1003的比较结果,在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,根据应用页面信息,向用户终端返回用户请求访问的应用页面,在解密得到的摘要信息与SSO消息中携带的摘要信息不一致时,向用户终端返回提示用户登录页面,以提示用户再次输入用户身份信息并到认证门户中进行认证。
在本实施例中,解密模块1002对接收模块1001接收的SSO消息使用保存的独立共享密钥进行解密,通过比较模块1003比较解密后的信息,业务处理模块1004根据比较模块1003的比较结果确定传递的信息是否被篡改,从而防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性,简单有效、安全可靠、易于实现的方法实现了SSO机制。
如图11所示,为本发明通信装置第二实施例的结构示意图,在图10所示 技术方案基础上,摘要消息中还包括认证平台分配给应用门户的用于标识应用门户的应用门户标识和用于标识本次会话的会话标识;接收模块1001具体可以包括接收单元1101和第一生成单元1102;其中接收单元1101用于接收用户终端通过认证门户中的链接地址发送的业务请求消息,以及接收用户终端发送的SSO消息;第一生成单元1102用于在用户未登录时,生成第一SSO消息并发送给用户终端,该第一SSO消息包括第一认证码和第一摘要信息,该第一认证码包括根据存储的应用门户的独立共享密钥进行MD5签名的该第一摘要信息,该第一摘要信息包括应用门户标识和应用门户的URL。具体地,第一生成单元1102根据没有接收到SSO消息,可以确定用户未登录;第一摘要信息还可以包括当前时间。
在图10所示技术方案基础上,摘要信息中还包括会话有效期信息;该通信装置还包括:
保持模块1103,用于在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,在会话有效期信息表示的有效期内保持用户标识的有效性;具体地,保持模块1103向认证门户发送保持用户标识请求消息,并接收认证门户返回的保持用户标识应答消息。
在实施例中,接收单元1101首先接收用户终端发送的业务请求消息,第一生成单元1102根据没有接收到SSO消息确定用户未登录,生成第一SSO消息,该第一SSO消息具体可以包括第一摘要信息和第一认证码,第一认证码为根据应用门户的独立共享密钥进行DES加密的第一摘要信息,第一摘要信息具体可以包括应用门户标识和应用门户的URL,该第一摘要信息还可以包括当前时间,将生成的第一SSO消息发送给用户终端。然后,接收单元1101接收用户终端发送的SSO消息,解密模块1002对该SSO消息使用保存的独立共享密钥进行 解密,通过比较模块1003比较解密后的信息,业务处理模块1004根据比较模块1003的比较结果确定传递的信息是否被篡改,从而防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性,简单有效、安全可靠、易于实现的方法实现了SSO机制。
如图12所示,为本发明通信装置第三实施例的结构示意图,具体可以包括:认证模块1201、第一接收模块1202和第一解密模块1203,其中认证模块1201用于接收用户终端发送的用户身份信息,调用认证平台对用户身份信息进行认证,并在认证通过后生成会话标识,向用户终端返回认证成功页面;第一接收模块1202用于接收用户终端发送的第一SSO消息、会话标识和认证结果;第一解密模块1203用于根据认证结果使用存储的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端,其中独立共享密钥由认证平台分配给应用门户并保存在认证门户和应用门户的配置文件中。
在本实施例中,认证模块1201调用认证平台对用户身份信息进行认证,生成会话标识,第一接收模块1202接收第一SSO消息、认证结果和会话标识,第一解密模块1203使用应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,然后生成SSO消息并发送给用户终端,具体地,该SSO消息包括摘要信息和认证码,其中认证码使用应用门户的独立共享密钥对摘要信息进行MD5签名,摘要信息包括应用门户的URL和以应用门户的独立共享密钥进行DES加密的用户标识;在本实施例中,用户标识为用户编号,用户标识还可以为其它能够标识用户的信息;该摘要信息还可以包括应用门户标识、认证结果、会话标识、会话有效期信息和用户归属省等信息。
在本实施中,第一解密模块1203使用应用门户的独立共享密钥对用户的身份 信息进行加密生成SSO消息,防止了用户身份信息在传递过程中被篡改,保证了信息传递的安全性。此外,独立共享密钥由认证平台分配给应用门户,不需要下载安装数字证书,简单易行的实现了SSO。
如图13所示,为本发明通信装置第四实施例的结构示意图,在图12所示结构示意图基础上,为了防止用户仿冒用户登录信息,该通信装置具体还可以包括第二生成模块1301,与认证模块1201连接,用于生成Cookie消息并将该Cookie消息保存在用户终端,该Cookie消息包括认证结果和会话标识。Cooki e消息保存在用户终端,当其他用户仿冒用户身份信息在其他用户终端登录认证门户时,认证门户根据在该用户终端没有保存Cookie消息,判断该用户在仿冒其他用户的用户身份信息,拒绝该用户登录,从而防止了用户仿冒,为用户信息提供了双重保护。
在图12所示技术方案基础上,第一接收模块1202具体可以包括:第一接收单元1302,与第二生成模块1301连接,用于接收用户终端发送的第一SSO消息和Cookie消息,该Cookie消息包括会话标识和认证结果。
在图12所示技术方案基础上,本实施例还可以包括第二接收模块1303、识别模块1304、第二业务处理模块1305,第二接收模块1303与第二生成模块1301连接,识别模块1304与第二接收模块1303连接,第二业务处理模块1305与识别模块1304连接。其中第二接收模块1303用于接收用户终端发送的登录请求消息;识别模块1304用于识别该登录请求消息中是否包括Cookie消息;第二业务处理模块1305用于在所述登录请求消息中包括Cookie消息时,处理该登录请求,在所述登录请求消息中不包括Cookie消息时,向用户终端返回登录失败的提示消息。
在本实施例中,第二生成模块1301生成Cookie消息并保存在用户终端, 当其他用户仿冒用户身份信息在其他用户终端登录认证门户时,第二业务处理模块1305根据识别模块1304的识别结果,判断该用户是否在仿冒其他用户的用户身份信息,当判断为用户在仿冒其他用户的身份信息时,拒绝该用户登录,从而在防止用户身份信息在传递过程中被篡改的基础上,防止了用户仿冒,为用户信息提供了双重保护。
如图14所示,为本发明通信装置第五实施例的结构示意图,在图12所示技术方案基础上,用户身份信息中具体还可以包括用户的归属地标识信息,该通信装置具体还可以包括第三生成模块1401和发送模块1402,第三生成模块1401与认证模块1201连接,发送模块1402与第三生成模块1401连接。其中第三生成模块1401用于根据用户的归属地标识信息获知该用户不属于本归属地时,从用户终端获取所述用户的归属地信息并据此生成归属地URL;发送模块1402用于根据归属地URL向用户的归属地认证门户发送应用门户的独立共享密钥,将用户身份信息、第一SSO消息和归属地认证门户的链接地址发送给用户终端。然后,用户终端根据归属地认证门户的链接地址重定向至归属地认证门户,并附带第一SSO消息和用户身份信息,由归属地认证门户对用户身份信息进行认证。在用户访问应用门户期间,发送模块1402还向归属地认证门户发送保持用户标识请求消息,并接收归属地认证门户返回的保持用户标识应答消息。
在本实施例中,当第三生成模块1401根据用户身份信息中的用户归属地信息确定用户不属于本归属地时,将应用门户的独立共享密钥发送给归属地认证门户,由归属地认证门户对用户身份信息进行认证并使用应用门户的独立共享密钥对用户身份信息进行加密生成SSO消息,从而防止用户身份信息在认证过程中被篡改,保证了信息传递的安全性。
如图15所示,为本发明通信装置第六实施例的结构示意图,在图12所示结构示意图的基础上,第一解密模块1203具体还可以包括第二接收单元1501和第一解密单元1502,第二接收单元1501与第一解密单元1502连接。其中第二接收单元1501用于接收应用门户的独立共享密钥;第一解密单元1502用于根据认证结果使用应用门户的独立共享密钥对用户终端发送的第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息。第二接收单元1501接收到应用门户的独立共享密钥后,向应用门户的归属地的认证门户返回应答消息。
在本实施例中,当用户访问的应用门户为非归属地应用门户时,非归属地认证门户将应用门户的独立共享密钥发送给作为归属地认证门户的通信装置的第二接收单元1501,第一解密单元1502使用该应用门户的独立共享密生成SSO消息,防止用户身份信息在传递过程中被篡改,保证了用户信息的安全性。
在上述几个实施例中,SSO消息、第一SSO消息和第二SSO消息采用Http等标准通信协议进行传输。
如图16所示,为本发明SSO***第一实施例的结构示意图,具体可以包括认证平台1601、认证门户1602与应用门户1603,其中应用门户1603用于接收用户终端发送的业务请求信息与SSO消息,该业务请求信息中包括用户请求访问的应用页面信息,该SSO消息中包括摘要信息与对该摘要信息进行MD5签名后生成的认证码,该摘要信息包括应用门户的URL和以应用门户的独立共享密钥进行DES加密的用户标识,根据保存的独立共享密钥对认证码进行MD5解密,并比较解密得到的摘要信息与SSO消息中携带的摘要信息是否一致,在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,根据应用页面信息,向所 户终端返回用户请求访问的应用页面,在解密得到的摘要信息与SSO消息中携带的摘要信息不一致时,向用户终端返回提示用户登录页面,以提示用户再次输入用户身份信息并到认证门户中进行认证。
在本实施例中,应用门户1603对接收的SSO消息使用保存的独立共享密钥进行解密,通过比较解密后的信息,根据比较结果确定传递的信息是否被篡改,从而防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性,简单有效、安全可靠、易于实现的方法实现了SSO机制。
如图17所示,为本发明SSO***第二实施例的结构示意图,在图16所示技术方案基础上,应用门户1603具体可以包括接收模块1001、解密模块1002、比较模块1003和业务处理模块1004。其中接收模块1001用于接收用户终端发送的业务请求信息与SSO消息,该业务请求信息中包括用户请求访问的应用页面信息,该SSO消息中包括摘要信息与对摘要信息进行MD5签名后生成的认证码,该摘要信息包括应用门户的URL和以应用门户的独立共享密钥进行DES加密的用户标识;解密模块1002用于使用保存的独立共享密钥对认证码进行MD5解密;比较模块1003用于比较解密模块1002解密得到的摘要信息与SSO消息中携带的摘要信息是否一致;业务处理模块1004用于根据比较模块1003的比较结果,在解密得到的摘要信息与SSO消息中携带的摘要信息一致时,根据应用页面信息,向用户终端返回用户请求访问的应用页面,在解密得到的摘要信息与SSO消息中携带的摘要信息不一致时,向用户终端返回提示用户登录页面,以提示用户再次输入用户身份信息并到认证门户中进行认证。
在本实施例中,认证平台1601用于对应用门户进行认证,并保存所述用户身份信息;认证门户1602用于接收用户终端发送的用户身份信息,调用认证平台1601对用户身份信息进行认证,并在认证通过后生成会话标识,向用 户终端返回认证成功页面;接收用户终端发送的第一SSO消息、会话标识和认证结果,根据认证结果使用存储的应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,生成SSO消息并发送给用户终端。其中,认证门户1602具体可以包括认证模块1201、第一接收模块1202和第一解密模块1203,其中认证模块1201用于接收用户终端发送的用户身份信息,调用认证平台对用户身份信息进行认证,并在认证通过后生成会话标识,向用户终端返回认证成功页面;第一接收模块1202用于接收用户终端发送的第一SSO消息、会话标识和认证结果;第一解密模块1203用于根据认证结果使用存储的应用门户的独立共享密钥对所述第一SSO消息进行MD5解密获取所述应用门户标识和所述应用门户的URL,生成所述SSO消息并发送给用户终端,其中独立共享密钥由认证平台分配给应用门户并保存在认证门户和应用门户的配置文件中。
在本实施例中,接收模块1001接收用户终端发送的登录请求消息,在认证门户1602中,认证模块1201调用认证平台1601对用户身份信息进行认证,生成会话标识,第一接收模块1202接收第一SSO消息、认证结果和会话标识,第一解密模块1203使用应用门户的独立共享密钥对第一SSO消息进行MD5解密获取应用门户标识和应用门户的URL,然后生成SSO消息并发送给用户终端,用户终端附带该SSO消息重定向至应用门户1603,解密模块1002对接收模块1001接收的SSO消息使用保存的独立共享密钥进行解密,通过比较模块1003比较解密后的信息,业务处理模块1004根据比较模块1003的比较结果确定传递的信息是否被篡改,从而防止用户身份信息在传递过程中被篡改,保证了信息传递的安全性,简单有效、安全可靠、易于实现的方法实现了SSO机制。
本发明中,在一次登录门户过程中,对登录用户仅产生一个会话标识, 对不同应用门户使用不同的独立共享密钥;并且,一次登录过程中的SSO消息也随参数不同而不同。
本发明实现了本地用户和漫游用户在门户间的SSO,现有技术中,并没有区分用户的归属地问题,而且没有全面实现用户登录门户/***、接入服务/应用等各种情况;本发明充分考虑了用户登录,订购、点播业务等各种应用情况,而且区分本地用户和漫游用户,对这两种情况分别予以了讨论。
现有技术中并没有考虑到用户仿冒这个安全威胁,而且现有技术中,对防止用户身份认证信息所采用的数字证书方式,需要用户下载和安装数字证书,实现起来比较复杂。本发明通过在用户终端保存Cookie的方法,有效抵御了用户仿冒。而且本发明中,用户认证信息保存在***后台,并使用认证平台为每个应用门户分配的独立共享密钥,采用加密协议(MD5,DES)等来对所传递的消息进行加密,无需用户参与,在保证了用户信息安全的同时,使本发明的技术方案的实现简单易行。
另外,采用具有SSO功能的协议来实现SSO的技术,需要目标***或目标服务支持此协议,使其应用范围明显受限。而本发明中的SSO消息采用公知标准通信协议,使本发明技术方法的设备支持程度高。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。