Última versión: 2.0.0-2
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). Se puede utilizar cualquiera de los métodos siguientes con la interfaz WS_API REST:
|
Nombre de la propiedad |
Tipo |
Descripción |
|
iface.in |
Interfaz |
Es la dirección IP en la cual la aplicación WS_API proporciona servicios a los usuarios a través de solicitudes basadas en HTTP o HTTPS. Esta propiedad es obligatoria. |
|
iface.net |
Interfaz |
Es la dirección IP que la aplicación WS_API utiliza para acceder a cualquier dirección de red pública. Esta propiedad es obligatoria. |
|
dns1 |
IP |
Dirección IP de un servidor DNS para resoluciones de nombre de host. Esta propiedad es obligatoria. |
|
dns2 |
IP |
Dirección IP de un servidor DNS de copia de seguridad para resoluciones de nombre de host. Valor predeterminado: 0.0.0.0. |
|
allowed_hosts |
Cadena |
Dirección IP o intervalo de direcciones IP en formato CIDR permitidas. Valor predeterminado: 0.0.0.0/0; (todo permitido) |
|
http_mode |
Cadena |
Especifica qué tipo de solicitudes HTP envía la API en usr_ip. Valores válidos: https, http, both. Si se establece como http, la API envía solicitudes basadas en HTTP normal. Si se define como https, la API de REST únicamente envía solicitudes HTTP seguras basadas en encriptado SSL v3.0. Si se establece como both, se envían todas las solicitudes HTTP y HTTPS Valor predeterminado: https. Esta propiedad es efectiva solamente para las solicitudes que se envían el dispositivo in (no tiene efecto cuando se utiliza VPN). Si el modo se establece como http, tenga en cuenta que todo el tráfico es texto sin formato. Se recomienda encarecidamente establecer la propiedad allowed_hosts para las IP que emitirán solicitudes de API. |
|
opts |
Cadena |
Se pueden proporcionar a la aplicación los argumentos para la configuración de SSL a través de la propiedad opts como parejas name=value separadas por comas. No es necesario establecer esta propiedad en el modo HTTP normal, es decir si http_mode=http. Valor predeterminado: vacío (no utilizado). Si no se especifica alguno de los argumentos, se asumen un valor vacío. |
|
iface.vpn |
Interfaz |
Esta es la dirección IP en la cual la aplicación WS_API proporciona servicios a los usuarios a través de un túnel VPN seguro. Valor predeterminado: vacío. |
|
vpn_ports |
Cadena |
Lista de puertos para acceder a la API de servicios web. Estos puertos se permitirán a través del túnel VPN y las reglas de cortafuegos. Por lo general, los puertos 80,443 son todos los que se necesitan; valor predeterminado: 80,443 |
|
vpn_type |
Cadena |
Tipo del túnel VPN que hay que establecer. Los valores posibles son: |
|
vpn_authpath |
Cadena |
Información de autenticación para el túnel. Para el modo de funcionamiento secret share, es una ruta relacionada con el archivo de secreto compartido del volumen de datos (por ejemplo, "secret.key" para un archivo "client/secret.key" file). Si el túnel es una clave ssh, esta propiedad indica la ruta, incluido el nombre de archivo, al ssh público (para servidor VPN) o al archivo de clave privado (para cliente VPN) (por ejemplo, "/1/ssh.key" para un archivo de clave público /client/1/ssh.key). Valor predeterminado: vacío |
|
vpn_standby |
Entero |
Especifica si se permite el acceso VPN al inicio de la aplicación. Si es diferente a cero, se desactiva el acceso VPN; de lo contrario se activa. El acceso VPN se puede activar/desactivar en tiempo de ejecución si se inicia/detiene manualmente el dispositivo VPN. Valor predeterminado: 1 (se desactiva el acceso VPN). |
|
in_standby |
Entero |
Especifica si se permite el acceso a la API de REST a través de conexiones basadas en HTTP normal o HTTPS. Cuando esta propiedad se establece como 1 y vpn_standby se establece como 0, solamente se permite el acceso basado en túnel VPN. El acceso a través de in se puede activar/desactivar en tiempo de ejecución mediante el inicio manual del dispositivo in. Valor predeterminado 0 (se permite el acceso HTTP normal y HTTPS). |
|
mon_standby |
Entero |
Determina si se desactiva la monitorización de la aplicación cuando esta se inicie. Si es diferente a cero, se desactiva la monitorización; de lo contrario se activa. La monitorización se puede activar en tiempo de ejecución mediante el inicio manual del dispositivo de monitorización. Valor predeterminado: 1 (la monitorización está desactivada). |
Importante: Las direcciones IP configuradas en las propiedades de interfaz externa iface.vpn, iface.in e iface.net deben ser direcciones IP disponibles en el grid de CA AppLogic®. Puede encontrarlas junto con los servidores DNS, en el cuadro de mandos del grid.
Aplicación "WS_API"
|
Recursos |
Mín. |
Máx. |
Predeterminado |
|
CPU |
0.55 |
76 |
1.1 |
|
Memoria |
1024 MB |
134 GB |
1,687 GB |
|
Ancho de banda |
7 Mbps |
12.5 Gbps |
730 Mbps |
La aplicación utiliza varios volúmenes. Forman parte de la aplicación y ya están configurados en las instancias del dispositivo. No hay ningún volumen que se tenga que configurar en el límite de la aplicación.
|
Volume (Volumen) |
Tamaño |
Descripción |
|
code |
50 M |
Este volumen se utiliza para almacenar los scripts y el código de la aplicación API. Este volumen se asigna al dispositivo WEB5. De forma predeterminada, se proporciona un volumen lleno denominado "code" para que lo utilice esta aplicación. |
|
conf |
50 M |
Estos volúmenes se utilizan para almacenar todos los datos de configuración para la aplicación API de servicio Web. Incluye el "vdcs.conf" que el usuario rellena para contener información sobre grids remotos, la clave ssh creada por el usuario que se usa para acceder al grid remoto, los certificados SSL generados por la aplicación API que se utilizan para acceder a la API a través de la interfaz HTTPS y los certificados del lado servidor de VPN creados por el usuario que se usan para acceder a la API mediante la interfaz VPN. Este volumen se asigna a un dispositivo NAS. De forma predeterminada, se proporciona un volumen lleno denominado "conf" para que lo utilice esta aplicación. |
|
log_data |
50 M |
Este volumen se utiliza para almacenar datos de registro de la aplicación API. También se utiliza para almacenar los archivos temporales que necesita la aplicación API. Este volumen se asigna al dispositivo NAS. De forma predeterminada, se proporciona un volumen lleno denominado "log_data" para que lo utilice esta aplicación. |
Antes de iniciar la aplicación WS_API, esta tiene que configurarse para acceder a los grids que se van a gestionar a través de la interfaz de servicio Web. Esto implica la creación de un archivo vdcs.conf dentro del subdirectorio de datos del volumen "conf". Es necesario crear una pareja de claves privadas/públicas y hay que configurar un usuario en el controlador de grid de destino con la clave pública generada. Para obtener información sobre cómo rellenar vdcs.conf, configurar claves ssh y crear un usuario del grid para la API del servicio web, consulte la sección sobre configuración.
Se puede configurar WS_API para que funcione en uno de los modos siguientes o en una combinación de ellos:
Uso de HTTP
En este modo, se puede acceder a la API de REST a través de la interfaz basada en HTTP normal.
Por ejemplo, curl "http://iface.in/api/v1/app/list?vdc=controller_name".
Para iniciar el funcionamiento de la aplicación en este modo, es necesario establecer las propiedades obligatorias a los valores adecuados y la propiedad http_mode como http. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
Uso de HTTPS
En este modo, se puede acceder a la API de REST a través de la interfaz basada en HTTP segura.
Por ejemplo, curl -k -E /path/to/client_key.pem "https://usr_ip/api/v1/app/list?vdc=controller_name".
Para iniciar el funcionamiento de la aplicación en este modo, es necesario establecer las propiedades obligatorias a los valores adecuados y la propiedad http_mode como https. Puede establecer también la propiedad opts con las opciones indicadas en la tabla de propiedades anterior para que el certificado se firme correctamente. Después de que la aplicación se haya iniciado correctamente, los certificados de cliente se deberán copiar desde el subdirectorio de claves ssl, dentro del volumen "conf", a la aplicación de cliente o explorador que se utilizará para acceder a WS_API. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
Uso del túnel VPN
En este modo, se crea un túnel VPN entre el servidor VPN in_vpn dentro de la aplicación y un cliente VPN en el lado de cliente. Cuando el túnel se ha creado correctamente mediante uno de los distintos tipos de creación de túneles VPN disponibles, se puede acceder a la API de REST a través de la interfaz basada en HTTP normal.
Por ejemplo, curl "http://iface.in/api/v1/app/list?vdc=controller_name".
Para iniciar la aplicación de modo que funcione en este modo, es necesario establecer las propiedades obligatorias en los valores adecuados, definir la propiedad de interfaz externa iface.vpn como la dirección IP seleccionada para el acceso mediante VPN y configurar vpn_standby como 0. De forma predeterminada, se establece vpn_ports como 80,443, para permitir las conexiones a los puertos 80 y 443 (http y https respectivamente), y se define vpn_type como certificate, para admitir que un cliente VPN pueda conectarse al servidor VPN de la aplicación mediante un túnel basado en certificado SSL. También puede fijar la propiedad in_standby a 1, para que solo se permitan las solicitudes a través del túnel VPN. Se eliminan las solicitudes API de fuera del túnel VPN. Para obtener más información acerca de cómo configurar la aplicación para que trabaje en este modo, consulte la sección sobre configuración.
La infraestructura de la aplicación 'WS_API' de servicios Web de CA AppLogic® se presenta a continuación:
Tiene los componentes siguientes:

Esta sección describe cómo configurar la aplicación WS_API para que se inicie en uno de los tres modos diferentes de funcionamiento.
Cómo configurar la aplicación WS_API
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data Es vdcs.conf
Este archivo contiene información necesaria para acceder a los grids que se gestionarán mediante la API de REST.
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
# }
}
Para generar la pareja de claves:
ssh-keygen -t dsa -f /mnt/vol/data/gridkey Cuando se le pida que introduzca una contraseña, pulse la tecla Intro. NO INTRODUZCA UNA CONTRASEÑA. 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"
Se creará el usuario.
grid modify_acl api@domain.com=grid_administrator
Nota: Pueden utilizarse otros niveles de acceso (consulte la guía de RBAC para obtener más información), pero debe tenerse en cuenta que esto limitará los comandos que ws_api pueda ejecutar.
El límite de la aplicación se puede configurar ahora para que funcione en uno de los tres modos de funcionamiento.
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso HTTPS permite las llamadas de API de REST basadas en HTTP seguro.
Cómo configurar la aplicación en modo HTTPS
Nota: Si opts se deja en blanco, se generará un certificado SSL al iniciar la aplicación. Los valores de configuración de las propiedades http_mode y allowed_hosts se puedan dejar con sus valores predeterminados. Por ejemplo:
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
La primera vez que se inicia la aplicación, se crean en el directorio /mnt/config/ssl_keys/keys/ del volumen conf una clave de cliente en formato PEM, formada por el certificado de cliente y una clave privada llamada api_client.pem, y una clave equivalente en formato PKCS12 para los exploradores denominados api_client.p14. El archivo de clave api_client.p14 se puede utilizar para cualquier acceso de API basado en explorador y la clave api_client.pem para cualquier acceso de API no basado en explorador.
Cómo generar más certificados de cliente
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso HTTP permite las llamadas de API de REST basadas en HTTP simple.
Nota: Este modo se debería utilizar con máxima cautela. Este modo no conlleva ningún control de seguridad y cualquiera puede crear una solicitud de API sin ninguna autenticación. Además, todo el tráfico entre el cliente y la aplicación ws_api_instance está en texto sin formato.
Para configurar la aplicación en el modo HTTP, establezca la propiedad http_mode como http y defina las propiedades obligatorias con los valores adecuados. Por ejemplo:
app config ws_api_instance iface.in=usr-ip iface.net=net-ip dns1=dns1 dns2=dns2 http_mode=http
La aplicación ya se puede iniciar con el comando de inicio de la aplicación o mediante el botón "Iniciar la aplicación" de la GUI.
La aplicación WS_API proporciona una interfaz de servicio Web a uno o varios grids mediante un servicio basado en transferencia de estado representacional (REST). El método de acceso VPN permite que las solicitudes HTTP se envíen a través de un túnel VPN seguro.
Cómo configurar la aplicación en modo VPN
Por ejemplo:
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
Después de que la aplicación se haya iniciado, el dispositivo de servidor VPN genera los certificados de servidor necesarios y los archivos de claves, en caso de que estos aún no estén presentes.
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client Generated client SSL certificate and key file. ============================================== Estos archivos, junto con el archivo de certificado de CA, se deben copiar al servidor VPN en el /client/ subdirectory of data volume or fs-mounted volume. Se debería especificar una ruta a los archivos cliente (client.a1c65e2bae3d0b57) en la propiedad auth_path. Location of files: Certificado de cliente: /mnt/data/server/client.a1c65e2bae3d0b57.crt Archivo de clave de cliente: /mnt/data/server/client.a1c65e2bae3d0b57.key Archivo de certificado de CA situado en /mnt/data/server/ca.crt
El certificado de cliente (por ejemplo, client.xxxxxxxxxxxxxxxx.crt) y el archivo de clave (por ejemplo, client.xxxxxxxxxxxxxxxx.key) se generan en el subdirectorio del cliente y el certificado de CA (ca.crt) se genera en el subdirectorio del servidor del volumen conf.
Software de terceros y de fuente abierta utilizado
El siguiente software de terceros de fuente abierta está instalado en el volumen de código.
|
Software |
Versión |
Modificado |
Licencia |
Notas |
|
JSON |
2.15 |
No |
Artística |
N/D |
|
IPC-Run |
0.80 |
No |
GPLv2 |
N/D |
|
XML-Simple |
2.18 |
No |
Artística |
N/D |
|
Sort-Naturally |
1.02 |
No |
Artística |
N/D |
|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|