[汇耳架构]Passport认证处理中心逻辑设计

Passport认证与授权实现逻辑草稿

HearGlobal.com

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系统响应该请求,返回未授权页面

    如果用户为数据请求则向用户返回未授权数据;