anxin-ruoyi/.kiro/specs/user-enterprise-identity-verification/requirements.md

9.2 KiB
Raw Permalink Blame History

Requirements Document

Introduction

本文档定义了用户企业认证、身份认证和员工实名认证二维码功能的需求。该功能将在现有的若依系统中添加企业认证和个人身份认证能力同时为员工管理模块添加基于CA服务的实名认证二维码机制并实现基于认证状态的权限控制。

Glossary

  • System: 若依企业管理系统
  • User: 系统用户,可以是企业管理员或普通用户
  • Employee: 员工,在员工管理模块中管理的人员
  • Enterprise_Verification: 企业认证,验证用户所属企业的合法性和真实性
  • Legal_Person_Verification: 法人身份认证通过CA服务验证法人身份以完成企业认证
  • Identity_Verification: 身份认证,验证用户个人身份信息的真实性
  • QR_Code: 二维码,用于快速扫描和认证的图形编码
  • Verification_Status: 认证状态,包括未认证、认证中、已认证、认证失败
  • CA_Interface: CA接口适配层用于对接外部CA服务的接口层
  • Super_Admin: 超级管理员,拥有所有系统权限的特殊用户角色

Requirements

Requirement 1: 用户企业认证

User Story: 作为系统用户我希望能够通过法人CA认证进行企业认证以便证明我所属企业的合法性并获得相应的系统权限。

Acceptance Criteria

  1. WHEN 用户访问个人信息页面 THEN THE System SHALL 显示企业认证入口和当前认证状态
  2. WHEN 用户提交法人CA认证申请 THEN THE System SHALL 验证企业信息和法人身份信息的完整性和格式正确性
  3. WHEN 法人CA认证信息验证通过 THEN THE System SHALL 通过CA接口适配层调用外部CA服务进行法人身份认证
  4. WHEN CA服务法人认证成功 THEN THE System SHALL 自动通过企业认证并更新认证状态为"已认证"
  5. WHEN CA服务法人认证失败 THEN THE System SHALL 返回具体的错误信息并保持认证状态为"未认证"
  6. WHEN 法人CA认证通过 THEN THE System SHALL 记录CA认证ID、认证时间和法人身份信息
  7. WHEN 企业认证被拒绝 THEN THE System SHALL 记录拒绝原因并允许用户重新申请

Requirement 2: 用户身份认证

User Story: 作为系统用户,我希望能够进行个人身份认证,以便证明我的真实身份并提高账号安全性。

Acceptance Criteria

  1. WHEN 用户访问个人信息页面 THEN THE System SHALL 显示身份认证入口和当前认证状态
  2. WHEN 用户点击"实名认证"按钮 THEN THE System SHALL 打开身份认证表单
  3. WHEN 用户提交身份认证申请 THEN THE System SHALL 验证身份信息的完整性和格式正确性
  4. WHEN 身份信息包含身份证号 THEN THE System SHALL 验证身份证号的格式和校验位
  5. WHEN 身份信息验证通过 THEN THE System SHALL 通过CA接口适配层调用外部CA服务进行身份认证
  6. WHEN CA服务身份认证成功 THEN THE System SHALL 加密存储身份证号并更新认证状态为"已认证"
  7. WHEN CA服务身份认证失败 THEN THE System SHALL 返回具体的错误信息并保持认证状态为"未认证"
  8. WHEN 身份信息验证失败 THEN THE System SHALL 返回具体的错误信息并保持认证状态为"未认证"
  9. WHEN 身份认证被拒绝 THEN THE System SHALL 记录拒绝原因并允许用户重新申请

Requirement 3: 员工实名认证二维码

User Story: 作为管理员我希望能够为员工生成实名认证二维码以便员工扫描二维码通过CA服务完成实名认证。

Acceptance Criteria

  1. WHEN 管理员在员工管理页面点击"实名认证"按钮 THEN THE System SHALL 生成包含员工ID、真实姓名、身份证号和时间戳的二维码
  2. WHEN 二维码生成成功 THEN THE System SHALL 在员工管理页面显示二维码并提供下载和打印功能
  3. WHEN 员工扫描二维码 THEN THE System SHALL 调用CA服务进行身份认证
  4. WHEN CA服务认证成功 THEN THE System SHALL 更新员工的认证状态为"已认证"并记录认证时间
  5. WHEN CA服务认证失败 THEN THE System SHALL 返回具体的失败原因并保持认证状态为"未认证"
  6. WHEN 二维码超过有效期 THEN THE System SHALL 拒绝认证并提示重新生成
  7. WHEN 生成二维码 THEN THE System SHALL 在二维码数据中包含明文的员工身份信息

Requirement 4: CA服务接口适配

User Story: 作为系统架构师我希望设计一个灵活的CA服务接口适配层以便在未来可以轻松对接不同的CA服务提供商。

Acceptance Criteria

  1. WHEN 设计CA接口适配层 THEN THE System SHALL 定义标准化的接口规范包括请求和响应格式
  2. WHEN 调用CA服务 THEN THE System SHALL 通过配置文件指定CA服务的接口地址和认证信息
  3. WHEN CA服务不可用 THEN THE System SHALL 返回友好的错误信息并记录日志
  4. WHEN 更换CA服务提供商 THEN THE System SHALL 只需修改配置和适配器实现无需改动业务代码
  5. WHEN 测试CA接口 THEN THE System SHALL 提供Mock实现用于开发和测试环境
  6. WHEN CA服务响应超时 THEN THE System SHALL 在30秒后超时并返回错误信息
  7. WHEN 记录CA服务调用 THEN THE System SHALL 记录请求参数、响应结果和调用时间用于问题排查

Requirement 5: 认证状态权限控制

User Story: 作为系统用户,我希望系统能够根据我的认证状态控制功能访问权限,以便确保只有认证用户才能使用关键业务功能。

Acceptance Criteria

  1. WHEN 未认证用户访问需要认证的功能 THEN THE System SHALL 在页面顶部显示醒目的认证提示横幅
  2. WHEN 认证提示显示 THEN THE System SHALL 包含企业认证和身份认证的状态及快速认证入口链接
  3. WHEN 未认证用户访问合同服务菜单 THEN THE System SHALL 阻止访问并显示认证要求
  4. WHEN 用户完成企业认证和身份认证 THEN THE System SHALL 自动解除访问限制
  5. WHEN 超级管理员账号未认证 THEN THE System SHALL 显示认证提示但允许直接访问所有功能
  6. WHEN 用户点击认证提示中的链接 THEN THE System SHALL 跳转到对应的认证页面
  7. WHEN 用户认证状态变更 THEN THE System SHALL 实时更新页面的权限控制和提示信息
  8. WHEN 系统检查权限 THEN THE System SHALL 验证用户的企业认证和身份认证状态都为"已认证"
  9. WHEN 配置需要认证的菜单 THEN THE System SHALL 支持通过配置文件指定哪些菜单需要认证才能访问

Requirement 6: 认证信息管理

User Story: 作为系统管理员,我希望能够查询和管理所有用户的企业认证信息,以便进行统一的认证管理。

Acceptance Criteria

  1. WHEN 管理员访问认证管理页面 THEN THE System SHALL 显示所有用户的企业认证状态
  2. WHEN 管理员筛选认证状态 THEN THE System SHALL 按照指定状态过滤显示结果
  3. WHEN 管理员查看认证详情 THEN THE System SHALL 显示完整的企业认证信息和CA认证历史
  4. WHEN 管理员导出认证数据 THEN THE System SHALL 生成包含所有企业认证信息的Excel文件
  5. WHEN 管理员搜索企业认证 THEN THE System SHALL 支持按用户姓名、企业名称、企业代码搜索
  6. WHEN 认证状态变更 THEN THE System SHALL 记录操作日志包括操作人、操作时间和变更内容

Requirement 7: 认证数据安全

User Story: 作为系统架构师,我希望确保所有认证数据的安全性,以便保护用户隐私和系统安全。

Acceptance Criteria

  1. WHEN 存储身份证号 THEN THE System SHALL 使用AES-256加密算法加密存储
  2. WHEN 传输认证数据 THEN THE System SHALL 使用HTTPS协议加密传输
  3. WHEN 访问认证数据 THEN THE System SHALL 验证用户权限并记录访问日志

Requirement 8: 认证通知机制

User Story: 作为系统用户,我希望能够及时收到认证状态变更的通知,以便了解认证进度。

Acceptance Criteria

  1. WHEN 用户提交认证申请 THEN THE System SHALL 发送确认通知给用户
  2. WHEN CA认证通过 THEN THE System SHALL 发送通过通知给用户
  3. WHEN CA认证被拒绝 THEN THE System SHALL 发送拒绝通知并说明原因
  4. WHEN 系统检测到异常认证行为 THEN THE System SHALL 发送安全警告给管理员
  5. WHEN 发送通知 THEN THE System SHALL 支持站内消息和邮件两种方式

Requirement 9: 前端界面集成

User Story: 作为前端开发人员我希望能够在现有的Vue3界面中集成认证功能以便用户可以方便地使用认证服务。

Acceptance Criteria

  1. WHEN 用户访问个人中心 THEN THE System SHALL 在个人信息页面显示企业认证和身份认证模块
  2. WHEN 显示认证模块 THEN THE System SHALL 使用清晰的UI展示认证状态和操作按钮
  3. WHEN 用户点击认证按钮 THEN THE System SHALL 打开认证表单对话框
  4. WHEN 用户填写认证表单 THEN THE System SHALL 实时验证输入数据的格式
  5. WHEN 管理员访问员工管理页面 THEN THE System SHALL 在员工操作列显示"实名认证"按钮和二维码
  6. WHEN 管理员访问认证管理页面 THEN THE System SHALL 提供认证列表、筛选、搜索功能
  7. WHEN 未认证用户访问受限功能 THEN THE System SHALL 在页面顶部显示认证提示横幅