需求背景:新做一个系统,需要支持基于组织架构的多租户管理方案
平台管理员(Platform Admin)是整个系统的超级权限用户,用于管理租户、分配资源、配置系统参数,其账号安全至关重要。
一、账号角色与租户关系说明
字段 | 说明 |
---|---|
username | 平台管理员登录账号 |
password | 登录密码(加密存储) |
role | PLATFORM_ADMIN |
tenant_id | 设为 NULL ,表示不隶属于任何租户 |
is_active | 账号是否启用 |
二、账号设置方式
✅ 1. 初始化脚本插入账号(推荐)
- 在系统首次部署或数据库初始化时,通过 SQL 或迁移工具插入平台管理员账号。
INSERT INTO t_user (id, username, password, role, tenant_id, is_active)
VALUES ('uuid', 'admin', '$2a$10$abc...', 'PLATFORM_ADMIN', NULL, true);
password
使用 BCrypt 加密,严禁明文存储。
✅ 2. 启动时配置文件注入账号(自动化部署友好)
platform:
admin:
username: admin
password: SuperSecurePassword123!
- 应用启动时检查是否存在平台管理员账号:
- 若不存在,则读取配置创建;
- 若存在,则跳过插入。
✅ 3. 第一次登录强制修改密码
- 初始密码应为临时密码;
- 登录后提示用户必须设置新密码;
- 新密码需符合强密码规则。
✅ 4. 只读脚本 + 手工注入(适用于严格安全审计环境)
- 提供
init-platform-admin.sh
脚本,需手工运行; - 脚本应包含一次性加密处理和权限校验。
三、账号安全性设计与管理建议
安全措施 | 说明 |
---|---|
✅ 强密码策略 | 最少 12 位,含大写、小写、数字和特殊字符 |
✅ 密码加密存储 | 使用 BCrypt、Argon2、PBKDF2 等算法 |
✅ 首次登录强制改密 | 防止默认密码泄露 |
✅ 多因素认证(MFA) | 支持 TOTP(如 Google Authenticator)或短信 |
✅ 登录失败锁定机制 | 连续失败 5 次锁定账号,防止爆破 |
✅ IP 白名单限制登录 | 仅允许特定 IP 或网段访问后台管理 |
✅ 审计日志 | 所有登录、配置变更、租户操作记录 |
✅ 账号不可删除/降权 | 平台管理员账号受保护,不可删除或更改角色 |
四、维护与后续处理建议
- 禁止使用“admin/123456”类弱密码;
- 定期要求密码更新(如每 90 天);
- 为关键操作启用操作确认(如二次验证码);
- 限制平台管理员操作范围,如需支持操作分工,可设计多个子权限角色(如运维、财务、风控);
- 多环境部署(开发、测试、生产)应使用不同的管理员账号和权限策略。