某安某大型国企项目Oauth2实践(一)


前言

Oauth2相关介绍
Spring Security相关简介
某安某大型国企项目基于Oath2的实践


前言

前不久在研究其他源码时,偶然看到spring官网的一则更新。             https://spring.io/projects/spring-security-oauth


某安某大型国企项目Oauth2实践(一)

spring security 实现 OAuth 的框架分为 spring security OAuth 项目和 spring security 5.2.x 自带的 OAuth 功能,目前 spring security OAuth 已作废,官方推荐使用 spring security 5.2.x 自带的 OAuth,也就是spring-authorization-server。
当时确实惊吓住我了,因为之前一直想写一篇某安公司某大型项目基于Oauth2的登录认证方案,积累了很多人的心血。惊吓之余,也不禁感叹技术的更新之快。让我对新的项目spring-authorization-server充满了好奇,正好看到目前开源项目PIG,就是基于新的认证方案来的。

某安某大型国企项目Oauth2实践(一)

功能很是齐全,大家可以研究研究,和开源项目若依不相上下。

仔细研读了一下代码,发现新的spring-authorization-server很是友好,比以前sping-security-oauth2更容易上手。认证路线也清晰了很多。
当然老的技术也有值得借鉴的地方,在介绍新的技术之前,还是先回顾一下某安公司某大型项目的登录鉴权方案。以此致敬亦师亦友的大佬(现在我们两又在一家外资银行成了同事),以及几年前奋战在一线的平台组同事。


1.Oauth2相关介绍

1.1 Oauth2四种角色

某安某大型国企项目Oauth2实践(一)

1.2 许可类型

某安某大型国企项目Oauth2实践(一)

1.3 使用场景

某安某大型国企项目Oauth2实践(一)

1.4 和https的区别

     https 和oauth2是两个维度的安全,https 解决的是信息的加密传输,oauth2解决的是用access_token来代替用户名和密码的传输。


2.SpringSecurity相关简介


这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权

2.1核心类

2.1.1 Authentication

Authentication 是一个接口,用来表示用户认证信息的,Spring Security方式的认证主体,保护用户信息和权限等

2.1.2 SecurityContext

持有Authentication对象和其他可能需要的信息SecurityContextHolder 提供对SecurityContext的访问

2.1.3 AuthenticationManager

一个用来处理认证(Authentication)请求的接口其中可以包含多个AuthenticationProvider

2.1.4 ProviderManager

AuthenticationManager 的默认实现,主要用来进行认证操作的类 调用其中的authenticate()方法去进行认证操作,但它不直接自己处理认证请求,而是委托给其所配置的 AuthenticationProvider 列表一一认证

2.1.5 AuthenticationProvider

每一种token至少都会有一个provider认证

2.1.6 UserDetail

构建Authentication对象必须的信息,可以自定义,可能需要访问DB得到

2.1.6 UserDetailService

通过username构建UserDetails对象,通过loadUserByUsername根据userName获取UserDetail对象。

2.1.7 passwordEncoder

密码加密器

2.1.8 GrantedAuthority

对认证主题的应用层面的授权,含当前用户的权限信息,通常使用角色表示。

2.1.9 UserDetail和Authorition的区别

UserDetail:从数据库中查出来的用户基本数据。

Authorition:经过spring security认证之后得到的包含权限等数据的认证实体

如你所见,整个springSecurity+Oauth2认证体系还是比较复杂的,这也是为什么spring 要把oauth2 认证服务单独拆开,重新设计的原因。不过大体思想还是一致的。

3.某安某大型国企项目基于Oath2的实践

先来张简易的架构图,图画的不好,毕竟不是做架构师的料

某安某大型国企项目Oauth2实践(一)


第一篇就先到这吧,正好有点事要出去一趟。根据前面的反馈,一篇写太长了,影响观看,各位客官如果想继续看后面的,请保持关注。


某安某大型国企项目Oauth2实践(一)



某安某大型国企项目Oauth2实践(一)
关注我的你,是最香哒!


原文始发于微信公众号(小李的源码图):某安某大型国企项目Oauth2实践(一)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/145335.html

(0)

相关推荐

发表回复

登录后才能评论
半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!