最新版本:2.0.0-2
WS_API 应用通过基于表象化状态转变 (REST) 的服务向一个或多个网格提供 Web 服务接口。 下列任一访问方法都可用于 WS_API 接口:
|
属性名 |
类型 |
说明 |
|
iface.in |
接口 |
这是 WS_API 应用通过基于 HTTP 或 HTTPS 的请求向用户提供服务的 IP 地址。 此属性是强制性属性。 |
|
iface.net |
接口 |
这是 WS_API 应用访问任何公共网络地址所使用的 IP 地址。 此属性是强制性属性。 |
|
dns1 |
IP |
用于主机名解析的 DNS 服务器的 IP 地址。 此属性是强制性属性。 |
|
dns2 |
IP |
用于主机名解析的备份 DNS 服务器的 IP 地址。 默认值:0.0.0.0。 |
|
allowed_hosts |
字符串 |
允许的 CIDR 格式的 IP 地址或 IP 地址范围。默认值:0.0.0.0/0;(允许全部) |
|
http_mode |
字符串 |
它指定 usr_ip 上的 API 处理何种 HTTP 请求。 有效值:https、http、both。 如果设置为 http,则 API 处理简单基于 HTTP 的请求。 只有设置为 https 时,REST API 才处理基于 SSL v3.0 加密的安全 HTTP 请求。 如果设置为 both,则处理 HTTP 和 HTTPS 两种请求。 默认值:https。 只对使用该组件处理的请求,此属性才有效(即使用 VPN 时无效)。 如果模式设置为 http,请注意所有流量都是明文。 强烈建议对发出 API 请求的 IP 设置 allowed_hosts 属性。 |
|
opts |
字符串 |
可以通过 opts 属性(逗号分隔的名称=值对)向应用提供 SSL 配置的参数。 在简单 HTTP 模式下,即 http_mode=http 时,不要求设置此属性。 默认值:空(未使用)。 如果未指定任何参数,则认为是空值。 |
|
iface.vpn |
接口 |
这是 WS_API 应用通过安全 VPN 通道向用户提供服务的 IP 地址。 默认值:空。 |
|
vpn_ports |
字符串 |
访问 Web 服务 API 的端口列表。 允许通过 VPN 通道和防火墙规则访问这些端口。 通常需要的端口是 80、443。默认值:80、443 |
|
vpn_type |
字符串 |
要建立 VPN 通道的类型。 可能值为: |
|
vpn_authpath |
字符串 |
通道的身份验证信息。 对于操作的共享密钥模式,这是数据卷的共享密钥文件的相对路径(例如“client/secret.key”文件的“secret.key”)。 如果通道是 ssh 密钥,此属性显示 ssh 公用(对于 VPN 服务器)或私人(对于 VPN 客户端)密钥文件的路径,包括文件名(例如 /client/1/ssh.key 公用密钥文件的“/1/ssh.key”)。 默认值:空 |
|
vpn_standby |
Int |
指定应用启动时是否启用 VPN 访问。 如果为非零,则 VPN 访问已禁用,否则已启用它。 通过手工启动/停止 VPN 组件在运行时可启用/禁用 VPN 访问。 默认值:1(VPN 访问已禁用)。 |
|
in_standby |
Int |
指定是否允许通过基于常规 HTTP 或 HTTPS 连接访问 REST API。 此属性设置为 1 且 vpn_standby 设置为 0 时,仅允许基于 VPN 通道进行访问。 通过手工启动/停止组件在运行时可启用/禁用访问。 默认 0 (启用常规 HTTP 和 HTTPS 访问)。 |
|
mon_standby |
Int |
确定应用启动时应用监控是否已禁用。 如果为非零,则监控已禁用,否则监控已启用。 通过手工启动 mon 组件可以在运行时启用监控。 默认值:1(监控已禁用)。 |
重要信息! 在 iface.vpn、iface.in 和 iface.net 外部接口属性中配置的 IP 地址必须是在 CA AppLogic® 网格上可用的 IP 地址。 您可以在您的网格显示板上发现这些地址和 DNS 服务器。
“WS_API”应用
|
资源 |
最小值 |
最大值 |
默认值 |
|
CPU |
0.55 |
76 |
1.1 |
|
内存 |
1024 MB |
134 GB |
1.687 GB |
|
带宽 |
7 Mbps |
12.5 Gbps |
730 Mbps |
应用本身使用多个卷。 它们是应用的一部分且已配置到组件实例中。 应用边界没有需要配置的卷。
|
卷 |
大小 |
说明 |
|
code |
50M |
该卷用来存储 API 应用的代码和脚本。 此卷已分配给 WEB5 组件。 默认情况下,提供名为“code”的填充卷给此应用使用。 |
|
conf |
50M |
该卷用来存储 Web 服务 API 应用的所有配置数据。 这包括由用户填充的“vdcs.conf”,其中包含有关远程网格、用户创建来访问远程网格的 ssh 密钥、API 应用生成来在 HTTPS 界面中访问 API 的 SSH 证书和用户创建来在 VPN 界面中访问 API 的 VPN 服务器端证书的信息。 此卷已分配给 NAS 组件。 默认情况下,提供名为“conf”的填充卷给此应用使用。 |
|
log_data |
50M |
此卷用于存储 API 服务器的日志数据。 它还用于存储 API 应用所需的临时文件。 此卷已分配给 NAS 组件。 默认情况下,提供名为“log_data”的填充卷给此应用使用。 |
在启动 WS_API 应用之前,需要对其进行配置才能访问通过 Web 服务接口管理的网格。 这包括在 conf 卷的数据子目录内创建 vdcs.conf 文件。 需要创建一对私/公密钥,并且需要用生成的公钥在目标网格控制器上设置用户。 关于如何填充 vdcs.conf、设置 ssh 密钥以及为 Web 服务 API 创建网格用户的信息,请参阅“配置”一节。
可以通过下列模式之一或组合模式对 WS_API 进行配置:
使用 HTTP
在此模式下,可以通过基于常规 HTTP 的接口访问 REST API。
例如,curl "http://iface.in/api/v1/app/list?vdc=controller_name"。
要启动应用在此模式下工作,需要为强制性属性设置适当值并将 http_mode 属性设置为 http。 有关如何设置应用在此模式下工作的详细信息,请参阅“配置”一节。
使用 HTTPS
在此模式下,可以通过基于安全 HTTP 的接口访问 REST API。
例如,curl -k -E /path/to/client_key.pem "https://usr_ip/api/v1/app/list?vdc=controller_name"。
要启动应用在此模式下工作,需要为强制性属性设置适当值并将 http_mode 属性设置为 https。 您还可以使用上述属性表中显示的选项为要签署的证书相应设置 opts 属性。 在成功启动应用之后,必须将客户端证书从 conf 卷中的 ssl-keys 子目录复制到用于访问 WS_API 的客户端应用或浏览器中。 有关如何设置应用在此模式下运行的详细信息,请参阅“配置”一节。
使用 vpn 通道
在此模式下,在应用中的 in_vpn VPN 服务器和客户端的 VPN 客户之间创建安全 VPN 通道。 一旦使用不同 VPN 通道类型中的一种成功创建了通道,就可以通过基于常规 HTTP 的接口访问 REST API。
例如,curl "http://iface.in/api/v1/app/list?vdc=controller_name"。
要以此模式启动该应用,需要将强制性的属性设置为适当值,将 iface.vpn 外部接口属性设置为用于 VPN 访问所选择的 IP 地址并且将 vpn_standby 设置为 0。 默认情况下,vpn_ports 已设置为 80,443 以允许连接端口 80 和 443 (分别为 http 和 https),vpn_type 已设置为证书,允许 VPN 客户使用基于 SSL 证书的通道连接到应用的 VPN 服务器。 您还可以将 in_standby 属性设置为 1,仅允许通过 VPN 通道发出请求。 放弃来自 VPN 通道之外的任何 API 请求。 有关如何设置应用在此模式下运行的详细信息,请参阅“配置”一节。
CA AppLogic® Web 服务“WS_API”应用基础架构显示如下:
它包含以下组件:

本节描述如何配置 WS_API 应用在下列三种不同操作模式的一种模式下启动。
配置 WS_API 应用
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data ls vdcs.conf
此文件包括访问通过 REST API 管理的网格所必需的信息。
vi vdcs.conf
vdcs
{
vdc controller_name : host = controller_ip or FQDN
{
location = "city, state, country"
latitude = latitude
longitude = longitude
}
# vdc controller_name : host = controller_ip or FQDN
# {
# location = "city, state, country"
# latitude = latitude
# longitude = longitude
# }
}
要生成密钥对:
ssh-keygen -t dsa -f /mnt/vol/data/gridkey 在提示输入密码时,按 Enter 键。 请勿输入密码。 chmod 600 /mnt/vol/data/gridkey* chown 99:99 /mnt/vol/data/gridkey*
cat /mnt/vol/data/gridkey.pub
user create api@domain.com pwd=- sshkey="ssh-dsa AAA.................xyz"
用户已创建。
grid modify_acl api@domain.com=grid_administrator
注意:可以使用其他访问级别(有关详细信息,请参阅 RBAC 指南),但请注意这将限制 ws_api 可以运行的命令。
现在可以用三种操作模式之一配置应用边界。
WS_API 应用通过基于表象化状态转变 (REST) 的服务向一个或多个网格提供 Web 服务接口。 HTTPS 访问方法启用基于安全 HTTP 的 REST API 调用。
以 HTTPS 模式配置应用
注意:如果将 opts 留空,则会在应用启动时生成通用 SSL 证书。 http_mode 和 allowed_hosts 属性设置可仍设为默认值。 例如:
app config ws_api_instance iface.in=usr-ip iface.net=net-ip dns1=dns1 dns2=dns2 opts=ssl_country=Country,ssl_state=State,ssl_local=City,ssl_org_name=Organization,ssl_org_unit=Unit,ssl_common_name=Common Name,ssl_email_address=company@domain.com,ssl_export_pass=Passkey
第一次启动应用时,在 conf 卷的 /mnt/config/ssl_keys/keys/ 目录中将创建由客户端证书和名为 api_client.pem 的私钥构成的 PEM 格式的客户端密钥,以及名为 api_client.p14 的浏览器的 PKCS12 格式的等效密钥。 api_client.p14 密钥文件可用于任何基于浏览器的 API 访问,api_client.pem 密钥可用于任何非基于浏览器的 API 访问。
生成任何其他客户端证书
WS_API 应用通过基于表象化状态转变 (REST) 的服务向一个或多个网格提供 Web 服务接口。 HTTP 访问方法启用基于简单 HTTP 的 REST API 调用。
注意:使用此模式时应非常小心。 此模式没有安全检查,任何人都可以在没有进行任何身份验证的情况下创建 API 请求。 此外,客户端和 ws_api_instance 应用之间的所有流量都是明文。
要在 HTTP 模式下配置应用,需要将 http_mode 属性设置为 http 并将强制性属性设置为适当值。 例如:
app config ws_api_instance iface.in=usr-ip iface.net=net-ip dns1=dns1 dns2=dns2 http_mode=http
现在可以使用 app start 命令或 GUI 中的“启动应用”按钮启动应用。
WS_API 应用通过基于表象化状态转变 (REST) 的服务向一个或多个网格提供 Web 服务接口。 VPN 访问方法使 HTTP 请求能够通过安全 VPN 通道发送。
以 VPN 模式配置应用
例如:
app config ws_api_instance iface.in=usr-ip iface.vpn=vpn-ip iface.net=net-ip dns1=dns1 dns2=dns2 vpn_standby=0 in_standby=1
在应用启动之后,VPN 服务器组件会生成必要的服务器证书和密钥文件(如果不存在这些文件)。
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client 生成的客户端 SSL 证书和密钥文件。 ============================================== 这些文件以及 CA 证书文件应复制到 VPN 服务器的 数据卷或 fs 挂接卷的 /client/ 子目录。 在 auth_path 属性中应指定到客户端文件(client.a1c65e2bae3d0b57)的路径。 文件的位置: 客户端证书:/mnt/data/server/client.a1c65e2bae3d0b57.crt 客户端密钥文件:/mnt/data/server/client.a1c65e2bae3d0b57.key CA 证书文件位于 /mnt/data/server/ca.crt
在客户端子目录中生成客户端证书(例如:client.xxxxxxxxxxxxxxxx.crt)和密钥文件(例如:client.xxxxxxxxxxxxxxxx.key),在 conf 卷的服务器子目录中生成 CA 证书(ca.crt)。
使用的开源软件和第三方软件
下面的第三方开源软件已安装在代码卷上。
|
软件 |
版本 |
已修改 |
许可 |
注释 |
|
JSON |
2.15 |
No |
Artistic |
不适用 |
|
IPC-Run |
0.80 |
No |
GPLv2 |
不适用 |
|
XML-Simple |
2.18 |
No |
Artistic |
不适用 |
|
Sort-Naturally |
1.02 |
No |
Artistic |
不适用 |
|
版权所有 © 2013 CA。
保留所有权利。
|
|