认证与授权_认证和授权-程序员宅基地

技术标签: 安全  识别  授权  认证  

在开发或者管理一个应用程序的时候,我们往往会看到两个名词——认证和授权,在英文中这两个词更为相近 —— authentication 和 authorization。尽管这两个术语经常出现在相同的上下文中,但是两者在概念上是非常不同的。

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

什么是认证

认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素。

在某些应用系统中,为了追求更高的安全性,往往会要求多种认证因素叠加使用,这就是我们经常说的多因素认证。

常见的认证方式

  • 用户名密码认证
  • 手机和短信验证码认证
  • 邮箱和邮件验证码认证
  • 人脸识别/指纹识别的生物因素认证
  • OTP 认证
  • Radius 网络认证

什么是授权

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

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

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

认证与授权的对比

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

以下转自http://blog.csdn.net/cruise_h/article/details/50749652

以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说:

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

在 computer science 领域再举个例子:

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


Authentication 鉴别

判断使用者是不是他所宣称的那个人,
如帐号密码机制,是基于帐号密码为 只有本人跟系统本身才知道的shared secret,所以只要可以正确输入密码,系统就可判断使用者为这个帐号所代表的人物。
主要回答这些问题: 
  • 用户是谁?
  • 用户真的是他/她代表自己的那个人吗?

Authorization 授权

判断当前使用者 所拥有对系统资源存取的权限(等级),例如会员登入后拥有读写资源的权力,而访客只有读的权力。
主要回答这些问题: 
  • 用户 X 是否有权访问资源 R?
  • 用户 X 是否被授权执行操作 P?
  • 用户 X 是否有权对资源 R 执行操作 P?

Identification 识别

判断使用者是谁,Identification必须是 独一无二的,才能正确的分辨出每个人。

主要回答这些问题: 

用户是谁?

上面三者的关系: 

系统要知道某个使用者对系统资源的存取权力,包含三个部分
  1. 使用者告诉系统他是谁(Identification 机制)。例:输入ID
  2. 系统判断使用者是否真的是他宣称的那个人(Authentication 机制)。例:输入Password
  3. 系统根据该帐号所拥有的权限验证该使用者(Auorization 机制)。例:系统判断该使用者为会员,给予读及写的权利

转自:认证 vs 授权 | Authing 文档 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fuhanghang/article/details/122824836

智能推荐

3dmax如何建模隧道-程序员宅基地

文章浏览阅读326次。3dmax中建模隧道的方法:首先,选择合适的建模工具,如折线、矩形、圆弧等。根据隧道的形状和尺寸创建几何形状,如创建一个圆弧形的矩形代表隧道。使用编辑工具,如拉伸、修改顶点等,调整隧道的形状和尺寸。对隧道进行细节处理,如创建隧道的壁、顶等,调整隧道的表面纹理。添加灯光和阴影,让隧道看起来更逼真。最后,使用渲染工具,如 mental ray、V-Ray等,进行渲染,得到最终的..._隧道3d建模摄影

美赛整理之投影寻踪模型及其求解-程序员宅基地

文章浏览阅读1.8w次,点赞61次,收藏317次。投影寻踪模型1.模型的简介和应用2.基本步骤:3.遗传算法求解模型的优化问题1.用MatlabMatlabMatlab的gagaga工具箱求解:2.遗传算法求解:3.LINGOLINGOLINGO工具箱求解1.模型的简介和应用投影寻踪是处理和分析高维数据的一类统计方法,其基本思想是将高维数据投影到低维(1~3维)子空间上,寻找出反映原高维数据的结构或特征的投影,以达到研究和分析高维数据的目的。1974年,美国Stanford大学的Friedman和Tukey首次将该方法命名为Projection Pur_投影寻踪模型

计算机应用 拒稿,论文投稿频繁被拒怎么办?985博士学长经验分析-程序员宅基地

文章浏览阅读1.7k次。原标题:论文投稿频繁被拒怎么办?985博士学长经验分析在现行科研体制之内,对于硕博生而言,如果没有发表论文你甚至就无法证明自己的存在,硕博生毕业、老师的晋升都需要论文的保驾护航。因此发表论文是科研学者的主要工作和主要目标。相信很多科研学者都会有论文投稿频繁被拒的经历,投稿被拒出内伤是常有之事,那么如何提高论文的命中率,听学长仔细道来。论文被拒可以先从三个方面思考一看自己论文质量是不是没有达到那个水..._计算机综述投稿一直不中

基于python的opencv项目实战P1_python opencv实验-程序员宅基地

文章浏览阅读691次。基于python的opencv项目实战 01-简介教程b站:https://b23.tv/av77390697/p1准备软件下载anaconda清华镜像网站(lenovo Anaconda3-2019.10-Windows-x86_64)官网安装opencv 下载.whl安装网址p.s.在prompt窗口进入anaconda的Scriptsd:#转到D盘cd sof..._python opencv实验

python发邮件--中文附件报错问题_server.sendmail 附件报错-程序员宅基地

文章浏览阅读784次。# -*- coding: utf-8 -*-"""Created on Thu Apr 11 14:01:30 2019@author: zhang-peng"""#coding: utf-8 import osimport sysimport smtplibfrom email.mime.text import MIMETextfrom email.mime.ima..._server.sendmail 附件报错

Servlet中模板引擎的使用_servletcontexttemplateresolver-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏2次。一.本机环境及模板引擎依赖因为使用模板引擎技术,需要在Maven中的pom.xml中引入thymeleaf依赖。我这里jdk使用的是1.8;模板引擎的依赖版本为3.1.0。如果开发环境相同,可以参考下面的依赖。在dependencs中添加下面依赖即可。 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.s_servletcontexttemplateresolver

随便推点

thinkphp5和php区别,thinkphp5.1和thinkphp5.0验证的区别-程序员宅基地

文章浏览阅读409次。最近在学习tp5.1,沿用5.0的代码发现不能触发验证,打开thinkphp5.1官方手册发现,原来的写法只能验证全部或者不验证全部规则,但是不能为去掉某个不需要的验证规则。以下是thinkphp5.0的验证规则,验证提示和验证场景写法:..._validate 5.0和5.1 不一样吗?

记一次磕磕绊绊的组建跨区卷过程_新建跨区卷-程序员宅基地

文章浏览阅读1.6k次。最近买了个地平线4,80多G,我这条500G的固态马上就容量告急了,于是下单了一块新的1T的固态。因为不喜欢分太多个分区,整个盘只分了系统(C盘)和软件(D盘)两个区,个人文件放在另一块机械盘里(E盘)。所以就想着把新的这块盘直接并到D盘上,组个跨区盘。然后就开始百度怎么组跨区盘。百度说要先转换成动态磁盘,于是就打开计算机管理——磁盘管理,选上两块盘点转换为动态磁盘。然后跳出提示“包名称无效”。遂再次百度,说是计算机名称要改成纯英文才能改。同时发现原来的500G盘里有个未知无用分区,估计是以前用Disk_新建跨区卷

Android基本控件和Activity的基本应用_android activity和控件-程序员宅基地

文章浏览阅读189次。Android基本控件和Activity的基本应用Android基本控件TextViewButtonAndroid基本控件TextView<TextViewandroid:id="@+id/name_text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:gr..._android activity和控件

Java——聊聊JUC中的原子变量类_java原子变量-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏4次。Java——聊聊JUC中的原子变量类_java原子变量

Java实现ftp文件上传工具类及踩过的坑_java ftps 工具类-程序员宅基地

文章浏览阅读834次。一、环境jdk1.8 + springboot2.3.2.RELEASE + commons-net-3.6.jar + commons-lang3-3.8.jar + commons-io-2.6.jar二、添加pom.xml文件依赖<dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6<_java ftps 工具类

HTML5兼容手机-程序员宅基地

文章浏览阅读754次。web网站如何实现兼容手机一、总结一句话总结:加上这句话即可:<meta name=“viewport” content=“width=device-width,initial-scale=1.0”>。1、移动设备上的三个viewport是哪三个,分别代表什么?ppk把移动设备上的viewport分为layout viewport 、 visual viewport 和 ide..._html5兼容手机