blj28

导航

认证 (authentication) 和授权 (authorization) 的区别

authentication

authorization

  • /ɔːˌθentɪˈkeɪʃn/
     
  • /ɔːˌθentɪˈkeɪʃn/
     
  • n. 证明真实性,鉴定;身份验证认证
  • /ˌɔːθəraɪˈzeɪʃ(ə)n/
     
  • /ˌɔːθərəˈzeɪʃ(ə)n/
     
  • n. 批准书,授权书;批准,授权
  • 网络
  • 授权 /
  • 授权书 /
  • 认可 /
  • 权限

 

 

认证 (authentication) 和授权 (authorization) 的区别

 

 

以前一直傻傻分不清各种网际应用中 authentication 和 authorization, 其实很简单:

 

这两个术语通常在安全性方面相互结合使用,尤其是在获得对系统的访问权限时。两者都是非常重要的主题,通常与网络相关联,作为其服务基础架构的关键部分。然而,这两个术语在完全不同的概念上是非常不同的。虽然它们通常使用相同的工具在相同的上下文中使用,但它们彼此完全不同。

身份验证意味着确认您自己的身份,而授权意味着授予对系统的访问权限。简单来说,身份验证是验证您的身份的过程,而授权是验证您有权访问的过程。

认证

身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。系统确定您是否就是您所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份验证通常通过用户名和密码完成,有时与身份验证因素结合使用,后者指的是各种身份验证方式。

身份验证因素决定了系统在授予访问文件和请求银行交易之外的任何内容之前验证某人身份的各种要素。用户的身份可以通过他所知道的,他拥有的或者他是什么来确定。在安全性方面,必须至少验证两个或所有三个身份验证因素,以便授予某人访问系统的权限。

根据安全级别,身份验证因素可能与以下之一不同:

  • 单因素 身份验证 - 这是最简单的身份验证方法,通常依赖于简单的密码来授予用户对特定系统(如网站或网络)的访问权限。此人可以仅使用其中一个凭据请求访问系统以验证其身份。单因素身份验证的最常见示例是登录凭据,其仅需要针对用户名的密码。
  • 双因素身份验证 - 顾名思义,它是一个两步验证过程,不仅需要用户名和密码,还需要用户知道的东西,以确保更高级别的安全性,例如ATM引脚,用户知道。使用用户名和密码以及额外的机密信息,欺诈者几乎不可能窃取有价值的数据。
  • 多重身份验证 - 这是最先进的身份验证方法,它使用来自独立身份验证类别的两个或更多级别的安全性来授予用户对系统的访问权限。所有因素应相互独立,以消除系统中的任何漏洞。金融机构,银行和执法机构使用多因素身份验证来保护其数据和应用程序免受潜在威胁。

例如,当您将ATM卡输入ATM机时,机器会要求您输入您的PIN。在您正确输入引脚后,银行会确认您的身份证明该卡真正属于您,并且您是该卡的合法所有者。通过验证您的ATM卡引脚,银行实际上会验证您的身份,这称为身份验证。它只是确定你是谁,没有别的。

授权

另一方面,授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。简单来说,授权决定了您访问系统的能力以及达到的程度。验证成功后,系统验证您的身份后,即可授权您访问系统资源。

授权是确定经过身份验证的用户是否可以访问特定资源的过程。它验证您是否有权授予您访问信息,数据库,文件等资源的权限。授权通常在验证后确认您的权限。简单来说,就像给予某人官方许可做某事或任何事情。

例如,验证和确认组织中的员工ID和密码的过程称为身份验证,但确定哪个员工可以访问哪个楼层称为授权。假设您正在旅行而且即将登机。当您在登记前出示机票和一些身份证明时,您会收到一张登机牌,证明机场管理局已对您的身份进行了身份验证。但那不是它。乘务员必须授权您登上您应该乘坐的航班,让您可以进入飞机内部及其资源。

对系统的访问受身份验证和授权的保护。可以通过输入有效凭证来验证访问系统的任何尝试,但只有在成功授权后才能接受。如果尝试已通过身份验证但未获得授权,系统将拒绝访问系统。

认证 授权
身份验证确认您的身份以授予对系统的访问权限。 授权确定您是否有权访问资源。
这是验证用户凭据以获得用户访问权限的过程。 这是验证是否允许访问的过程。
它决定用户是否是他声称的用户。 它确定用户可以访问和不访问的内容。
身份验证通常需要用户名和密码。 授权所需的身份验证因素可能有所不同,具体取决于安全级别。
身份验证是授权的第一步,因此始终是第一步。 授权在成功验证后完成。
例如,特定大学的学生在访问大学官方网站的学生链接之前需要进行身份验证。这称为身份验证。 例如,授权确定成功验证后学生有权在大学网站上访问哪些信息。

摘要

虽然这两个术语经常相互结合使用,但它们的概念和含义完全不同。虽然这两个概念对于Web服务基础结构至关重要,特别是在授予对系统的访问权限时,理解关于安全性的每个术语是关键。虽然我们大多数人将一个术语与另一个术语混淆,但理解它们之间的关键区别很重要,实际上非常简单。如果身份验证是您的身份,则授权是您可以访问和修改的权限。简单来说,身份验证就是确定某人是否是他声称的人。另一方面,授权是确定他访问资源的权利。

 

举个例子来说:



你要登机,你需要出示你的身份证和机票,身份证是为了证明你张三确实是你张三,这就是 authentication;而机票是为了证明你张三确实买了票可以上飞机,这就是 authorization。

在网站认证领域再举个例子:

你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是 authentication;再一check用户张三是个版主,所以有权限加精删别人帖,这就是 authorization。

 

 

作者:义臻
链接:https://www.zhihu.com/question/460443772/answer/2198805894
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

身份认证和访问控制的英文名字是Identity and Access Management,是属于安全领域所要关注的范畴。咱们仔细来看,这里面涉及到三个方面的子内容,分别是账号(Account)、认证(Authentication)和授权(Authorization)。

账号(Account)是什么呢?这个在生活中很常见。比如大学里的选课系统,我们在使用之前都要首先有一个账号。这个账号可以是手机号,也可以是邮箱,或者是学号。这个账号就是在我们在选课系统中的身份标记。由于每个人在选课系统中都要有自己的账号,所以选课系统自然就要提供对所有账号的管理能力。比如如何注册账号、如何修改密码、如何设置个人基本信息等。可见:

Account is an identity flag by which a person can access a software system。

有了账号并不代表可以进入系统,还得有凭证。凭证是什么?密码就是凭证的一种。这就好比亲朋好友都知道我家的门在哪里,但是只有有钥匙的人才能进入我家。所以,仅仅有选课系统的账号是不够的,还得有这个账号对应的密码,注意是对应的密码。这样,在进入选课系统前,我们会向系统展示我们的账号以及所持有的与之对应的密码(即登录的过程),选课系统会验证密码是否正确。上面的这个过程叫什么呢?猜对了,叫身份认证。什么是认证(Authentication)?

Authentication is the process of verifying the identity of a user—knowing that the user is who they claim to be.

现在我们已经通过正确的账号和密码登录成功了。但是,有些老师的课程实在太火,报名的同学太多。而能选到课的学生是有限的,怎么办?当然是去调高某一个课程的人数限制。“调高课程人数限制”这个事情,普通的学生能操作吗?当然不能,需要教务处的老师去操作。我们会发现,选课系统中学生只能做一些基础的操作,而教务处老师可以做更加“为所欲为”的操作。这种决定谁能做什么事的过程就是权限管理,也就是访问授权的过程。何为授权(Authorization)?

Authorization is the process of verifying that a user has the right to perform some action, such as selecting a course or adding a course.

到这里,我们定义了Account、Authentication和Authorization。实际上,一些场景下还会涉及到审计(Audit)。在上面的选课系统中,为了防止教务处的老师滥用职权帮助特定学生选课,可以记录整个系统的操作日志,以记录下哪些账号在某些时刻做了哪些操作,然后在需要的时候进行审查。这个过程被称为审计。什么是审计(Audit)呢?

Audit is the examination or inspection of various actions of accounts to make sure that all operations are following documented regulations.

上面详细的介绍了账号、认证、授权、审计这四个方面。回到问题本身,身份认证和访问控制有什么区别呢?由于身份认证和访问控制(IAM)经常同时出现,导致很多人在概念上混淆。实际上,两者分别是代表两个方向,只是经常组CP罢了。

结合我上面的介绍,身份认证实际上就是解决Authentication的问题,而解决Authentication肯定需要先有Account,而访问控制实际上是解决Authorization的问题。另外,实际应用中,有些人也喜欢把涉及到Account、Authentication、Authorization和Audit这些方面的系统称为IDM系统(Identity Management)

经过笔者的调查,发现业内有如下常用叫法:

3A:Authentication、Authorization、Accounting

4A:Account、Authentication、Authorization、Audit

Accounting和Audit都是指带审计之类的事情,大概是中文翻译的不同。

posted on 2024-10-28 15:50  bailinjun  阅读(7)  评论(0编辑  收藏  举报