OpenAPI 帐户详细信息 (针对导入的 API)
要与从 OpenAPI 文档导入的 API 或从 IBM® API Connect发现并导入的 API 建立连接,必须添加用于定义要连接的帐户详细信息的帐户。 您可以通过在 App Connect 仪表板, Red Hat® OpenShift® Web 控制台或 CLI 或 Kubernetes CLI 中创建配置对象来定义这些详细信息。
连接到从 OpenAPI 文档导入的 API
如果要部署包含导出的 Designer 流的 BAR 文件,该流将调用从 OpenAPI 文档导入的 API ,那么需要指定用于连接到 API 的详细信息。 用于建立连接的授权方法必须与 App Connect Designer中原始流中使用的帐户的授权方法相匹配。 有关在 App Connect Designer中导入 OpenAPI 文档并连接到这些导入的 API 的信息,请参阅 如何将 IBM App Connect 与从 OpenAPI 文档导入的 API 配合使用。
从 OpenAPI 文档导入的 API 的受支持授权方法
OpenAPI 文档通常包含用于描述如何保护 API 的安全性定义。 在 OpenAPI 2.0中,这些定义包含在 securityDefinitions 对象中,而在 OpenAPI 3.0中,这些定义包含在 components 部分中的 securitySchemes 对象中。 App Connect 支持以下用于连接到导入的 API 的授权方法。
- 基本认证: 此授权方法通常需要用于向 API 认证以调用其操作的用户名和密码。提示: 如果 API 公开可用并且不需要认证,那么您无需指定任何连接详细信息,但必须使用 name 参数以及追加到 openapi. 前缀的 API 名称来指定帐户名称。
- API 密钥认证: 此授权方法需要生成的凭证, App Connect 在调用 API 操作时必须提供这些凭证以标识自身。 这些凭证可以采用一个或多个安全密钥的形式,例如 API 密钥,访问令牌,客户机标识和客户机密钥。
- 不记名认证: 此授权方法需要生成的不记名 (安全性) 令牌,用于向 API 进行认证以调用其操作。
- OAuth 2.0 密码: 此授权方法需要用户名,密码和客户机凭证才能向 API 进行认证以调用其操作。
- OAuth 2.0 凭证: 此授权方法需要用于向 API 进行认证以调用其操作的客户机凭证。
- 基本 OAuth 认证: 此授权方法需要访问令牌和刷新令牌以及用于向 API 进行认证以调用其操作的客户机凭证。
App Connect 为每种授权方法提供了一个或多个连接字段或参数,还提供了一组可用于指定以下设置的标准连接字段或参数:
- 自签名证书
- 适用于符合 OpenAPI 2.0 规范的 API: 覆盖 API 的基本路径或 API 服务器的主机名和端口
- 适用于符合 OpenAPI 3.0.x 规范的 API: 服务器的覆盖 URL
- 与专用网络的连接
用于连接到从 OpenAPI 文档导入的 API 的帐户参数
您可以为从 OpenAPI 文档导入的 API 定义一个或多个帐户。
对于需要的 每个帐户 ,您可以通过以下任何方式指定一组新的帐户详细信息:
- 如果您正在使用 App Connect 仪表板,请在
创建配置
面板中填写 帐户详细信息 字段,或者在 accounts.yaml 文件中指定帐户参数,然后再将其导入到创建配置
面板中。 有关更多信息,请参阅 帐户类型。 - 如果要使用 Red Hat OpenShift Web 控制台或 CLI 或 Kubernetes CLI ,请在 accounts.yaml 文件中指定帐户参数,然后使用此配置文件来创建配置对象。 有关更多信息,请参阅 为类型为 "帐户" 的配置对象创建文件。
下表中列出了必需和可选的 "帐户" 字段或参数集。
| 字段 | 参数 | 值 | 条件 | 描述 |
|---|---|---|---|---|
API 名称 |
用户定义的 |
必需 |
分配给 App Connect Designer中导入的 API 的名称; 例如, 在 YAML 定义或 代码 视图中,使用句点 (.) 分隔符将此名称附加到 openapi 关键字; 例如, |
|
帐户名称 |
name |
用户定义的 |
必需 |
导出的流中使用的 OpenAPI 帐户的名称。 |
授权类型 |
authType |
BASIC BASIC_API_KEY BASIC_BEARER OAUTH2_PASSWORD OAUTH2_CREDENTIALS BASIC_OAUTH |
必需 |
用于用户授权的机制。 |
用户名 |
username |
用户定义的 |
仅当 authType 设置为 BASIC 或 OAUTH2_PASSWORD时适用。 当 authType 设置为 BASIC时为可选。 当 authType 设置为 OAUTH2_PASSWORD时必需。 与 password 参数结合使用。 |
有权使用基本认证或 OAuth 2.0 密码认证来访问 API 的用户 (或客户机应用程序) 的名称。 |
密码 |
password |
用户定义的 |
仅当 authType 设置为 BASIC 或 OAUTH2_PASSWORD时适用。 当 authType 设置为 BASIC时为可选。 当 authType 设置为 OAUTH2_PASSWORD时必需。 与 username 参数结合使用。 |
使用基本认证或 OAuth 2.0 密码认证进行连接的用户的密码。 |
API 密钥名称 N 其中 N 表示 1, 2或 3 [此字段未显示在 12.0.10.0-r1 或更低版本的 "仪表板" 实例的 " 表单 " 视图中,因此您需要在 代码 (YAML) 视图中指定参数,如 描述 列中所示。] |
apiKeyN 其中 N 表示 1, 2或 3 |
用户定义的 |
可选 仅当 authType 设置为 BASIC_API_KEY时适用。 与具有匹配 N 值的 apiKeyValueN 参数结合使用。 |
端点启用 API 访问或计算 API 使用情况所需的 API 密钥的名称,或者 API 验证请求访问的 App Connect 客户机应用程序的身份所需的任何其他密钥的名称。 在 OpenAPI 文档的安全方案中使用定义的 name 。 12.0.10.0-r2 或更高版本的仪表板:
如果只需要一个 API 密钥,那么可以将 API 密钥名称 1 字段留空,然后填写 API 密钥值 1 字段。 如果需要多个 API 密钥,请填写每个密钥/值对的 API 密钥名称 N 和 API 密钥值 N 字段。 仅限12.0.10.0-r1 或更低版本的仪表板:
在 " 代码 " (YAML) 视图中,指定 API 密钥和 API 密钥值,如下所示:
示例:
|
API 密钥值 N 其中 N 表示 1, 2或 3 [此字段未显示在 12.0.10.0-r1 或更低版本的 "仪表板" 实例的 " 表单 " 视图中,因此您需要在 代码 (YAML) 视图中指定参数,如 描述 列中所示。] |
apiKeyValueN 其中 N 表示 1, 2或 3 |
用户定义的 |
可选 仅当 authType 设置为 BASIC_API_KEY时适用。 与具有匹配 N 值的 apiKeyN 参数结合使用。 |
API 密钥的相应值。 仅限12.0.10.0-r1 或更低版本的仪表板:
在 " 代码 " (YAML) 视图中,指定 API 密钥和 API 密钥值,如下所示:
示例:
|
不记名令牌 [此字段未显示在 12.0.10.0-r1 或更低版本的 "仪表板" 实例的 " 表单 " 视图中,因此您需要在 代码 (YAML) 视图中指定参数,如 描述 列中所示。] |
bearerToken |
用户定义的 |
可选 仅当 authType 设置为 BASIC_BEARER时适用。 |
用于向 API 认证的不记名令牌。 仅限12.0.10.0-r1 或更低版本的仪表板:
在 " 代码 " (YAML) 视图中,按如下所示指定不记名令牌:
示例:
|
应用程序客户机标识 |
clientId |
用户定义的 |
必需 仅当 authType 设置为 OAUTH2_PASSWORD, OAUTH2_CREDENTIALS或 BASIC_OAUTH时适用。 对于 OAUTH2_PASSWORD,请将此参数与 clientSecret 和 clientCredentialsLocation 参数结合使用。 对于 OAUTH2_CREDENTIALS 或 BASIC_OAUTH,请将此参数与 clientSecret 参数结合使用。 |
用于认证的唯一客户机标识。 |
应用程序客户机密钥 |
clientSecret |
用户定义的 |
必需 仅当 authType 设置为 OAUTH2_PASSWORD, OAUTH2_CREDENTIALS或 BASIC_OAUTH时适用。 对于 OAUTH2_PASSWORD,请将此参数与 clientId 和 clientCredentialsLocation 参数结合使用。 对于 OAUTH2_CREDENTIALS 或 BASIC_OAUTH,请将此参数与 clientId 参数结合使用。 |
用于认证的客户机密钥。 |
客户机凭证位置 |
clientCredentialsLocation |
header form |
必需 仅当 authType 设置为 OAUTH2_PASSWORD时适用。 对于 OAUTH2_PASSWORD,请将此参数与 clientId 和 clientSecret 参数结合使用。 |
应在 API 请求中传递客户机标识和客户机密钥的位置。 缺省值为 header。 |
访问令牌 |
accessToken |
用户定义的 |
必需 仅当 authType 设置为 BASIC_OAUTH时适用。 将此参数与 refreshToken 参数结合使用。 |
从客户机标识和客户机密钥生成的访问令牌。 |
刷新令牌 |
refreshToken |
用户定义的 |
必需 仅当 authType 设置为 BASIC_OAUTH时适用。 将此参数与 accessToken 参数结合使用。 |
从客户机标识和客户机密钥生成的刷新令牌。 |
允许自签名证书 |
acceptSelfSignedCerts |
true false |
可选 |
如果您希望能够接受可信且仅在非生产环境中使用的自签名证书,请将此值设置为 true。 缺省值为 false。 |
覆盖 API 的基本路径 |
basePath |
用户定义的 |
可选 |
URL ,用于覆盖定义中的基本路径。 OpenAPI 定义。 基本路径是 API 的初始 URL 段,由 API 中的所有操作共享。 |
覆盖 API 服务器的主机名和端口 |
endpointUrl |
用户定义的 |
连接到专用网络时必需。 与 agentId 参数结合使用。 |
URL 包括协议、主机名或 IP 地址以及端口号,格式为
|
专用网络连接 |
agentId |
用户定义的 |
连接到专用网络时必需。 与 endpointUrl 参数结合使用。 |
App Connect 用于连接到专用网络的专用网络连接的名称。 在 |
示例: 指定从 OpenAPI 文档导入的 API 的连接详细信息
accounts:Petstore的 API 的未认证公共端点): openapi.Petstore:
- authType: BASIC
name: Account 1
credentials:
acceptSelfSignedCerts: 'false'
endpoint: {}Petstore 的 API 的基本认证): openapi.Petstore:
- authType: BASIC
name: Account 1
credentials:
username: memyselfandI
password: t0pSecret
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的基本认证): openapi.Petstore:
- authType: BASIC
name: Account 1
credentials:
username: memyselfandI
password: t0pSecret
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'Petstore 的 API 的 API 密钥认证): openapi.Petstore:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: apiKeyName
apiKeyValue1: value
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的 API 密钥认证): openapi.Petstore:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: apiKeyName1
apiKeyValue1: value1
apiKey2: apiKeyName2
apiKeyValue2: value2
apiKey3: apiKeyName3
apiKeyValue3: value3
acceptSelfSignedCerts: 'false'
endpoint:
endpointUrl: 'https://myapi.example.com:1234'Petstore 的 API 的 API 密钥认证): openapi.Petstore:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: apiKeyName
apiKeyValue1: value
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'Petstore 的 API 的不记名令牌认证): openapi.Petstore:
- authType: BASIC_BEARER
name: Account 1
credentials:
bearerToken: ABcde-12345
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的不记名令牌认证): openapi.Petstore:
- authType: BASIC_BEARER
name: Account 1
credentials:
bearerToken: ABcde-12345
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'Petstore 的 API 的密码认证): openapi.Petstore:
- authType: OAUTH2_PASSWORD
name: Account 1
credentials:
username: memyselfandI
password: t0pSecret
clientId: uniqueclientID
clientSecret: myClientSecret
clientCredentialsLocation: header
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的 OAuth 2.0 密码认证): openapi.Petstore:
- authType: OAUTH2_PASSWORD
name: Account 1
credentials:
username: memyselfandI
password: t0pSecret
clientId: uniqueclientID
clientSecret: myClientSecret
clientCredentialsLocation: header
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'Petstore 的 API 的 OAuth 2.0 凭证认证): openapi.Petstore:
- authType: OAUTH2_CREDENTIALS
name: Account 1
credentials:
clientId: uniqueclientID
clientSecret: myClientSecret
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的 OAuth 2.0 凭证认证): openapi.Petstore:
- authType: OAUTH2_CREDENTIALS
name: Account 1
credentials:
clientId: uniqueclientID
clientSecret: myClientSecret
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'Petstore 的 API 的基本 OAuth 认证): openapi.Petstore:
- authType: BASIC_OAUTH
name: Account 1
credentials:
clientId: uniqueclientID
clientSecret: myClientSecret
accessToken: abcde-XYZ-12345
refreshToken: fGHIjk-09LkjH-45d
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}Petstore 的 API 的基本 OAuth 认证): openapi.Petstore:
- authType: BASIC_OAUTH
name: Account 1
credentials:
clientId: uniqueclientID
clientSecret: myClientSecret
accessToken: abcde-XYZ-12345
refreshToken: fGHIjk-09LkjH-45d
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'连接到从 API Connect 发现和导入的 API
如果要部署包含导出的 Designer 流的 BAR 文件,该流调用从 API Connect发现和导入的 API ,那么需要指定用于连接到 API 的详细信息。 用于建立连接的授权方法必须与 App Connect Designer中原始流中使用的帐户的授权方法相匹配。 有关从 API Connect中发现和导入 API 以及在 App Connect Designer中连接到这些导入的 API 的信息,请参阅 How to use IBM App Connect to discover and import APIs from IBM API Connect。
从 API Connect 发现和导入的 API 的受支持授权方法
在 API Connect 中创建的 API 通常包含用于描述如何保护 API 的安全性定义。 如果 API 定义符合 OpenAPI 2.0 规范,那么安全性定义包含在 securityDefinitions 对象中。 如果 API 定义符合 OpenAPI 3.0.x 规范,那么这些定义将包含在 components 部分的 securitySchemes 对象中。 虽然 API Connect 支持多个安全性定义或方案,但 App Connect 仅支持以下用于连接到导入的 API 的授权方法。
- API 密钥认证: 此授权方法需要生成的凭证, App Connect 在调用 API 操作时必须提供这些凭证以标识自身。 这些凭证采用客户机标识和客户机密钥的形式。
App Connect 提供了此授权方法的连接字段或参数,还提供了一组可用于指定以下设置的标准连接字段或参数:
- 自签名证书
- 适用于符合 OpenAPI 2.0 规范的 API: 覆盖 API 的基本路径或 API 服务器的主机名和端口
- 适用于符合 OpenAPI 3.0.x 规范的 API: 服务器的覆盖 URL
- 与专用网络的连接
用于连接到从 API Connect 发现和导入的 API 的帐户参数
您可以为发现并从 API Connect导入的 API 定义一个或多个帐户。
对于需要的 每个帐户 ,您可以通过以下任何方式指定一组新的帐户详细信息:
- 如果您正在使用 App Connect 仪表板,请在
创建配置
面板中填写 帐户详细信息 字段,或者在 accounts.yaml 文件中指定帐户参数,然后再将其导入到创建配置
面板中。 有关更多信息,请参阅 帐户类型。 - 如果要使用 Red Hat OpenShift Web 控制台或 CLI 或 Kubernetes CLI ,请在 accounts.yaml 文件中指定帐户参数,然后使用此配置文件来创建配置对象。 有关更多信息,请参阅 为类型为 "帐户" 的配置对象创建文件。
下表中列出了必需和可选的 "帐户" 字段或参数集。
| 字段 | 参数 | 值 | 条件 | 描述 |
|---|---|---|---|---|
API 名称 |
用户定义的 |
必需 |
分配给 App Connect Designer中导入的 API 的名称; 例如, 在 YAML 定义或 代码 视图中,使用句点 (.) 分隔符将此名称附加到 openapi 关键字; 例如, |
|
帐户名称 |
name |
用户定义的 |
必需 |
导出的流中使用的已导入 API 帐户的名称。 |
授权类型 |
authType |
BASIC_API_KEY |
必需 |
用于用户授权的机制。 |
API 密钥名称 1 |
apiKey1 |
X-IBM-Client-Id |
可选 与 apiKeyValue1 参数结合使用。 |
用于认证的唯一客户机标识。 此设置等同于在 Designer 中为帐户显示的 X-IBM-Client-Id 字段名称。 将此值设置为 X-IBM-Client-Id。 |
API 密钥值 1 |
apiKeyValue1 |
用户定义的 |
可选 与 apiKey1 参数结合使用。 |
客户机标识的相应值。 (您可以在 App Connect Designer中指定为帐户生成的客户机标识。) |
API 密钥名称 2 |
apiKey2 |
|
可选 与 apiKeyValue2 参数结合使用。 |
用于认证的客户机密钥。 此设置等同于在 Designer 中为帐户显示的 X-IBM-Client-Secret 字段名称。 将此值设置为 |
API 密钥值 2 |
apiKeyValue2 |
用户定义的 |
可选 与 apiKey2 参数结合使用。 |
客户机密钥的相应值。 (您可以在 App Connect Designer中指定为帐户生成的客户机密钥。) |
允许自签名证书 |
acceptSelfSignedCerts |
true false |
可选 |
如果您希望能够接受可信且仅在非生产环境中使用的自签名证书,请将此值设置为 true。 缺省值为 false。 |
覆盖 API 的基本路径 |
basePath |
用户定义的 |
可选 |
URL 用来覆盖 API 定义中的基本路径。 基本路径是 API 的初始 URL 段,由 API 中的所有操作共享。 |
覆盖 API 服务器的主机名和端口 |
endpointUrl |
用户定义的 |
连接到专用网络时必需。 与 agentId 参数结合使用。 |
URL 包括协议、主机名或 IP 地址以及端口号,格式为
|
专用网络连接 |
agentId |
用户定义的 |
连接到专用网络时必需。 与 endpointUrl 参数结合使用。 |
App Connect 用于连接到专用网络的专用网络连接的名称。 在 |
示例: 指定从 API Connect 发现和导入的 API 的连接详细信息
accounts:WeatherAPI 的 API 的 API 密钥认证): openapi.WeatherAPI:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: X-IBM-Client-Id
apiKeyValue1: clientID-Value
apiKey2: X-IBM-Client-Secret
apiKeyValue2: client-secret
acceptSelfSignedCerts: 'false'
endpoint: {}WeatherAPI 的 API 的 API 密钥认证): openapi.WeatherAPI:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: X-IBM-Client-Id
apiKeyValue1: clientID-Value
apiKey2: X-IBM-Client-Secret
apiKeyValue2: client-secret
acceptSelfSignedCerts: 'false'
basePath: /api/v2
endpoint: {}WeatherAPI 的 API 的 API 密钥认证): openapi.WeatherAPI:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: X-IBM-Client-Id
apiKeyValue1: clientID-Value
apiKey2: X-IBM-Client-Secret
apiKeyValue2: client-secret
acceptSelfSignedCerts: 'false'
endpoint:
endpointUrl: 'https://myapi.example.com:1234'WeatherAPI 的 API 的 API 密钥认证): openapi.WeatherAPI:
- authType: BASIC_API_KEY
name: Account 1
credentials:
apiKey1: X-IBM-Client-Id
apiKeyValue1: clientID-Value
apiKey2: X-IBM-Client-Secret
apiKeyValue2: client-secret
acceptSelfSignedCerts: 'false'
agentId: pnc-mon-27-nov-2023-22-07-45-gmt-592
endpoint:
endpointUrl: 'https://private.example.com:1234'