authentication和授权有区别吗?

我看到这两个术语有点相似(特别是在基于networking的场景中,但我想它不仅限于此),我想知道是否有区别。

在我看来,他们都意味着你可以做你正在做的事情。 那么这只是一个命名的东西,还是在意义上有一个基本的区别?

确实有一个根本的区别。 authentication是系统可以安全地识别用户的机制。 authentication系统试图提供以下问题的答案:

  • 谁是用户?
  • 用户真正代表自己是谁吗?

相比之下,授权是系统确定特定(经过authentication的)用户对系统控制的资源应具有的访问级别的机制。 对于可能与基于networking的场景相关或不相关的例子,数据库pipe理系统可能被devise成为某些指定的个人提供从数据库检索信息的能力,但不能改变存储在数据库中的数据数据库,同时赋予其他人更改数据的能力。 授权系统提供了以下问题的答案:

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

史蒂夫·莱利写了一篇很好的文章 ,说明为什么他们必须保持截然不同。

authentication是指validation一个实体的身份。 授权处理被authentication的实体被允许做的事情(例如文件许可)。

重点是:

  • 身份validation处理用户帐户validation。 这是一个有效的用户吗? 这个用户是否在我们的应用程序中注册? 例如:login
  • 授权处理用户访问validation某些function。 此用户是否有权限访问此function? 例如:索赔,angular色

validation:

身份validation是通过获取某种凭证并使用这些凭证来validation用户身份来validation用户身份的过程。 如果凭证有效,授权过程开始。 authentication过程总是进行到授权过程。

授权:

授权是通过检查用户是否具有对系统的访问权限来允许经过validation的用户访问资源的过程。 授权通过授予或拒绝授权用户的特定权限来帮助您控制访问权限。

根据我的经验,身份validation通常是指更技术化的过程,即对用户进行身份validation(通过检查login名/密码凭证,证书等),而在应用程序的业务逻辑中更多地使用授权。

例如,在应用程序中,用户可能会login并进行身份validation,但无权执行某些function。

在网站上对用户进行身份validation意味着您validation该用户是否是有效用户,即validation用户是使用用户名/密码还是证书等。通常情况下,是否允许该用户进入该build筑物?

授权是validation用户是否有权访问网站的某些资源或部分的过程,例如,如果其CMS是授权更改网站内容的用户。 就办公楼scheme而言,用户是否被允许进入办公室的networking室。

如果我可以login,我的凭证已经过validation,我已经authentication了。 如果我可以执行特定的任务,我有权这样做。

身份validationvalidation您是谁,授权validation您有权执行的操作。 例如,您可以通过ssh客户端login到您的Unix服务器,但是您没有被授权浏览器/ data2或任何其他文件系统。 authentication成功后才会进行授权……..

身份validationvalidation您是谁,授权validation您有权执行的操作。 例如,您可以通过ssh客户端login到您的Unix服务器,但是您没有被授权浏览器/ data2或任何其他文件系统。 授权成功后进行validation。

身份validation:validation用户是谁。

为了进行authentication,用户提供诸如用户名和密码之类的凭证信息,并且如果凭证是有效的,则用户接收到可以在将来的请求中发送的令牌作为对其authentication的validation。

授权:确定用户被允许执行的操作。

从用户的angular度来看,如果能够发送访问系统的请求并执行某些操作(例如,在系统中上载文件),并且它可以正常工作,就会进行成功的授权。

身份validation只validation身份 – 它确认用户是她自称的人。 授权确定经过validation的用户可以访问哪些资源。

authentication

身份validationvalidation你是谁。 例如,您可以使用ssh客户端login到您的服务器,或使用POP3和SMTP客户端访问您的电子邮件服务器。

授权

授权validation您有权执行的操作。 例如,您可以通过ssh客户端login到您的服务器,但是您没有权限浏览器/ data2或任何其他文件系统。 授权成功后进行validation。

授权是服务器确定客户是否有权使用资源或访问文件的过程。

当服务器需要确切地知道谁在访问他们的信息或站点时,服务器使用authentication。

简单的实时例子,如果学生来上学,那么校长正在检查authentication和授权。 authentication:检查学生证是否意味着他或她属于我们的学校。 授权:检查学生是否有权进入计算机编程实验室。