我看到这两个术语相当多(特别是在基于网络的场景中,但我认为它并不仅限于此),我想知道是否存在差异 .
在我看来,他们都意味着你被允许做你正在做的事情 . 这只是一个命名法,还是意义上有一个基本的区别?
确实存在根本区别 . 身份验证是系统可以安全地识别其用户的机制 . 身份验证系统寻求提供问题的答案:
谁是用户?
用户真的是他/她代表自己的人吗?
相反,授权是系统确定特定(经过身份验证的)用户对系统控制的资源应具有的访问级别的机制 . 对于可能与基于Web的场景相关或不相关的示例,可以设计数据库管理系统,以便为某些指定的个人提供从数据库检索信息的能力,但不能改变存储在数据库中的数据的能力 . 数据库,同时让其他人能够更改数据 . 授权系统提供问题的答案:
用户X是否有权访问资源R?
用户X是否被授权执行操作P?
用户X是否被授权在资源R上执行操作P?
史蒂夫莱利写了一篇非常好的essay,说明为什么他们必须保持清晰 .
身份验证是指验证实体的身份 . 授权处理允许经过身份验证的实体所执行的操作(例如,文件权限) .
重点是:
Authentication 处理用户帐户验证 . 这是一个有效的用户吗?此用户是否已在我们的应用程序中注册?例如:登录
Authorization 处理对特定功能的用户访问验证 . 此用户是否拥有访问此功能的授权/权限?例如:索赔,角色
Authentication:
身份验证是通过获取某种凭据并使用这些凭据来验证用户身份来验证用户身份的过程 . 如果凭据有效,则授权过程开始 . 身份验证过程始终进入授权过程 .
Authorization:
授权是允许经过身份验证的用户通过检查用户是否具有对系统的访问权限来访问资源的过程 . 授权通过向经过身份验证的用户授予或拒绝特定权限来帮助您控制访问权限 .
根据我的经验,身份验证通常是指更具技术性的流程,即对用户进行身份验证(通过检查登录/密码凭据,证书等),而在应用程序的业务逻辑中更多地使用授权 .
例如,在应用程序中,用户可能登录并进行身份验证,但无权执行某些功能 .
在网站上对用户进行身份验证意味着您验证此用户是否为有效用户,即验证用户使用的是用户名/密码或证书等 . 通常,允许进入建筑物的人员是谁?
授权是验证用户是否具有访问网站的某些资源或部分的权限/许可的过程,例如,如果其CMS是被授权更改网站内容的用户 . 在办公楼场景方面,用户是否被允许进入办公室的网络室 .
如果我可以登录,我的凭据将被验证,我是AUTHENTICATED . 如果我能执行特定任务,我授权这样做 .
身份验证可验证您的身份,授权可验证您有权执行的操作 . 例如,您可以通过ssh客户端登录Unix服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后发生授权........
身份验证可验证您的身份,授权可验证您有权执行的操作 . 例如,您可以通过ssh客户端登录Unix服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后进行授权 .
Authentication: 验证用户是谁 .
要进行身份验证,用户会提供凭据信息,例如用户名和密码凭证有效,用户会收到一个令牌,该令牌可以作为验证身份验证来发送 .
Authorization: 确定允许用户做什么 .
从用户的角度来看,当她能够发送访问系统的请求并执行某些操作(例如在系统中上传文件)并且它可以正常工作时,就会成功进行授权 .
身份验证仅验证身份 - 它确认用户是她声称的身份 . 授权确定验证用户可以访问的资源 .
认证
身份验证可验证您的身份 . 例如,您可以使用ssh客户端登录服务器,或使用POP3和SMTP客户端访问您的电子邮件服务器 .
授权
授权验证您有权执行的操作 . 例如,您可以通过ssh客户端登录服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后进行授权 .
授权是服务器确定客户端是否具有使用资源或访问文件的权限的过程 .
当服务器需要确切知道谁正在访问其信息或站点时,服务器将使用身份验证 .
简单的实时示例,如果学生来到学校,那么校长正在检查身份验证和授权 . Authentication: 检查学生证是指他或她是否属于我们学校 . Authorization: 检查学生是否有权参加计算机编程实验室 .
Authentication :
这是验证身份是真还是假的过程 . 换句话说,验证用户确实是他或她声称自己的用户 .
验证类型:
用户名密码验证类型
使用社交帐户进行身份验证
无密码验证
多重身份验证
基于指纹或视网膜的认证等
OpenID 是一种开放的身份验证标准 .
Authorization
确定具有给定标识或角色的用户可以访问哪些资源的技术 .
OAuth 是授权的开放标准 .
我试图用最简单的词来创建一个图像来解释这个问题
1)认证意味着“你是谁,你说你是谁?”
2)授权意味着“你能做你想做的事吗?” .
这也在下图中描述 .
15 回答
确实存在根本区别 . 身份验证是系统可以安全地识别其用户的机制 . 身份验证系统寻求提供问题的答案:
谁是用户?
用户真的是他/她代表自己的人吗?
相反,授权是系统确定特定(经过身份验证的)用户对系统控制的资源应具有的访问级别的机制 . 对于可能与基于Web的场景相关或不相关的示例,可以设计数据库管理系统,以便为某些指定的个人提供从数据库检索信息的能力,但不能改变存储在数据库中的数据的能力 . 数据库,同时让其他人能够更改数据 . 授权系统提供问题的答案:
用户X是否有权访问资源R?
用户X是否被授权执行操作P?
用户X是否被授权在资源R上执行操作P?
史蒂夫莱利写了一篇非常好的essay,说明为什么他们必须保持清晰 .
身份验证是指验证实体的身份 . 授权处理允许经过身份验证的实体所执行的操作(例如,文件权限) .
重点是:
Authentication 处理用户帐户验证 . 这是一个有效的用户吗?此用户是否已在我们的应用程序中注册?例如:登录
Authorization 处理对特定功能的用户访问验证 . 此用户是否拥有访问此功能的授权/权限?例如:索赔,角色
Authentication:
身份验证是通过获取某种凭据并使用这些凭据来验证用户身份来验证用户身份的过程 . 如果凭据有效,则授权过程开始 . 身份验证过程始终进入授权过程 .
Authorization:
授权是允许经过身份验证的用户通过检查用户是否具有对系统的访问权限来访问资源的过程 . 授权通过向经过身份验证的用户授予或拒绝特定权限来帮助您控制访问权限 .
根据我的经验,身份验证通常是指更具技术性的流程,即对用户进行身份验证(通过检查登录/密码凭据,证书等),而在应用程序的业务逻辑中更多地使用授权 .
例如,在应用程序中,用户可能登录并进行身份验证,但无权执行某些功能 .
在网站上对用户进行身份验证意味着您验证此用户是否为有效用户,即验证用户使用的是用户名/密码或证书等 . 通常,允许进入建筑物的人员是谁?
授权是验证用户是否具有访问网站的某些资源或部分的权限/许可的过程,例如,如果其CMS是被授权更改网站内容的用户 . 在办公楼场景方面,用户是否被允许进入办公室的网络室 .
如果我可以登录,我的凭据将被验证,我是AUTHENTICATED . 如果我能执行特定任务,我授权这样做 .
身份验证可验证您的身份,授权可验证您有权执行的操作 . 例如,您可以通过ssh客户端登录Unix服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后发生授权........
身份验证可验证您的身份,授权可验证您有权执行的操作 . 例如,您可以通过ssh客户端登录Unix服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后进行授权 .
Authentication: 验证用户是谁 .
要进行身份验证,用户会提供凭据信息,例如用户名和密码凭证有效,用户会收到一个令牌,该令牌可以作为验证身份验证来发送 .
Authorization: 确定允许用户做什么 .
从用户的角度来看,当她能够发送访问系统的请求并执行某些操作(例如在系统中上传文件)并且它可以正常工作时,就会成功进行授权 .
身份验证仅验证身份 - 它确认用户是她声称的身份 . 授权确定验证用户可以访问的资源 .
认证
身份验证可验证您的身份 . 例如,您可以使用ssh客户端登录服务器,或使用POP3和SMTP客户端访问您的电子邮件服务器 .
授权
授权验证您有权执行的操作 . 例如,您可以通过ssh客户端登录服务器,但您无权浏览/ data2或任何其他文件系统 . 成功验证后进行授权 .
授权是服务器确定客户端是否具有使用资源或访问文件的权限的过程 .
当服务器需要确切知道谁正在访问其信息或站点时,服务器将使用身份验证 .
简单的实时示例,如果学生来到学校,那么校长正在检查身份验证和授权 . Authentication: 检查学生证是指他或她是否属于我们学校 . Authorization: 检查学生是否有权参加计算机编程实验室 .
Authentication :
这是验证身份是真还是假的过程 . 换句话说,验证用户确实是他或她声称自己的用户 .
验证类型:
用户名密码验证类型
使用社交帐户进行身份验证
无密码验证
多重身份验证
基于指纹或视网膜的认证等
OpenID 是一种开放的身份验证标准 .
Authorization
确定具有给定标识或角色的用户可以访问哪些资源的技术 .
OAuth 是授权的开放标准 .
我试图用最简单的词来创建一个图像来解释这个问题
1)认证意味着“你是谁,你说你是谁?”
2)授权意味着“你能做你想做的事吗?” .
这也在下图中描述 .