微服务前后端认证和授权

一、认识认证、授权、鉴权和权限控制

认证、授权、鉴权和权限控制  全面的介绍认证、授权、鉴权和权限控制的概念

下面对本文讨论的四个概念用一个表格进行小结,

 定义英文实现方式
认证 确认声明者的身份 identification 根据声明者独特的识别信息
授权 获取用户的委派权限 authorization 颁发一个授信媒介,不可被篡改,不可伪造,受保护
鉴权 对所声明的权限真实性进行鉴别的过程权限是一个抽象的逻辑概念,定义和配置可执行的操作,而控制是具体的实现方式,通过一定的方式控制操作的允许和禁止 authentication 鉴权和授权是一一对应关系,解析授信媒介,确认其合法性、有效性
权限控制 权限是一个抽象的逻辑概念,定义和配置可执行的操作,而控制是具体的实现方式,通过一定的方式控制操作的允许和禁止 access/permission control 实现方式多样,根据具体情况来实现。

 

二、为什么需要权限管理

参考资料:为什么需要权限管理?

安全性:误操作,认为破坏,数据泄露等

数据隔离:不同的权限能看到及操作不同的数据

明确的职责:运营,客服等不同角色,leader和dev等不同级别。

权限管理核心:

用户-权限:人员少,功能固定,或者特别简单的系统

RBAC(Role-Based Access Control)

用户-角色-权限,都适用

 理想中的权限管理:

能实现角色级权限:RBAC

能实现功能级,数据级权限

简单,易操作,能够应对各种操作。

相关操作界面:

权限管理界面。角色管理界面,用户管理界面。

角色和权限关系维护界面,用户和角色关系维护界面

开源权限管理项目:

SpringSecurity  

Apache  shiiro

 

三、权限管理的方案

Shiro和Security对比

Shiro和Security的对比

  Shiro简单灵活

  Spring Security有更好的社区支持,功能比Shiro更加丰富

  Shiro依赖性低,不需要任何框架和容器,可以独立运行,而Spring Security依赖Spring容器

 

Shiro

Shiro简介;Shiro与Spring Security区别;Spring Boot集成Shiro

 

 

Security

参考资料:

Spring Security 详解   从原理到源码,较全面,有配套视频。

SpringBoot+SpringSecurity集成Swagger3与Knife4j  Swagger白名单配置

权限认证方案-第三方鉴权+token续期  比较了shirospring security oauth2。 介绍了token续期,细粒度鉴权和第三方鉴权。给对应第三方颁发appId、和appSecret,第三方通过拼接参数后利用指定加密算法进行加密访问

  

Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃

WebSecurityConfigurerAdapter过期处理

 

spring security简单的demo-适合萌新 pring security整合oauth2---oauth2  模板项目较全面,有源码

微服务授权 springsecurity+auth2基本入门

 

SpringSecurity的简单使用   简单介绍了基于权限和基于角色的鉴权

使用spring security 实现默认登录,源码解析

 

 

 

 

 

pigx微服务开发平台认证与授权系统研究

@Inner使用及原理   https://www.yuque.com/pig4cloud/pig/hz5ppn

1、权限设计

权限系统的设计一般分为:权限设计 = 功能权限 + 数据权限

那么对于pigx的功能权限:

我们把请求按来源分为:外部请求和内部请求,其中外部请求分为登录请求和非登录请求

按目标资源分为:无注解、@Inner注解(仅内部请求)、@PreAuthorize注解(带权限控制)

 

 

 

单点登录SSO(single sign on)模式(单点登录+权限认证)

JJWT是一个提供端到端的JWT创建和验证的Java库。永远免费和开源(Apache License,版本2.0),JJW很容易使用和理解。它被设计成一个以建筑为中心的流畅界面,隐藏了它的大部分复杂性。

OAuth2 主要可以解决什么问题? 

(1)开放系统间授权

  微服务下前后端分离的统一认证授权服务,基于Spring Security OAuth2 + Spring Cloud Gateway实现单点登录

 

 

Spring Security 基于 Spring 框架,提供了一套Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)用户授权(Authorization)两个部分。

 

单点登录

  单点登录原理

  单点登录系统原理与实现,图文并茂   http无状态协议,多系统为什么要用单点登录,演化

  单点登录实现的几种方式及原理【单点登录】

 

posted @ 2022-09-06 18:37  十二楼C  阅读(667)  评论(0编辑  收藏  举报