1. Web页面认证
Web应用的访问方式为http页面请求认证,其处理逻辑描述如下:
1. 请求客户端访问登录页面输入用户名、密码、验证码,passport系统校验通过后颁发合法身份的令牌并返回给请求客户端,请求客户端携带该令牌执行后续业务处理操作;
2. 在没有登录的情况下提交Http页面访问请求,向passport系统发起权限认证请求,如果该页面不允许匿名访问,则passport系统向请求客户端返回“要求登陆”处理信息;
3. 对于允许匿名访问的页面请求,向passport系统发起权限认证请求,passport系统不做权限验证,向请求客户端返回“可访问”处理信息;
4. 对于不同权限要求的页面操作,向passport系统发起权限认证请求,passport系统需要校验用户角色,计算权限列表,如果请求操作在权限列表中,则向请求客户端返回“可访问”处理信息,如果不在权限列表中,则向请求客户端返回“未授权”的处理信息
2. WebApi认证
WebApi服务端接收访问请求,需要做安全认证处理,其处理逻辑描述如下:
1. 客户端请求中携带用户令牌发起访问请求,向passport系统发起认证令牌请求,passport系统校验令牌信息是否有效,如果满足校验要求,向请求客户端返回“合法令牌”的处理信息,请求客户端执行后续业务处理操作;否则向请求客户端返回“不合法令牌”的处理信息;
2. 对于允许匿名访问的API请求,passport系统不做权限认证,向请求客户端返回“可访问”处理信息;
3. 对于有权限要求的API操作,passport系统需要校验用户角色,计算权限列表,如果请求操作在权限列表中,则正常访问,如果不在权限列表中,则返回“未授权的访问”异常消息给请求客户端;
3. 接口提供
1 | 请求登陆->获取令牌 | 1.通过登陆WEB页面获取令牌 2.通过API获取令牌(暂无) |
2 | 状态更新->刷新令牌 | 通过API刷新令牌 |
3 | 请求注销->注销令牌 | 通过API注销令牌 |
4 | 令牌合法性认证 | 通过API认证令牌有效性 |
5 | 权限认证 | 通过API认证权限 |
6 | 工号管理 | 1.基于WEB页面管理(暂无) 2.基于API管理 |
7 | 角色管理 | 1.基于WEB页面管理(暂无) 2.基于API管理 |
8 | 权限管理 | 1.基于WEB页面管理(暂无) 2.基于API管理 |
9 | 组织结构管理 | 1.基于WEB页面管理(暂无) 2.基于API管理 |
4. 页面提供
1 | 登陆页面 | |
2 | 未授权提示页面 | |
3 | 工号管理 | |
4 | 角色管理 | |
5 | 权限管理 | |
6 | 组织机构管理 |
5.场景过程
流程处理步骤说明:
1. 用户发起http请求操作;
2. 业务服务系统解析Http请求,首先登记用户请求session到全局内存数据库,并判断请求类型为Json或Html,然后判断是否有已登记的令牌信息,没有令牌信息,则向passport系统发起API登陆请求或页面登陆请求;
页面登陆请求:
1)passport系统响应登陆请求,返回登陆页面;
2)用户输入用户名和密码信息,提交登录表单数据给passport系统;
3)passport系统验证用户资料,判断密码是否匹配;
如果用户名和密码不匹配,则提示密码错误等信息,用户重新填写登录资料;
如果验证通过,则生成并登记令牌信息,从全局内存数据库取出用户请求session并跳转到原发用户请求;
API登陆请求:
passport系统响应API登陆请求,认证登陆参数,验证通过,则生成并登记令牌信息,返回JSON结果
3. 接第2步,业务服务系统判断用户有令牌信息,则向passport系统发起验证用户令牌合法性验证请求;
4. 业务服务系统判断用户有令牌信息并为合法令牌,则向passport系统发起权限认证请求;
5. passport系统验证用户对当前要操作的页面或页面元素是否有权限操作,根据用户名,查找该用户的角色信息,并计算用户权限列表,封装认证结果并返回;
6. 业务服务系统接收返回JSON数据,根据返回权限结果进行业务处理
1)当用户有权限操作页面或页面元素时,执行用户请求页面或业务
2)当用户没有权限访问该页面或页面元素时
如果用户为页面请求则向passport系统发起未授权页面请求,passport系统响应该请求,返回未授权页面
如果用户为数据请求则向用户返回未授权数据;