认证 (authentication) 和授权 (authorization) 的区别
- 【认证】你要登录论坛,输入用户名张三,密码 1234,密码正确,证明你张三确实是张三,这就是 authentication(identification)。
- 【授权】再一 check 用户张三是个版主,所以有权限加精删别人帖,这就是 authorization 。
所以简单来说:认证解决“你是谁”的问题,授权解决“你能做什么”的问题。
授信媒介
在互联网应用开发领域,授权所用到的授信媒介主要包括如下几种,
- 通过web服务器的session机制,一个访问会话保持着用户的授权信息
- 通过web浏览器的cookie机制,一个网站的cookie保持着用户的授权信息
- 颁发授权令牌(token),一个合法有效的令牌中保持着用户的授权信息
前面两者常见于web开发,需要有浏览器的支持。
认证、授权、鉴权和权限控制
当用户登录一个应用时,我们可以使用以下示例来说明认证、授权、鉴权和权限控制之间的区别:
- 认证:用户输入用户名和密码进行登录,应用通过验证这些凭据与存储在数据库中的信息进行比对,以确认用户的身份。如果凭据有效并且匹配,用户就被认证为有效用户。
- 授权:一旦用户通过认证,应用程序需要根据用户的身份和权限决定他们可以执行哪些操作或访问哪些资源。例如,用户可以被授予管理员角色,这意味着他们具有更高级别的访问权限,可以执行特定的管理员操作,如创建、编辑或删除资源。
- 鉴权:在用户进行某个操作之前,应用程序需要对其进行鉴权,即验证用户是否具有执行该操作的权限。例如,管理员可以尝试删除一个资源,但在执行实际删除操作之前,应用会检查用户是否具有删除资源的权限。
- 权限控制:权限控制是指根据用户的角色和权限设置对资源进行访问限制的过程。例如,应用程序可能定义了特定的访问规则,只有具有特定角色(如管理员)的用户才能访问管理后台页面或执行敏感操作。
综上所述,在一个应用中,认证用于验证用户身份,授权决定用户能做什么,鉴权验证用户是否具有执行操作的权限,而权限控制定义了用户对资源的访问限制。这些概念一起确保应用程序在安全和合规性方面运作正常。
RABC
到底什么是RBAC权限模型?!
RBAC权限模型的核心思想是将权限的管理从用户直接关联转移到角色上。这样可以简化用户的管理和权限的维护,提高系统的可伸缩性和灵活性。RBAC模型具有以下优点:
- 角色集中管理:通过将权限分配给角色,可以集中管理角色及其对应的权限,而无需对每个用户进行单独管理。
- 灵活的权限管理:通过调整角色和权限的关联关系,可以快速修改用户的权限,而无需逐个更改每个用户的权限设置。
- 安全性:RBAC模型可以确保用户只能访问他们所需的资源,降低了系统遭到未授权访问的风险。
- 可扩展性:当系统需要新增角色或权限时,可以很容易地进行扩展和调整,而不会影响到已有的用户和其它角色。