Skip to content
本页目录

如何使用固定三员管理(三权分立)及等级保护策略配置

MAS平台 、LOCAS平台(可选)要求:

  • [MAS >= v5.10.19]
  • [LOCAS >= v2.3]

概述

三权分立模式:开启三员管理模式后,新建站点将会自动创建管理员、安全员、审计员账号;安全员账号产生规则:站点标识_bm_admin;审计员账号产生规则:站点标识_sj_admin

管理员(账号类型值:11)登录后只有平台管理菜单

安全员(账号类型值:12)登录后只有角色账号授权能力

审计员(账号类型值:13)登录后只有查看日志能力

如何开启三权分立管理模式 (特别说明:【】内为jar包部署时对应的配置项)

确保MAS平台后端服务、前端应用为发布文档v5.10.19中对应的版本

将mas-admin服务中的环境变量PLAT_MNG_BY_THREE_POWER【admin.platform.by3power】的值设置为true 【容器部署低版本的nacos可能不能识别true/false,可调对应调整为1/0(1表示true,0表示false)】

如何开启双因子认证

确保MAS平台后端服务、前端应用为发布文档v5.10对应的版本

账号密码登录开启双因子认证:将mas-auth服务中的环境变量CAPTCHA_OPEN_PASSWORD【captcha.open.password】的值设置为true 【容器部署低版本的nacos可能不能识别true/false,可调对应调整为1/0(1表示true,0表示false)】

扫码登录开启双因子认证:将mas-auth服务中的环境变量CAPTCHA_OPEN_SCAN【captcha.open.scan】的值设置为true 【容器部署低版本的nacos可能不能识别true/false,可调对应调整为1/0(1表示true,0表示false)】

如何开启首次登录修改默认密码

检查mas-auth服务中环境变量:USER_DEFAULT_PASSWORD【user.default-password】值与mas-admin服务中环境变量:FOA5_DEFAULT_PASSWORD【admin.platform.user.default-password】的值是否与一致

如果不一致,需要将mas-auth服务中环境变量:USER_DEFAULT_PASSWORD【user.default-password】值调整为mas-admin服务中环境变量:FOA5_DEFAULT_PASSWORD【admin.platform.user.default-password】的值

如何配置密码复杂度

调整mas-admin服务中环境变量PLAT_PASSWORD_CHECK_RULE【password.check.rule】的值,该值为正则表达式;默认值为:^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&]+$)[a-zA-Z\d!@#$%^&]{8,}$ 【字母开头;包含字母、数字、特殊字符至少2种;至少8位长度】

如何配置密码复杂度校验失败的提醒信息

调整mas-admin服务中环境变量PLAT_PASSWORD_CHECK_MSG【password.check.msg】的值;默认值为:密码须包含字母、数字、特殊字符!@#$%^&*且至少8位

如何配置日志报警

管理员进入参数管理菜单,添加参数配置 参数名:日志警告限制 参数建:log.count.over.limit 参数值: (整型数字)

  • 【不配置默认按超10000条后,日志管理页面中将会出现红色警告文字】

如何配置周期提醒用户修改密码

调整mas-auth服务中环境变量:PLAT_PASSWORD_CHANGE_CYCLE【password.change-cycle】的值,默认为90,意思为用户90天密码未修改过登录时将会出现提示修改密码

如何调整密码加密标准

调整mas-auth、mas-admin服务中环境变量:PLAT_PASSWORD_ENCRYPTION_ALGORITHM【password.encryption.algorithm】的值,默认bcrypt,可选:bcrypt,sm3(国密) 如果调整为sm3(国密),还可根据客户需求调整国密加密盐值,配置要环境变量:PLAT_PASSWORD_ENCRYPTION_SALT【password.encryption.salt】

注意

PLAT_PASSWORD_ENCRYPTION_ALGORITHM、PLAT_PASSWORD_ENCRYPTION_SALT,请勿在平台使用中途进行更换,且配置值应与mas-admin服务里该值一致

如何配置限制密码输入错误次数

调整mas-auth服务中环境变量:PLAT_PASSWORD_ERROR_LIMIT【password.error.limit】的值,默认5,意思为登录时输入密码错误5次账号将被冻结

如何配置密码错误次数超限后锁定账号时长

调整mas-auth服务中环境变量:PLAT_PASSWORD_ERROR_LOCK【password.error.locked】的值,默认10,意思为登录输入密码错误超次数超限制次数后,账号将锁定10分钟

如何开启敏感要素存储加密(目前只支持账号中的手机号sm4加密)

调整mas-admin服务中环境变量:PLAT_SM4DATAENCODE_ENABLED【sm4.enabled】 的值为true,默认false 如果客户有需要使用自己的密钥,需调整环境变量:PLAT_SM4DATAENCODE_KEY【sm4.key】、PLAT_SM4DATAENCODE_IV【sm4.iv】的值

如何配置上传文件类型限制

管理员进入参数管理菜单,添加参数配置 参数名:上传文件类型限制 参数建:file.upload.limit.type 参数值: (字符串,多个英文逗号分隔)【不配置系统将默认检测这些后缀:exe,com,sys,sh,elf】

web服务(mas-nginx)如何配置安全头(点击劫持、Content-Security-Policy头缺失)

在nginx.conf文件内server区新增安全配置:

js
add_header X-Frame-Options SAMEORIGIN always;

 add_header Content-Security-Policy "default-src *;style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';img-src * data:;worker-src * blob:;font-src 'self' data:;";

示例:

json
....
       server {
         ##listen监听的端口
         #语法:listen address:port [ default(deprecated in 0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]
         #default_server: 如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块
         listen       80;
     
         #主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_name都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。
           server_name  localhost;
     
         client_max_body_size 500M;
         
         add_header X-Frame-Options SAMEORIGIN always;
         add_header Content-Security-Policy "default-src *;style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';img-src * data:;worker-src * blob:;font-src 'self' data:;";    
     
         #charset koi8-r;
     
         #access_log  /var/log/nginx/host.access.log  main;
     
         #location ~* \.(eot|ttf|woff|svg|otf)$ { add_header Access-Control-Allow-Origin *;}
     
         location / {
             root /usr/share/nginx/html;
             index  index.html index.htm;
             try_files $uri $uri/ /index.html;
         }
       ........

web服务(mas-nginx)如何禁止get、post以外类型的请求

在nginx.conf文件内server区新增过滤:

json
#禁用get、post以为的请求
  if ($request_method !~ ^(GET|POST)$ ){
      return 405;
  }

示例:

json
....
       server {
         ##listen监听的端口
         #语法:listen address:port [ default(deprecated in 0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]
         #default_server: 如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块
         listen       80;        
         #主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_name都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。
         server_name  localhost;       
         client_max_body_size 500M;
         
         add_header X-Frame-Options SAMEORIGIN always;
         add_header Content-Security-Policy "default-src *;style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';img-src * data:;worker-src * blob:;font-src 'self' data:;";    
         #禁用get、post以为的请求
         if ($request_method !~ ^(GET|POST)$ ){
             return 405;
         }
         
         #charset koi8-r;        
         #access_log  /var/log/nginx/host.access.log  main;        
         #location ~* \.(eot|ttf|woff|svg|otf)$ { add_header Access-Control-Allow-Origin *;}
     
         location / {
             root /usr/share/nginx/html;
             index  index.html index.htm;
             try_files $uri $uri/ /index.html;
         }
       ........

mas、locas服务连接redis需要密码认证

确保mas服务版本升级到5.10.21;locas服务升级到2.4.21

服务中新增环境变量:FOA5_REDIS_PWD【spring.redis.password】,值为redis服务的连接密码

potainer环境下redis开启认证(连接需要密码):

json
version: "3.7" 
networks:
 default:
   external: true
   name: whzk-55
   
services: 
 redis:
   restart: always
   container_name: redis
   image: redis:latest
   ports:
     - "6379:6379"
   command:
     - /bin/bash
     - -c
     - redis-server  --requirepass "xxxxx"
   deploy:
     resources:
       limits:
         memory: 512M

存量站点如何增加安全员、审计员

在mas-admin服务中分别挑选账号修改其账号类型,安全员:12 审计员:13

sql
-- ?1 为要调整的类型值(安全员:12  审计员:13)
  -- ?2 为租户id ,可通过类查询:select c_id as 租户id from cos_admin_tenant_info where c_code = '';
  -- ?3 为要修改的账号登录名
  update cos_admin_account_info set c_account_type = ?1 where c_tenant_id = ?2 and c_login_name = ?3;

注意

  • 三员的菜单是否有的前提是对应的应用需要授权到站点
  • 新增账号后,记得要将账号关联(授权)到站点,可在账号管理页面“授权站点”单元格上单击进行设置【账号管理是以租户视角来维护账号数据】

内部资料,请勿外传