当你已经构建起用户系统,在某个时刻你的 API 就需要判断当前访问的用户是否能够访问当前资源了。这时候你就需要构建自己的权限系统。权限系统中一个很重要的概念是授权,授权指的是判断用户具备哪些权限的过程,与认证是两个完全不同的含义。
关于认证和授权的区分,《干货 | 使用 OIDC 协议进行身份验证的工作原理》一文中解释得非常详细。简单来说,认证是决定一个主体(之后统称「用户」)究竟是谁的过程,而授权是确认用户到底有没有权限访问想要访问的资源。
《深度 | 云时代下的数字身份自动化》中就指出了当前员工权限管理面临信息孤岛、数据安全、申请难、效率低等一系列问题。而实现统一权限模型和统一授权,才能让权限真正可管可控。
目前被大家广泛采用的两种权限模型为:基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)。二者各有优劣:
-
RBAC 模型构建起来更加简单,缺点在于无法做到对资源细粒度地授权(都是授权某一类资源而不是授权某一个具体的资源); -
ABAC 模型构建相对比较复杂,学习成本比较高,优点在于细粒度和根据上下文动态执行。
本周的 Authing 技术博客,将会分享:
-
如何对用户进行权限管理? -
如何快速实现细粒度的身份权限管理? -
教育行业适合细粒度的权限分配吗? -
全面解析 RBAC 让访问管理更加容易 -
六步快速构建适合你业务场景的权限模型
......
更多身份认证和权限管理的知识,在 Authing 技术博客一网打尽。
点击此处了解更多行业身份管理
「解决方案」以及「最佳实践案例」