API网关设计(一)之Token多平台身份认证方案(转载)

时间:2019-04-16 15:08:43   收藏:0   阅读:220

原文:https://segmentfault.com/a/1190000018535570?utm_source=tag-newest

概述

今天咱们面对移动互联网的发展,系统一般是多个客户端对应一个服务端。
客户端统一通过F5或者Nginx代理转发到API网关,最后发送到服务API。
如下图架构图所示
技术分享图片
这个过程当中就存在多个很明显需要做的事,如下列表

而咱们今天主要讲的了就是身份认证这一块具体怎么设计Token,在前一篇文章中已经描述过整体的登陆逻辑,不清楚的同学可以看一下。

Token设计

如今的系统不可能存在一个token走到底打通所有系统,为啥这么说?
由于不同的客户端,会存在不同的认证场景。
咱们具体看一下分析过程

认证场景

客户端以下几点用户认证的场景

而通过客户端的认证场景,咱们又能具体推理出功能级别的具体场景如下

Token设计要点

通过上面的认证场景才能不难得出如下结论

级别划分 1~3 分别为低中高

Token名称级别使用频率有效期保密级别变化成本
webtoken web端token 3(持久化) 1 >=1天 3 3
mobiletoken mobile端token 3(持久化) 1 >=1天 3 3
sessiontoken 会话token 2(会话级) 3 分钟级别 3 1
accesstoken API认证token 1(短暂认证) 3 秒级 2 1

再具体看一张token层级架构图
技术分享图片
为啥要将token分这么多类型了?
咱们先根据上图捋一下思路具体如下几步

层级token优势

通过上面咱们可以看出来最终调用api是通过accesstoken,那么咱们为什么还需要设计
多层token了?主要有以下几个原因

综合上面可以总结出来的优势有如下几点

token安全控制

首先咱们得明白一个道理对于任何登陆系统来说根本就不存在百分百的安全,唯一可以做到的就是提高破解成本。具体的安全控制方法我的总结如下

完整架构图

技术分享图片

原文:https://www.cnblogs.com/huangzelin/p/10717002.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!