OAuth2、shiro、spring Security、jwt ?
Oauth2是一种安全授权框架,提供一套详细的授权机制,通过公开的或私有的设置,授权第三方应用访问特定资源
Shiro是一个强大且易用的Java安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密
Security 主要实现了Authentication(认证) 和 Access Control(访问控制,也称为Authorization),在架构上认证与授权分离,并提供了扩展点,是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持
Jwt是目前流行的跨域认证解决方案
单点登录解决方案?
Cas(单点登录):多个系统登录一次,无需重复登录,独立的授权服务器,被授权客户端的架构
Oauth2:第三方登录授权,第三方系统访问主系统资源,只需通过主系统的授权,第三方就可以使用
JWT:客户端Token,适用于分布式站点的单点登录,需要基于jwt认证协议自己编写单点登录服务
权限的基本模型?
DAC:自主访问控制模型,系统会识别,然后根据被操作对象的权限控制列表(ACL: Access Control List)或者权限控制矩阵(ACL: AccessControl Matrix)的信息来决定用户是否能对其进行哪些操作
MAC:强制访问控制模型,每一个对象都有一些权限标识,每个用户同样也会有一些权限标识,而用户能否对该对象进行操作取决于双方权限标识的关系,这个关系的判断通常是由系统硬性限制的,所以灵活度差
RBAC:基于角色的访问控制模型,给用户定义角色,通过角色来控制权限,应用较广,特别是在saas领域
ABAC:基于属性的访问控制模型,是通过动态计算一个或一组属性是否满足某种条件来进行授权判断,属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性(又称资源属性),所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求