From: 刘洪青 Date: Thu, 22 Jul 2021 06:32:31 +0000 (+0800) Subject: docs: 产品部署之中台服务对接数据初始化相关接口的说明 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=066d3db342ca835204639f1e5bd9c8d9b6c10684;p=institute%2Fdeploy-authx-service.git docs: 产品部署之中台服务对接数据初始化相关接口的说明 --- diff --git "a/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.md" "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.md" new file mode 100644 index 0000000..010e8b7 --- /dev/null +++ "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.md" @@ -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/\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" "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" new file mode 100644 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