### CAS认证
-**采用 sql 文件执行接口进行部署**
+**采用业务管理接口进行部署**
-版本要求:1.2.2
+版本要求:1.2.0
* 部署接口
+1. 创建 Service
+
```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'
+ -H 'Content-Type: application/json' \
+ -d '{
+ "id": "0",
+ "companyId": 1,
+ "name": "示例",
+ "description": "示例",
+ "informationUrl": "https://example.com",
+ "logoutUrl": "https://example.com/slo",
+ "responseType": "REDIRECT",
+ "logoutType": "FRONT_CHANNEL",
+ "evaluationOrder": 0,
+ "friendlyName": "示例",
+ "registeredServiceId": 0,
+ "serviceId": "https://example.com/(.*)",
+ "enabled": true,
+ "ssoEnabled": true,
+ "requireAllAttributes": true,
+ "idTokenEnabled": false,
+ "jwtAsServiceTicket": false,
+ "adaptV4Product": false,
+ "applicationId": "0",
+ "applicationDomain": "example.com",
+ "externalId": "0"
+}' \
+ 'http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080/v1/admin/services'
```
-* 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');
+2. 更新 Service
-commit;
+```bash
+curl -i -s -X PUT \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "id": "0",
+ "companyId": 1,
+ "name": "示例",
+ "description": "示例",
+ "informationUrl": "https://example.com",
+ "logoutUrl": "https://example.com/slo",
+ "responseType": "REDIRECT",
+ "logoutType": "FRONT_CHANNEL",
+ "evaluationOrder": 0,
+ "friendlyName": "示例",
+ "registeredServiceId": 0,
+ "serviceId": "https://example.com/(.*)",
+ "enabled": true,
+ "ssoEnabled": true,
+ "requireAllAttributes": true,
+ "idTokenEnabled": false,
+ "jwtAsServiceTicket": false,
+ "adaptV4Product": false,
+ "applicationId": "0",
+ "applicationDomain": "example.com",
+ "externalId": "0"
+}' \
+ 'http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080/v1/admin/services'
```
+
> 说明
-修改 ID、EVALUATION_ORDER、REGISTERED_SERVICE_ID、APPLICATION_ID、EXTERNAL_ID,应用的ID、标识等
+修改 id、registeredServiceId、applicationId、externalId,应用的ID、标识等
-修改 NAME、DESCRIPTION、FRIENDLY_NAME,应用的名称
+修改 evaluationOrder
-修改 ID_TOKEN_ENABLED、JWT_AS_SERVICE_TICKET,1 启用,0 禁用
+修改 name、description、friendlyName,应用的名称
-修改 INFORMATION_URL、LOGOUT_URL、SERVICE_ID、APPLICATION_DOMAIN,相关地址、域名修改
+修改 idTokenEnabled、jwtAsServiceTicket、adaptV4Product,true 启用,false 禁用
-> 应用对接表 TB_SERVICE
+修改 informationUrl、logoutUrl、serviceId、applicationDomain,相关地址、域名修改
-字段名 | 字段说明
-- | -
-ID | 确保唯一性
-COMPANY_ID | 固定为 1
-DELETED | 是否删除,固定为 0
-ADD_ACCOUNT | 创建帐号
-ADD_TIME | 创建时间,建议为 null;如必要,可填入时间
+
+
+* 接口属性说明
+
+> 应用(Service)的属性说明
+
+属性名 | 说明
- | -
-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 保持一致
+id | 确保唯一性
+name | 应用名称
+description | 描述
+informationUrl | 应用的访问地址
+logoutUrl | 应用的前端注销地址
+responseType | 登录成功后的响应方式,固定为 REDIRECT
+logoutType | 单点注销方式,固定为 FRONT_CHANNEL
+evaluationOrder | 优先级
+friendlyName | 同 应用名称
+registeredServiceId | 唯一ID,整型
+serviceId | 应用匹配规则,确保前缀与对接时的 service 相匹配
+enabled | 是否启用
+ssoEnabled | 是否支持单点登录
+requireAllAttributes | 固定为 true
+idTokenEnabled | 是否返回 ID Token,方便公司内产品的前端,调用后端接口
+jwtAsServiceTicket | 是否返回 JWT 格式的票据,便于纯前端项目对接
+adaptV4Product | 是否适配认证V4,用于兼容公司历史版本的认证
+applicationId | 应用标识,可与 id 保持一致
+applicationDomain | 应用域,使用访问地址中的 域名
+externalId | 外部ID(预留),与 id 保持一致
+
+
+
+### 用户服务
+
+可以添加 用户、账号,部门,用户组,
+
+服务地址:`http://authx-service-user-data-service-goa.authx-service.svc.cluster.local:8080`
+
+* 用户创建接口
+
+版本要求:1.2.7、1.3.2、1.4.1、1.5.0
+
+**仅创建用户的基本信息,不会创建账号**
+
+POST /api/v1/trans/user?transOrigin=init
+Content-Type: application/json
+
+```json
+{
+ "uid": "string",
+ "passWord": "string",
+ "name": "string",
+ "nameSpelling": "string",
+ "fullNameSpelling": "string",
+ "certificateTypeCode": "string",
+ "certificateNumber": "string",
+ "phoneNumber": "string",
+ "email": "string",
+ "imageUrl": "string",
+ "genderCode": "string",
+ "nationCode": "string",
+ "countryCode": "string",
+ "addressCode": "string",
+ "activation": true,
+ "dataCenter": true,
+ "externalId": "string"
+}
+```
+
+> 用户的属性说明
+
+属性名 | 说明 | 是否必填
+- | - | -
+uid | 用户标识 | 否,为空时,随机生成
+passWord | 密码 | 否,为空时,默认 123456,且激活状态为 未激活
+name | 姓名 | 是
+nameSpelling | 姓名简拼 | 否
+fullNameSpelling | 姓名全拼 | 否
+certificateTypeCode | 证件类型代码(参考字典表 证件类型,如 1 居民身份证) | 是
+certificateNumber | 证件号码 | 是
+phoneNumber | 联系电话(预留手机) | 否
+email | 电子邮箱(预留邮箱) | 否
+imageUrl | 头像地址 | 否
+genderCode | 性别代码(参考字典表 性别,如 1 男,2 女) | 否
+nationCode | 民族代码(参考字典表 民族,如 01 汉族) | 否
+countryCode | 国家代码(参考字典表 国家,如 156 中国) | 否
+addressCode | 地区代码(参考字典表 地区,如 110000 北京市,120000 天津市,310000 上海市) | 否
+activation | 是否激活(true 是,false 否) | 是
+dataCenter | 是否来源数据中心(true 是,false 否) | 是
+externalId | 外部Id | 否
+
+
+* 账号(包含用户信息)创建接口
+
+版本要求:1.0+
+
+POST /api/v1/trans/account?transOrigin=init
+Content-Type: application/json
+
+```json
+{
+ "uid": "string",
+ "passWord": "string",
+ "name": "string",
+ "nameSpelling": "string",
+ "fullNameSpelling": "string",
+ "certificateTypeCode": "string",
+ "certificateNumber": "string",
+ "phoneNumber": "string",
+ "email": "string",
+ "imageUrl": "string",
+ "genderCode": "string",
+ "nationCode": "string",
+ "countryCode": "string",
+ "addressCode": "string",
+ "accountName": "string",
+ "organizationCode": "string",
+ "identityTypeCode": "string",
+ "accountExpiryDateMillis": 0,
+ "state": "string",
+ "activation": true,
+ "dataCenter": true,
+ "externalId": "string"
+}
+```
+
+> 账号的属性说明
+
+属性名 | 说明 | 是否必填
+- | - | -
+uid | 用户标识 | 否,为空时,随机生成
+passWord | 密码 | 否,为空时,默认 123456,且激活状态为 未激活
+name | 姓名 | 是
+nameSpelling | 姓名简拼 | 否
+fullNameSpelling | 姓名全拼 | 否
+certificateTypeCode | 证件类型代码(参考字典表 证件类型,如 1 居民身份证) | 是
+certificateNumber | 证件号码 | 是
+phoneNumber | 联系电话(预留手机) | 否
+email | 电子邮箱(预留邮箱) | 否
+imageUrl | 头像地址 | 否
+genderCode | 性别代码(参考字典表 性别,如 1 男,2 女) | 否
+nationCode | 民族代码(参考字典表 民族,如 01 汉族) | 否
+countryCode | 国家代码(参考字典表 国家,如 156 中国) | 否
+addressCode | 地区代码(参考字典表 地区,如 110000 北京市,120000 天津市,310000 上海市) | 否
+accountName | 账号名 | 是
+organizationCode | 组织机构代码(对应组织机构的代码) | 是
+identityTypeCode | 身份代码(对应身份的代码) | 是
+accountExpiryDateMillis | 过期时间(时间戳,毫秒) | 否
+state | 状态(NORMAL: 正常, FREEZE: 冻结, WRITTENOFF: 注销) | 是
+activation | 是否激活(true 是,false 否) | 是
+dataCenter | 是否来源数据中心(true 是,false 否) | 是
+externalId | 外部Id | 否
+
+
+* 部门创建接口
+
+版本要求:1.0+
+
+POST /api/v1/trans/organization?transOrigin=init
+Content-Type: application/json
+
+```json
+{
+ "parentOrganizationCode": "string",
+ "code": "string",
+ "name": "string",
+ "description": "string",
+ "typeCode": "string",
+ "state": 0,
+ "isDataCenter": true,
+ "externalId": "string"
+}
+```
+
+> 组织机构的属性说明
+
+属性名 | 说明 | 是否必填
+- | - | -
+parentOrganizationCode | 上级部门的代码(对应组织机构的代码) | 是
+code | 代码 | 是
+name | 名称 | 是
+description | 描述 | 否
+typeCode | 组织机构类型代码(参考字典表 组织机构类型) | 是
+state | 状态(0: 正常, 1: 冻结, 2: 注销) | 是
+isDataCenter | 是否来源数据中心(true 是,false 否) | 否,为空时,默认为 true
+externalId | 外部Id | 否
+
+
+* 用户组创建接口
+
+版本要求:1.2.9、1.3.5、1.4.3、1.5.0
+
+POST /api/v1/trans/group?transOrigin=init
+Content-Type: application/json
+
+```json
+{
+ "code": "string",
+ "name": "string",
+ "description": "string",
+ "type": "string",
+ "state": 0,
+ "categoryCode": "string",
+ "common": true,
+ "applicationId": "string",
+ "isDataCenter": true,
+ "externalId": "string"
+}
+```
+
+> 用户组的属性说明
+
+属性名 | 说明 | 是否必填
+- | - | -
+parentOrganizationCode | 上级部门的代码(对应组织机构的代码) | 是
+code | 代码 | 是
+name | 名称 | 是
+description | 描述 | 否
+type | 类型(1: 普通用户组, 2: 岗位用户组) | 是
+state | 状态(1: 启用, 0: 禁用) | 是
+common | 是否公共用户组(true 是,false 否) | 否,为空时,默认为 true
+applicationId | 所属应用标识(common 为 false 时,须设置) | 否
+isDataCenter | 是否来源数据中心(true 是,false 否) | 否,为空时,默认为 true
+externalId | 外部Id | 否
+
### 授权服务
'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;
```
+如须自动同步角色,请修改 `SYNC_URL`
+
> 系统信息表 TB_R_SYSTEM
字段名 | 字段说明
ENABLED | 是否启用(1 启用,0 禁用)
+** 采用业务管理接口进行部署 **
+
+> 创建角色
+
+```bash
+curl -i -s -X POST \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "id": "0",
+ "code": "example-admin",
+ "name": "示例管理员",
+ "description": "示例管理员",
+ "enabled": true,
+ "applicationId": "0",
+ "externalId": "0"
+}' \
+ 'http://authx-service-user-authz-service-sa.authx-service.svc.cluster.local:8080/v1/admin/roles'
+```
+
+
+
> 角色表 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
+id | 确保唯一性
+applicationId | 所属应用,同 TB_APPLICATION 的 ID
+code | 角色代码
+name | 角色名称
+description | 角色描述
+enabled | 是否启用(1 启用,0 禁用)
+externalId | 对应所在应用内的数据的ID