5 个回答
作为该领域从业了近5年的人,很开心有人关注到这个话题。话不多说,直奔主题。
身份认证和访问控制的英文名字是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都是指带审计之类的事情,大概是中文翻译的不同。
我是分割线——————————————————————————
随着云计算的发展,企业基础IT和安全设施的改造会越来越涉及到4A领域的改造。很高兴关注这个领域的人越来越多。想获取更多的内容,就关注我吧。
身份认证与授权的概念十分相近,在开发或者管理一个应用程序的时候,我们往往会看到两个名词——认证和授权,在英文中这两个词更为相近 —— authentication 和 authorization。尽管这两个属于经常出现在相同的上下文中,但是两者在概念上是非常不同的。非专业领域的人可能很难完全理解清楚二者的差异。我这里搬运一下一家专注于提供身份认证和授权解决方案的公司
Authing
对这两个概念做出的解释。
认证意味着确认你自己的身份,而授权意味着授予对系统的访问权限。简单来说,认证是验证你的身份的过程,而授权是验证你有权访问的过程。
什么是认证?
认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素。
在某些应用系统中,为了追求更高的安全性,往往会要求多种认证因素叠加使用,这就是我们经常说的多因素认证。
常见的认证方式
- 用户名密码认证
- 手机和短信验证码认证
- 邮箱和邮件验证码认证
- 人脸识别/指纹识别的生物因素认证
- OTP 认证
- Radius 网络认证
什么是授权?
授权发生在系统完成身份认证之后,最终会授予你访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。简单来说,授权决定了你访问系统的能力以及达到的程度。
授权是确定经过身份验证的用户是否可以访问特定资源的过程。它验证你是否有权授予你访问信息,数据库,文件等资源的权限。授权通常在验证后确认你的权限。简单来说,就像给予某人官方许可做某事或任何事情。
例如,验证和确认组织中的邮箱和密码的过程称为认证,但确定哪个员工可以访问哪个楼层称为授权。假设你正在旅行而且即将登机。当你在登机前出示机票和一些身份证明时,你会收到一张登机牌,证明机场管理局已对你的身份进行了身份验证。但那不是它。乘务员必须授权你登上你应该乘坐的航班,让你可以进入飞机内部及其资源。
认证与授权的对比
认证 | 授权 |
验证确认身份以授予对系统的访问权限。 | 授权确定你是否有权访问资源。 |
这是验证用户凭据以获得用户访问权限的过程。 | 这是验证是否允许访问的过程。 |
它决定用户是否是他声称的用户。 | 它确定用户可以访问和不访问的内容。 |
身份验证通常需要用户名和密码。 | 授权所需的身份验证因素可能有所不同,具体取决于安全级别。 |
身份验证是授权的第一步,因此始终是第一步。 | 授权在成功验证后完成。 |
例如,特定大学的学生在访问大学官方网站的学生链接之前需要进行身份验证。这称为身份验证。 | 例如,授权确定成功验证后学生有权在大学网站上访问哪些信息。 |
认证、授权、确权与鉴权
概念 | 说明 |
认证 | 确认声明者的身份。 |
授权 | 获取用户的委派权限。 |
确权 | 用户对授权进行确认。 |
鉴权 | 对所声明的权限真实性进行鉴别的过程。 |
Authing
是一款以开发者为中心的全场景身份云产品,专注于提供身份认证和授权解决方案,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理,遵循不同国家和行业的合规性要求,在所有 SaaS 软件和数亿用户中建立高安全、高性能、高生产力的统一身份认证平台,支持所有企业和开发者便捷灵活接入,满足各类场景化需求。如果想要了解更多身份认证管理相关的知识,可以进入
Authing 技术博客
了解更多信息。
推荐阅读: