单点登录
多系统,单一位置登录,实现多系统同时登陆的一种技术
常出现在互联网应用和企业级平台中
Session跨域
所谓Session跨域就是摒弃了系统提供的Session,而是用自定义的类似Session的机制来保存客户端数据的一种解决方案。
如:通过设置cookie的domian来实现cookie的跨域传递。在cookie中传递一个自定义的session_id。这个session_id是客户端的唯一标记。将这个标记作为key,将客户端需要报仇呢的数据作为value,在服务器端进行保存(数据库保存或NOSQL保存)。这种机制就是Session的跨域解决
传统登录认证中出现的问题:
Session:每次认证用户发起请求时,服务器需要去创造一个记录来存储信息。当越来越多的用户发请求时,内存开销也会不断增加。
可扩展性:在服务器端的内存中使用Session存储登录信息,伴随而来的就是可扩展性问题
CORS(跨域资源共享):当我们需要让数据跨多台移动设备上使用时,跨域资源共享会是一个让人头疼的问题。在使用Ajax抓取另一个域的资源,就可以会出现禁止请求的情况。
CSRF(跨站求情伪造):用户在访问银行网站时,他们很容易受到跨站请求伪造的攻击,并且能够被利用访问其他网站。
JWT数据结构
JWT的数据结构是:A.B.C。由字符'.'来分割三部分数据
A-header头信息
数据结构:{"alg":"加密算法名称","typ":"JWT"}
alg是加密算法定义内容,如HMAC SHA256 或RSA
typ是token类型,这里固定为JWT
B-payload(有效荷载,用户信息)
在payload数据块中一般用于记录实体(通常为用户信息) 或其他数据的。主要分为三个部分,分别是:已注册信息,公开数据,私有数据
payload中常用信息有:iss(发行者),exp(到期时间),sub(主题),aud(受众)等。前面列举的都是已注册信息
公开数据、私有数据可以随意定义
C-签名
Restful:
在HTTP协议的基础上,get获取数据,post添加数据,put修改数据,delete删除数据的一种风格架构
响应状态码:
安全机制设计
1.单向加密
2.双向加密 对称加密(只有一个密钥,就是公钥)、非对称加密(有两个密钥公钥和私钥)