MONI后台管理系统-系统三员的设计

前言: 本项目设计立足于等保测评(国家信息安全等级保护三级认证),国家信息安全等级保护三级认证中的"三员管理"是指为了确保信息系统的安全性、稳定性和可靠性,而设立的系统管理员、安全管理员和审计管理员三个独立角色的管理制度。这种制度通过权限分离和职责分工,减少了单一管理员可能带来的风险,增强了系统的安全性。

系统管理员(配置):

  • 主要负责系统的日常运行维护工作。包括网络设备、服务器和用户终端、操作系统数据库、业务系统的安装、配置、升级、维护、运行管理;网络和系统的用户增加或删除;网络和系统的数据备份、运行日志审查和运行情况监控;应急条件下的安全恢复等。

安全管理员(授权):

  • 主要负责单位网络资产的安全管理工作,包括安全防护体系的建立、各系统的日常安全运维保障、安全设备的管理、安全策略的配置、网络安全事件的处置和响应;应急条件下的安全恢复等。

审计管理员(审计):

  • 主要负责系统管理员、安全管理员、用户等行为进行审计跟踪、分析和监督检查,根据分析结果进行处理,包括根据安全审计策略对审计记录进行存储、管理和查询等,及时发现违规行为等。

1. 三员相关设计

1. 用户身份设计

所属系统用户必将拥有一个或者多个身份(等保测评中规定:一个用户不可同时拥有多个身份,此处的设计是因为尽可能保持通用,做到可可配置化的设计,即根据配置切换系统是否允许个人拥有多个身份。

java 复制代码
package com.omni.admin.common.omnienum;

import com.omni.admin.context.CurrentContext;
import lombok.Getter;

import java.util.List;

/**
 * 用户身份枚举
 */
@Getter
public enum UserIdentityEnum {
    SYS_ADMIN("sys","系统管理员"),
    SEC_ADMIN("sec","安全保密员"),
    AUD_ADMIN("aud","安全审计员"),
    DEF_USER("def","普通用户");
    /**
     * 身份标识
     */
    private final String identityFlag;

    /**
     * 身份说明
     */
    private final String description;

    /**
     * 是否是系统管理员
     * @return true 是  false 不是
     */
    public static boolean isSysAdmin(){
        List<String> userIdentity = CurrentContext.getUserIdentity();
        return userIdentity.contains(UserIdentityEnum.sysAdmin());
    }
    /**
     * 是否是安全保密员
     * @return true 是  false 不是
     */
    public static boolean isSecAdmin(){
        List<String> userIdentity = CurrentContext.getUserIdentity();
        return userIdentity.contains(UserIdentityEnum.secAdmin());
    }
    /**
     * 是否是安全审计员
     * @return true 是  false 不是
     */
    public static boolean isAudAdmin(){
        List<String> userIdentity = CurrentContext.getUserIdentity();
        return userIdentity.contains(UserIdentityEnum.audAdmin());
    }

    /**
     * 是否是普通用户
     * @return true 是  false 不是
     */
    public static boolean isDefUser(){
        List<String> userIdentity = CurrentContext.getUserIdentity();
        return userIdentity.contains(UserIdentityEnum.defUser());
    }
    public static String sysAdmin(){
        return UserIdentityEnum.SYS_ADMIN.identityFlag;
    }
    public static String secAdmin(){
        return UserIdentityEnum.SEC_ADMIN.identityFlag;
    }
    public static String audAdmin(){
        return UserIdentityEnum.AUD_ADMIN.identityFlag;
    }
    public static String defUser(){
        return UserIdentityEnum.DEF_USER.identityFlag;
    }
    UserIdentityEnum(String identityFlag, String description) {
        this.identityFlag = identityFlag;
        this.description = description;
    }
}

。。。持续更新。

相关推荐
幽络源小助理2 分钟前
SpringBoot民宿管理系统开发实现
java·spring boot·springboot·民宿系统
东阳马生架构4 分钟前
Nacos简介—1.Nacos使用简介
java
爱发飙的蜗牛9 分钟前
springboot--web开发请求参数接收注解
java·spring boot·后端
码熔burning21 分钟前
【MQ篇】RabbitMQ之工作队列模式!
java·分布式·rabbitmq·mq
优雅的落幕21 分钟前
Spring--统一数据返回格式与统一异常处理
java·spring·状态模式
BillKu27 分钟前
Spring Boot + MyBatis 动态字段更新方法
java·spring boot·mybatis
左灯右行的爱情34 分钟前
JVM-卡表
java·jvm·算法
众乐乐_200843 分钟前
Maven中的(五种常用依赖范围)
java·maven
橘猫云计算机设计1 小时前
springboot-基于Web企业短信息发送系统(源码+lw+部署文档+讲解),源码可白嫖!
java·前端·数据库·spring boot·后端·小程序·毕业设计
程序猿chen1 小时前
JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
java·jvm·git·后端·程序人生·java-ee·改行学it