Dernière version : 2.0.0-2
L'application WS_API fournit une interface de services Web vers une ou plusieurs grilles par le biais d'un service REST (Representational State Transfer). Vous pouvez utiliser l'une des méthodes d'accès suivantes avec l'interface REST WS_API :
|
Nom de propriété |
Type |
Description |
|
iface.in |
interface |
Il s'agit de l'adresse IP à laquelle l'application WS_API fournit des services aux utilisateurs par le biais de requêtes HTTP ou HTTPS. Cette propriété est obligatoire. |
|
iface.net |
interface |
Il s'agit de l'adresse IP utilisée par l'application WS_API pour accéder à une adresse réseau publique. Cette propriété est obligatoire. |
|
dns1 |
IP |
Adresse IP d'un serveur DNS pour les résolutions de nom d'hôte. Cette propriété est obligatoire. |
|
dns2 |
IP |
Adresse IP du serveur DNS secondaire utilisé pour les résolutions de nom d'hôte. Valeur par défaut : 0.0.0.0 |
|
allowed_hosts |
Chaîne |
Adresse IP ou plage d'adresse IP autorisées au format CIDR. Valeur par Défaut : 0.0.0.0/0 (toutes autorisées). |
|
http_mode |
Chaîne |
Spécifie le type de requêtes HTTP desservies par l'API sur usr_ip. Valeurs valides : https, http, les deux. Si cette propriété est définie sur http, les simples requêtes HTTP sont desservies par l'API. Si cette propriété est définie sur https, seules les requêtes HTTP sécurisées basées sur le chiffrement SSL 3.0 sont desservies par l'API REST. Si les deux valeurs sont définies, tant les requêtes HTTP que les requêtes HTTPS sont desservies. Valeur par défaut : https. Cette propriété est effective uniquement pour les requêtes desservies via l'appliance interne (autrement dit, pas en cas d'utilisation de VPN). N'oubliez pas que si le mode est défini sur http, tout le trafic s'effectue en texte brut. Il est vivement recommandé de définir la propriété allowed_hosts pour les adresses IP qui émettront des requêtes API. |
|
opts |
Chaîne |
Les arguments pour la configuration de SSL peuvent être fournis à l'application via la propriété opts sous la forme de paires name=value séparées par des virgules. Il n'est pas nécessaire de définir cette propriété en mode HTTP simple, autrement dit lorsque http_mode=http. Valeur par défaut : vide (non utilisée). Si l'un des arguments n'est pas spécifié, le système suppose une valeur vide. |
|
iface.vpn |
interface |
Il s'agit de l'adresse IP à laquelle l'application WS_API fournit des services aux utilisateurs via un tunnel VPN sécurisé. Valeur par défaut : vide. |
|
vpn_ports |
Chaîne |
Liste des ports pour accéder à l'API de services Web. Ces ports sont autorisés par le biais des règles de pare-feu et de tunnel VPN. Les ports 80 et 443 sont généralement les seuls requis. Valeur par défaut : 80,443. |
|
vpn_type |
Chaîne |
Type du tunnel VPN à établir. Les valeurs possibles sont : |
|
vpn_authpath |
Chaîne |
Informations d'authentification pour le tunnel. Pour le mode de fonctionnement shared secret, il s'agit d'un chemin d'accès relatif au fichier de secrets partagés sur le volume de données (ex. "secret.key" pour un fichier "client/secret.key"). Si le tunnel est de type ssh key, cette propriété indique le chemin d'accès, y compris le nom de fichier, au fichier de clé public ssh (pour le serveur VPN) ou privé (pour le client VPN) (par exemple, "/1/ssh.key" pour un fichier de clé publique /client/1/ssh.key). Valeur par défaut : vide |
|
vpn_standby |
Entier |
Spécifie si l'accès VPN est activé au démarrage de l'application. Si la valeur est différente de zéro, l'accès VPN est désactivé. Dans le cas contraire, il est activé. Vous pouvez activer/désactiver l'accès VPN au moment de l'exécution en démarrant/arrêtant manuellement l'appliance VPN. Valeur par défaut : 1 (l'accès VPN est désactivé). |
|
in_standby |
Entier |
Spécifie si l'accès à l'API REST est permis via des connexions HTTP ou HTTPS standard. Lorsque cette propriété est définie sur 1 et que vpn_standby est défini sur 0, seul un accès basé sur un tunnel VPN est autorisé. Vous pouvez activer/désactiver cet accès au moment de l'exécution en démarrant/arrêtant manuellement l'appliance interne. Valeur par défaut 0 (l'accès HTTP et HTTPS standard est activé). |
|
mon_standby |
Entier |
Détermine si la surveillance de l'application est désactivée au démarrage de l'application. Si la valeur est différente de zéro, la surveillance est désactivée. Dans le cas contraire, elle est activée. Vous pouvez activer la surveillance au moment de l'exécution en démarrant l'appliance MON manuellement. Valeur par défaut : 1 (la surveillance est désactivée). |
Important : Les adresses IP configurées dans les propriétés d'interface externe iface.vpn, iface.in et iface.net doivent être des adresses IP disponibles sur votre grille CA AppLogic®. Elles figurent, avec les serveurs DNS, dans le tableau de bord de votre grille.
Application "WS_API"
|
Ressources |
Min. |
Max. |
Valeur par défaut |
|
UC |
0.55 |
76 |
1.1 |
|
Mémoire |
1024 Mo |
134 Go |
1,687 Go |
|
Bande passante |
7 Mbit/s |
12,5 Gbit/s |
730 Mbit/s |
L'application proprement dite utilise plusieurs volumes. Ils font partie de celle-ci et sont déjà configurés dans les instances d'appliance. Aucun volume ne doit être configuré sur le périmètre de l'application.
|
Volume |
Taille |
Description |
|
code |
50 M |
Ce volume est utilisé pour stocker le code et les scripts de l'application API. Ce volume est affecté à l'appliance WEB5. Par défaut, un volume complété nommé code est fourni pour être utilisé par cette application. |
|
conf |
50 M |
Ce volume est utilisé pour stocker toutes les données de configuration pour l'application API de service Web. Il inclut vdcs.conf, qui est complété par l'utilisateur afin de contenir des informations à propos de grilles distantes, de clé SSH créée par l'utilisateur pour accéder à la grille distante, de certificats SSL générés par l'application API pour accéder à API via l'interface HTTPS, et des certificats de serveur VPN créés par utilisateur pour accéder à API via l'interface VPN. Ce volume est affecté à une appliance NAS. Par défaut, un volume complété nommé conf est fourni pour être utilisé par cette application. |
|
log_data |
50 M |
Ce volume est utilisé pour stocker des données de journalisation pour le serveur API. Il est également utilisé pour stocker des fichiers temporaires requis par l'application API. Ce volume est affecté à l'appliance NAS. Par défaut, un volume complété nommé log_data est fourni pour être utilisé par cette application. |
Avant de démarrer l'application WS_API, elle doit être configurée pour accéder aux grilles qui vont être gérées via l'interface de service Web. Cela implique de créer un fichier vdcs.conf dans le sous-répertoire de données sur le volume conf. Une paire de clés privée/publique doit être créer et un utilisateur doit être configuré sur le contrôleur de grille cible avec la clé publique générée. Pour plus d'informations sur comment remplir vdcs.conf et comment configurer des clés SSH et créer un utilisateur de grille pour l'API de service Web, voir la section Configuration.
Vous pouvez configurer WS_API pour travailler dans un des modes suivants (ou une combinaison de ces modes) :
Utilisation d'HTTP
Dans ce mode, vous pouvez accéder à l'API REST via l'interface HTTP standard.
Par exemple, exécutez la commande curl http://iface.in/api/v1/app/list?vdc=nom_contrôleur.
Pour lancer l'application de manière à travailler dans ce mode, vous devez définir des valeurs adéquates pour les propriétés obligatoires et la propriété http_mode sur http. Pour plus d'informations sur la procédure de configuration de l'application pour qu'elle fonctionne dans ce mode, reportez-vous à la section Configuration.
Utilisation d'HTTPS
Dans ce mode, vous pouvez accéder à l'API REST via l'interface HTTP sécurisée.
Par exemple, bouclez -k -E /path/to/client_key.pem https://IP_utilisateur/api/v1/app/list?vdc=nom_contrôleur.
Pour lancer l'application de manière à travailler dans ce mode, vous devez définir des valeurs adéquates pour les propriétés obligatoires et la propriété http_mode sur https. Vous pouvez également définir la propriété opts avec les options affichées dans le tableau de propriétés ci-dessus pour que votre certificat soit signé en conséquence. Une fois l'application démarrée, les certificats du client doivent être copiés à partir du sous-répertoire de clés SSL dans le volume conf vers l'application cliente ou le navigateur à utiliser pour accéder à WS_API. Pour plus d'informations sur la façon de configurer l'application dans ce mode, reportez-vous à la section Configuration.
Utilisation d'un tunnel VPN
Dans ce mode, un tunnel VPN sécurisé est créé entre le serveur VPN in_vpn dans l'application et un client VPN du côté client. Une fois que le tunnel est correctement créé à l'aide d'un des différents types de tunneling VPN disponibles, vous pouvez accéder à l'API REST via l'interface HTTP standard.
Par exemple, exécutez la commande curl http://iface.in/api/v1/app/list?vdc=nom_contrôleur.
Pour lancer l'application dans ce mode, vous devez définir des valeurs appropriées pour les propriétés obligatoires, la propriété d'interface externe iface.vpn sur l'adresse IP définie pour l'accès VPN et la propriété vpn_standby sur 0. Par défaut, vpn_ports est défini sur 80,443 pour permettre les connexions aux ports 80 et 443 (HTTP et HTTPS respectivement) et vpn_type est défini sur certificate pour qu'un client VPN puisse se connecter au serveur VPN de l'application via un tunnel basé sur un certificat SSL. Vous pouvez également définir la propriété in_standby sur 1 pour que seules les requêtes via le tunnel VPN soient autorisées. Toute requête API ne provenant pas du tunnel VPN est abandonnée. Pour plus d'informations sur la façon de configurer l'application dans ce mode, reportez-vous à la section Configuration.
L'infrastructure de l'application "WS_API" des services Web de CA AppLogic® est illustrée ci-dessous :
Elle contient les composants suivants.

Cette section explique la procédure de configuration de l'application WS_API pour qu'elle démarre dans l'un des trois modes de fonctionnement possibles.
Pour configurer l'application WS_API
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data ls vdcs.conf
Ce fichier contient des informations nécessaires pour accéder aux grilles qui seront gérées via l'API REST.
vi vdcs.conf
vdcs
{
vdc nom_contrôleur : host = IP_contrôleur ou FQDN
{
location = "ville, état, pays"
latitude = latitude
longitude = longitude
}
# vdc nom_contrôleur : host = IP_contrôleur ou FQDN
# {
# location = "ville, état, pays"
# latitude = latitude
# longitude = longitude
# }
}
Pour générer la paire de clés :
ssh-keygen -t dsa -f /mnt/vol/data/gridkey Lorsque vous êtes invité à entrer un mot de passe, appuyez sur Entrée. N'ENTREZ PAS DE MOT DE PASSE. 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"
L'utilisateur est créé.
grid modify_acl api@domain.com=grid_administrator
Remarque : Vous pouvez utiliser d'autres niveaux d'accès (pour plus d'information, consultez le manuel RBAC), mais cela limitera les commandes que ws_api peut exécuter.
Vous pouvez maintenant configurer le périmètre de l'application pour travailler dans l'un des trois modes de fonctionnement.
L'application WS_API fournit une interface de services Web vers une ou plusieurs grilles par le biais d'un service REST (Representational State Transfer). La méthode d'accès HTTPS active les appels d'API REST HTTP sécurisés.
Pour configurer l'application en mode HTTPS
Remarque : Si opts reste vide, un certificat SSL générique est créé au démarrage de l'application. Les paramètres des propriétés http_mode et allowed_hosts peuvent garder leur valeur par défaut. Par exemple :
app config ws_api_instance iface.in=IP_utilisateur iface.net=IP_réseau dns1=dns1 dns2=dns2 opts=ssl_country=pays,ssl_state=état,ssl_local=ville,ssl_org_name=organisation,ssl_org_unit=unité,ssl_common_name=nom_commun,ssl_email_address=société@domaine.com,ssl_export_pass=clé_accès
Au premier démarrage de l'application, une clé cliente au format PEM, constituée du certificat client et de la clé privée nommée api_client.pem, ainsi qu'une clé équivalente au format PKCS12 pour les navigateurs, nommée api_client.p14, sont créées dans le sous-répertoire /mnt/config/ssl_keys/keys/ du volume conf. Vous pouvez utiliser le fichier de clé api_client.p14 pour tout accès API basé sur un navigateur et la clé api_client.pem pour tout accès API non basé sur un navigateur.
Pour générer des certificats de client supplémentaires :
L'application WS_API fournit une interface de services Web vers une ou plusieurs grilles par le biais d'un service REST (Representational State Transfer). La méthode d'accès HTTP active les appels d'API REST HTTP simples.
Remarque : Ce mode devrait être utilisé avec une extrême prudence. Il ne comporte aucun contrôle de sécurité et quiconque peut créer une requête API sans aucune authentification. De plus, tout le trafic entre le client et l'application ws_api_instance s'effectue en texte clair.
Pour configurer l'application en mode HTTP, définissez la propriété http_mode sur http et spécifiez les valeurs adéquates pour les propriétés obligatoires. Par exemple :
app config ws_api_instance iface.in=usr-ip iface.net=net-ip dns1=dns1 dns2=dns2 http_mode=http
L'application peut maintenant être lancée à l'aide de la commande app start ou du bouton Démarrer l'application dans l'interface utilisateur graphique.
L'application WS_API fournit une interface de services Web vers une ou plusieurs grilles par le biais d'un service REST (Representational State Transfer). La méthode d'accès VPN permet aux requêtes HTTP d'être envoyées via un tunnel VPN sécurisé.
Pour configurer l'application en mode VPN
Par exemple :
app config ws_api_instance iface.in=IP_utilisateur iface.vpn=IP_VPN iface.net=IP_réseau dns1=dns1 dns2=dns2 vpn_standby=0 in_standby=1
Une fois l'application démarrée, l'appliance de serveur VPN génère les certificats de serveur et les fichiers de clés nécessaires si ces fichiers ne sont pas déjà présents.
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client Generated client SSL cerfiticate and key file. ============================================== Ces fichiers, avec le fichier de certificat de CA, doivent être copiés sur le serveur VPN dans le sous-répertoire /client/ sous-répertoire de volume de données ou monté sur un système de fichiers volume. Le chemin d'accès aux fichiers clients (client.a1c65e2bae3d0b57) doit être spécifié dans la propriété auth_path. Emplacement de fichiers : Certificat client : /mnt/data/server/client.a1c65e2bae3d0b57.crt Fichier de clé client : /mnt/data/server/client.a1c65e2bae3d0b57.key Fichier de certificat de CA situé à l'emplacement /mnt/data/server/ca.crt
Le certificat client (par exemple, client.xxxxxxxxxxxxxxxx.crt) et le fichier de clé client (par exemple, client.xxxxxxxxxxxxxxxx.key) sont générés dans le sous-répertoire client et le certificat de CA (ca.crt) est généré dans le sous-répertoire de serveur du volume conf.
Logiciels libres et logiciels tiers utilisés
Les logiciels tiers libres suivants sont installés sur le volume de code.
|
Logiciel |
Version |
Modifié |
Licence |
Notes |
|
JSON |
2.15 |
Non |
Artistic |
N/D |
|
IPC-Run |
0.80 |
Non |
GPLv2 |
N/D |
|
XML-Simple |
2.18 |
Non |
Artistic |
N/D |
|
Sort-Naturally |
1.02 |
Non |
Artistic |
N/D |
|
Copyright © 2013 CA.
Tous droits réservés.
|
|