docs: 产品部署之中台服务对接数据初始化相关接口的说明
author刘洪青 <hongqing.liu@supwisdom.com>
Thu, 22 Jul 2021 06:32:31 +0000 (14:32 +0800)
committer刘洪青 <hongqing.liu@supwisdom.com>
Thu, 22 Jul 2021 06:32:31 +0000 (14:32 +0800)
docs/产品部署之中台服务对接数据初始化相关接口的说明.md [new file with mode: 0644]
docs/产品部署之中台服务对接数据初始化相关接口的说明.pdf [new file with mode: 0644]

diff --git a/docs/产品部署之中台服务对接数据初始化相关接口的说明.md b/docs/产品部署之中台服务对接数据初始化相关接口的说明.md
new file mode 100644 (file)
index 0000000..010e8b7
--- /dev/null
@@ -0,0 +1,297 @@
+
+# 产品部署之中台服务对接数据初始化相关接口的说明
+
+[TOC]
+
+## 说明
+
+本文档,为中台产品在部署时,提供对接数据初始化的相关接口
+
+主要涉及:
+
+1. CAS认证,创建 Servcie
+
+1. 授权服务,创建 应用,应用角色
+
+1. 云平台菜单,创建 应用,菜单,角色权限的关联
+
+
+## 数据初始化接口说明
+
+### CAS认证
+
+**采用 sql 文件执行接口进行部署**
+
+版本要求:1.2.2
+
+* 部署接口
+
+```bash
+curl -i -s -X POST \
+  -H 'Content-Type: text/plain' \
+  --data-binary @cas_server_integrate.sql \
+  'http://cas-server-sa.cas-server.svc.cluster.local:8080/deploy/execSql'
+```
+
+* SQL脚本示例
+
+cas_server_integrate.sql
+```sql
+-- Service 的创建
+INSERT INTO TB_SERVICE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
+  NAME, DESCRIPTION, INFORMATION_URL, LOGOUT_URL, 
+  RESPONSE_TYPE, LOGOUT_TYPE, 
+  EVALUATION_ORDER, FRIENDLY_NAME, REGISTERED_SERVICE_ID, SERVICE_ID, 
+  ENABLED, SSO_ENABLED, REQUIRE_ALL_ATTRIBUTES, 
+  ID_TOKEN_ENABLED, JWT_AS_SERVICE_TICKET, ADAPT_V4_PRODUCT, 
+  APPLICATION_ID, APPLICATION_DOMAIN, EXTERNAL_ID)
+VALUES ('0', '1', 0, 'admin', null,
+  '示例', '示例', 'https://example.com', 'https://example.com/slo', 
+  'REDIRECT', 'FRONT_CHANNEL', 
+  0, '示例', 0, 'https://example.com/(.*)', 
+  1, 1, 1, 
+  0, 0, 0, 
+  '0', 'example.com', '0');
+
+commit;
+```
+
+> 说明
+
+修改 ID、EVALUATION_ORDER、REGISTERED_SERVICE_ID、APPLICATION_ID、EXTERNAL_ID,应用的ID、标识等
+
+修改 NAME、DESCRIPTION、FRIENDLY_NAME,应用的名称
+
+修改 ID_TOKEN_ENABLED、JWT_AS_SERVICE_TICKET,1 启用,0 禁用
+
+修改 INFORMATION_URL、LOGOUT_URL、SERVICE_ID、APPLICATION_DOMAIN,相关地址、域名修改
+
+> TB_SERVICE
+
+字段名 | 字段说明
+- | -
+ID | 确保唯一性
+COMPANY_ID | 固定为 1
+DELETED | 是否删除,固定为 0
+ADD_ACCOUNT | 创建帐号
+ADD_TIME | 创建时间,建议为 null;如必要,可填入时间
+- | -
+NAME | 应用名称
+DESCRIPTION | 描述
+INFORMATION_URL | 应用的访问地址
+LOGOUT_URL | 应用的前端注销地址
+RESPONSE_TYPE | 登录成功后的响应方式,固定为 REDIRECT
+LOGOUT_TYPE | 单点注销方式,固定为 FRONT_CHANNEL
+EVALUATION_ORDER | 优先级
+FRIENDLY_NAME | 同 应用名称
+REGISTERED_SERVICE_ID | 唯一ID,整型
+SERVICE_ID | 应用匹配规则,确保前缀与对接时的 service 相匹配
+ENABLED | 是否启用
+SSO_ENABLED | 是否支持单点登录
+REQUIRE_ALL_ATTRIBUTES | 固定为 true
+ID_TOKEN_ENABLED | 是否返回 ID Token,方便公司内产品的前端,调用后端接口
+JWT_AS_SERVICE_TICKET | 是否返回 JWT 格式的票据,便于纯前端项目对接
+ADAPT_V4_PRODUCT | 是否适配认证V4,用于兼容公司历史版本的认证
+APPLICATION_ID | 应用标识,与 ID 保持一致
+APPLICATION_DOMAIN | 应用域,使用访问地址中的 域名
+EXTERNAL_ID | 外部ID(预留),与 ID 保持一致
+
+
+### 授权服务
+
+**采用 sql 文件执行接口进行部署**
+
+版本要求:1.2.3
+
+
+* 部署接口
+
+```bash
+curl -i -s -X POST \
+  -H 'Content-Type: text/plain' \
+  --data-binary @user_authz_integrate.sql \
+  'http://authx-service-user-authz-service-sa.authx-service.svc.cluster.local:8080/deploy/execSql'
+```
+
+* SQL脚本示例
+
+user_authz_integrate.sql
+```sql
+-- 应用的创建脚本
+INSERT INTO TB_R_SYSTEM (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
+  BUSINESS_DOMAIN_ID, 
+  CODE, NAME, ENABLED)
+VALUES ('0', '1', 0, 'init', null, 
+  '1', 
+   '0', '示例系统', 1);
+
+INSERT INTO TB_APPLICATION (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
+  BUSINESS_DOMAIN_ID, SYSTEM_ID, 
+  NAME, APPLICATION_ID, SYNC_URL, ENABLED)
+VALUES ('0', '1', 0, 'init', null, 
+  '1', '0', 
+  '示例应用', '0', '', 1);
+
+commit;
+
+-- 应用角色的创建脚本
+INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
+  APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
+VALUES ('0', '1', 0, 'init', null, 
+  '0', 'example-admin', '示例管理员', '示例管理员', 1, '0');
+
+commit;
+```
+
+> TB_R_SYSTEM
+
+字段名 | 字段说明
+- | -
+ID | 确保唯一性
+COMPANY_ID | 固定为 1
+DELETED | 是否删除,固定为 0
+ADD_ACCOUNT | 创建帐号
+ADD_TIME | 创建时间,建议为 null;如必要,可填入时间
+- | -
+BUSINESS_DOMAIN_ID | 所属业务域,暂时固定为 1
+CODE | 系统代码
+NAME | 系统名称
+ENABLED | 是否启用(1 启用,0 禁用)
+
+
+> TB_APPLICATION
+
+字段名 | 字段说明
+- | -
+ID | 确保唯一性
+COMPANY_ID | 固定为 1
+DELETED | 是否删除,固定为 0
+ADD_ACCOUNT | 创建帐号
+ADD_TIME | 创建时间,建议为 null;如必要,可填入时间
+- | -
+BUSINESS_DOMAIN_ID | 所属业务域,暂时固定为 1
+SYSTEM_ID | 所属系统,同 TB_R_SYSTEM 的 ID
+NAME | 应用名称
+APPLICATION_ID | 应用标识,可以与 ID 保持一致
+SYNC_URL | 角色数据的同步接口。若不需要,可以为空
+ENABLED | 是否启用(1 启用,0 禁用)
+
+
+> TB_ROLE
+
+字段名 | 字段说明
+- | -
+ID | 确保唯一性
+COMPANY_ID | 固定为 1
+DELETED | 是否删除,固定为 0
+ADD_ACCOUNT | 创建帐号
+ADD_TIME | 创建时间,建议为 null;如必要,可填入时间
+- | -
+APPLICATION_ID | 所属应用,同 TB_APPLICATION 的 ID
+CODE | 角色代码
+NAME | 角色名称
+DESCRIPTION | 角色描述
+ENABLED | 是否启用(1 启用,0 禁用)
+EXTERNAL_ID | 对应所在应用内的数据的ID
+
+
+
+### 云平台菜单
+
+**采用业务管理接口进行部署**
+
+版本要求:1.2.0
+
+* 部署接口
+
+> 创建应用
+
+```bash
+curl -i -s -X POST \
+  -H 'Content-Type: application/json' \
+  -d '{"id": "0", "code": "0", "name":"示例", "memo":"示例", "status":"1", "url":""}' \
+ 'http://admin-platform-admin-center-sa.admin-platform.svc.cluster.local:8080/v1/admin/applications'
+```
+
+> 导入菜单
+
+```bash
+curl -i -s -X POST \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "applicationId": "0",
+  "menuList": 
+    [
+      {
+        "id": "0-10000", "parentIdOrCode":"1", "code": "example-10000", "name": "示例一级", "memo": "", "status": "1", 
+        "icon": "", "origin": "http://admin-platform.paas.xxx.edu.cn", "url": "/", "target": "", 
+        "order": 10000, "resourceIdOrCodes": []
+      },
+      {
+        "id": "0-10100", "parentIdOrCode":"0-10000", "code": "example-10100", "name": "示例二级", "memo": "", "status": "1", 
+        "icon": "su-icon-denglupeizhi", "origin": "http://admin-platform.paas.xxx.edu.cn", "url": "/example/example-10100", "target": "", 
+        "order": 10100, "resourceIdOrCodes": []
+      },
+    ……
+    ]
+}' \
+  'http://admin-platform-admin-center-sa.admin-platform.svc.cluster.local:8080/v1/admin/menus/importMenu'
+```
+
+> 角色权限(关联菜单)
+
+```bash
+curl -i -s -X POST \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "rolePermissionList": 
+    [
+      {
+        "roleId": "0", "roleCode":"example-admin", 
+        "permissionIdOrCodes": ["0-10000", "0-10100"]
+      },
+    ……
+    ]
+}' \
+  'http://admin-platform-admin-center-sa.admin-platform.svc.cluster.local:8080/v1/admin/rolePermissions/importRolePermission'
+```
+
+* 接口 属性说明
+
+> 应用的属性说明
+
+属性名 | 说明
+- | -
+id | 确保唯一性
+code | 应用标识,与 id 保持一致
+name | 应用名称
+memo | 描述
+status | 状态(1 启用,0 停用)
+
+
+> 菜单的属性说明
+
+属性名 | 说明
+- | -
+id | 确保唯一性
+parentIdOrCode | 上级菜单的ID 或 代码
+code | 菜单代码
+name | 菜单名称
+memo | 描述
+status | 状态(1 启用,0 停用)
+icon | 图标 CSS 名
+origin | 归属域名,一般为 admin-platform 的域名
+url | 菜单地址、路由
+target | 打开方式,空 表示当前窗口直接打开;iframe 表示在iframe中打开
+order | 排序
+resourceIdOrCodes | 关联的资源(后端接口)的ID 或 代码。数组,可以为空
+
+
+> 角色权限的属性说明
+
+属性名 | 说明
+- | -
+roleId | 角色ID
+roleCode | 角色代码
+permissionIdOrCodes | 关联的菜单的ID 或 代码。数组
+
diff --git a/docs/产品部署之中台服务对接数据初始化相关接口的说明.pdf b/docs/产品部署之中台服务对接数据初始化相关接口的说明.pdf
new file mode 100644 (file)
index 0000000..3d3313b
Binary files /dev/null and "b/docs/\344\272\247\345\223\201\351\203\250\347\275\262\344\271\213\344\270\255\345\217\260\346\234\215\345\212\241\345\257\271\346\216\245\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226\347\233\270\345\205\263\346\216\245\345\217\243\347\232\204\350\257\264\346\230\216.pdf" differ