IPaaS平台具有认证信息统一纳管与自动注入能力,用户只需在控制台配置一次认证凭据,系统即可在每次服务调用时智能附加所需认证,大幅降低集成复杂度。
# 新增认证
开发人员登录系统,进入开发门户,点击菜单“API管理”>“认证管理”,打开认证管理页面。

在“认证管理”页面,点击“新增”按钮,进入到“选择认证类型”弹窗页面。

在“选择认证类型”弹窗页面,参考类型说明表格及认证需求,选择新增的认证类型,点击“确定”按钮,进入新增认证页面。

认证类型 说明 通用认证 基于标准的请求+参数方式获取认证信息 BasicAuth认证 基于标准的BasicAuth(用户名、密码)进行认证 APIKey认证 基于标准的APIKeyAuth(Key、Value)进行创建 OAuth2.0认证 基于 OAuth 2.0 标准协议的API认证方式进行创建 OAuth1.0认证 基于 OAuth 1.0 的双方认证模式进行创建 Bearer Token认证 基于 Bearer Token 标准协议的API认证方式进行创建 自定义认证 自行开发自定义的认证接入 在“新增认证”页面,参考“认证字段说明”章节填写对应认证类型的信息,点击“确定”按钮,保存认证信息。
# 认证字段说明
# 通用认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 业务认证参数名称 | 向请求中添加的认证字段名称 |
| 业务认证参数位置 | 向请求中添加认证字段的位置,可选 header、query |
| 认证说明 | 认证说明描述 |
请求配置

| 字段 | 说明 |
|---|---|
| 请求URL | 获取认证信息的URL |
| 请求方式 | 调用认证地址的方式,支持 GET、POST方式 |
| Headers | 获取认证信息时需携带的headers类型参数 |
| Query参数 | 获取认证信息时需携带的query类型参数 |
| 请求Body | 获取认证信息时需携带的body类型参数 |
响应配置

| 字段 | 说明 |
|---|---|
| Token | 响应报文中获取认证字段值的XPath、JSONPath路径,JSONPath示例: $.access_token; XPath示例: /access_token |
| Token有效时间 | 响应报文中获取认证有效时间的XPath、JSONPath路径,字符#后为有效时间的单位,比如:#ms 为有效时间为毫秒 |
| Token前缀 | 认证字段值前增加的前缀,比如获取token后,在token前增加Bearer则设置为Bearer,也可以通过JSONPath或XPath通过响应报文获取(JSONPath: $.token_type; XPath: /token_type) |
# BasicAuth认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 认证说明 | 认证说明描述 |
认证配置

| 字段 | 说明 |
|---|---|
| Username | 用户名称 |
| Password | 用户密码 |
# APIKey认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 认证说明 | 认证说明描述 |
认证配置

| 字段 | 说明 |
|---|---|
| 认证参数位置 | 添加认证字段的位置,可选择header、query |
| 参数配置 | 以Key:value形式配置认证字段,配置字段将被加入请求报文中 |
# OAuth2.0认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 业务认证参数名称 | 向请求报文中添加的认证字段名称 |
| 业务认证参数位置 | 向请求报文中添加认证字段的位置,可选 header、query |
| 认证说明 | 认证说明描述 |
请求配置

| 字段 | 说明 |
|---|---|
| 授权方式 | 认证授权方式,可选“Password Credentials”、“Client Credentials”,“Password Credentials”参考字段说明1,“Client Credentials”参考字段说明2 |
| 请求URL | 请求认证的地址 |
字段说明1(Password Credentials):
| 字段 | 说明 |
|---|---|
| UserName | 用户名称 |
| Password | 用户密码 |
| Client ID | 客户端ID |
| Client Secret | 客户端秘钥 |
| Scope | 范围 |
| 认证参数位置 | 认证字段写入报文的位置,可选“Send as Basic Auth header”,“Send client credentials in body” |
字段说明2(Client Credentials):
| 字段 | 说明 |
|---|---|
| Client ID | 客户端ID |
| Client Secret | 客户端秘钥 |
| Scope | 范围 |
| 认证参数位置 | 认证字段写入报文的位置,可选“Send as Basic Auth header”,“Send client credentials in body” |
响应配置

| 字段 | 说明 |
|---|---|
| Token | 响应报文中获取认证字段值的XPath、JSONPath路径,JSONPath示例: $.access_token; XPath示例: /access_token |
| Token有效时间 | 响应报文中获取认证有效时间的XPath、JSONPath路径,字符#后为有效时间的单位,比如:#ms 为有效时间为毫秒 |
| Token前缀 | 认证字段值前增加的前缀,比如获取token后,在token前增加Bearer则设置为Bearer,也可以通过JSONPath或XPath在响应报文中获取(JSONPath: $.token_type; XPath: /token_type) |
# OAuth1.0认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 认证说明 | 认证说明描述 |
认证配置

| 字段 | 说明 |
|---|---|
| 添加位置 | 认证字段添加位置,可选“header"、“query” |
| Consumer Key | 客户端身份标识 |
| Consumer Secret | 客户端密钥,用于签名 |
| Access Token | 用户访问令牌 |
| Token Secret | 令牌密钥,用于签名 |
| Signature Method | 签名算法类型 |
| Timestamp | 请求时间戳 |
| Nonce | 一次性随机数 |
| Version | OAuth协议版本 |
| Realm | 权限域说明 |
# APIKey认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 认证说明 | 认证说明描述 |
认证配置

| 字段 | 说明 |
|---|---|
| Token | 用于认证的token字段 |
# 自定义认证
基本属性

| 字段 | 说明 |
|---|---|
| 认证名称 | 认证名称 |
| 所属系统 | 认证所属系统,可多选 |
| 认证说明 | 认证说明描述 |
自定义配置

| 字段 | 说明 |
|---|---|
| 认证类路径 | 实现接口“com.primeton.esb.httpcomponent.client.nio.certification.api.IAuthService”的认证类全路径 |
| 参数配置 | 在认证类中使用的认证参数 |
# 修改认证
在“认证管理”页面,选择一条需要修改的认证记录,点击操作列“编辑”按钮,进入修改认证界面。

在“认证修改”界面,完成对认证信息更新,点击“确定”按钮保存认证数据。

# 删除认证
在“认证管理”页面,选择一条需要删除的认证记录,点击操作列“删除”按钮,进入删除认证确认界面。

在“认证修改”界面,完成对认证信息更新,点击“确定”按钮保存认证数据。

# 查看认证关联接口列表
在“认证管理”页面,选择一条需要查看关联接口的认证记录,点击操作列“接口列表”按钮,进入认证关联接口列表界面。

在“认证关联接口列表”界面,可查看关联该认证的接口信息。

# 认证使用
# API注册场景
用户在控制台创建“HTTP穿透”、“HTTP转WS”、“SSE穿透”、“HTTP转PMO”、“HTTP转Kafka”、“HTTP转RocketMQ”类型的API时,可选择认证记录,在调用HTTP业务服务时,将向报文中添加认证信息。
# 手动录入业务服务信息
开发人员登录系统,进入开发门户,点击菜单“API管理”>“API注册”,点击“API创建”按钮,进入API类型选择页面。

在API类型选择页面,选择“HTTP穿透”、“HTTP转WS”、“SSE穿透”、“HTTP转PMO”、“HTTP转Kafka”、“HTTP转RocketMQ”其中之一的API类型。

在API新增页面,在“认证“字段下拉选择已定义的认证记录。

若没有定义认证记录,点击“认证“字段右下角的”请新建“按钮,参考认证新增章节,快捷新增认证记录。

# 批量导入方式创建HTTP穿透
在创建HTTP穿透接口时,使用“Swagger文件导入”、“SwaggerURL地址”方式导入业务信息,可批量配置认证信息。
开发人员登录系统,进入开发门户,点击菜单“API管理”>“API注册”,点击“API创建”按钮,进入API类型选择页面。

在API类型选择页面,选择“HTTP穿透”类型。

在API新增页面,选择“Swagger文件导入”、“SwaggerURL地址”方式导入业务信息,并在“认证”字段选择认证记录。

在“接口导入”页面选择需要导入的业务接口,点击“>"按钮进行接口批量导入。

在已导入接口界面中可点击接口右侧的“编辑”按钮,可针对此接口进行信息编辑,可修改该接口关联认证记录。

在接口信息编辑界面中,可在“认证“字段重新选择认证记录。

# API编排场景
用户在控制台的在线编排页面,使用组件“HTTP业务服务”、“SSE业务服务”时,选择配置了认证的业务接口,在调用业务服务时,可在报文中增加相应认证信息。
开发人员登录系统,进入开发门户,点击菜单“API管理”>“API注册”,点击“API编排”按钮,进入API编排信息填写页面。

填写“所属系统”、“所属服务”、“测试服务器”字段,点击“确定”按钮进入在线编排页面。

在线编排页面,使用组件“HTTP业务服务”、“SSE业务服务”,可选择配置了认证的业务接口。

在组件“HTTP业务服务”、“SSE业务服务”编辑界面,选择配置了认证的业务接口,认证信息将在“认证”字段显示。

# 自定义认证的实现
获取ESB Server 正式安装包 Primeton_iPaaS_9.1.0_ESB_Server.tar。
解压安装包 Primeton_iPaaS_9.1.0_ESB_Server.tar,获取解压后server目录下\server\plugins 的 com.primeton.esb.httpcomponent.client.nio-9.1.0.jar、com.primeton.esb.httpcomponent.client-9.1.0.jar

# 使用idea创建Java应用
在idea操作界面中,选择“File>New>Project"选项,打开创建项目界面。

在创建项目界面,选择“java"选项,填写应用名称、应用所在目录、创建类型及jdk(jdk1.8),点击确认按钮,完成新项目创建。

# 应用导入Jar
在新项目界面中,选择“File>Project Structure"选项,打开项目配置界面。

在项目配置界面,进入“Project Settings>Modules"选项,选择应用名称,在右侧界面点击“dependencies”页签,点击“+”按钮,选择“JARs or Directories”选项,添加上步骤中获取的ESB Server 相关jar。

添加Jar包如图所示

# 自定义认证类创建
实现认证类 AddParamsToHeaderByAuth 用于向请求报文的header中写入认证相关字段
自实现认证类需实现接口 com.primeton.esb.httpcomponent.client.nio.certification.api.IAuthService 并实现函数 auth(IESBHttpMessage message, Map<String,String> params)
函数 auth(IESBHttpMessage message, Map<String,String> params) 中参数 message 为上游组件传递参数,params 为页面配置的Key:Value 形式的认证参数
右击src目录,选择“New>Package"创建路径为“com.primeton.ipaas.auth”的包。

创建路径为“com.primeton.ipaas.auth”的包。

在包路径上点击鼠标右键,选择“New>Java Class”,打开类创建页面。

选择 “Class"类型,并创建“AddParamsToHeaderByAuth”认证实现类(向请求报文的header中写入认证字段)。

实现接口 com.primeton.esb.httpcomponent.client.nio.certification.api.IAuthService 并实现函数 auth(IESBHttpMessage message, Map<String,String> params)

# 认证应用导出为jar
在项目界面中,选择“File>Project Structure"选项,打开项目配置界面。

在项目配置界面,进入“Project Settings>Artifacts"选项,点击“+”按钮,选择“Jar”选项,点击“From modules with depen…”按钮。

“Module”选择新增的Java应用,"Main Class"不填写

此次生成的Jar包无需引入第三方依赖Jar,因此删除所有第三方Jar,只保留该项目的输出目录。

最终效果如下:

点击菜单“Build>Build Artifact...”,导出jar包

jar包最终生成在应用的out目录下。

生成的含有认证类的jar放入 ESBServer安装目录/server/libs 目录下,并重启ESBServer。