本发明涉及网络安全,特别是一种基于sso客户端安全的动态授权登录方法。
背景技术:
1、目前单点登录(sso)是比较流行的企业业务系统整合解决方案之一,用户只需要一次登录就可以访问所有受信任的业务系统。sso的实现方案多样,可根据业务系统的现状及实现的代价来评估,灵活选择适用的方案。
2、现在基于认证中心的单点登录大多实现是通过认证中心生成访问令牌后,直接将访问令牌或将加密后访问令牌发送给业务系统,其具有以下缺陷:
3、1、通过直接发送访问令牌的方式,访问令牌对外部透明,系统安全无法得到保障;
4、2、以发送加密访问令牌的方式,在一定程度上防止泄露的问题。但在业务系统端使用访问令牌时被泄露,仍然可能被其他盗用。
技术实现思路
1、为解决现有技术中存在的问题,本发明的目的是提供一种基于sso客户端安全的动态授权登录方法,本发明中业务系统通过认证中心生成绑定客户端信息的专属动态授权码作为授权登录凭证并通过业务系统服务端交换客户端专属访问令牌,解决了访问令牌易泄露及被盗用的系统风险。
2、为实现上述目的,本发明采用的技术方案是:一种基于sso客户端安全的动态授权登录方法,包括以下步骤:
3、步骤1、统一认证中心对业务系统客户端信息及用户信息进行认证成功后,动态生成绑定客户端信息的专属的动态授权码,并将动态授权码发送给业务系统服务端;
4、步骤2、业务系统服务端接收到动态授权码后,携带服务端信息、请求客户端信息及动态授权码发送到统一认证中心,统一认证中心验证成功后,为业务系统生成绑定客户端信息的专属的访问令牌并传回给业务系统,业务系统接收到访问令牌后进行登录后续处理并返回业务系统页面。
5、作为本发明的进一步改进,所述步骤1具体包括以下步骤:
6、a、在统一认证中心注册受信任的业务系统信息,注册成功后,为各业务系统分配相应的appid和appsecret;
7、b、未登录时,访问业务系统页面,将业务系统页面地址作为重定向地址,同时将业务系统的appid作为参数传递到统一认证中心的登录验证页面;
8、c、由登录验证页面验证全局访问令牌,若有效,直接生成绑定业务系统客户端信息的专属的动态授权码,并重定向到业务系统页面;若无效,跳转到统一认证中心的登录验证页面;
9、d、在登录验证页面输入用户名密码,携带客户端信息发送登录请求,同时将appid及签名信息添加到请求头;
10、e、统一认证中心验证成功后,生成绑定业务系统客户端信息的全局访问令牌和绑定客户端信息的动态授权码,并携带动态授权码,重定向到业务系统页面。
11、作为本发明的进一步改进,在步骤a中,所述业务系统信息包括部署业务系统的服务器信息、ip地址及访问业务系统的ip白名单。
12、作为本发明的进一步改进,在步骤d中的登录请求引用第三方库获取客户端mac或唯一标识,并采用hmac-sha256签名算法进行签名。
13、作为本发明的进一步改进,所述动态授权码为包含客户端信息、请求ip地址、业务系统appid、用户id、访问时间戳的加密字符串。
14、作为本发明的进一步改进,所述步骤2具体包括以下步骤:
15、a、业务系统服务端获取到动态授权码,并携带请求客户端信息、服务端信息、动态授权码及签名信息发送到统一认证中心;
16、b、统一认证中心验证相关信息并提取授权码信息和请求携带的信息一一比对成功后,返回带客户端信息的访问令牌到业务系统服务端,再由业务系统服务端完成登录处理后,返回到业务系统页面;
17、c、在业务系统端发起业务处理请求时,通过网关拦截请求并验证访问令牌及请求客户端信息,验证成功后,调用业务处理api接口。
18、本发明的有益效果是:
19、本发明在实现单点登录(sso)中利用绑定客户端信息的专属动态授权码作为系统授权登录凭证来交换客户端专属访问令牌的方式,避免了登录凭证在请求传输过程中被篡改、盗用的风险,提高了单点登录的安全性和可靠性。
1.一种基于sso客户端安全的动态授权登录方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于sso客户端安全的动态授权登录方法,其特征在于,所述步骤1具体包括以下步骤:
3.根据权利要求2所述的基于sso客户端安全的动态授权登录方法,其特征在于,在步骤a中,所述业务系统信息包括部署业务系统的服务器信息、ip地址及访问业务系统的ip白名单。
4.根据权利要求2所述的基于sso客户端安全的动态授权登录方法,其特征在于,在步骤d中的登录请求引用第三方库获取客户端mac或唯一标识,并采用hmac-sha256签名算法进行签名。
5.根据权利要求1或2所述的基于sso客户端安全的动态授权登录方法,其特征在于,所述动态授权码为包含客户端信息、请求ip地址、业务系统appid、用户id、访问时间戳的加密字符串。
6.根据权利要求2所述的基于sso客户端安全的动态授权登录方法,其特征在于,所述步骤2具体包括以下步骤: