后端程序员在做 ToB
产品或者后台系统时,都不可避免的会遇到账号系统、登录系统、权限系统、日志系统等这些核心功能。这些功能一般都是以 SSO
系统、RBAC
权限管理系统等方式命名,但这些系统合起来有一个专有名词:IAM
。
IAM
IAM
是 Identity and Access Management
的缩写,即身份与访问管理,或称为身份管理与访问控制,或称为身份管理。
在 IAM
的基础上还继续发展为 EIAM
、CIAM
、RAM
、IDaaS
几类。
EIAM
EIAM
是 Employee Identity and Access Management
的缩写,即企业身份与访问管理,主要解决企业内部员工、合作伙伴、临时人员等提供统一身份认证和权限管理能力的内部产品。
CIAM
CIAM
是 Customer Identity and Access Management
的缩写,即客户身份与访问管理,主要解决企业外部客户(主要是互联网海量用户)的统一身份认证和权限管理能力的外部产品。
RAM
RAM
是 Resource and Access Management
的缩写,即资源与访问管理,RAM
其实就是云厂商的 IAM
,主要解决云客户管理云资源的访问控制。
阿里云的 RAM
用户登录。
IDaaS
互联网行业最不缺的就是造新名词,云计算刚出来的时候就有各种 IaaS
、PaaS
、SaaS
的概念。最近几年微服务盛行后又出来了 BaaS
、FaaS
等相关概念。
IaaS:基础设施即服务,Infrastructure as a service
PaaS:平台即服务,Platform as a service
SaaS:软件即服务,Software as a service
BaaS:后端即服务,Backend as a Service
FaaS:函数即服务,Functions as a Service
参考文章:
- IaaS、PaaS、SaaS 都是什么?
- BaaS、FaaS、Serverless 都是什么?
IDaaS
身份即服务(IDentity as a Service
),即将 EIAM
和 CIAM
上云并做成一个独立 SaaS
产品来卖,通俗的理解就是 IDaaS = EIAM + CIAM + SaaS
。
无论怎么变,这些概念最核心的东西还是 IAM
,所以理解了 IAM
的概念其他概念也就一通百通了。
IAM
一般包含如下五部分,称为 5A
:
- 账号(Account)
- 认证(Authentication)
- 权限(Authorization)
- 应用(Application)
- 审计(Audit)
账号
账号是用户在系统中的数字化载体,用于标识用户并访问受保护的资源,一般每个系统都会有账号,且不同系统的账号数据结构各异。
认证
认证是一种信用保证形式,认证是用于确定上述账号在申请访问资源时是否是有效。
授权
权限本质上是限制,授权是将权限授予给用户,从而使得用户获得访问资源的权限。
应用
应用可以简单的理解为所有的业务系统,这些业务系统应该是上文中账号、认证、授权的交互对象和载体。
审计
审计本质上就是日志,日志需要记录用户的所有操作,包括主体、操作、客体、类型、时间、地点、结果等内容。根据不同的维度可以划分为不同的日志,如操作日志、登录日志、业务日志、系统日志等。
参考文章:
https://www.woshipm.com/it/4681031.html
https://www.zhihu.com/question/47888930