为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

kisso与xxl-sso方案讲解

2018-11-24 7页 doc 783KB 141阅读

用户头像

is_562397

暂无简介

举报
kisso与xxl-sso方案讲解SSO英文全称Single Sign On,即单点登录。单点登录是一种控制多个相关但彼此独立的系统的访问权限(不共用session,系统间彼此互不关联), 拥有这一权限的用户可以使用单一的ID和密码访问某个或多个系统从而避免使用不同的用户名或密码,或者通过某种配置无缝地登录每个系统。 实现机制是当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该 返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket...
kisso与xxl-sso方案讲解
SSO英文全称Single Sign On,即单点登录。单点登录是一种控制多个相关但彼此独立的系统的访问权限(不共用session,系统间彼此互不关联), 拥有这一权限的用户可以使用单一的ID和密码访问某个或多个系统从而避免使用不同的用户名或密码,或者通过某种配置无缝地登录每个系统。 实现机制是当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该 返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把 ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。 各版本SSO系统选型分析 KISSO(cookie sso) 是基于cookie的SSO中间件,采用的是加密会话 cookie 机制实现单点登录 SSO 服务,具备“无状态”、“分散验证等特性 项目模块结构如图 跨域原理图 核心原理 Ajax Jsonp 跨域验证,用户在 A 站登录成功,进入 B 站时利用 Jsonp 跨域询问 SSO 是否 A站登录?由 SSO 返回密文告诉 B 站是否 A 站登录,如登录在 B 站设置会话 Cookie 从而实现 B 站的登录授权,图中 UUID 部分为了安全利用分布式缓存后台做二次验证。 Web 端访问图 移动端 API 访问流程图 总体感觉:文档不够详细与清晰,采用springMVC,配置文件略多,配置部分挺麻烦,部分官方测试demo已经失效了,主要基于cookie的验证,不知用于APP的token验证是否足够完善。安全机制采用AES加密,另外这套系统16年之后维护得就比较少了。 XXL-SSO,是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性,现已开放源代码。 特性: 简洁:API直观简洁,可快速上手; 轻量级:环境依赖小,部署与接入成本较低; 单点登录:只需要登录一次就可以访问所有相互信任的应用系统。 分布式:接入SSO认证中心的应用,支持分布式部署; HA:Server端与Client端,均支持集群部署,提高系统可用性; 实时性:系统登陆、注销状态,全部Server与Client端实时共享; CS结构:基于CS结构,包括Server"认证中心"与Client"受保护应用"; 跨域:支持跨域应用接入SSO认证中心; Cookie+Token均支持:支持基于Cookie和基于Token两种接入方式,并均提供Sample项目; Web+APP均支持:支持Web和APP接入; 其中基于token的搭建,主要api 有3 个 : ·  登陆接口:/app/login l ·  参数:POST参数 l username:账号 l password:账号 l 响应:JSON格式 l code:200 示成功、其他失败; l msg:错误提示 l data: 登陆用户的 sso sessionid ·  2、注销接口:/app/logout l ·  参数:POST参数 l sessionId:登陆用户的 sso sessionid l 响应:JSON格式 l code:200 表示成功、其他失败; l msg:错误提示 ·  3、登陆状态校验接口:/app/logincheck l ·  参数:POST参数 l sessionId:登陆用户的 sso sessionid l 响应:JSON格式 l code:200 表示成功、其他失败; l msg:错误提示 l data:登陆用户信息 ? userid:用户ID ? username:用户名 正常情况下,登录流程如下: 1、获取用户输入的账号密码后,请求SSO Server的登录接口,获取用户 sso sessionid ;(参考代码:TokenClientTest.loginTest) 2、登陆成功后,获取到 sso sessionid ,需要主动存储,后续请求时需要设置在 Header参数 中; 3、此时,使用 sso sessionid 访问受保护的 "Client01应用" 和 "Client02应用" 提供的接口,接口均正常返回;(参考代码:TokenClientTest.clientApiRequestTest) 正常情况下,注销流程如下: 1、请求SSO Server的注销接口,注销登陆凭证 sso sessionid ;(参考代码:TokenClientTest.logoutTest) 2、注销成功后,sso sessionid 将会全局失效; 3、此时,使用 sso sessionid 访问受保护的 "Client01应用" 和 "Client02应用" 提供的接口,接口请求将会被拦截,提示未登录并返回状态码 501 ;(参考代码:TokenClientTest.clientApiRequestTest) 架构图 核心概念 SSO Server 中央认证服务,支持集群; SSO Client 接入SSO认证中心的Client应用; SSO SessionId 登录用户会话ID,SSO 登录成功为用户自动分配; SSO User 登录用户信息,与 SSO SessionId 相对应;     总的来说,xxl-sso感觉就是比较简洁,采用spring boot ,部署方便,sessionId存在redis中,有效期可任意,设置默认2小时。sso server 有一个用户表做登录用,可在此表增加U家及海金汇用户ID即可关联。 cookie web 及 token api 两种方式支持都比较友好, 只是token方式建议要加RSA对称加密保证token的安全性。xxl-sso 中文文档比较全面,社区也比较活跃。 个人测试xxl-sso 基于 cookie 的使用
/
本文档为【kisso与xxl-sso方案讲解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索