认证授权
文章平均质量分 83
个人认为这部分包括:认证、授权、权限模型三部分
it_lihongmin
不要觉得自己怎么样,现实就是比你厉害的人,比你更努力!
当才华撑不起自己野心的时候,老老实实地踏实学习吧!
展开
-
OAuth2.0协议(六)、Oauth2.0不按规范可能会触发的安全问题
首先还是想说需要按照项目环境和需求情况判断是否要使用OAuth2.0规范,如果基于自研认证授权系统,自己定义接口和规范。虽然OAuth2.0规范已经很完整、安全性也有保障。但是整个规范有些是必要的,有些是非必须的规范(比如 state字段的传递),那么很可能面临被攻击的风险。安全攻击和防御就是成本的问题,如果项目本身岌岌无名那么可能都没有人专门写东西进行攻击,没有价值。但是如果项目快速发展到阿里、京东的体量,那么就需要严格按照规范进行重构,下面列举了一些不按照规范进行开发可能会遇到的风险问题。根据现有架原创 2022-01-14 16:07:51 · 2729 阅读 · 0 评论 -
OAuth2.0协议(四)、基于OAuth2.0的OIDC认证协议
OIDC(OpenID Connect)协议建立在OAuth2.0协议的基础上,这里需要分清OAuth2.0是一个授权协议,而OIDC是一个认证协议,特别容易搞混。只是OAuth授权框架中包含了部分需要调用认证的信息,而IODC协议利用了OAuth2.0的认证流程(或者利用了去管道、通道)并增加了输出了id_token和OpenId(认证结果和标识)。可以理解:IODC【OpenID Connect】 = OAuth2.0【授权协议】+ 身份认证;IODC定义了三个角色:EU(End...原创 2022-01-12 22:53:07 · 2015 阅读 · 1 评论 -
OAuth2.0协议(三) - cookie、session、token和jwt
要说清token和jwt之前一定会谈起cookie和session,因为Http协议本身是一个无状态协议,每次请求都是单独的。但是当web等项目开发环境中,当前请求可能需要与其他http请求的上下文进行关联,才能完成业务逻辑,所以cookie和session就诞生了。原创 2022-01-12 16:46:26 · 2836 阅读 · 0 评论 -
OAuth2.0协议(五)、可落地的微服务混合jwt和token模式
原则上token只要满足唯一性、不连续性、不可猜性就可以,但是针对于内网和外网需求场景在安全性和扩展性上要求是不同的。原创 2022-01-14 13:33:54 · 1563 阅读 · 0 评论 -
OAuth2.0协议(二) - 密码类型、隐式许可类型、客户端类型、PKCE
前提是在理解的OAuth2.0授权码许可流程(最完整的授权流程)后,再来理解其他的授权许可类型和每种类型的使用场景。资源拥有者凭据许可类型 资源拥有者凭据许可类型虽然名字比较拗口,但确是我们最熟悉的使用 用户名密码直接换取token的流程。与授权码许可流程相比,这里减少了获取授权码的流程和两次重定向的过程,之前我们也分析过增加授权码流程就是为了增加安全性和用户体验,但前提是三方服务本身并不被信任。 但是如果都是本公司不同团队(甚至是同一团队)开发的三方服务,比如电商系统与配送系统(京东到...原创 2022-01-07 13:54:12 · 958 阅读 · 0 评论 -
OAuth2.0协议(一) - 授权码许可流程
OAuth2.0是什么可以拿来做什么,它只认真的做了一件事授权(Authorization)。OAuth2.0是 Open Authorization 2.0的简称,既然是2.0那前面肯定有个1.0。 Oauth1.0想要使用一套授权机制解决所有的授权应用场景,很显然废弃了,所以OAuth2.0协议针对不同的应用场景规定了四种获取令牌的授权认证流程。不过我还是建议先理解流程最完善的授权码许可流程,在此基础上再理解其他三种授权流程和其适用场景。四个角色:资源拥有者 客户端(或三方平台) 授权服务原创 2022-01-06 23:33:11 · 3758 阅读 · 0 评论 -
shiro学习_Subject的使用
Shiro为我们暴露的认证授权组件Subject,为我们提供了当前用户、角色和授权的相关信息,并且允许我们在实际项目中通过以下三种方式进行调用(当然最终的认证授权部分的还是Subject通过SecurityManager调用具体实现的realm进行判定):1、编程式授权(当然在实际的生产环境中很少使用)1) 直接通过角色的访问控制(即调用数据库查看当前subject对应的用户是否具有某原创 2017-07-15 16:03:27 · 5555 阅读 · 1 评论 -
jeesite的shiro流程
由于项目内部cms的快速开发需要,选型使用jeesite进行实现,于是也好好的对shiro的流程进行了学习,其中由于用户在登录之前就需要选择产品分类,登录后也需要能进行切换。考虑过使用自定义的filter将该值进行注入到httpsession中,但是发现当用户登录成功却还了一个session(logger.info了sessionId发现不是同一个东西),于是使用过下面的方式直接将其与当前登录用户原创 2017-08-06 15:21:26 · 2148 阅读 · 0 评论 -
shiro学习_总结
Shiro的流程大致如下(图画的不是很好,能表达清楚意思就可以了): 说明:shiro只会使用对用户、角色和权限进行管理,并注入到Subject中方便用户进行使用编程、注解或标签的形式对角色或权限控制不同用户拥有不同的权限。其底层需要自己去实现,包括表结构设计等,然后用重写方法的形式将关系注入到shiro中。说明shiro只能对一般的授权模型进行控制一般表结构设原创 2017-07-12 18:22:30 · 345 阅读 · 0 评论 -
shiro学习_demo
现在使用shiro作为权限认证已经越来越多,并且最近打算使用jeesite进行一个公司内部cms系统的系统的开发,结果发现很多坑,其框架就是使用shiro作为认证授权框架。所以打算对shiro进行学习。 从官网直接说明,shiro的核心和功能点分别是:认证、授权、会话管理、加密;web支持、缓存、并发、测试、记住我(jeesite也使用了该功能),其介绍如下:原创 2017-07-10 22:43:16 · 213 阅读 · 0 评论