安装部署手册

业务中台之认证授权服务

  • 修订历史

版本 | 作者 | 日期 | 备注

  • | - | - | - v1 | 刘洪青 | 2020-06-10 | 初稿

安装准备

MySQL 初始配置及相关基础命令

数据文件目录:/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
    

Harbor 准备及相关说明

  • 创建 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,选择角色 访客,确定,添加即可

Rancher 准备及相关说明

  • 商店设置

    进入 全局 - 集群(具体名称视项目安装而定) - 工具 - 商店设置,添加应用商店

    名称: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        Token 认证
    
  • 确定命名空间

    本产品安装过程中所须的命名空间如下:

    authx-minio         Minio文件服务
    
    agent-service       Agent Service 代理服务
    
    authx-service       用户授权相关服务
    
    jobs-server         同步服务
    
    cas-server          CAS 认证
    
    token-server        Token 认证
    

域名准备

  • 确定域名

    首先明确是否使用泛域名,如:*.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、端口

数据库创建

  • 数据库帐号

    以下是 各服务对应的数据库帐号

    服务 | 数据库帐号

    • | - 第三方代理服务 thridparty-agent-service | agent_service
    • | - 用户服务 user-data-service | user 授权服务 user-authorization-service | user_authz
    • | - 认证服务 cas-server | cas_server 认证服务(APP适用) token-server | token_server
    • | - v4认证迁移数据 | tmp_data

    命令: 请修改命令中的 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';
    
  • 数据库

    以下是 各服务对应的数据库

    服务 | 数据库

    • | - 第三方代理服务 thridparty-agent-service | agent_service
    • | - 用户服务 user-data-service | user 授权服务 user-authorization-service | user_authz
    • | - 认证服务 cas-server | cas_server 认证服务(APP适用) token-server | token_server
    • | - v4认证迁移数据 | tmp_data

    命令:

    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'@'%';
    

rancher 部署(应用商店)

minio

模式: standalone

Access Key: 1y8N@8R@a_2u Secret Key: 8pxlIe9#lN7Q

域名: authx-minio.paas.xxx.edu.cn

agent-service

authx-service

jobs-server

cas-server

token-server