Spring Security:认证与授权

Spring Security:认证与授权

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

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

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

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

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

  • 32
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值