1.请求安全-- 一个简单的 单设备登录 单点登录

##一个简单的 SSO 单点登录 单设备登录 解决方案 SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

实现SSO的技术主要有: (1)基于cookies实现; (2) Broker-based(基于经纪人),例如Kerberos等; (3) Agent-based(基于代理人)在这种解决方案中例如SSH等; (4) Token-based,例如SecurID,WebID,现在被广泛使用的口令认证; (5) 基于网关Agent and Broker-based; (6) 基于安全断言标记语言(SAML)实现; ####但是本文今天不会用到以上方法,但是我们使用方法类似于Token; 写本次文章的起初是为了解决链接捕获访问服务器的问题,但是单凭单点登录和单设备登录是解决不了这个问题的,要配合上(加密,MD5校验,请求唯一性验证,单点登录,单设备登录)来组成一个比较完善的安全验证机制.(后面文章会一一说道) 下面开始说正题,对于API来说一般需要单点登录的系统都需要进行登录的操作,那登录操作我们会做下面几件事情.

1.获取用户名密码进行登录验证用户是否有效作判断. 2.拿着返回的ID给前端让他可以进行进一步操作.

当然可以直接用ID 直接实现单点登录 但是无法实现单设备登录而且直接暴露安全性担忧

基本登录接口做的操作就是以上两种,那么关键点来了,我在思考分析的时候在想如果每次调用登录获取的ID都是一个临时ID. 当下次登录的时候失效是不是就可以达到单设备登录的效果了,这个临时ID对应着真正的用户ID每次客户端请求都是拿着临时ID请求过来然后我们做验证,不就行了嘛.而且这个临时ID是后端共享的只有一个登录接口或获取临时ID其他所有模块都能使用来达到单点登录. 这样就解决了单设备登录和单点登录的问题.

###当然如何实现是最后一个问题 既然是临时ID而且每个接口都会去读取验证,那当然不能用数据库,最好我选择了用NOsql中的Redis来作为临时ID的临时存储

###登录接口需要做的事情如下: 1.第一步从Redis中用Id取临时ID 检测有没有 2.生成Cipher(临时密码也就是临时ID) 3.根据第一步检测做不同的处理 如果存在删除原有的 Cipher关联ID 的key-value 4.创建两个key-value 一个是id对应Cipher 一个是Cipher对于Id

###验证验证需要做的事情 1.通过客户端请求的Cipher获取Redis的value值 2.value如果不存在返回错误 登录已经失效 3.value存在返回value作为ID 进行操作

通过以上方法就解决的 标题所述的 单点登录 单设备登录的问题 :fa-glass:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python

linux目录结构详细介绍

3043
来自专栏哈雷彗星撞地球

Mac 下安装node.js

Node.js 是一个用Chrome's V8 JavaScript engine 构建的 JavaScript 运行时框架。Node.js 使用事件驱动、非阻...

2125
来自专栏ChaMd5安全团队

文件上传漏洞的一些总结

0x00 前言 在跟p猫的py交易后,写下了这篇文章,根据之前写文章后表哥给予的一些改进建议,尽量在这篇文章中写得更加详细。因为本人技术水平有限菜的要死,所以...

8676
来自专栏实用工具入门教程

如何部署 ftp 文件服务

文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协...

7403
来自专栏耕耘实录

DNS主从服务器中域(zone)文件类型不一致问题的解决方法

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

1244
来自专栏ThoughtWorks

从URL开始,定位世界 | 洞见

从我们输入URL并按下回车键到看到网页结果之间发生了什么?换句话说,一张网页,要经历怎样的过程,才能抵达用户面前?下面来从一些细节上面尝试一下探寻里面的秘密。 ...

3905
来自专栏Seebug漏洞平台

S2-045 原理初步分析(CVE-2017-5638)

0x00 漏洞公告 请看https://cwiki.apache.org/confluence/display/WW/S2-045 这个漏洞应该后续会有官方详细...

3885
来自专栏FreeBuf

HUNT:一款可提升漏洞扫描能力的BurpSuite漏洞扫描插件

今天给大家介绍的是一款BurpSuite插件,这款插件名叫HUNT。它不仅可以识别指定漏洞类型的常见攻击参数,而且还可以在BurpSuite中组织测试方法。 ?...

4089
来自专栏散尽浮华

GlusterFS分布式存储数据的恢复机制(AFR)的说明

GlusterFSFS恢复数据都是基于副本卷来说的,GlusterFSFS复制卷是采用镜像的方式做的,并且是同步事务性操作。简单来说就是,某一个客户要写文件时,...

5715
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第二十七天 SVN使用【悟空教程】

为保障团队开发过程中人员沟通各方面成本的降低,必须使用一种有效的方式减少沟通环节,提高开发效率,对资源的共享进行管理。

1811

扫码关注云+社区

领取腾讯云代金券