一飞开源,介绍创意、新奇、有趣、实用的免费开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!一、开源项目简介 TopIAM 数字身份管控平台,简称:EIAM(Employee Identity and Access Management), 用于管理企业内员工账号、权限、身份认证、应用访问,帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份,实现一个账号打通所有应用的服务。二、开源协议 使用AGPL-3.0开源协议三、界面展示页面展示 仅展示部分UI页面管理端 门户端 四、功能概述产品价值 传统企业 IT 大多采用烟囱式建设方式,各系统独立建设账号体系、权限体系,当企业团队人数达到数十人至数百人时,由于系统数量多,在账户、密码、权限管理上会出现瓶颈。员工入职、离职,转岗都需要进行账号权限分配等此类管理,操作低效、功能重复、价值低,员工需要记录多套系统密码,容易出现安全问题,导致数据外泄。用户身份认证安全存疑,敏感系统缺乏严格的身份认证机制。 EIAM 提供一套集中式账号、权限、认证、应用、审计等,帮助企业打通身份数据孤岛,实现用户全生命周期,实现一个账号打通所有应用的服务,强化企业安全体系,提升组织管理效率,助力企业数字化转型升级。核心特性提供统一组织信息管理,多维度建立对应关系,实现在一个平台对企业人员、组织架构、应用信息的高效统一管理。支持钉钉、飞书、企业微信等身份源集成能力,实现系统和企业OA平台数据联动,以用户为管理基点,结合入职、离职、调岗、兼职等人事事件,关联其相关应用权限变化而变化,保证应用访问权限的安全控制。支持多因素认证,行为验证码、社交认证,融合认证等机制,保证用户认证安全可靠。支持微信、微博、QQ等社交认证集成,使企业具有快速纳入互联网化认证能力。支持 SAML2 ,OAuth2 ,OIDC ,CAS ,表单代填等认证协议及机制,实现单点登录功能,预配置大量 SaaS 应用及传统应用模板,开箱即用。完善的安全审计,详尽记录每一次用户行为,使每一步操作有据可循,实时记录企业信息安全状况,精准识别企业异常访问和潜在威胁的源头。提供标准REST 和SCIM2.0 接口轻松完成机构用户同步,实现企业对于账号生命周期的精细化管理。开源、安全、自主可控。五、技术选型技术架构 前端技术栈:ES6 、React 、TypeScript 、UmiJS 、Axios 、Ant Design ; 后端技术栈:JDK11 、Spring Boot 、Spring Data 、Spring Security 、Elasticsearch 、Redis 、MySQL ; JDK11 是继JDK8后又一个长期支持版本(LTS) 。 2018年9月25日,Oracle 官方宣布 Java 11 正式发布。 JDK11 主要是亮点是GC优化提升,引入两种GC分别是Epsilon GC和ZGC, 特别是ZGC,虽然其目前还是实验特性,但这是JDK一个巨大突破,引入HTTP/2 Client API,提供安全类库以及标准等方面的大范围提升(TLS1.3),还有JDK11 逐渐进行瘦身工作,偿还JVM、Java 规范等历史债务。 JDK 11 新特性 181:基于嵌套的访问控制 309:动态类文件常量 315:改进 Aarch64 内在函数 318:Epsilon:无操作垃圾收集器 320:删除 Java EE 和 CORBA 模块 321:HTTP 客户端(标准) 323:本地变量Lambda 参数的语法 324:与 Curve25519 和 Curve448 的密钥协议 327:Unicode 10 328:飞行记录器 329:ChaCha20 和 Poly1305 加密算法 330:启动单文件源代码程序 331:低开销堆分析 332:传输层安全 (TLS) 1.3 333:ZGC:可扩展的低延迟垃圾收集器(实验性) 335:弃用 Nashorn JavaScript 引擎 336:弃用 Pack200 工具和 API Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。 Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业 Key-Value - 集成了 Redis 和 Riak ,提供多个常用场景下的简单封装 Document - 集成文档数据库:CouchDB 和 MongoDB 并提供基本的配置映射和资料库支持 Graph - 集成 Neo4j 提供强大的基于 POJO 的编程模型 Graph Roo AddOn - Roo support for Neo4j JDBC Extensions - 支持 Oracle RAD、高级队列和高级数据类型 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能 Mapping - 基于 Grails 的提供对象映射框架,支持不同的数据库 Examples - 示例程序、文档和图数据库 Guidance - 高级文档 常见问题 身份源同步 上游用户信息发生修改,同步时与本地现有数据字段冲突,同步失败,组织关系会修改吗? 会修改,由于数据值等问题导致用户信息修改失败,不会影响用户组织关系修改。 SAML2 相关 SPSSODescriptor.AuthnRequestsSigned 和 IDPSSODescriptor.WantAuthnRequestsSigned ? SP SSO 描述符描述了服务提供者配置。 IdP SSO 描述符描述身份提供者配置。 SPSSODescriptor 中的 AuthnRequestsSigned 标志指定 SP 将对发送给 IdP 的身份验证请求进行签名。 IdPSSODescriptor 中的 WantAuthnRequestsSigned 标志指定 IdP 希望接收 SP 签名的身份验证请求。 EntityDescriptor.ValidUntil 是否与签名或加密证书的到期日期相同? ValidUntil 指示 SAML 元数据的有效期。例如,这可以用作根据有效期自动检索新 SAML 元数据的自动化系统的一部分。这与签名或加密证书的任何到期日期无关。 OAuth2 AccessToken 为什么不是JWT 形式? 安全考虑,系统设计 accessToken 形式为 reference ,对于外部环境 reference token 的生命周期可以有完整的控制。 六、源码地址 访问一飞开源:https://code.exmay.com/