创建Rest Service(自定义连接器)
使用说明
通过依次创建Rest Service和Rest Action,使得系统可以调用第三方提供的Rest协议的接口,实现第三方提供的业务功能。
操作步骤
- 参考登录经典应用设计器中操作,登录经典版应用设计器。
- 在左侧列表中,单击,选择“自定义连接器 > 自定义连接器”。
- 单击“+”,配置基本信息,单击“保存”。
图1 新建服务入口
- 标签:REST服务的标签名。
- 名称:REST服务的名称,系统会自动在该名称前添加命名空间__。
- 图标:REST服务的图标。
- 描述:REST服务的相关描述信息。
- 在“认证信息”页签,单击“新建”,进入添加认证信息页面。
- 设置认证信息,单击“保存”。
可以新建多个认证,不同的Rest Action可以有不同的认证方式。
- 标签:认证的标签名。
- 名称:认证在系统中的唯一标识,系统会自动在该名称前添加命名空间__。
- 目录:认证所属的目录分类名称。
- 描述:认证的描述信息。
- 使用证书:服务端是否需要客户端证书,是否需要进行双向认证。勾选“使用证书”时,需要配置证书类型,证书和密钥。
- 使用根证书:客户端是否需要服务端证书,是否需要进行双向认证。
勾选“使用根证书”时,需要提前在管理中心开启根证书校验并上传根证书,具体操作请参见管理HTTPS根证书。上传后,在根证书下拉框中选择对应的证书即可。
- API主机地址:配置此地址后,可以限定REST操作的请求前缀,防止敏感信息泄露。每次更改此地址,都需要重新配置鉴权信息。
- 打包当前配置:选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认为被同步到运行环境中。默认为选中,对信息敏感的场景,建议不勾选。
- 可选设置 > 鉴权设置
- 鉴权协议:设置鉴权协议,支持OAuth、简单消息头和JWT(JSON Web Tokens)三种。
- 鉴权模式:设置为“client credentials”,此处只支持OAuth2的client credentials鉴权模式。
- 鉴权地址:第三方系统OAuth2协议,获取的token地址。例如,AstroZero获取token的地址为“https://{host}:{port}/baas/auth/v1.0/oauth2/token”,这里需要填入第三方系统的。
- Client ID:OAuth2协议中的client id。如果该REST Service是AstroZero提供的,可通过如下方法查看:
- 登录AstroZero经典版环境配置。
- 在左侧导航栏中,选择“系统管理 > OAuth”,进入OAuth管理页面。
- 在OAuth认证列表中,查看对应鉴权的“客户端Id”。
- Client Secret:OAuth2协议中的client secret。如果该REST Service是AstroZero提供的,可通过如下方法查看:
- 登录AstroZero经典版环境配置。
- 在左侧导航栏中,选择“系统管理 > OAuth”,进入OAuth管理页面。
- 在OAuth认证列表中,查看对应鉴权后。
- 在弹出的警告页面,单击“确定”,将密钥文件下载到本地。
密钥文件中的client_secret,即为Client Secret的值。
- 消息体属性:从鉴权接口返回的,消息字段的映射规则。
根据OAuth2标准协议,返回体一般如图3所示。由于不同的第三方实现的情况可能不一样,返回的不一定是标准的键值。例如,有些第三方接口返回的是“accessToken”,而不是“access_token”,所以平台需要对这些不标准的键值映射成标准的。
图2中配置的消息体属性是第三方返回的“accessToken”,AstroZero使用“access_token”这个键值来存储。最终存储的结果如下:
{ “access_token”: ${accessToken} }
- 消息头属性:定义调用业务接口时,所用的消息头的映射规则。
当使用获取的token,去返回具体rest action时,按照OAuth2的标准一般是将token放到请求头上。例如,Authorization: Bearer ${access_token}。
但是由于各个第三方接口实现的差异性,不一定叫Authorization,也不一定会在token前面加Bearer,例如访问平台的接口,token直接放在请求头Access-Token上,且不需要Bearer前缀,所以需要配置消息头属性。
图2中配置的消息头属性,意思是将从消息体属性获取到的“access_token”放到请求头“Access-Token”上。