认证授权概述

发布于 2024-07-18
873

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读

认证授权概述

本文介绍了认证与授权的概念,并详细说明了相关的权限数据模型、RBAC权限模型,以及常见的认证方式。

1. 什么是认证

认证是确认用户的身份合法性,使其能够访问系统资源的过程。常见认证方式包括账号密码登录、手机验证码登录、指纹登录等。

2. 什么是授权

授权是在用户通过认证后,根据其权限控制其访问资源的过程。授权的核心是“谁(Who)对什么资源(What)进行怎么样(How)的操作”。

3. 权限数据模型

权限数据模型包含主体(用户)、资源(如商品信息、页面按钮)、权限(对资源的操作许可)。通过主体、资源和权限的关系图及表结构,进一步优化权限与资源的关联。

4. RBAC权限模型

4.1 基于角色的访问控制

RBAC模型通过角色进行授权。例如,总经理可以查询工资信息。角色权限变更时需要修改代码,扩展性较差。

4.2 基于资源的访问控制

RBAC模型通过资源标识进行授权。例如,定义“查询工资”权限标识,不论角色如何变化无需修改授权代码,系统扩展性更强。

5. 常见认证方式

5.1 Cookie-Session

通过Session记录用户登录状态并存储在Cookie中,用于浏览器场景。缺点包括跨域问题、CSRF风险,以及后端内存资源浪费。

5.2 JWT令牌无状态认证

JSON Web Token通过算法生成令牌,客户端存储令牌并在请求时附加到Header中。优点包括无状态认证、传输效率高、支持存储非敏感业务信息。

6. 常见技术实现

  • Apache Shiro: Apache旗下的安全框架。
  • SpringSecurity: Spring体系中的安全框架,包含认证和授权功能。
  • CAS: 支持单点登录(SSO)的服务。
  • 自行实现: 使用代码基于过滤器或拦截器实现认证授权,开发成本高。

本文对认证授权进行了全面的概述,同时介绍了相关技术实现。如果您觉得有帮助,欢迎分享和关注!

springboot葵花宝典

主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目

275 篇文章
浏览 278.1K

还在用多套工具管项目?

一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线