Spring Security:认证与授权

Spring Security:认证与授权

在这篇文章中,你将学到与Spring Security相关的五个关键概念和术语,这些是你真正需要了解的。当你学习Spring Security时,你会一次又一次地遇到这些核心术语和概念。因此,在这篇文章中,我们将解释这些术语,让你清楚地了解它们的含义。首先,前两个术语在安全领域中非常常见,你可能早已耳熟能详,它们就是认证(authentication)和授权(authorization)。为了理解认证和授权,你还需要理解这两者之间的区别。那么,让我们一起来解释这两个术语。认证是什么?授权又是什么呢?

我通常喜欢把Spring Security想象成应用程序前面的守卫和安全警卫,拦截每一个请求。这个安全警卫通常会问两个问题:你是谁?你想要什么?你的任务是回答这两个问题。如果你从你的Web应用程序中请求某些内容,你通过告诉警卫你是谁来回答第一个问题。但仅仅告诉警卫还不够,你还需要证明它。你的身份证明通常是通过提供某种你能提供而别人无法提供的证明来完成的。然后你通过说明你想要什么来回答第二个问题。你不需要为第二部分提供证明,因为在这里撒谎是毫无意义的。你只可能得到你所请求的东西。所以回答第一个问题,即你是谁,被称为认证。

大多数Web应用程序都有某种形式的身份证明。当你登录像抖音或游戏平台这样的网站时,这些站点通常会在它们的系统中拥有一个与你唯一对应的用户账户。所以当你访问该站点时,你需要告诉它,它的系统中的数百万个账户中的哪一个与你对应。当你告诉它与你对应的账户后,你还需要向应用程序证明它确实是你。这通常是通过提供你的用户名和密码来完成的。这是一种方式,告诉应用程序,“嘿,这是我创建账户时告诉你的秘密密码。这是同样的密码,我再次提供给你以证明这确实是我。”这种类型的认证称为基于知识的认证,认证是基于你拥有的知识。这可以是一个密码、一个PIN码或对个人问题的回答,或者你知道的其他秘密。基于知识的认证的最大优点是简单,并且在大多数情况下非常有效。然而,它也有一个缺点。如果有人盗取了你的密码并找出了你的密码,他们可以冒充你。定义你的只有一个字符串值的唯一性。然而,还有其他的身份验证机制,比如基于持有的认证。比如,当一个应用程序向你发送一条短信并要求你输入它时,试图确定你是否拥有真实用户应该拥有的某物,比如你的手机,因为手机比密码稍微难以出售。基于持有的认证的其他示例包括钥匙卡或用于刷卡进入建筑物的身份证。其想法是,只有真正的你才可能拥有卡片。因此,如果你的卡被用于刷卡进入建筑物,很可能是你试图进入那栋建筑的人。因此,认证基本上是回答“你是谁?”的问题,当然还需要证明你确实是你所说的人。

现在,我们来看看授权。这是安全警卫审查你想要的东西,然后决定你是否被允许这样做。换句话说,回答“这个用户能做他们正在尝试做的事吗?”是一个给定操作的肯定或否定的答案。用户可能能够做一个特定的操作,也可能做另一个操作。让我举个例子。考虑一个零售商店应用程序。在商店工作的每个人都可以登录应用程序并使用它。他们可以通过他们的用户ID和密码进行身份验证,但一旦他们经过身份验证,每个人在应用程序中能做的事情实际上取决于用户是谁。例如,一个店员可能可以访问销售点功能,检查某物是否有库存。一个部门经理可能能够查看特定部门的业绩,并查看部门库存。而店长可能可以查看整个商店,包括所有部门的情况。所以,每次有人在应用程序中做任何事情时,应用程序都会做这样一个二元的决定,以回答这个问题:“这个用户被允许做这个操作吗?”它还有机制阻止用户执行任何他们不被允许执行的操作。这种给定操作的肯定或否定的决定取决于用户是谁以及他们试图做什么,这种决定被称为授权。

所以,授权实际上是在你之前需要对其进行预先保护。对于授权来说,你首先需要对其他身份进行认证。你需要首先知道用户是谁,然后才能决定那个特定的用户是否能做某事。所以这就是认证和授权以及它们之间的基本关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入Docker in Docker:原理解析与实战演练

Docker in Docker(简称DinD)是一个在Docker容器内部运行另一个Docker守护进程和客户端的技术。这允许在一个容器中执行Docker命令,就像在宿主机上一样。这种技术在某些用例中非常有用,比如CI/CD管道、测试环境或者某些需要隔离的环…

linux网卡MAC地址

1、ifconfig命令查看网卡MAC地址 1.1 通过HWaddr或ether字段过滤mac地址 ifconfig | grep HWaddr ifconfig | grep ether [rootlocalhost ~]# /sbin/ifconfig | grep ether 注:有些Linux发行版本的MAC地址字段为HWaddr,有些Linux发行版本的MAC地址字段…

智能未来,触手可及,畅享移动云

目录 一、简介 二、移动云强大优势 1. 强大的网络基础设施 2. 可靠服务 3. 丰富产品线 4. 技术应用 5. 优惠价格策略 三、多商对比 网络优势 四、移动云的未来发展 五、实战应用 5.1 服务器选购 ​编辑5.2 服务器启动 5.3 实例操作 六、移动云的服务优势 6.1 客…

postman教程-5-发送put请求

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了postman发送post请求的方法,本小节我们讲解一下postman发送put请求的方法。 HTTP PUT 请求是一种用于传输数据的网络协议方法,它在客户端和服务器之间的通信中扮演着重…

数据中心、HPC、AI等应用场景互联协议混战哪家强?

生成式人工智能快速发展对算力与存力呈指数需求增长,进一步加剧了算力与存力之间既有矛盾,时代在呼唤更大的运力(即计算与存储之间的数据传输)--AIGC时代需要更大带宽,更为快速的数据传输路径。 众所周知,P…

香橙派AIpro初体验,详解如何安装Home Assistant Supervised

香橙派AIpro(OrangePi AIpro)开发版,定位是一块AI开发板,搭载的是华为昇腾310(Ascend310)处理器。 没想到,这几年的发展,AI开发板也逐渐铺开,记得之前看到华为发布昇腾3…

javascript 防抖 节流

在前端开发中,性能优化是提升用户体验的关键环节。防抖(Debounce)和节流(Throttle)作为两种常见的优化技术,能够有效管理和控制频繁触发的事件,减少不必要的计算和资源消耗。无论是在处理用户输…

基于香橙派 Ai Pro的ROS Qt人机交互软件部署指南

一,前言 最近收到了CSDN的邀请,对香橙派新出的Ai Pro进行测评: 说来也巧,其实香橙派本人对其映像挺深刻的,在2017年左右,本人刚上大学,当时是在淘宝购买树莓派,发现有个叫香橙派的国产板子,性能跟树莓派差不多吧,但是…

数据仓库和数据挖掘基础

文章目录 1. 数据仓库基础知识1.1 数据仓库的基本特性1.2 数据仓库的数据模式1.3 数据仓库的体系结构 2. 数据挖掘基础知识2.1 数据挖掘的分类2.2 数据挖掘技术2.3 数据挖掘的应用过程 传统数据库在联机事务处理(OLTP)中获得了较大的成功,但是对管理人员的决策分析要…

json和jsonl文件格式个人记录

.jsonl 文件 {"name": "Alice", "age": 30} {"name": "Bob", "age": 25}每行是一个独立的有效 JSON 对象。每行之间没有逗号或其他分隔符。适合存储每行为独立记录的数据,如日志、传感器数据、日志行…

告别低效率||智能BI财务分析软件

在当今信息爆炸的时代,财务数据作为企业运营的核心,其处理和分析的效率直接关系到企业的决策速度和市场竞争力。奥威BI软件凭借其卓越的性能和智能化的分析功能,为企业提供了一套高效、准确的财务分析解决方案。 奥威BI软件在财务分析中的优…

流程引擎之compileflow idea 2024.*插件支持

之前有使用过多种类型工作流,但最近研究工作流引擎对比各有优劣,compileflow内存支持性能不错,但在idea新版本使用的时候发现插件不支持,干脆自己修改源码手撸一个(当前版本2024.1验证可用,如果有其他版本不…

5G工业三防平板电脑M195T:高性价比安卓加固手持终端

在工业领域,设备的坚固性和高效性能至关重要。亿道公司推出的全新5G工业三防平板电脑M195T,以其卓越的硬件配置和坚固耐用的设计,成为工业应用的理想选择。M195T不仅搭载了强大的ARM八核架构处理器和Android 11系统,还集成了多种先…

【C语言】文件操作(超级详细)

如果没有文件,我们写的程序的数据都存储在内存中,当程序退出,内存回收,数据就丢失了,下次再运行程序,已经看不到上次运行的数据了,而为了将数据持久性的保存,就需要使用文件。 一、…

电商新力量,四川易点慧电子商务有限公司

在数字化浪潮席卷全球的今天,电子商务行业正以前所未有的速度蓬勃发展。作为这一领域的佼佼者,四川易点慧电子商务有限公司凭借其独特的创新理念和前瞻性的战略布局,成功引领智慧零售新潮流,为行业发展注入了新的活力。 四川易点慧…

通付盾Web3专题 | SharkTeam:Web3常见钓鱼方式分析与安全防范建议

引言 Web3钓鱼是一种针对Web3用户的常见攻击手段,通过各种方式窃取用户的授权、签名,或诱导用户进行误操作,目的是盗窃用户钱包中的加密资产。 近年来,Web3钓鱼事件不断出现,且发展出钓鱼即服务的黑色产业链&#xf…

探索Python函数参数的奥秘

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、揭开函数参数的神秘面纱 1. 位置参数:按序传值的基石 2. 关键字参数&#…

AIGC绘画教学:副业不再是苦差事,AI短视频让你轻松月入过万

随着科技的飞速发展, AI已融入我们生活的每个角落, 在短视频领域, AI技术的应用更是如虎添翼, 为创作者打开了无限创意的大门。 在人人都是创作者的时代,一条短视频可能就会让你爆火!但要持续的产出高质量内容,或许…

unity知识点 专项二 DoTween动画

一、 动画序列(Sequence) 1.1 动画序列相关api 解释 sequence.Append(Tween tween) // 添加一个动画到序列末尾。 sequence.AppendCallback(TweenCallback callback) // 添加回调函数到序列末尾。 sequence.AppendInterval(float interval) // 添加一段…

Revit的特性 - 族类型和族实例、联动更新

Revit 模型的表示方式 Revit 是 Autodesk 推出的一款建筑建模软件,主要应用于建筑信息模型(Building Information Modeling,简称BIM)领域。Revit发布至今已经超过20年,他的核心理念是以族的概念来表达建筑模型。 在Re…