身份验证与授权

daG*_*vis 589 security authentication authorization

Web应用程序的上下文有什么不同?我看到很多缩写"auth".它是代表身份验证还是身份验证?还是两者兼而有之?

Ker*_* SB 822

身份验证是确定某人确实是他们声称的人的过程.

授权是指确定允许谁做什么的规则.例如,Adam可能被授权创建和删除数据库,而Usama仅被授权阅读.

这两个概念是完全正交和独立的,但两者都是安全设计的核心,而未能正确使用这两个概念开辟了妥协的途径.

就网络应用程序而言,非常粗略地说,身份验证是指您检查登录凭据以查看您是否将用户识别为已登录,并且授权是指您在访问控制中查看是否允许用户查看,编辑,删除或创建内容.

  • 这些定义似乎很好,但它们似乎并不是独立的.如定义,不**授权**还_imply_**认证**?如果你怀疑他是亚当,你怎么能允许Adam的数据库删除操作呢?换句话说,如果Adam的删除操作被授权,那么大多数希望这意味着Adam已经过身份验证. (23认同)
  • @Timo:应用程序可能会想要同时执行这两个操作,但无论如何它们都是正交概念.您的老板可能正在审查员工的授权,以访问业务的关键组件,公司喷气机和啤酒冰箱,而无需担心CCTV Feed中的哪个特定个人与电子表格中的名称相匹配.后者将成为保安人员关注的问题. (4认同)
  • @Sinjai:我认为重点是这些是正交的问题,它们可以通过单独的设施来解决:例如,门口的(受信任的)保镖可以确定客户的年龄,并且机构内的不同服务可以有不同的年龄限制,但都会使用从保镖那里获得的价值来做出入场决定。 (2认同)

Geo*_*Geo 638

总之,请.:-)

身份验证 =登录+密码(您是谁)

授权 =权限(您可以做什么)

短"auth"最有可能是指第一个或两个.

  • 甜如小菜:) (3认同)
  • 然后,我仍然不明白为什么[HTTP授权标头](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization)携带认证信息……这不是很不幸的命名吗? (3认同)
  • @Jens 我也想知道。我发现[这个答案](/sf/answers/183201721/)的直觉很有帮助。由于 HTTP 是*无状态*,身份验证信息必须与每个请求一起发送,而不仅仅是开始和关闭请求(例如,建立安全会话,并发送中间没有身份验证的请求)。因此,该请求标头应该是“授权”,因为它几乎总是携带其他意图(获取数据、img...),而不是“仅身份验证”。 (2认同)

Seb*_*olm 79

正如身份验证与授权所述:

身份验证是系统可以安全地识别其用户的机制.身份验证系统提供问题的答案:

  • 谁是用户?
  • 用户真的是他/她代表自己的人吗?

相反,授权是系统确定特定认证用户对系统控制的安全资源应具有何种访问级别的机制.例如,可以设计数据库管理系统,以便为某些指定的个人提供从数据库检索信息的能力,但不能改变存储在数据库中的数据,同时使其他人能够更改数据.授权系统提供问题的答案:

  • 用户X是否有权访问资源R?
  • 用户X是否被授权执行操作P?
  • 用户X是否被授权在资源R上执行操作P?

也可以看看:


Adi*_*tal 33

我更喜欢验证权限验证和授权.

在我的脑海和代码中更容易想到"验证"和"权限",因为这两个词

  • 听起来不一样
  • 没有相同的缩写

身份验证是验证,授权是检查权限.Auth可能意味着,但更常用作"用户身份验证",即"用户身份验证"

  • 虽然身份验证似乎是某种验证,但IMHO验证似乎比身份验证稍微更开放范围,并非每次验证都是身份验证...所以我想说总是需要上下文:用户访问验证等,身份验证似乎总是发生在"他真的是那个人/机器吗?"的领域.(如果我错了,请打我,不是母语人士,但是:"验证"所提供的信息是准确的,而认证似乎与知道人/机器是他/它假装的那个人有关) (2认同)

Kja*_*tan 12

混淆是可以理解的,因为这两个词听起来很相似,并且因为这些概念通常密切相关并且一起使用.另外,如上所述,缩写Auth没有帮助.

其他人已经很好地描述了认证和授权的含义.这是一个简单的规则,以帮助保持两者明显分开:

  • 验证ENTI阳离子验证您的ID ENTI TY(或真实性,如果你喜欢的)
  • 作者化验证您的作者,两者均,即你的访问,并可能改变一些东西的权利.


Roh*_*ani 11

我试图用最简单的词来创建一个图像来解释这个问题

1)认证意味着"你是谁,你说你是谁?"

2)授权意味着"你能做你想做的事吗?".

这也在下图中描述.

在此输入图像描述

我试图以最好的方式解释它,并创建了相同的图像.


Jak*_*lář 5

身份验证是验证声明的身份的过程。

  • 例如用户名/密码

通常后面是授权,这是你可以做这做那的批准。

  • 例如权限