TOPIAM 统一认证身份管理平台
# 产品介绍
随着企业信息化程度的提升,身份认证和访问控制成为系统安全的基石。企业及项目非常需要一套专业、安全、易用的统一身份认证平台产品,为了解决这一需求,JeeSite 与 TOPIAM 强强联手,为 JeeSite 用户提供了一款功能强大、安全可靠且易于多系统集成的统一身份认证平台。
TOPIAM(Top Identity and Access Management) 是一款专注于身份和访问管理(IAM)的领先产品,其丰富的认证与授权功能、强大的安全性能以及高可用性,能够有效满足企业级应用的安全需求。通过采用 TOPIAM,企业可以减少自行开发统一身份认证平台的工作,节省开发成本缩短项目周期,更加专注于自身核心业务功能。
- 优秀的身份管理与访问控制系统,广泛应用于政府、企业内部、教育机构等身份认证场景。
- 作为一款专注于身份管理与访问控制场景的软件产品,TOPIAM 支持 OIDC、OAuth2、SAML2、JWT、CAS 等主流认证协议,并能够集成钉钉、企业微信、飞书、LDAP、AD 等多种身份源,轻松实现用户全生命周期管理与数据同步。
- 在认证方面,TOPIAM 支持用户名密码、短信/邮箱验证码等常规认证方式,并能集成钉钉、飞书、微信、企业微信、QQ 等社交平台登录,让用户能够通过常见平台便捷登录,从而显著提升用户体验。
- 在安全性方面,TOPIAM 提供多因素认证、防暴力破解、会话管理、密码策略等能力,提升系统安全性。
- 在审计方面,TOPIAM 提供全面的行为审计功能,详尽记录用户行为,发现潜在安全风险并及时采取防范措施,确保合规性和安全性。
- 在信创方面,TOPIAM 全面支持从 CPU、操作系统、中间件、数据库、浏览器、国密算法的兼容适配,满足自主可控的技术需求。
通过 TOPIAM,企业和团队能够快速实现统一的内外部身份认证,并集成各类应用,实现“一个账号、一次认证、多点通行”的效果,强化企业安全体系,提高组织管理效率,提升用户体验,助力企业数字化升级转型。
# 核心特性
- 提供统一组织信息管理,多维度建立对应关系,实现在一个平台对企业人员、组织架构、应用信息的高效统一管理。
- 支持钉钉、飞书、企业微信等身份源集成能力,实现系统和企业 OA 平台数据联动,以用户为管理基点,结合入职、离职、调岗、兼职等人事事件,关联其相关应用权限变化而变化,保证应用访问权限的安全控制。
- 支持多因素认证,行为验证码、社交认证,融合认证等机制,保证用户认证安全可靠。
- 支持微信、微博、QQ 等社交认证集成,使企业具有快速纳入互联网化认证能力。
- 支持 SAML2,OAuth2,OIDC,CAS,表单代填等认证协议及机制,实现单点登录功能,预配置大量 SaaS 应用及传统应用模板,开箱即用。
- 完善的安全审计,详尽记录每一次用户行为,使每一步操作有据可循,实时记录企业信息安全状况,精准识别企业异常访问和潜在威胁的源头。
- 提供标准 REST 和 SCIM2.0 接口轻松完成机构用户同步,实现企业对于账号生命周期的精细化管理。
- 信创生态兼容、安全、自主可控。
# 在线演示
- TOPIAM 统一身份认证平台演示:https://demo.topiam.cn (opens new window)
- JeeSite 集成 TOPIAM 演示:https://jeesite.topiam.cn (opens new window)
# 产品咨询
扫一扫下面的二维码图案,加我微信
添加时请备注贵公司名称和称呼;微信号:jeesitex
| QQ:1766571055 | 邮箱:jeesite@163.com
提示:有时会收不到好友申请验证,如果联系不上,请发邮箱,填写微信或电话,我们主动与您联系。
本软件已申请知识产权保护,请选择正规购买渠道,否则一经发现我们将追究法律责任。
# 系统架构
提示
安全性是统一身份认证平台(IAM)产品的核心诉求,是保障用户身份和权限管理安全可靠的基石。TOPIAM 在设计与开发过程中,并没有选择“自己造轮子”,而是采用了业界成熟且稳定的技术栈,确保系统的高安全性、稳定性和扩展性。
# 1. 基于成熟的技术栈
Java 编程语言:TOPIAM 服务端采用 Java 编程语言编写,这是一种广泛应用于企业级开发的编程语言,具有以下优势:
- 安全性强:Java 提供内置的安全功能,如沙箱模型和内存管理机制,能有效防止常见的安全漏洞。
- 稳定性和可扩展性:Java 的多线程和高性能特性使其能够支持大规模的并发请求。
- 跨平台性:Java 的“Write Once, Run Anywhere”特性,使 TOPIAM 能够运行在各种主流操作系统和部署环境中(如 Docker、Kubernetes)。
基于 Spring 生态:TOPIAM 基于 Spring 生态进行开发,充分利用 Spring Framework 和其周边技术组件的能力,包括:
- Spring Boot:用于快速构建微服务架构,提供配置化的开发体验。
- Spring Security:负责实现身份认证与权限管理,支持主流安全协议(如 OAuth2、OIDC)。
- Spring Data:用于数据持久化,方便与关系型数据库(如 MySQL、PostgreSQL)和分布式缓存(如 Redis)的集成。
- Spring Cloud:支持分布式系统的服务发现、配置管理、负载均衡和容错处理。
基于 React、Ant Design、Umi 前端技术栈
TOPIAM 前端采用了业界广泛认可的现代化技术栈,包括 React、Ant Design 和 Umi,提供了快速、高效且易维护的开发体验,具体优势如下:- React:
- 强调组件化开发,提升代码的复用性和维护性。
- 提供高性能的虚拟 DOM 技术和渐进式更新机制,确保复杂交互界面的流畅性。
- 社区生态活跃,配套工具丰富。
- Ant Design 5:
- 企业级 UI 组件库,内置丰富的界面组件和完整的设计规范,适合开发专业的后台管理系统。
- 提供动态主题切换和 CSS-in-JS 功能,提升项目的主题定制能力。
- 由蚂蚁集团体验技术部开发并维护,广泛应用于多个大型企业场景。
- Umi.js:
- 提供约定式路由、插件化架构和内置的工程化能力(如热更新、打包优化),极大提高开发效率。
- 支持微前端架构,便于大规模前端项目的模块化和协作开发。
- 蚂蚁集团的底层前端框架,已直接或间接地服务内部 10000+ 应用,包括 Java、Node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用、Electron 应用、Serverless 应用等。
- 被大厂广泛使用:淘系、飞猪、阿里云、字节、腾讯、口碑、美团等。
- React:
# 2. Spring Security
Spring Security 是业界公认的成熟、安全的框架,提供了一系列强大的安全功能,广泛应用于企业级应用的身份认证和权限管理。自2003年由 Ben Alex 发起以来,Spring Security 已经发展了20多年,积累了丰富的实践经验并不断优化。
Spring Security 在设计时注重灵活性和可配置性,使其能够适应各种复杂的安全需求。它不仅能够满足传统的 Web 安全需求,还支持现代微服务架构中的认证与授权管理,是保障系统安全的坚实基础。
TOPIAM 将其深度集成到系统中,用于实现以下安全能力:
- 认证与授权:支持用户名/密码、多因素认证(MFA)、单点登录(SSO)等。
- 安全策略管理:内置 CSRF 防护、密码加密、跨站脚本防护(XSS)等机制。
- 协议支持:支持 OAuth2 和 OpenID Connect 等开放标准,便于与第三方系统无缝对接。
- 扩展性:可根据具体业务需求自定义过滤器和安全规则。
# 3. 采用标准化协议
TOPIAM 支持 OAuth 2.0、OpenID Connect(OIDC)、SAML、CAS 等国际标准协议。通过这些协议,TOPIAM 不仅实现了统一身份认证和单点登录,还能与主流 SaaS 应用和企业系统无缝集成,避免使用私有协议带来的兼容性问题。
# 4. 降低开发与维护成本
借助 Spring 生态和 Java 技术栈,TOPIAM 不需要重新开发底层基础功能,而是利用这些成熟的技术框架实现快速开发。这种方法带来了多重优势:
- 高效开发:开发团队可以专注于业务逻辑,而不是底层安全模块的实现。
- 稳定性保障:Spring 生态经过长期验证,能够提供企业级的可靠性和安全性。
- 维护便捷:通过借助 Spring 社区的广泛支持,TOPIAM 可以快速迭代、修复漏洞并升级到最新的技术版本。
# 5. 面向未来的架构
TOPIAM 的架构设计不仅基于当前的技术最佳实践,还充分考虑了未来扩展的需求。其基于 Spring 生态和 Java 编程语言的架构具备以下特性:
- 模块化和可扩展性:采用模块化架构设计,方便添加新功能模块或升级现有模块。
- 高并发和高可用性:支持分布式部署和负载均衡,能够适应企业级大规模用户场景。
- 安全合规性:符合主流安全标准,能够满足企业的合规需求,如等保三级标准。
- 云原生支持:TOPIAM 架构全面支持云原生应用,能够在各大云平台(如 AWS、Azure、阿里云等)上无缝部署。支持容器化部署,兼容 Kubernetes 等容器编排平台,通过自动化的部署和扩展策略,使得系统具备更好的弹性和容错能力。
# 专业术语
提示
在科技领域,学习新知识最大的障碍就来自于「术语」,当你试图去了解一个新概念时,大量的术语将会对你的理解造成阻碍。本文将会解释 TOPIAM 统一身份认证平台中的常用术语,以期能帮助你尽快熟悉在 TOPIAM 中涉及到的知识。
# EIAM
Enterprise Identity Access Management,企业员工身份管理系统、传统意义上的统一身份认证平台、IAM 系统、4A 平台。面向企业内部 ToE 员工、实习生、临时工与 ToB 合作伙伴、供应商、门店职工的身份管理。
# 身份源
TOPIAM 支持企业从多种系统导入用户和机构信息,实现将多个系统汇聚为一个完整的用户目录,便于在 TOPIAM 中统一管理,这些系统就称为身份源。目前 TOPIAM 支持的身份源有企业微信、钉钉、飞书。
# 身份提供商
TOPIAM 支持用户使用第三方系统的帐号、密码等进行登录。企业可以根据需要添加并使用认证源,如微信、微博等个人社交认证,钉钉、企业微信等企业社交认证,也可以使用支持CAS、SAML2.0、OAuth2.0、OIDC协议的本地身份认证系统进行认证。
# 单点登录
单点登录 Single Sign-On。指用户仅需一次登录,即可访问全部应用的实现,在历史中根据应用变化,SSO 也有多种实现形态。在 TOPIAM 的语境中,我们只把基于 SAML、OIDC 等标准协议的身份联邦机制,称为单点登录。
# 单点登出
单点登出(Single Log-Out)是指用户从单点登录系统中登出时,会同时从所有已登录的相关系统或应用中登出。想要完成单点登出的效果,必须有一个唯一身份源,其他业务系统必须配合完成改造和对接,主要是处理来自身份源的登出回调,并将自己的登录态释放。
# 多因素验证(MFA、二次认证)
Multi-Factor Authentication 多因素认证、Two-Factor Authentication 双因素/二次认证,指在登录时需要提供多种身份认证因子,交叉确认访问者身份。由于密码天然的安全弱点,通常用于加强账号+密码登录方式。TOPIAM 中支持对账密认证开启短信、邮件或动态令牌(OTP)二次认证。
# 应用
应用是指在 TOPIAM 上进行统一管理和授权的第三方系统。包含标准协议及定制协议。
# 应用账户
Application User,指在单点登录时,已登录 TOPIAM 账户在目标应用中所扮演的身份。举例:admin(TOPIAM 账户)在“运营平台”应用中是 admin(应用账户)。TOPIAM 支持多种应用账户与 TOPIAM 账户的关联方式。在同一个应用中,当同时可扮演多个身份时,用户需要选择一个身份进行访问。
# OTP
One Time Password 动态口令,一次有效的验证码机制。最常用的 OTP 为 TOTP(Time-based One-Time Password),通常 30s 一变,服务端和客户端(APP)需提前对齐种子、提前校对时间。在同一时间窗口内,客户端(APP)计算的动态口令(OTP)应与服务端一致,从而通过认证。
# IDP
Identity Provider,身份提供方,即 TOPIAM。源自于 SAML 协议中定义,IdP 为进行用户认证、鉴权,并返回 SAML Response 结果信息给 SP 的身份提供方,后通用化指统一身份管理平台。在当前场景中,TOPIAM 即是 IdP。
# SP
Service Provider,服务提供方,即应用。源自于 SAML 协议中定义,SP 为接收 IdP 返回结果的解析方,后通用化指接入 IdP 的应用。
# AD
微软 Active Directory,微软用于企业办公场景中,对组织、账户、权限进行管理的组件,可单独部署。由于其极广的适用性,很多现代应用也支持 AD 作为其账号体系。由于 AD 普遍存在的体验和兼容性问题,通常企业会寻找其他身份方案,比如 TOPIAM。
# LDAP
Lightweight Directory Access Protocol,轻量级目录访问协议,最常用于和 AD、OpenLDAP 企业目录进行交互,但同样采用与 Apache Directory 等其他系统。
# OpenLDAP
广泛使用的,开源的基于 LDAP 协议的开源身份目录。
# SCIM
System for Cross-domain Identity Management,跨域身份管理系统,专用于不同系统之间账户、组织同步的国际通用规范,国内外有大量应用支持接收 SCIM 协议同步请求,以实现不同系统身份的互用性 Interoperability。
# SAML
Security Assertion Markup Language 安全断言标记语言,基于 XML,全球使用广泛的单点登录协议,相较 OIDC 而言较为复杂。TOPIAM 支持 SAML 2.0。
# OIDC
OpenID Connect。OIDC 协议于 2014 年发布,结合了 OpenID 认证协议和 OAuth 2.0 授权协议的优势,是全球通用的现代身份联邦协议,用于实现 SSO、鉴权、委托认证等场景。
# OAuth 2.0
授权协议,虽不是为了 SSO 设计,但也经常用于实现 SSO。由于 OIDC 协议基于 OAuth 2.0 协议实现,两者很多支持的模式是互通的。
# JWT
Json Web Token(RFC7519) 狭义上是一种基于 JSON 的信息传输格式。由于传输的内容支持签名和加密,在中国 IAM 语境中,JWT 又经常代表一种简化的、部分基于 OIDC 隐式流的单点登录实现方式。
# CAS
Central Authentication Service。全球通用的单点登录协议,支持 B/S 网页应用。
# access_token
access_token
是授权令牌,用于调用 IdP 提供的接口。
# id_token
id_token
是身份令牌,可通过解析 id_token
内容,获取当前已登录账户信息。
# refresh_token
refresh_token
是刷新令牌,在 access_token
令牌过期后,可以使用 refresh_token
获取新令牌。
# 安全可靠
作为 IAM 系统,我们深知安全可用性是产品的根本,也是企业用户信赖和使用的关键。在我们的设计和开发过程中,我们将安全性置于首要位置,并致力于提供简单、直观且安全的用户体验。
# 密码安全
# 密码支持 bcrypt
加密算法
bcrypt
是一种密码哈希函数,旨在保障密码存储的安全性。它采用了基于 Blowfish 密码散列函数的密码哈希算法,并结合了盐(salt)的概念,以提高密码的安全性和抵御暴力破解攻击的能力。
bcrypt
的核心特性和优势包括:
密码安全性:
bcrypt
基于 Blowfish 密码散列函数,这是一种被广泛认可且安全性高的加密算法。它提供了足够的安全性,能够有效地抵御常见的密码破解技术,包括彩虹表攻击和暴力破解攻击。加盐机制:
bcrypt
在哈希密码之前,会将随机生成的盐值与密码进行混合。盐的引入增加了密码哈希的复杂性,即使相同的密码在数据库中存储的哈希值也会因为不同的盐而产生不同的结果。这种加盐机制有效地防止了彩虹表攻击,使得破解者需要针对每个哈希值分别进行攻击。可调节的计算成本:
bcrypt
允许调节所谓的 cost factor,即计算哈希值所需的迭代次数。通过增加 cost factor,可以增加密码哈希函数的计算成本,从而增加了破解密码的难度。这种灵活性使得开发者可以根据实际需求平衡安全性和性能之间的权衡。可移植性: 由于
bcrypt
是一个标准的密码哈希函数,并且已经被广泛实现和应用于多种编程语言和平台,因此它具有很高的可移植性。无论是在 Web 开发、移动应用还是企业级系统中,都可以轻松地集成和使用bcrypt
。简单易用: 尽管
bcrypt
提供了强大的密码哈希安全性,但是对于开发者来说,使用bcrypt
也是相对简单的。通常只需调用相应的库函数即可完成密码的哈希处理,无需过多的复杂配置和实现细节。
# 密码支持 sm3 国密加密算法
SM3 是中国国家密码管理局发布的密码杂凑算法,属于哈希函数的一种。
SM3 具有以下优势:
安全性高: SM3 是经过严格的密码学分析和安全性评估的,其设计考虑了当前密码学攻击的各种技术和手段,能够抵御常见的密码攻击,如碰撞攻击、预映像攻击等。因此,SM3 在安全性方面能够满足大多数应用场景的要求。
国际标准兼容性: SM3 算法是中国国家密码管理局发布的密码杂凑算法标准,符合国际密码学标准化组织的相关标准和规范。它与国际上常用的哈希函数算法(如 SHA-256、SHA-3 等)兼容,并且可以作为其替代方案在各种应用中使用。
性能优越: SM3 在设计时考虑了在硬件和软件上的实现效率,采用了高效的算法结构和优化技术,具有较快的运算速度和较低的资源消耗。这使得 SM3 在各种计算平台上都能够以较高的性能进行哈希计算。
密码杂凑标准化: SM3 是中国国家密码管理局发布的密码杂凑算法标准,得到了政府和行业的广泛认可和应用。这使得 SM3 成为了中国国内各种密码应用系统的首选算法,为密码安全提供了可靠的保障。
适用性广泛: 由于其安全性高、性能优越、国际标准兼容性好等特点,SM3 算法被广泛应用于各种密码学应用场景,包括数字签名、消息认证码、证书认证、密钥派生等领域。它在网络通信、电子商务、金融支付、政府信息安全等领域都有重要的应用价值。
# 数据加密
对于数据库内敏感字段数据,支持多种加密算法 SHA256/512、 AES256、MD5、国密算法,对敏感数据进行加密存储。
# 密码策略
为不同用户群体细粒度配置密码策略规则可优化系统安全性和用户体验。通过此优化,管理员可根据不同用户需求、权限和风险程度定制密码策略,如密码复杂度、长度、过期时间等。这种个性化设置提高了系统的灵活性和安全性,减少了管理成本,同时满足了用户的实际需求,增强了用户对系统的信任感。
密码策略功能的优势:
提高密码安全性: 强制用户设置符合一定复杂度要求的密码,例如长度、包含大写字母、小写字母、数字和特殊字符等。可以降低密码被猜测或者暴力破解的可能性,从而提高密码的安全性。
减少密码泄露风险: 通过密码策略功能,可以设置密码过期时间,强制用户定期更改密码。这样即使密码被泄露,也有限制其有效期的机制,减少密码泄露风险。
防范社会工程学攻击: 可以禁止用户设置过于简单的密码,如常见的密码、重复字符等。可以防止利用社会工程学手段猜测或者获取用户密码的攻击。
符合合规要求: 许多行业和政府机构对密码安全性有严格的要求,如金融、医疗、政府部门等。通过实施密码策略,可以确保系统满足合规要求,避免因密码泄露导致的法律责任和业务损失。
提升用户密码意识: 通过设置密码复杂度要求、密码过期提醒等方式,增强用户对密码安全的意识。用户在设置和管理密码时会更加重视密码的安全性,从而减少密码被攻击的可能性。
# 认证策略
支持细粒度配置登录认证相关策略。用于控制谁可以登录、谁不能登录,在何种环境下允许用户登录,在何种环境下不允许用户登录,是否需要MFA验证。
# 多因素认证
二次认证,也称为多因素认证,是一种身份验证方法,要求用户在登录或访问敏感信息时除了提供密码外,还需要提供第二个或多个验证因素,以增加身份验证的安全性,这种方法有效地降低了恶意攻击者利用盗取或猜测密码的方式入侵系统的风险。
目前 TOPIAM 支持如下二次认证方式:
短信验证码: 系统向用户注册的手机号发送一次性验证码,用户需要在登录时输入正确的验证码。
手机应用生成的动态验证码: 用户在手机上安装认证应用,每次登录时生成一个动态验证码。
硬件令牌: 用户携带一种物理硬件设备,如 USB 密钥或智能卡,需要在登录时插入或使用该设备生成验证码。
生物特征识别: 系统通过扫描用户的指纹、虹膜或人脸等生物特征进行身份验证。
# 连续登录失败锁定
连续登录失败锁定可以有效防止恶意用户使用暴力破解技术尝试多次登录,在一定次数的失败尝试后,系统会自动锁定账户,使得进一步尝试登录变得无效。通过限制连续登录失败的次数和锁定账户的时长,可以降低系统受到暴力破解的风险,增加系统的安全性。符合安全标准和法规。
这一机制具有以下优势:
防止暴力破解: 连续登录失败锁定可以有效防止暴力破解攻击。攻击者通常会使用自动化工具进行大量的登录尝试,连续登录失败锁定可以限制攻击者的尝试次数,增加破解密码的难度。
保护账户安全: 连续登录失败锁定可以保护用户账户安全,防止被未经授权的人员尝试登录用户账户。即使密码被泄露,攻击者也无法通过大量的尝试来破解密码。
降低账户被盗风险: 连续登录失败锁定减少了账户被盗的风险。即使攻击者获得了账户的用户名和密码,他们也无法通过大量的登录尝试来获取对应账户的访问权限。
# 细粒度行为审计
对系统中的用户行为、管理员进行详细、精细的记录和监控,包括管理员用户、普通用户的操作、访问、修改等行为,以及相关的时间、地点、终端信息等。通过对用户行为的审计和监控,实现对系统安全性、合规性和运行状态的全面把控和管理。
细粒度行为审计具有多方面的优势和好处:
安全威胁检测: 细粒度行为审计可以实时监测用户的行为,及时发现异常活动和安全威胁,并采取相应的响应措施,帮助防止潜在的安全事件和数据泄露。
减少安全风险: 帮助组织识别和弥补系统中的安全漏洞和风险,提高系统的整体安全水平,减少潜在的安全威胁和攻击风险。
合规性要求满足: 许多法规、标准和合规性要求(如GDPR、HIPAA等)要求对用户行为进行详细审计和记录。通过细粒度行为审计,组织可以满足这些合规性要求,避免可能的法律责任和罚款。
追溯与调查能力: 细粒度行为审计记录了用户在系统中的每一个操作和行为,可以帮助组织追溯和调查安全事件、数据泄露等问题,分析事件原因并采取有效措施。
增强监管能力: 通过审计日志分析用户行为,管理人员可以全面监管系统的运行情况,实现对员工和系统操作的有效管理和控制。
优化访问控制策略: 通过审计日志分析用户行为,可以了解用户的访问习惯和需求,帮助优化访问控制策略,提高系统的安全性和效率。