作者:禅与计算机程序设计艺术
1.简介
安全认证(Authentication)与权限控制(Authorization)在应用程序开发中扮演着至关重要的角色,它们都涉及到用户信息验证、鉴权与授权,是保障应用程序系统正常运行的关键环节。对于一个Web应用系统来说,安全认证往往起到决定用户是否能够访问某项资源或执行某个功能的作用;而权限控制则主要负责对用户进行有效地控制,防止不合法或无效的操作。通过了解并掌握这些机制,开发者可以更好的管理用户访问,提高系统的安全性。
在本专栏中,我们将介绍Java中基于角色的安全认证(RBAC)和基于属性的安全认证(ABAC)两种安全认证方式,以及如何实现基于粒度的访问控制模型(粒度包括角色,资源和动作),以及如何实现基于WEB请求上下文的安全上下文模型。同时,还会介绍Java平台提供的标准安全API,以及如何利用它们实现安全认证与权限控制功能。
作者:李剑飞 时间:2019-12-10
2.基本概念术语说明
2.1 RBAC (Role Based Access Control)
RBAC是一种基于角色的访问控制模型,其核心思想是通过将用户划分成不同的角色,并赋予每个角色合适的权限,来控制用户对各自资源的访问权限。角色可以理解为权限的集合,权限就是允许或者禁止特定操作的能力。比如,“经理”角色可以执行销售工作,“运维工程师”角色可以维护服务器,“销售人员”角色只能查看销售数据。这样,不同角色之间的权限隔离可以有效地保护系统中的数据。
RBAC模型的组成如下图所示: