业务中台之认证授权服务
版本 | 作者 | 日期 | 备注
数据文件目录:/var/lib/mysql
安装完成后,调整 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 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 agent_service < agent_service.sql
创建 devops 帐号
用于 rancher 部署时拉取镜像
用户管理 下 创建用户 如 devops
镜像同步
从 https://harbor.supwisdom.com 中同步镜像
仓库管理 下 新建目标
supwisdom https://harbor.supwisdom.com rancher.devops / PWMgP85qiLFC
同步管理 下 新建规则
thirdparty-agent-service thirdparty-agent-service/* authx-service authx-service/* user-data-service goa/* user-authorization-service user-authorization-service/* personal-security-center personal-security-center/* jobs-server jobs-server/* cas-server cas-server/* token-server token-server/*
同步规则,创建完成后,进行镜像同步
选择某个同步规则,点击 同步,等待任务完成
授予 devops 帐号 对各个项目的 访客 权限
项目 下,点击 项目名称,进入到 成员,添加用户,查找用户 devops,选择角色 访客,确定,添加即可
商店设置
进入 全局 - 集群(具体名称视项目安装而定) - 工具 - 商店设置,添加应用商店
名称:supwisdom
商店URL地址:https://e.coding.net/supwisdom/charts/charts.git
分支:master
范围:选择cluster
创建项目
进入 全局 - 集群(具体名称视项目安装而定) - 项目/命名空间,添加项目
输入 项目名称,保存
本产品所须创建的项目名称为:authx-platform
启动应用
进入 全局 - 集群(具体名称视项目安装而定) - 项目(某个项目)
进入 应用商店
点击 启动,在应用列表中 找到 相关应用
点击 该应用,选择模板版本(一般选择最新的版本),根据情况设置 配置选项,启动 即可
本产品所须的相关应用清单:
minio Minio文件服务 agent-service Agent Service 代理服务 authx-service 用户授权相关服务 jobs-server 同步服务 cas-server 认证(CAS 认证 + Token Server)
确定命名空间
本产品安装过程中所须的命名空间如下:
authx-minio Minio文件服务 agent-service Agent Service 代理服务 authx-service 用户授权相关服务 jobs-server 同步服务 cas-server 认证(CAS 认证 + Token Server)
确定域名
首先明确是否使用泛域名,如:*.paas.xxx.edu.cn
,或 直接使用学校域名 xxx.edu.cn
本产品安装需要的域名如下:
authx-minio.paas.xxx.edu.cn 文件服务 security-center.paas.xxx.edu.cn 安全中心 cas.paas.xxx.edu.cn CAS 认证(视具体情况,可调整) token.paas.xxx.edu.cn Token 认证(APP适用)
如果使用 学校域名,则去除 .paas 即可,同时申请开通相关域名
确定服务地址、端口
明确MySQL 数据库的 IP、端口
数据库帐号
以下是 各服务对应的数据库帐号
服务 | 数据库帐号
命令: 请修改命令中的 your_password
为实际的数据库用户的密码
create user 'agent_service'@'%' identified with mysql_native_password by '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 'cas_server'@'%' identified with mysql_native_password by 'your_password'; create user 'token_server'@'%' identified with mysql_native_password by 'your_password'; create user 'tmp_data'@'%' identified with mysql_native_password by 'your_password';
数据库
以下是 各服务对应的数据库
服务 | 数据库
命令:
create database `agent_service` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database `user_authz` 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 `tmp_data` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
数据库权限授予
将 database 的权限授予对应的帐号
命令:
grant all privileges on `agent_service`.* to 'agent_service'@'%' with grant option; 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 `cas_server`.* to 'cas_server'@'%' with grant option; grant all privileges on `token_server`.* to 'token_server'@'%' 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'@'%';
命名空间: authx-minio
MINIO配置 模式: standalone
Access Key: 1y8N@8R@a_2u
Secret Key: 8pxlIe9#lN7Q
域名: authx-minio.paas.xxx.edu.cn
,请修改为实际的学校域名
Default storageClass: <请选择存储类>
命名空间: agent-service
外部MYSQL-连接配置 外部MySQL host: <请填写数据库服务的IP地址> 外部MySQL port: <请填写数据库服务的端口>
AGENT SERVICE - MYSQL数据库配置 用户名: agent_service
,固定值、或按实际情况修改 密码: <请填写创建的数据库用户的密码> 数据库名: agent_service
,固定值、或按实际情况修改
文件服务设置 Minio Url: http://minio.authx-minio.svc.cluster.local:9000
,若 minio 的命名空间有调整,请修改 Minio Access Key: 1y8N@8R@a_2u
Minio Secret Key: 8pxlIe9#lN7Q
邮箱服务配置 邮件发送模式: smtp SMTP Host: SMTP Port: SMTP Secure Mode: SMTP 用户名: SMTP 密码: SMTP 发件人名称:
短信服务配置 短信发送模式: aliyun 对接阿里云的短信服务 阿里云短信接口地域: cn-hangzhou 阿里云短信接口Access Key: 阿里云短信接口Access Secret:
命名空间: authx-service
REDIS配置 - 安全配置 Redis密码: 8KuwoslOiuw7H
Default Storage Class: <请选择存储类>
RABBITMQ配置 - 安全配置 用户名: guest 密码: guest
MYSQL数据库配置 - 服务地址 MySQL服务 host: <请填写数据库服务的IP地址> MySQL服务 port: <请填写数据库服务的端口>
MYSQL数据库配置 - 用户服务
用户名: user
,固定值、或按实际情况修改 密码: <请填写创建的数据库用户的密码> 数据库名: user
,固定值、或按实际情况修改
MYSQL数据库配置 - 授权服务
用户名: user_authz
,固定值、或按实际情况修改 密码: <请填写创建的数据库用户的密码> 数据库名: user_authz
,固定值、或按实际情况修改
域名全局设置
根域名: paas.<school>.edu.cn
,请修改为实际的学校域名
域名配置 - 安全中心
子域名: security-center
,若须修改,根据实际情况修改即可
POA 设置
POA网关地址: http://poa.paas.<school>.edu.cn
,请设置为 poa 网关的外网地址 POA SA地址: 请设置为 poa-sa 管理接口的 k8s 内部地址(根据实际部署的 POA 进行调整)
依赖服务 - 文件服务设置
Minio外网地址: http://authx-minio.paas.<school>.edu.cn
,请设置为 minio 的外网地址
依赖服务 - 认证设置
CAS认证地址: http://cas.paas.<school>.edu.cn/cas
,请设置为 cas 认证的外网地址
依赖 API - AGENT SERVICE
Agent Service API内部地址: http://agent-service.agent-service.svc.cluster.local:8080
,固定值,若 agent-service 的命名空间有调整,请修改
Agent Service 文件上传路径: /api/v1/tpas/file/minio
,一般不用修改 Agent Service 邮件发送路径: /api/v1/tpas/mail/smtp
,一般不用修改 Agent Service 短信发送路径: /api/v1/tpas/sms/aliyun
, 若不使用阿里云短信服务,须修改
依赖 API - CAS SERVER
CAS内部地址: http://cas-server-webapp.cas-server.svc.cluster.local:8080/cas
,固定值,若 cas-server 的命名空间有调整,请修改 CAS SA API内部地址: http://cas-server-sa.cas-server.svc.cluster.local:8080
,固定值,若 cas-server 的命名空间有调整,请修改
命名空间: jobs-server
外部RABBITMQ - 连接配置
外部RabbitMQ host: authx-service-rabbitmq.authx-service.svc.cluster.local
,连接 authx-service 的rabbitmq, 若 authx-service 的命名空间有调整,请修改 外部RabbitMQ port: 5672
RABBITMQ配置 - 安全配置
用户名: guest 密码: guest
用户数据 - 数据源配置
JDBC URL: jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai
,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改 JDBC用户名: user JDBC密码: <请填写创建的数据库用户的密码>
用户数据 - API设置
GOA API地址: http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080
,固定值,若 authx-service 的命名空间有调整,请修改
命名空间: cas-server
REDIS配置 - 安全配置 Redis密码: 8KuwoslOiuw7H
Default Storage Class: <请选择存储类>
RABBITMQ配置 - 安全配置 用户名: guest 密码: guest
MYSQL数据库配置 - 服务地址 MySQL服务 host: <请填写数据库服务的IP地址> MySQL服务 port: <请填写数据库服务的端口>
MYSQL数据库配置 - CAS 认证
用户名: cas_server
,固定值、或按实际情况修改 密码: <请填写创建的数据库用户的密码> 数据库名: cas_server
,固定值、或按实际情况修改
MYSQL数据库配置 - Token Server
用户名: token_server
,固定值、或按实际情况修改 密码: <请填写创建的数据库用户的密码> 数据库名: token_server
,固定值、或按实际情况修改
域名全局设置
根域名: paas.<school>.edu.cn
,请修改为实际的学校域名
域名配置 - CAS 认证
子域名: cas
,若须修改,根据实际情况修改即可
域名配置 - Token Server
子域名: token
,若须修改,根据实际情况修改即可
POA 设置
POA网关地址: http://poa.paas.<school>.edu.cn
,请设置为 poa 网关的外网地址 POA SA地址: 请设置为 poa-sa 管理接口的 k8s 内部地址(根据实际部署的 POA 进行调整)
依赖 API - AGENT SERVICE
Agent Service 内部地址: http://agent-service.agent-service.svc.cluster.local:8080
,固定值,若 agent-service 的命名空间有调整,请修改
Agent Service 文件上传路径: /api/v1/tpas/file/minio
,一般不用修改 Agent Service 邮件发送路径: /api/v1/tpas/mail/smtp
,一般不用修改 Agent Service 短信发送路径: /api/v1/tpas/sms/aliyun
, 若不使用阿里云短信服务,须修改
依赖 API - 用户服务
用户数据API内部地址: http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080
,固定值,若 authx-service 的命名空间有调整,请修改
依赖 API - 授权服务
用户授权API内部地址: http://authx-service-user-authz-service-sa.authx-service.svc.cluster.local:8080
,固定值,若 authx-service 的命名空间有调整,请修改
动态密码
动态密码短信标题: 认证中心,固定值 动态密码短信模板: 请修改为合适的短信模板
JWT 公私钥
参考 certs/jwt/readme.md 生成公私钥pem,修改相关配置(请使用与 token-server 一致的公私钥)
JWT私钥: JWT公钥:
CAS认证 - 图片验证码
启用图片验证码: 是 or 否
CAS认证 - 持久卷
Default Storage Class: <请选择存储类>
CAS认证 - DATAX数据库配置
数据源JdbcUrl: jdbc:mysql://authx-service-mysql-server.authx-service.svc.cluster.local:3306/user?serverTimezone=Asia/Shanghai
,连接 authx-service 的mysql,若 authx-service 的命名空间有调整,请修改 数据源用户名: user 数据源密码: <请填写创建的数据库用户的密码>
TOKEN SERVER - 消息服务
是否开启消息服务: true or false,默认 false 消息服务应用ID: 由消息服务提供
TOKEN SERVER - POA CLIENT
Client Id: 从 POA 进行申请 Client Secret: 从 POA 进行申请
TOKEN SERVER - 人脸服务配置 可与 新开普人脸平台 或 百度人脸服务 进行对接
人脸登录类型: aiface: 新开普人脸, aipface: 百度人脸
以下配置从 新开普人脸平台 申请 新开普人脸登录Url: 新开普人脸登录App Key: 新开普人脸登录App Secret: 新开普人脸登录Secret Key: 新开普人脸登录Term Code:
以下配置从 百度开放平台 申请 百度人脸登录App Id: 百度人脸登录Api Key: 百度人脸登录Secret Key: