鉴权中心系统设计

转至元数据结尾
转至元数据起始

一、现有业务流程

由于和钱相关的事件(借入、贷出、赚利差、转帐、扫码付款等)都需要前置校验,目前已有的鉴权方式有如下几项:

  1. 拒绝操作
  2. 短信
  3. 交易密码(类型有:只有密码面板 OR 带余额以及支付方式)
  4. 肖像认证
  5. 登录密码
  6. 指纹(TouchID)(目前仅仅适用于iPhone5S以上的用户)
  7. 上传资料审核
  8. 四要素鉴权(用户未绑卡,选择名字与身份证鉴权)
  9. 身份认证+银行卡信息确认

可能是以上一种或多种校验事件的组合,每个系统都要重复以上步骤,如:

  1. 交易系统
  2. 悬赏
  3. 扫码支付
  4. 收银台

二、流程里的问题

  1. 新建的系统:必须和各个系统对接以上所有流程(对接的系统多易出错,需多部门协作配合耗时长,端有多份冗余代码维护成本高,Server开发重复流程浪费人力)
  2. 新增/更改验证规则:所有系统都要更改一遍(维护成本高,需求迭代速度慢)

三、应运而生的系统

由于这些前置校验的流程相对独立,和各个业务系统的耦合度不高,所以单独抽象出一个系统来统一处理这些鉴权流程,有如下收益:

  1. App端这边代码就一份,修改成本低;
  2. 新增系统或修改鉴权流程只改一个系统;
  3. 各个系统更专注于各自系统的业务,不需要管鉴权的业务;

 

[借出]为例流程说明

第一阶段:

1. 用户点击【借给TA】,App先调用业务Server系统;

1.1. Server判断这个操作事件需要做鉴权就调用AUC系统获取鉴权列表项,(如:肖像认证);

1.2. AUC系统调用风控返,风控返回这个用户这个事件所需要的鉴权项列表,如:拒绝操作、上传资料审核、肖像认证、短信验证、无验证码、TouchID、免交易密码、登录密码,四要素鉴权(改成客户端)等;

1.3. 业务Server系统给端下发此次事件产生的orderID和从AUC系统得到的鉴权事件ID,下面以肖像认证为例;

第二阶段:

2. App直接和AUC系统进行交互,AUC再和后端的其他Service服务系统进行交互;

第三阶段:

3. 肖像认证成功后,App会调用业务系统(如:交易系统),把业务orderID传上去。

3.1. 业务系统携带orderID去AUC鉴权中心进行验证,如果鉴权中心返回认证/鉴权通过,则业务系统进行相关业务的后续操作,否则业务系统返回给端错误提示。

 

四、流程细节

  1. App/Server怎么知道哪些事件是需要走AUC鉴权中心?

    原则:为了风控后续的规则统一,和钱有关的都要走鉴权中心,和用户保密信息相关的都要走。

    建议:全业务流程走鉴权中心;App不需要知道哪些业务操作需要走,业务系统知道就好。

  2. 安全性

    Server每次调用AUC系统生成的aucID是不同的,避免被重复使用的情况。同时APP要把事件的内容特征传给AUC,AUC和业务Server验证的时候也要匹配事件内容特征(比如,借出多少钱,哪个时间范围内操作的,用户信息,设备udid等风控需要的)。

  3. App对多鉴权序列的状态维护

    某个事件需要启用多少鉴权项,可以在AUC通过Server进行下发,AUC提供某个鉴权事件的后续鉴权流程查询。

失败场景说明:

  1. 步骤(1.1和1.4),调用AUC系统失败的情况下,或AUC内容调用风控等系统错误的情况下,业务系统Server拒绝提供服务;
  2. 步骤(2.1和2.5),2.1步调用失败的情况下,端要做相关提示让用户重新提交操作;2.5步AUC系统返回操作失败(鉴权失败、系统内部异常),端要提示用户重新提交操作;
  3. 步骤(3.1),端提交网络失败的情况下要重试提交操作;重复提交的情况下,Server要返回友好提示:正常进行中的提示语;Server根据业务场景做成同步等待结果或者异步间隔几秒查询的方式亦可;

五、具体场景

  1. 短信验证
  2. 交易密码验证
  3. 指纹TouchID验证
  4. 肖像认证(走linkface肖像认证中心)
  5. 四要素验证(手机号码、银行卡、实名)
  6. 企业扫码鉴权
  7. 登录鉴权流程(短信验证码鉴权)

六、接口文档

  1. 短信验证
  2. 交易密码验证
  3. 指纹TouchID验证
  4. 肖像认证

七、系统切换

    新增接口,端和Server的鉴权流程走新接口完成;

    现有的系统(交易、支付、收银台、悬赏)旧版本的客户端保留现有接口;

    linkface原有的sync接口沿用,增加新的字段向前兼容;

    尽量保持原有的数据格式定义,减少开发工作量和文档编写工作量;

八、开发排期

  1. 接口文档(2015-12-18、19)
  2. 短信、交易密码、肖像认证、企业扫码、TouchID(开发:2015-12-21~26共5天,自测:26、27两天,联调待定:[关联系统:支付、交易、悬赏、收银台、企业版、风控]视各个系统改造时间);
  3. 四要素、电话号码修改(开发:2016-01-04~09开发自测共7天,联调待定);
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们要设计一个社交网络应用程序,用户需要先进行注册,然后登录才能使用该应用程序。为了方便用户,我们决定使用统一认证服务进行鉴权。 以下是该系统的样例: 1. 用户注册 用户在注册页面输入账号、密码、邮箱等信息,点击注册按钮。系统向统一认证服务发送注册请求,统一认证服务验证用户信息是否合法,若合法则将用户信息保存到数据库中,并返回注册成功信息给应用程序。 2. 用户登录 用户在登录页面输入账号、密码,点击登录按钮。系统向统一认证服务发送登录请求,统一认证服务验证用户信息是否正确,若正确则返回登录成功信息,同时生成一个令牌(token)并保存到数据库中,将该令牌返回给应用程序。应用程序将该令牌保存到用户的浏览器cookie中。 3. 访问受保护的页面 用户访问某个受保护的页面时,应用程序会先检查用户的浏览器cookie中是否有令牌。如果有,则向统一认证服务发送令牌验证请求,统一认证服务验证令牌是否有效,若有效则返回用户信息。应用程序根据用户信息判断用户是否有权限访问该页面,若有则返回页面内容给用户,若没有则返回错误信息。 4. 退出登录 用户点击退出登录按钮后,应用程序会清除用户浏览器cookie中保存的令牌。同时,应用程序向统一认证服务发送注销请求,统一认证服务将该令牌标记为无效。 以上就是一个简单的利用统一认证服务鉴权系统样例。该系统可以通过统一认证服务实现单点登录,用户只需要在注册或登录时输入一次账号密码即可在多个应用程序中使用。同时,该系统也可以保护受保护的资源,只有经过鉴权的用户才能访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值