应用层安全架构设计-访问控制

本文涉及的产品
访问控制,不限时长
简介: 权限控制,或者说访问控制,广泛应用于各个系统中。抽象地说,是某个主体(subject)对某个客体(object)需要实施某种操作(operation),而系统对这种操作的限制就是权限控制。

权限控制,或者说访问控制,广泛应用于各个系统中。抽象地说,是某个主体(subject)对某个客体(object)需要实施某种操作(operation),而系统对这种操作的限制就是权限控制。


在网络中,为了保护网络资源的安全,一般是通过路由设备或者防火墙建立基于IP和端口的访问控制。


在操作系统中,对文件的访问也要访问控制。比如在Linux系统中,一个文件可以执行的操作分为“读”、“写”、“执行”三种,这三种操作同时对应着三种主体:文件拥有者、文件拥有者所在的用户组、其他用户,主体、客体、操作这个三者之间的对应关系,构成了访问控制列表。


在Web应用中,根据访问客体的不同,常见的访问控制可以通过解决以下几个目标问题来实现:


  • 他是谁?


  • 他只能访问给他授予了权限的接口!


  • 他不能查看别人的数据!


下面我们以前后端分离的项目为例,解释如何解决这几个目标问题:


他是谁?


在前后端分离项目中,前端用户登录后后端服务会给其颁发一个token,比如我们所熟知的JWT(JSON Web Token),而后每次前端请求后端接口都会带上这个token。由于JWT上会带有用户信息,此时我们要做的就是校验这个token对应的用户是否为系统合法用户。


1.png


他只能访问给他授予了权限的接口!


光知道他是系统的合法用户还是不够,web应用还得保证当前用户只能访问他拥有权限的接口。


比如有个薪资查询的接口,业务上只允许部门领导角色访问。如果系统不做控制,张三知道了薪资查询接口,就拿着自己的token去调用此接口然后就能知道所有员工的薪资了,这种问题我们称之为"越权访问"。


处理这个问题现在应用广泛的一种方法就是“基于角色的访问控制(RBAC:Role-Based Access Control)”,也称“垂直权限管理”。


RBAC事先会在系统中定义出不同的角色,不同的角色拥有不同的权限,一个角色实际上就是一个权限的集合。而系统的所有用户都会被分配到不同的角色中,一个用户可能拥有多个角色。


当用户带着token请求后端服务时,我们还得通过token查询出当前用户所属的角色,然后根据角色查询出用户拥有的所有权限。权限框架 Spring Security 和  Shiro都很好的支持RBAC控制。


2.png


他不能查看别人的数据!


张三和李四都是部门领导,他们都可以查询员工薪资的权限。但是他们都只被允许查看自己部门员工的薪资。张三知道了接口调用规则,就可以通过修改调用参数获取李四部门员工的薪资了,这种情况当然也是不被允许的。


在RBAC模型下,系统只会验证用户A是否属于角色RoleX,而不会判断用户A是否能访问只属于用户B的数据DataB,因此发生了越权访问。这种问题我们称之为“水平权限管理问题”。


现在数据级权限管理并没有很通用的解决方案,一般是具体问题具体解决。

简单的做法是给接口请求加上秘钥,通过接口参数+当前系统登录人一起进行加密发送给后端服务,后端接受到请求后对加密内容进行解密,根据约定的规则解析出用户信息并与登录用户进行匹配,匹配上正常访问,匹配不上则拒绝访问。


3.png


以上,希望对你有所帮助!


End

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
6月前
|
监控 安全 生物认证
网络安全中的身份认证与访问控制技术详解
【6月更文挑战第30天】网络安全聚焦身份认证与访问控制,确保合法用户身份并限制资源访问。身份认证涉及生物和非生物特征,如密码、指纹。访问控制通过DAC、MAC、RBAC策略管理权限。最佳实践包括多因素认证、定期更新凭证、最小权限、职责分离和审计监控。这些措施旨在增强系统安全,防范未授权访问。
|
4月前
|
安全 网络安全 定位技术
信息安全:访问控制技术原理与应用.
信息安全:访问控制技术原理与应用.
262 4
|
5月前
|
监控 安全 网络安全
网络安全中的网络隔离与访问控制技术
【7月更文挑战第5天】网络隔离与访问控制技术是网络安全领域的重要组成部分。通过合理的网络隔离和严格的访问控制策略,可以有效保护网络资产免受未经授权的访问和攻击。随着技术的不断发展,我们需要不断探索和创新,以应对日益复杂的网络安全威胁。
|
6月前
|
监控 安全 网络安全
探索零信任安全架构:一种现代网络安全策略
零信任安全架构是一种旨在应对现代复杂网络威胁的新型网络安全策略。它的核心理念是“永不信任,始终验证”,即无论内部还是外部的访问请求都需要经过严格的身份验证和授权。在本文中,我们将深入探讨零信任安全架构的基本概念、主要组件及其在实际应用中的优势和挑战。
240 0
|
7月前
|
安全 网络安全 API
构建高效微服务架构的五大关键策略网络安全与信息安全:防范网络威胁的关键策略
【5月更文挑战第31天】 在现代软件开发领域,微服务架构已经成为实现灵活、可扩展及容错系统的重要解决方案。本文将深入探讨构建高效微服务架构的五个核心策略:服务划分原则、API网关设计、服务发现与注册、熔断机制以及持续集成与部署。这些策略不仅有助于开发团队提升系统的可维护性和可伸缩性,同时也确保了高可用性和服务质量。通过实践案例和性能分析,我们将展示如何有效应用这些策略以提高微服务的性能和稳定性。
|
安全 网络协议 网络安全
网络安全体系之分层防护
作为全方位的、整体的网络安全防范体系也是分层次的,不同层次反映了不同的安全问题,根据网络的应用现状情况和网络的结构,将安全防范体系的层次划分为物理层安全、系统层安全、网络层安全、应用层安全和安全管理。
348 0
|
SQL 数据采集 监控
系统层和应用层安全防护
系统层和应用层安全防护
1329 0
|
JSON 安全 前端开发
应用层安全架构设计-访问控制
应用层安全架构设计-访问控制
133 0
|
XML SQL 安全
网络安全——应用层安全协议
网络安全——应用层安全协议
325 0

热门文章

最新文章