IoT服务化集成

一、用户同步

1. 全量同步租户信息

调用接口:/iam-view/service/application/application/{applicationUniqueId}

参数 说明
applicationUniqueId 应用唯一识别码

获取到租户信息后,将租户信息同步到company表中、针对每个租户创建相应的数据表并记录同步时间。

2. 全量同步组织信息

调用接口:/iam-view/service/tenant/{tenantUniqueId}

参数 说明
tenantUniqueId 租户唯一识别码

获取到组织后,将组织信息同步到organization表中,并记录同步时间。

3. 全量同步人员信息

调用接口:/iam-view/service/organize/baseUser/{organizeUniqueId}

参数 说明
organizeUniqueId 组织唯一识别码

获取到人员信息后,将人员信息同步到user表中,并记录同步时间。

4. 增量同步租户信息

调用接口:/iam-view/service/tenant/synchronize?times=

参数 说明
times Long型时间戳数组

每十分钟同步租户增量信息,times为上次记录的同步时间戳和当前时间戳,获取到租户信息后,将租户信息同步到company表中、针对每个租户创建相应的数据表并记录同步时间。

5. 增量同步组织信息

调用接口:/iam-view/service/organize/synchronize/organize?tenantUniqueId=&times=

参数 说明
tenantUniqueId 租户唯一识别码
times Long型时间戳数组

每十分钟同步组织增量信息,times为上次记录的同步时间戳和当前时间戳,获取到组织信息后,将组织信息同步到organization表中,并记录同步时间。

6. 增量同步人员信息

调用接口:/iam-view/service/organize/synchronize/baseUser?organizeUniqueId=&times=

参数 说明
organizeUniqueId 组织唯一识别码
times Long型时间戳数组

每十分钟同步人员增量信息,times为上次记录的同步时间戳和当前时间戳,获取到人员信息后,将人员信息同步到user表中,并记录同步时间。

二、SSO对接

1. 门户系统跳转到Iot平台,请求code。
2. 请求code

调用https://{domain}/auth/realms/SE-UNICLOUD/protocol/openid-connect/auth?response_type=code&client_id=sedtiot&redirect_uri=http://localhost:8091/products&state=8e3c9476-c51b-41d6-807e-e85cb5ac2655&login=true&scope=openid接口,跳转到门户系统登录界面,输入用户名和密码后,跳转到redirect_url地址获取code。(需要对state值进行验证)

3. 请求token

code获取成功后,调用https://{domain}/auth/realms/SE-UNICLOUD/protocol/openid-connect/token接口获取token,需要传递的参数包括:

(1) Authorization: 采用basic auth(认证头信息)

(2) 头信息accept(application/json)和 Content-Type(application/x-www-form-urlencoded)

(3) 请求体grant_type(authorication_code)、redirect_url(和第3步中的一致)、code(第二部中获取的code)

4. 获取token

在回到redirect_url中获取token、token过期时间、refresh_token、refresh_token过期时间,通过token获取对应的用户信息。

5. 获取用户信息

Token获取成功后,调用https://{domain}/auth/realms/SE-UNICLOUD/protocol/openid-connect/userinfo接口获取用户信息,需要传递的参数包括:

(1) Authorization: bearer Token,传入accesstoken

(2) 头信息accept(application/json)和 Content-Type(application/x-www-form-urlencoded)

获取到用户信息后,将上一步中获取的token、token过期时间、refresh_token、refresh_token过期时间进行保存,并跳转到平台首页。

三、服务化集成

1. 实例化请求接口

当用户在Paas平台订阅服务后,会调用下面的接口:

接口地址:/service/instance/{instanceId}

请求方式:POST

接口参数:

参数名 必选 类型 说明
service_id string 服务的ID
plan_id string 已请求服务实例的计划的ID
parameters Object 参数信息
parameters.username String 用户名
parameters.phone String 手机号

请求示例:

{
    "service_id": 111,  
    "plan_id": 222,  
    "parameters": {
        "username": "sedt",
        "phone": "182****7819"
    }
}

处理逻辑:

(1) 判断请求的格式、参数是否正确

(2) 判断用户是否存在

(3) 判断用户是否已订阅该服务

(4) 将用户状态改为启动状态,并分配相应的用户权限

(5) 保存用户订阅的服务信息(service_id、instance_id、plan_id)

2. 删除实例接口

当用户在Paas平台取消订阅服务后,会调用下面的接口:

接口地址:/service/instance/{instanceId}

请求方式:DELETE

处理逻辑:

(1) 判断服务实例是否存在

(2) 根据服务实例查询对应的用户,取消用户权限并将用户状态改为禁用

3. 推送监控指标接口

每天定时向Paas平台推送Iot平台监控指标,调用下面的接口:

接口地址:/api/v2/{svcId}/{svcInstanceId}/metric

请求方式:POST

参数说明:

参数名 必选 类型 说明
svcId string 服务的ID。与provinsion 时的服务ID 相同。
svcInstanceId string 服务实例ID,与provinsion 时的服务实例ID 相同

请求内容:

参数名 必选 类型 说明
day Date 上传日期。必填项。日期格式为:yyyy-MMdd'T'HH: mm:ss.SSSZ
metricData Json object string JSON 对象所转换成的字符串,其中每个key 为metric 的名称,每个value 为metric 的数字值。

请求示例:

[{ "day": "2020-07-20T09:45:23.195Z", "metricData": "{\"产品数量\":2,\"设备数量\":500,\"设备激活数\":300,\"设备在线数\":200,\"设备离线数\":300}" }]

results matching ""

    No results matching ""