安装完成后,调整 mysql 服务的配置参数
查看当前配置:show variables;
最大连接数 max_connections 操作日志的保留时长 binlog_expire_logs_seconds
参考命令:
set global max_connections = 1000;
set persist max_connections = 1000;
// 7天 86400 * 7
// 1天 86400
set global binlog_expire_logs_seconds = 86400 * 7;
set persist binlog_expire_logs_seconds = 86400 * 7;
时区设置
确保MySQL 的时区设置为 GMT+8
创建数据库帐号
参考命令:
create user 'user'@'%' identified with mysql_native_password by 'your_password';
创建 database
参考命令:
create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
授予权限
将 database 的权限授予对应的帐号
参考命令:
grant all privileges on `user`.* to 'user'@'%' with grant option;
授予 SUPER 权限 由于 部分帐号 需要创建 触发器,故,需要 SUPER 权限 涉及帐号有 user、user_authz、cas_server
参考命令:
grant SUPER on *.* to 'user'@'%';
grant SUPER on *.* to 'user_authz'@'%';
grant SUPER on *.* to 'cas_server'@'%';
grant SUPER on *.* to 'tmp_data'@'%';
备份与还原
参考命令: 备份:
mysqldump -u root -p cas_server > cas_server.sql
mysqldump -u root -p token_server > token_server.sql
mysqldump -u root -p user > user.sql
mysqldump -u root -p user_authz > user_authz.sql
mysqldump -u root -p authx_log > authx_log.sql
mysqldump -u root -p agent_service > agent_service.sql
还原:
mysql -u root -p cas_server < cas_server.sql
mysql -u root -p token_server < token_server.sql
mysql -u root -p user < user.sql
mysql -u root -p user_authz < user_authz.sql
mysql -u root -p authx_log < authx_log.sql
mysql -u root -p agent_service < agent_service.sql
auth-service 下的 authx-service-minio
Secret,minio-env-secret
key | 说明 | 配置示例
- | - | - MINIO_ACCESS_KEY | minio帐号(base64加密),默认为 1y8N@8R@a_2u | MXk4TkA4UkBhXzJ1 MINIO_SECRET_KEY | minio密钥(base64加密),默认为 8pxlIe9#lN7Q | OHB4bEllOSNsTjdR
auth-service 下的 authx-service-bff
ConfigMap,authx-service-bff-env
key | 说明 | 配置示例
thirdparty-agent-service 下的 thirdparty-agent-service
ConfigMap,agent-service-env
key | 说明 | 配置示例
- | - | - FILE_MINIO_AUTOCONFIGURE_ENABLED | minio 服务开启开关 | true、false FILE_MINIO_ENDPOINT | minio 服务地址(k8s集群内部地址) | http://minio-svc.authx-service.svc.cluster.local:9000
- | - | - MAIL_SMTP_AUTOCONFIGURE_ENABLED | smtp 服务开启开关 | true、false MAIL_SMTP_HOST | smtp 服务地址 | smtp.mxhichina.com MAIL_SMTP_PORT | smtp 服务端口 | 25 MAIL_SMTP_SECURE_MODE | smtp 服务的安全模式(NONE,无;SSL,安全) | NONE MAIL_SMTP_USERNAME | smtp 服务帐号 | security.institute@supwisdom.com MAIL_SMTP_PASSWORD | smtp 服务密码 | Security2019 MAIL_SMTP_FROM | 发件人邮箱 | security.institute@supwisdom.com MAIL_SMTP_FROM_PERSONAL | 发件人名称 | 智慧校园
- | - | - SMS_ALIYUN_AUTOCONFIGURE_ENABLED | 阿里云短信服务开启开关 | true、false SMS_ALIYUN_REGION_ID | 区域 | cn-hangzhou SMS_ALIYUN_ACCESS_KEY_ID | 阿里云短信服务的帐号 | SMS_ALIYUN_ACCESS_SECRET | 阿里云短信服务的密钥 |
- | - | - FACE_AIFACE_AUTOCONFIGURE_ENABLED | 新开普人脸开启开关 | true、false FACE_AIFACE_URL | 新开普人脸地址 | FACE_AIFACE_APPKEY | app key | FACE_AIFACE_APPSECRET | app secret | FACE_AIFACE_SECRETKEY | secret key | FACE_AIFACE_TERM_CODE | term code |
- | - | - FACE_AIPFACE_AUTOCONFIGURE_ENABLED | 百度人脸开启开关 | true、false FACE_AIPFACE_APPID | app id | FACE_AIPFACE_APIKEY | app key | FACE_AIPFACE_SECRETKEY | secret key | FACE_AIPFACE_GROUPIDLIST | 组ID,多个用逗号分隔,最多20个 |
Secret,agent-service-env-secret
key | 说明 | 配置示例
- | - | - FILE_MINIO_ACCESSKEY | minio 服务帐号(base64加密),默认为 1y8N@8R@a_2u | MXk4TkA4UkBhXzJ1 FILE_MINIO_SECRETKEY | minio 服务密钥(base64加密),默认为 8pxlIe9#lN7Q | OHB4bEllOSNsTjdR
user-data-service 下的 user-data-service-poa
ConfigMap,user-data-service-poa-env
key | 说明 | 配置示例
user-data-service 下的 user-data-service-goa
ConfigMap,user-data-service-goa-env
key | 说明 | 配置示例
- | - | - PASSWORD_ENCODER_IMPL | 密码加密算法的实现
default:支持 bcrypt 等加密算法,默认;
SHA-256:支持 SHA-256 加密算法 | default、SHA-256 - | - | - JOBS_RABBITMQ_ENABLED | 是否推送数据到 jobs-server 的 rabbit mq | true、false JOBS_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.jobs-server.svc.cluster.local JOBS_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 JOBS_RABBITMQ_USERNAME | rabbit mq 服务用户 | JOBS_RABBITMQ_PASSWORD | rabbit mq 服务密码 | JOBS_RABBITMQ_ACCOUNTUSERSVC2JOBSRABBITSENDER_ENABLED | 是否同步帐号数据至 jobs 的 MQ | true、false JOBS_RABBITMQ_ACCOUNTUSERSVC2JOBSSYNCPASSWORDRABBITSENDER_ENABLED | 是否同步密码(明文密码)到 jobs 的 MQ | true、false JOBS_RABBITMQ_ORGANIZATIONUSERSVC2JOBSRABBITSENDER_ENABLED | 是否同步组织机构数据至 jobs 的 MQ | true、false JOBS_RABBITMQ_GROUPUSERSVC2JOBSRABBITSENDER_ENABLED | 是否同步用户组数据至 jobs 的 MQ | true、false
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
user-data-service 下的 user-data-service-biz
ConfigMap,user-data-service-biz-env
key | 说明 | 配置示例
user-authorization-service 下的 user-authorization-service-poa
ConfigMap,user-authorization-service-poa-env
key | 说明 | 配置示例
- | - | - USER_DATA_SERVICE_SERVER_URL | 用户服务管理接口地址(k8s集群内部地址) | http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
user-authorization-service 下的 user-authorization-service-sa
ConfigMap,user-authorization-service-sa-env
key | 说明 | 配置示例
- | - | - USER_AUTHORIZATION_SA_USER_RABBITMQ_CONSUMER_ENABLED | 是否开启用户数据订阅 | true USER_AUTHORIZATION_SA_USER_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local USER_AUTHORIZATION_SA_USER_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 USER_AUTHORIZATION_SA_USER_RABBITMQ_USERNAME | rabbit mq 服务用户 | USER_AUTHORIZATION_SA_USER_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
cas-server 下的 cas-server-sa-api
ConfigMap,cas-server-sa-api-env
key | 说明 | 配置示例
- | - | - SERVICE_REFRESH_REDIS_TIMER_ENABLED | 是否定时刷新应用对接数据
默认:true | true、false ACCOUNT_REFRESH_REDIS_TIMER_ENABLED | 是否定时刷新帐号数据
默认:false | true、false FEDERATION_REFRESH_REDIS_TIMER_ENABLED | 是否定时刷新联合登录帐号绑定数据
默认:true | true、false - | - | - USER_DATA_SERVICE_SA_API_SERVER_URL | 用户服务管理接口地址(k8s集群内部地址) | http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
cas-server 下的 cas-server-security-engine
ConfigMap,cas-server-security-engine-env
key | 说明 | 配置示例
cas-server 下的 cas-server-site-webapp
ConfigMap,cas-server-site-webapp-env
key | 说明 | 配置示例
- | - | - LOGGING_CONFIG | 日志配置文件路径 | file:/etc/cas/log4j2-file.xml
- | - | - CAS_SERVER_NAME | CAS认证地址(外部访问地址) | https://cas.paas.xxx.edu.cn CAS_TGC_SECURE | TGC cookie 安全设置
true:https安全
false: | true、false CAS_TICKET_TGT_MAX_TIME_TO_LIVE_IN_SECONDS | TGT的最大生命周期
默认:14天 | 1209600 CAS_TICKET_TGT_TIME_TO_KILL_IN_SECONDS | TGT的失效时长
默认:2天 | 172800 CAS_AUTHN_TOKEN_CRYPTO_SIGNING_KEY | jwt格式的ticket的签名密钥 | (@<rhnPaUYKC_k770*DuWwYQ_#Zc#8c(2rB?kae)rN)>K7qy)awCjxp$L653Mf$2
SPRING_THYMELEAF_PREFIX | 登录页面UI的代码目录 | classpath:/templates/themes/classic/ - | - | - CASSERVER_JWT_ISS | idToken 签发者标识 | cas.paas.xxx.edu.cn CASSERVER_JWT_PRIVATE_KEY_PEM_PKCS8 | idToken 签名私钥(pkcs8),参考 certs/jwt/readme.md 生成公私钥pem | CASSERVER_JWT_PUBLIC_KEY_PEM | idToken 签名公钥,参考 certs/jwt/readme.md 生成公私钥pem |
- | - | - CASSERVERSITE_CAPTCHA_ENABLED | 是否启用登录验证码 | true、false CASSERVERSITE_ACCOUNT_SERVICE_IMPL | 帐号服务的实现
redis:帐号数据存放在redis中
user-sa:帐号数据从用户服务获取 | user-sa CASSERVERSITE_ROLE_SERVICE_IMPL | 角色服务的实现
redis:角色数据存放在redis中
user-authz-sa:角色数据从授权服务获取 | user-authz-sa CASSERVERSITE_SMS_SENDER_IMPL | 动态密码的短信发送实现
default:控制台输出
agent-service:代理服务 | agent-service CASSERVERSITE_PASSWORDLESS_TOKEN_EXPIRATION_IN_SECONDS | 动态密码失效时长
默认:5分钟 | 300 CASSERVERSITE_PASSWORDLESS_SMS_FROM | 动态密码的短信发送者 | 认证中心 CASSERVERSITE_PASSWORDLESS_SMS_TEXT_TEMPLATE | 动态密码的短信模板 | 【认证中心】您正在登录统一身份认证,本次登录的动态密码为{token},有效期5分钟,请尽快完成登录。 - | - | - SUPERAPP_TOKEN_SIGNING_KEY_URL | TOKEN认证验签公钥地址(k8s集群内部地址) | http://token-server-svc.token-server.svc.cluster.local:8080/token/jwt/publicKey
- | - | - TPAS_AGENT_SERVICE_SERVER_URL | 代理服务接口地址(k8s集群内部地址) | http://agent-service-svc.thirdparty-agent-service.svc.cluster.local:8080 TPAS_AGENT_SERVICE_SMS_SENDER_PATH | 短信发送服务地址
console:控制台输出,默认
aliyun:阿里云短信服务
其他,支持学校定制接口 | /api/v1/tpas/sms/console/send TPAS_AGENT_SERVICE_FILE_PATH | 文件服务地址
默认:minio文件服务 | /api/v1/tpas/file/minio - | - | - CASSERVER_SA_API_SERVER_URL | CAS认证服务管理接口地址(k8s集群内部地址) | http://cas-server-sa-api-svc.cas-server.svc.cluster.local:8080
- | - | - USER_DATA_SERVICE_SA_API_SERVER_URL | 用户服务管理接口地址(k8s集群内部地址) | http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080
- | - | - USER_AUTHZ_SERVICE_SA_API_SERVER_URL | 授权服务管理接口地址(k8s集群内部地址) | http://user-authorization-sa-svc.user-authorization-service.svc.cluster.local:8080
- | - | - ATTEST_SERVER_URL | 身份验证服务地址(k8s集群内部地址) | http://attest-server-svc.attest-server.svc.cluster.local:8080/attest
- | - | - IPADDR_SERVER_URL | IP地址服务 | http://ipaddr.ipaddr.svc.cluster.local:9090
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
cas-server 下的 cas-server-site-scheme
ConfigMap,cas-server-site-scheme-config
key | 说明 | 配置示例
注:若配置了 CASSERVER_SA_API_SERVER_URL,则使用配置表中的配置;否则,使用 SCHEME_COLOR 指定的设置。
token-server 下的 token-server
ConfigMap,token-server-env
key | 说明 | 配置示例
- | - | - TOKEN_SERVER_PREFIX | TOKEN认证地址(外部访问地址) | https://token.paas.xxx.edu.cn/token
- | - | - TOKEN_SERVER_SECURITY_JWT_ISS | idToken签发者标识 | token.paas.xxx.edu.cn TOKEN_SERVER_SECURITY_JWT_EXPIRATION | idToken 失效时长
默认:30天 | 2592000 TOKEN_SERVER_SECURITY_JWT_PRIVATE_KEY_PEM_PKCS8 | idToken 签名私钥(pkcs8),参考 certs/jwt/readme.md 生成公私钥pem
可以与CAS认证一致 | TOKEN_SERVER_SECURITY_JWT_PUBLIC_KEY_PEM | idToken 签名公钥,参考 certs/jwt/readme.md 生成公私钥pem
可以与CAS认证一致 | - | - | - TOKEN_SERVER_FACE_SOURCE_TYPE | 人脸服务
aiface:新开普人脸
aipface:百度人脸 | aiface 若须对接新开普人脸,须由新开普人脸系统提供相关配置 | TOKEN_SERVER_FACE_AIFACE_URL | | TOKEN_SERVER_FACE_AIFACE_APPKEY | | TOKEN_SERVER_FACE_AIFACE_APPSECRET | | TOKEN_SERVER_FACE_AIFACE_SECRETKEY | | TOKEN_SERVER_FACE_AIFACE_TERM_CODE | | 若须对接百度人脸,须在百度开放平台注册应用 | TOKEN_SERVER_FACE_AIPFACE_APPID | | TOKEN_SERVER_FACE_AIPFACE_APIKEY | | TOKEN_SERVER_FACE_AIPFACE_SECRETKEY | | - | - | - TOKEN_SERVER_PASSWORDLESS_TOKEN_EXPIRATION_IN_SECONDS | 动态密码失效时长
默认:5分钟 | 300 TOKEN_SERVER_PASSWORDLESS_SMS_TEXT_TEMPLATE | 动态密码的短信模板 | 【认证中心】您正在登录统一身份认证,本次登录的动态密码为{token},有效期5分钟,请尽快完成登录。 TOKEN_SERVER_PASSWORDLESS_SMS_FROM | 动态密码的短信发送者 | 认证中心 - | - | - GETUI_SERVER_URL | 个推服务地址 | https://openapi-gy.getui.com GETUI_GEYAN_APP_ID | 个推,个验 app id | GETUI_GEYAN_APP_KEY | 个推,个验 app key | GETUI_GEYAN_APP_SECRET | 个推,个验 app secret | GETUI_GEYAN_MASTER_SECRET | 个推,个验 master secret |
- | - | - MESSAGECENTER_ENABLED | 是否对接消息平台
默认:false| true、false MESSAGECENTER_APP_ID | 应用ID(由消息平台生成)| MESSAGECENTER_MESSAGE_TYPE_CODE_APP_LOGIN | 消息类型代码,APP 登录 | APP_LOGIN MESSAGECENTER_MESSAGE_TYPE_CODE_PASSWORD | 消息类型代码,密码修改登出 | PASSWORD MESSAGECENTER_MESSAGE_TYPE_CODE_APPPUSH | 消息类型代码,消息推送 | APPPUSH - | - | - POA_SERVER_URL | POA网关地址(外部访问地址) | https://poa.paas.xxx.edu.cn POA_CLIENT_ID | client id | POA_CLIENT_SECRET | client secret | POA_SCOPES | api 接口的 scope | messagecenter:v1:sendMessage
- | - | - TPAS_AGENT_SERVICE_SERVER_URL | 代理服务接口地址(k8s集群内部地址) | http://agent-service-svc.thirdparty-agent-service.svc.cluster.local:8080 TPAS_AGENT_SERVICE_SMS_SENDER_PATH | 短信发送服务地址
console:控制台输出,默认
aliyun:阿里云短信服务
其他,支持学校定制接口 | /api/v1/tpas/sms/console/send - | - | - CASSERVER_SA_API_SERVER_URL | CAS认证服务管理接口地址(k8s集群内部地址) | http://cas-server-sa-api-svc.cas-server.svc.cluster.local:8080
- | - | - USER_DATA_SERVICE_SA_API_SERVER_URL | 用户服务管理接口地址(k8s集群内部地址) | http://user-data-service-goa-svc.user-data-service.svc.cluster.local:8080
- | - | - ATTEST_SERVER_URL | 身份验证服务地址(k8s集群内部地址) | http://attest-server-svc.attest-server.svc.cluster.local:8080/attest
- | - | - IPADDR_SERVER_URL | IP地址服务 | http://ipaddr.ipaddr.svc.cluster.local:9090
- | - | - AUTHX_LOG_ENABLED | 是否开启日志推送 | true AUTHX_LOG_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local AUTHX_LOG_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 AUTHX_LOG_RABBITMQ_USERNAME | rabbit mq 服务用户 | AUTHX_LOG_RABBITMQ_PASSWORD | rabbit mq 服务密码 |
- | - | - USER_RABBITMQ_ENABLED | 是否开启用户数据的消息接收 | true USER_RABBITMQ_HOST | rabbit mq 服务地址(k8s集群内部地址) | rabbitmq-server.authx-service.svc.cluster.local USER_RABBITMQ_PORT | rabbit mq 服务端口 | 5672 USER_RABBITMQ_USERNAME | rabbit mq 服务用户 | USER_RABBITMQ_PASSWORD | rabbit mq 服务密码 | USER_RABBITMQ_CONSUMER_ENABLED | 是否开启用户数据订阅 | true
personal-security-center 下的 personal-security-center-bff
ConfigMap,personal-security-center-bff-env
key | 说明 | 配置示例
ConfigMap,personal-security-center-bff-template-env 邮件内容模板、短信内容模板
key | 说明 | 配置示例
- | - | - EMAIL_TEMPLATE_ACTIVE_USER_SEND_CODE_BY_EMAIL_ADDRESS | 邮件内容模板-激活帐号 | {name}:您正在激活帐号,须验证邮箱有效,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_FORGOT_PASSWORD_SEND_CODE | 邮件内容模板-找回密码 | {name}:您正在找回密码,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - EMAIL_TEMPLATE_USER_SECURITY_PASSWORD_SEND_CODE | 邮件内容模板-修改密码 | {name}:您正在修改密码,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_SECURITY_EMAIL_ADDRESS_SEND_CODE | 邮件内容模板-修改安全邮箱 | {name}:您正在修改安全邮箱,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_SECURITY_EMAIL_ADDRESS_SEND_CODE_BY_EMAIL_ADDRESS | 邮件内容模板-修改安全邮箱-验证邮箱 | {name}:您正在修改安全邮箱,须验证邮箱有效,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_SECURITY_MOBILE_SEND_CODE | 邮件内容模板-修改安全手机 | {name}:您正在修改安全手机,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - EMAIL_TEMPLATE_USER_FEDERATION_QQ_SEND_CODE | 邮件内容模板-绑定QQ | {name}:您正在绑定QQ,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_QQ_SEND_CODE_UNBIND_QQ | 邮件内容模板-解绑QQ | {name}:您正在解绑QQ,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_OPENWEIXIN_SEND_CODE | 邮件内容模板-绑定微信 | {name}:您正在绑定微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_OPENWEIXIN_SEND_CODE_UNBIND_OPENWEIXIN | 邮件内容模板-解绑微信 | {name}:您正在解绑微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_WORKWEIXIN_SEND_CODE | 邮件内容模板-绑定企业微信 | {name}:您正在绑定企业微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_WORKWEIXIN_SEND_CODE_UNBIND_WORKWEIXIN | 邮件内容模板-解绑企业微信 | {name}:您正在解绑企业微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_ALIPAY_SEND_CODE | 邮件内容模板-绑定支付宝 | {name}:您正在绑定支付宝,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 EMAIL_TEMPLATE_USER_FEDERATION_ALIPAY_SEND_CODE_UNBIND_ALIPAY | 邮件内容模板-解绑支付宝 | {name}:您正在解绑支付宝,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - SMS_TEMPLATE_ACTIVE_USER_SEND_CODE_BY_PRE_MOBILE | 短信内容模板-激活帐号-预留手机身份验证 | {prefix}您正在激活帐号,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_ACTIVE_USER_SEND_CODE_BY_MOBILE | 短信内容模板-激活帐号 | {prefix}您正在激活帐号,须验证手机有效,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_FORGOT_PASSWORD_SEND_CODE| 短信内容模板-找回密码 | {prefix}您正在找回密码,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - SMS_TEMPLATE_USER_SECURITY_PASSWORD_SEND_CODE | 短信内容模板-修改密码 | {prefix}您正在修改密码,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_SECURITY_EMAIL_ADDRESS_SEND_CODE | 短信内容模板-修改安全邮箱 | {prefix}您正在修改安全邮箱,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_SECURITY_MOBILE_SEND_CODE | 短信内容模板-修改安全手机 | {prefix}您正在修改安全手机,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_SECURITY_MOBILE_SEND_CODE_BY_MOBILE | 短信内容模板-修改安全手机-验证手机 | {prefix}您正在修改安全手机,须验证手机有效,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - SMS_TEMPLATE_USER_FEDERATION_QQ_SEND_CODE | 邮件内容模板-绑定QQ | {prefix}您正在绑定QQ,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_QQ_SEND_CODE_UNBIND_QQ | 邮件内容模板-解绑QQ | {prefix}您正在解绑QQ,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_OPENWEIXIN_SEND_CODE | 邮件内容模板-绑定微信 | {prefix}您正在绑定微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_OPENWEIXIN_SEND_CODE_UNBIND_OPENWEIXIN | 邮件内容模板-解绑微信 | {prefix}您正在解绑微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_WORKWEIXIN_SEND_CODE | 邮件内容模板-绑定企业微信 | {prefix}您正在绑定企业微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_WORKWEIXIN_SEND_CODE_UNBIND_WORKWEIXIN | 邮件内容模板-解绑企业微信 | {prefix}您正在解绑企业微信,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_ALIPAY_SEND_CODE | 邮件内容模板-绑定支付宝 | {prefix}您正在绑定支付宝,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。 SMS_TEMPLATE_USER_FEDERATION_ALIPAY_SEND_CODE_UNBIND_ALIPAY | 邮件内容模板-解绑支付宝 | {prefix}您正在解绑支付宝,须验证身份,验证码{code},有效期5分钟,请尽快完成验证。
- | - | - SMS_TEMPLATE_ACCOUNT_INFO_SEND_CODE_BY_MOBILE | 帐号查询-验证手机 | {prefix}您当前正在查询账号,须验证手机有效,验证码{code},有效期5分钟,请尽快完成验证。' SMS_TEMPLATE_ACCOUNT_INFO_SEND_ACCOUNT_NAME | 帐号查询-发送帐号名 | {prefix}您当前正在查询账号,查询结果为:{accountName},账号是您在学校中的重要信息,请妥善保管。'
- | - | - SMS_TEMPLATE_PREFIX | 短信签名、前缀 |
personal-security-center 下的 personal-security-center-zuul
ConfigMap,personal-security-center-zuul-env
key | 说明 | 配置示例
personal-security-center 下的 security-center-ui
ConfigMap,security-center-ui-env
key | 说明 | 配置示例
注: AUTH_TYPE 为 cas 时,配置 AUTH_CAS、JWT_ISS、JWT_SECRET AUTH_TYPE 为 uniauth 时,配置 UNIAUTH_IDTOKEN、UNIAUTH_IDTOKEN_ISS、UNIAUTH_CLIENT_ID
attest-server 下的 attest-server
ConfigMap,attest-server-env
key | 说明 | 配置示例
authx-log 下的 authx-log-sa
ConfigMap,authx-log-sa-env
key | 说明 | 配置示例
数据库帐号
以下是 各服务对应的数据库帐号
服务 | 数据库帐号
- | - 用户服务 user-data-service | user 授权服务 user-authorization-service | user_authz
- | - 日志服务 authx-log | authx_log
- | - 认证服务 cas-server | cas_server 认证服务(APP适用) token-server | token_server
- | - (可选)第三方代理服务 thridparty-agent-service | agent_service
- | - v4认证迁移数据 | tmp_data
命令: 请修改命令中的 your_password
为实际的数据库帐号的密码
create user 'user'@'%' identified with mysql_native_password by 'your_password';
create user 'user_authz'@'%' identified with mysql_native_password by 'your_password';
create user 'authx_log'@'%' identified with mysql_native_password by 'your_password';
create user 'cas_server'@'%' identified with mysql_native_password by 'your_password';
create user 'token_server'@'%' identified with mysql_native_password by 'your_password';
create user 'agent_service'@'%' identified with mysql_native_password by 'your_password';
create user 'tmp_data'@'%' identified with mysql_native_password by 'your_password';
数据库
以下是 各服务对应的数据库
服务 | 数据库
- | - 用户服务 user-data-service | user 授权服务 user-authorization-service | user_authz
- | - 日志服务 authx-log | authx_log
- | - 认证服务 cas-server | cas_server 认证服务(APP适用) token-server | token_server
- | - (可选)第三方代理服务 thridparty-agent-service | agent_service
- | - v4认证迁移数据 | tmp_data
命令:
create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `user_authz` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `authx_log` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `cas_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `token_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `agent_service` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database `tmp_data` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
数据库权限授予
将 database 的权限授予对应的帐号
命令:
grant all privileges on `user`.* to 'user'@'%' with grant option;
grant all privileges on `user_authz`.* to 'user_authz'@'%' with grant option;
grant all privileges on `authx_log`.* to 'authx_log'@'%' with grant option;
grant all privileges on `cas_server`.* to 'cas_server'@'%' with grant option;
grant all privileges on `token_server`.* to 'token_server'@'%' with grant option;
grant all privileges on `agent_service`.* to 'agent_service'@'%' with grant option;
grant all privileges on `tmp_data`.* to 'tmp_data'@'%' with grant option;
SUPER 权限授予
由于 部分帐号 需要创建 触发器,故,需要 SUPER 权限 涉及帐号有 user、user_authz、cas_server
命令:
grant SUPER on *.* to 'user'@'%';
grant SUPER on *.* to 'user_authz'@'%';
grant SUPER on *.* to 'cas_server'@'%';
grant SUPER on *.* to 'tmp_data'@'%';
用户数据的交换帐号
待部署完成后操作
如果,存在数据交换 须将组织机构数据、帐号数据 同步到用户服务的数据库的 则,需要创建一个 交换用的数据库帐号(user_trans),并为该帐号授予 表 user.TMP_ORGANIZATION_ORIGIN、user.TMP_ACCOUNT_ORIGIN 的读写操作的权限
命令:
create user 'user_trans'@'%' identified with mysql_native_password by 'your_password';
grant select on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
grant insert on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
grant update on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
grant delete on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
grant select on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
grant insert on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
grant update on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
grant delete on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
grant select on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
grant insert on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
grant update on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
grant delete on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
grant select on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
grant insert on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
grant update on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
grant delete on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
修改 yaml 中的相关配置
具体参考 yaml 文件中的说明
0.infras
基础设施,目前包含 MySQL数据库的Web管理端、SpringBoot服务的管理端
0.0.0.infras-base.yaml 请修改 harbor-registry 的帐号密码
0.0.1.infras-mysql.yaml 请修改 MySQL数据库 的地址、IP,mysql-adminer 访问域名
0.0.2.infras-sba.yaml 请修改 docker 镜像地址
1.authx-service
业务中台 之 认证授权服务
参考 yaml 中的说明,修改相关配置
在各个服务的安装脚本目录下,修改以下文件(若存在)中的配置
0.*-base.yaml 请修改 harbor-registry 的帐号密码
4.x.*.yaml, 5.*-datax-job.yaml 请修改 docker 镜像地址
1.*-env.yaml, 5.*-datax-job.yaml 请修改 数据库密码
2.*-ingresses.yaml 请修改 访问域名
0.0.trans-service-v4
此为 认证v4 的数据迁移服务(可选)
将 认证v4 的数据导入到 tmp_data 下
数据迁移后,还需要手动编写脚本,将数据迁移至 用户服务、授权服务 的数据库中
0.authx-service
此为 公共基础服务
如:MySQL 服务地址(Endpoints)、文件存储服务
1.authx-service-mysql.yaml
请修改 mysql 的服务地址 IP
2.authx-service-minio.yaml
请修改 minio 的 `MINIO_ACCESS_KEY`、`MINIO_SECRET_KEY`
根据情况修改 pvc 的 storageClassName
9.poa-api-docs_install.yaml
用于将 认证授权服务的 poa 接口文档,导入到 poa-sa 中,**请在 poa 安装完成后处理**
请修改 poa 的服务地址 `POA_SERVER_URL`
1.thirdparty-agent-service
此为 第三方服务的代理服务
file-minio
修改 minio 的 `FILE_MINIO_ACCESSKEY`、`FILE_MINIO_SECRETKEY`
mail-smtp
获取 学校的 smtp 服务地址,邮箱帐号,用于发送邮件
sms-aliyun
如果 学校使用 阿里云的短信服务,提供 `ACCESS_KEY_ID`、`ACCESS_SECRET`;
否则,提供相关的短信平台,进行定制开发
2.user-data-service
此为 用户服务
user-data-service-goa
如果 须将用户数据的变更下发到 Openldap 等第三方业务中,则须配置 `JOBS_RABBITMQ_*` 为开启(ENABLED=true)
3.user-authorization-service
此为 授权服务
4.cas-server
此为 认证服务
cas-server-site-webapp
生成公私钥证书,参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置 `CASSERVER_JWT_PRIVATE_KEY_PEM_PKCS8`、`CASSERVER_JWT_PUBLIC_KEY_PEM`
修改 认证服务的外网访问地址 `CAS_SERVER_NAME`
修改 CAT TGC 的安全,若 使用 https,则须修改 `CAS_TGC_SECURE: "true"`
修改 安全中心(帐号激活、找回密码)的链接地址 `CASSERVERSITE_FORGOT_PASSWORD_URL`、`CASSERVERSITE_ACTIVE_ACCOUNT_URL`
联合登录(QQ、微信、企业微信、支付宝等)配置 `CASSERVER_FEDERATION_*`
动态密码认证 相关配置
1. 短信模板(动态密码) `CASSERVERSITE_PASSWORDLESS_SMS_TEXT_TEMPLATE`
2. 短信接口地址 `TPAS_AGENT_SERVICE_SMS_SENDER_PATH`
如果 须与 超级APP 对接,须修改 Token 验签公钥地址 `SUPERAPP_TOKEN_SIGNING_KEY_URL`
如果 须开启图片验证码,修改 `CASSERVERSITE_CAPTCHA_ENABLED: "true"`
5.token-server
此为 认证服务(适用于APP,可选)
token-server
生成公私钥证书(与cas-server保持一致),参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置 `TOKEN_SERVER_SECURITY_JWT_PRIVATE_KEY_PEM_PKCS8`、`TOKEN_SERVER_SECURITY_JWT_PUBLIC_KEY_PEM`
修改 认证服务的外网访问地址 `TOKEN_SERVER_PREFIX`
修改 认证服务 Id-Token 的签发者标识 `TOKEN_SERVER_SECURITY_JWT_ISS`
动态密码认证 相关配置(与cas-server保持一致)
1. 短信模板(动态密码) `TOKEN_SERVER_PASSWORDLESS_SMS_TEXT_TEMPLATE`
2. 短信接口地址 `TPAS_AGENT_SERVICE_SMS_SENDER_PATH`
人脸认证,须配置人脸服务,目前支持 新开普人脸服务、百度人脸服务,根据情况获取相关配置参数
APP 登录信息 个推,使用了消息服务的接口,该接口由 POA 提供,故须
1. 注册 POA client,获取 `clientId`、`clientSecret`,申请 Scope `messagecenter:v1:sendMessage`
2. 获取 消息服务的 `appId`
6.personal-security-center
此为 个人安全中心 后端API,安全中心 前端UI
提供个人帐号相关的操作的接口,以及 帐号激活、密码找回 等功能
TODO: 修改 bff、zuul 配置
TODO: 修改 security-center-ui 配置
7.attest-server
此为 身份验证服务
提供双因子、二次认证时,进行用户的身份验证,包括 APP推送验证、安全手机验证、安全邮箱验证、人脸识别验证 等能力
8.authx-log
此为 日志服务
收集 用户、认证、授权 的管理、使用过程中产生的 操作日志、登录日志;同时,提供日志查询、基于日志的统计功能
9.jobs-server
此为 任务调度服务
基于 定时任务、触发任务 等,完成 用户数据的同步
如:
* 源头数据进入到临时表后,写入用户的正式表
* 用户数据更新后,通过消息队列,增量更新 Openldap 数据
添加项目、命名空间
项目
infras # 基础设施(可选,方便实施工作)
authx-service # 认证授权服务
admin-platform # 管理平台
命名空间
在项目 infras 下创建 命名空间:
base
在项目 authx-service 下创建 命名空间:
trans-service(认证v4的数据迁移服务,可选)
authx-service
thirdparty-agent-service
user-data-service
user-authorization-service
cas-server
token-server
personal-security-center
attest-server
authx-log
jobs-server
导入YAML
在项目 infras 中,将 0.infras 下的 yaml 按编号依次导入
0.0.0.infras-base.yaml
0.0.1.infras-mysql.yaml mysql web管理
0.0.2.infras-sba.yaml
在项目 authx-service 中,将 1.authx-service 下的 yaml 按编号依次导入
务必确保 4.0.*-installer.yaml
执行成功