Authentication vs. Authorization 认证 vs. 授权

Authentication vs. Authorization认证 vs. 授权

来自http://www.oit.duke.edu/~rob/kerberos/authvauth.html

认证和授权机制很容易让人混淆。在许多基于主机的系统中(甚至在一些C/S系统里),这两种机制由同样的物理硬件执行,而且在有些情况下,是用同样的软件执行。

提取出这两种机制之间的分别是相当重要的。然而,既然他们可以(或应该)可以运行在不同的系统里,又怎样区别这两种机制呢?

认证是系统藉以能安全地鉴别系统中用户的机制。

认证系统为以下问题提供了答案:

l         用户是谁

l         这个用户真的是他/她所代表的用户吗?

认证系统可能和纯文本的密码系统(可以参照一些较老的基于PCFTP服务器)一样简单,也可以和在别处一些文档中描述的Kerberos系统一样复杂。然而,在任何情况下,认证系统取决于某一独特的只被被证实的个体和认证系统已知(或可利用)的信息―一个共享的秘密。这样的信息可能是一个规范的密码,个体的一些物理属性(指纹,视网膜血管分别模式等),或一些衍生的数据(就像所谓的smartcard系统的情况)。为了验证用户的身份,认证系统通常要求用户提供他的独一无二的信息(密码,指纹等)。如果认证系统可以验证到共享的秘密被正确地展示了,用户就被认为是认证通过了。
与此相反,授权就是系统确定一名特殊的且已认证的用户应该对系统保护的资源有什么级别的访问权限的机制。例如,一个数据库管理系统可能被设计来提供一些指定的人有从数据库取出数据的能力却又没有修改数据库中数据的能力,但给与其他的人有更改数据的能力。认证系统提供以下问题的答案:

l         用户X被授权访问资源R吗?

l         用户X被授权执行操作P吗?

l         用户X被授权在资源R上执行操作P

认证和授权是有些强耦合的机制――授权系统取决于安全的认证系统来确保用户是他们声明的用户并且防止未授权的用户访问被保护的资源。

下图1,图形化的描述了在任意的认证和授权系统之间的交互,而且它也是一个典型的C/S应用程序。

Authentication vs. Authorization 认证 vs. 授权_第1张图片

上图中,工作在客户端系统的用户和认证系统交互以证明他的身份,然后和服务器系统展开对话。服务器系统依次和授权系统交互以确定客户端的用户应该被授予什么样的权限。

 

你可能感兴趣的:(Authentication vs. Authorization 认证 vs. 授权)