# MIS **Repository Path**: cuizhexin/mis ## Basic Information - **Project Name**: MIS - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-01 - **Last Updated**: 2024-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 现状分析与改进方案 ## 1. 现状 ### 1.1 身份认证 - **内部系统**:多采用B/S架构,身份认证方式包括: - 基于IIS的Windows身份认证 - LDAP的Windows AD账号密码认证 - 自定义账号+密码(适用于没有Windows AD的部分成员) - **外部系统**:部署在DMZ区,通过企业微信应用提供服务,并采用企业微信进行身份认证。 ### 1.2 权限管控 - 各系统的权限管控由各自开发者独立实现,实现方式多样。 ### 1.3 员工异动 - 入职或离职操作通过特定系统触发,主要通过以下两种方式通知下游业务: - 数据库层面的定时同步,下游业务系统轮询处理 - 主动调用下游业务系统的相关接口 ### 1.4 组织异动 - HR负责维护组织结构,通过以下两种方式通知下游业务: - 数据库层面的定时同步,下游业务系统轮询处理 ## 2. 痛点 ### 2.1 身份验证 - 缺乏统一的SSO服务,每个系统都需要单独实现登录逻辑。 - 主要依赖IIS的Windows身份认证,对于非C#开发的语言,需要额外部署一个C#应用来实现SSO。 - 前后端分离项目无法使用Linux负载均衡,因为代理会导致Windows身份认证失效。 ### 2.2 权限管控 - 各系统都有自己的权限控制逻辑,实现方式各异。 - 当员工离职、异动或组织变化时,需要重新部署代码或手动维护角色成员。 - 角色管理复杂,权限变更不及时,开发和运维成本增加。 ### 2.3 员工入离职系统与下游业务耦合 - 入离职系统与下游业务系统之间存在紧密耦合,导致维护困难。 ### 2.4 异动处理 - 员工和组织异动后,通过定时任务写入数据库,下游业务系统再进行轮询处理。 - 一旦出现问题,需要逐层追溯数据流向,运维成本高。 ## 3. 需求或预期(私有化部署) ### 3.1 统一的SSO - **解决各系统重复开发登录模块的问题**:通过统一的SSO平台,消除各个系统独立实现登录模块的需求,提高开发效率。 - **解决不同开发语言的身份认证问题**:SSO平台应支持多种开发语言,确保不同语言开发的应用都能无缝集成身份认证功能。 ### 3.2 基于ABAC的权限管控 - **实现更灵活的权限控制**:引入基于属性的访问控制(ABAC),使权限分配更加灵活,可以根据用户的属性(如部门、职位等)动态调整权限。 - **支持及时的权限变更**:当员工发生异动时,权限可以自动更新,无需手动干预。 - **权限管控可根据系统及其所属部门进行数据权限隔离**:确保不同部门的数据权限隔离,避免数据泄露和误操作。 ### 3.3 提升开发效率,减少运维耗时,降低系统耦合 - **减少重复开发工作**:通过统一的SSO和权限管理平台,减少重复开发登录和权限控制模块的工作量。 - **简化权限管理流程**:通过集中式的权限管理系统,简化权限管理流程,降低开发和运维成本。 - **降低系统之间的耦合度**:通过解耦入离职系统与下游业务系统,减少系统间的耦合,提高系统的灵活性和可维护性。 ### 3.4 支持企业内部云原生K8s容器化部署 - **动态扩展能力**:支持Kubernetes容器化部署,实现动态扩展能力,适应云原生环境下的部署需求。 - **提高系统可用性和可靠性**:通过Kubernetes集群管理和自动化运维,提高系统的可用性和可靠性。 ### 3.5 安全需求 - **身份验证安全性**:确保身份验证过程的安全性,防止身份冒用和攻击。 - **数据传输加密**:所有敏感数据传输需采用加密协议(如HTTPS),确保数据传输的安全性。 - **访问控制**:实施严格的访问控制策略,确保只有授权用户能够访问敏感资源。 - **审计日志**:记录所有登录和权限变更操作,以便进行安全审计。 - **定期安全评估**:定期进行安全评估和漏洞扫描,确保系统的安全性。