浅谈Web开发中的IAM服务

613 阅读5分钟

IAM介绍

IAM是身份和访问管理(Identity and Access Management)的缩写。它是一种安全性管理框架,用于管理用户身份验证、授权和权限管理。IAM可以帮助组织确保只有经过授权的用户可以访问特定的资源和信息。通过IAM,管理员可以创建和管理用户、组、角色以及定义访问策略来控制用户对系统和资源的访问权限。核心流程如下图所示:

image.png 图中蓝色部分就是IAM的核心功能,主要包含以下几个模块,常被称为“4A”

  • 账号(Account)
  • 认证(Authentication)
  • 权限(Authorization)
  • 审计(Audit)

账号(Account)

账号通常是应用中的数字身份,可以是一个人或一个设备。不同的业务系统,账号数据结构差异很大,通常都会有有一个唯一标识。

IAM在认证模块,通常会解决几个问题:

  • 管理组织架构、部门、岗位等属性
  • 管理账号属性:如姓名、昵称、手机号、邮箱、密码、状态等字段;
  • 支持导入其他账号源,如:OA、钉钉、企业微信、飞书等IDP身份源,并支持关联已有账号;

账号是应用的基础模块,同时也是应用的重要资产。其安全性至关重要。我们应该重视在存储和传输等环节对账号信息进行处理。在存储敏感字段时,需要进行加密,例如密码、手机号、生日、身份证号等用户敏感信息。在传输敏感信息时,应该使用密文传输,比如使用https等安全协议。

认证(Authentication)

主要解决 “ 你是谁?” 的问题,一般会有三种维度提供凭证,安全等级依次升高:

静态口令:

密码、密保、身份证号等。

动态口令:

手机、邮箱、图形验证码,OTP等一次性。

生物身份:

指纹、声纹、人脸识别等。

其中两种以上的组合认证方式被称为MFA(Multi-Factor Authentication,多因素认证),在业界被广泛使用,能够提高应用的安全性。

为了进一步提供安全性,目前认证趋势从静态认证逐步转化为智能化认证,主要体现在以下几个方面:

  • 收集用户信息:收集用户的基本信息和行为数据,例如登录IP、设备信息、注册时间、历史操作记录等。
  • 建立用户画像:根据收集到的信息,建立用户画像,对用户进行分类和分级,判断用户的风险等级。
  • 设定阈值:根据用户画像,设定一系列阈值,例如登录失败次数、登录IP变化频率、交易金额等,超过阈值则触发风险控制措施。
  • 风险评估:通过算法模型对用户的风险进行评估,判断是否存在欺诈、恶意等行为。
  • 风险控制措施:当用户触发风险阈值或者被评估为高风险时,应该采取相应的风险控制措施,例如限制登录、冻结账户、拒绝交易等。
  • 数据分析和优化:通过对用户登录、操作、交易等行为数据的分析,优化风控策略,提高风控效果和准确性。

权限(Authorization)

主要解决 “ 你允许做什么?” 的问题。

访问鉴权时应用常用的安全机制,目标是确保 “ 合适的主体访问合适的资源”,以防止越权行为,从而保护数据的安全。

授权

权限分类

功能权限

功能权限分为页面和操作权限,解决 “能不能” 的问题。

页面权限指页面可见的按钮、菜单、导航栏等组件权限;

操作权限指模型数据的新增、更新、删除、查询、导入导出等操作

数据权限

数据权限分为行权限和列权限,解决 “看多少” 的问题。不同角色看到的数据行和列不一样。

权限模型

访问控制列表(ACL)

ACL是一种基于用户或用户组的权限控制方式,可以通过指定用户或用户组的权限来限制其对资源的访问。

角色基础访问控制(RBAC)

RBAC则是一种基于角色的权限控制方式,将用户划分为不同的角色,每个角色拥有不同的权限,从而简化了权限管理的复杂性。

image.png

基于属性的访问控制(ABAC)

ABAC通过动态计算一个或一组属性是否满足某种条件来进行授权判断,常用于公有云,不同场景下形态各异。

鉴权

鉴权是权限校验的过程。鉴权引擎根据当前访问主体和访问资源标识来判断是否具有权限。在要求较高的场景中,还可以根据环境条件进行动态判断。

image.png

审计(Audit)

主要解决 “你做过什么,在什么时候”的问题。

用户行为审计分析是记录和分析用户在系统中操作行为的方法,旨在监测和评估用户行为,发现潜在的安全风险、违规行为或异常活动。通过审计分析,可以帮助企业或组织提高系统的安全性和合规性。

用户行为审计分析主要包括登录和注销行为、数据访问、敏感信息操作、系统权限管理等。

实现过程一般分为日志收集、日志处理、日志查看三个环节,具体流程如下图所示:

image.png

通过对用户行为进行审计分析,可以帮助企业或组织建立完善的安全策略和控制措施,及时发现和应对潜在的风险和威胁。同时,用户行为审计分析也可以作为安全合规性的证据,用于满足法规和合规要求。