Aktuelle Version: 2.0.0-2
Die "WS_API"-Anwendung bietet über einen Dienst auf REST-Basis (Representational State Transfer) eine Webservice-Schnittstelle zu einem oder mehreren Grids. In der WS_API REST-Schnittstelle kann eine beliebige der folgenden Zugriffsmethoden verwendet werden:
Eigenschaftsname |
Typ |
Description |
iface.in |
Schnittstelle |
Dies ist die IP-Adresse, an der die WS_API-Anwendung Benutzern durch HTTP- oder HTTPS-basierte Anfragen Dienste bereitstellt. Diese Eigenschaft ist obligatorisch. |
iface.net |
Schnittstelle |
Dies ist die IP-Adresse, über die die WS_API-Anwendung auf eine beliebige öffentliche Netzwerkadresse zugreift. Diese Eigenschaft ist obligatorisch. |
dns1 |
IP |
IP-Adresse eines DNS-Servers für Hostnamenauflösungen. Diese Eigenschaft ist obligatorisch. |
dns2 |
IP |
IP-Adresse eines DNS-Backupservers für Hostnamenauflösungen. Standard: 0.0.0.0. |
allowed_hosts |
Zeichenfolge |
Zulässige IP-Adresse oder Bereich von IP-Adressen im CIDR-Format. Standard: 0.0.0.0/0; (alle zulassen) |
http_mode |
Zeichenfolge |
Gibt an, welche HTTP-Anfragen von der API in "usr_ip" bereitgestellt werden. Zulässige Werte: https und/oder http. Wenn hier "http" festgelegt wird, werden von der API einfache HTTP-basierte Anfragen verarbeitet. Bei Auswahl von "https" werden von der API nur sichere HTTP-Anfragen auf der Basis von SSL v3.0-Verschlüsselung verarbeitet. Sind beide Werte definiert, werden sowohl HTTP- als auch HTTPS-Anfragen verarbeitet. Standard: https. Diese Eigenschaft gilt nur für Anfragen, die von der Appliance übermittelt werden, und hat somit bei Verwendung eines VPN keine Auswirkungen. Beachten Sie, dass bei Auswahl des Modus "http" der gesamte Datenverkehr als unverschlüsselter Text erfolgt. Es wird empfohlen, die Eigenschaft "allowed_hosts" für die IP-Adressen festzulegen, die API-Anfragen ausgeben. |
opts |
Zeichenfolge |
Argumente für die SSL-Konfiguration können über die Eigenschaft "opts" als durch Kommata getrennte Name/Wert-Paare in der Anwendung angegeben werden. Im einfachem HTTP-Modus, d. h. wenn "http_mode=http" festgelegt ist, muss diese Eigenschaft nicht angegeben werden. Standard: leer (nicht verwendet). Wenn eines der Argumente nicht angegeben wurde, wird ein leerer Wert angenommen. |
iface.vpn |
Schnittstelle |
Dies ist die IP-Adresse, an der die WS_API-Anwendung den Benutzern über einen sicheren VPN-Tunnel Dienste bereitstellt. Standard: leer. |
vpn_ports |
Zeichenfolge |
Liste von Ports für den Zugriff auf die Webdienst-API. Diese Ports werden durch den VPN-Tunnel und Firewall-Regeln zugelassen. Normalerweise werden nur die Ports 80,443 benötigt. Standard: 80,443 |
vpn_type |
Zeichenfolge |
Typ des zu erstellenden VPN-Tunnels. Mögliche Werte sind: |
vpn_authpath |
Zeichenfolge |
Authentifizierungsinformationen für den Tunnel. Im Shared Secret-Modus ist dies ein relativer Pfad zur Shared Secrets-Datei auf dem Daten-Volume (z. B. "secret.key" für die Datei "client/secret.key"). Wenn es sich bei dem Tunnel um einen SSH-Schlüssel handelt, gibt diese Eigenschaft den Pfad und Dateinamen zur öffentlichen (für den VPN-Server) oder privaten (für den VPN-Client) SSH-Schlüsseldatei an (z. B. "/1/ssh.key" für die öffentliche Schlüsseldatei "/client/1/ssh.key"). Standard: leer |
vpn_standby |
Int. |
Gibt an, ob der VPN-Zugriff beim Start der Anwendung aktiviert wird. Wenn der Wert nicht Null ist, wird VPN-Zugriff deaktiviert; andernfalls wird der aktiviert. Der VPN-Zugriff kann während der Laufzeit aktiviert bzw. deaktiviert werden, indem Sie die VPN-Appliance manuell starten oder stoppen. Standard: 1 (VPN-Zugriff deaktiviert). |
in_standby |
Int. |
Gibt an, ob der Zugriff auf die REST-API über herkömmliche HTTP- oder HTTPS-basierte Verbindungen zulässig ist. Wenn diese Eigenschaft auf 1 und "vpn_standby" auf 0 festgelegt wird, ist nur der Zugriff auf Basis eines VPN-Tunnel zulässig. Der Zugriff über "in" kann während der Laufzeit aktiviert bzw. deaktiviert werden, indem Sie die in-Appliance manuell starten oder stoppen. Standard 0 (normaler HTTP- und HTTPS-Zugriff aktiviert). |
mon_standby |
Int. |
Bestimmt, ob die Anwendungsüberwachung beim Anwendungsstart deaktiviert wird. Wenn der Wert nicht Null ist, wird die Überwachung deaktiviert; anderenfalls wird sie aktiviert. Die Überwachung kann zur Laufzeit durch den manuellen Start der Überwachungs-Appliance aktiviert werden. Standard: 1 (Überwachung deaktiviert). |
Wichtig! Die IP-Adressen, die in den externen Schnittstelleneigenschaften "iface.vpn", "iface.in" und "iface.net" konfiguriert sind, müssen IP-Adressen sein, die auf Ihrem CA AppLogic®-Grid verfügbar sind. Sie finden sie zusammen mit den DNS-Servern auf dem Dashboard Ihres Grid.
"WS_API"-Anwendung
Ressourcen |
Min. |
Max. |
Standard |
CPU |
0.55 |
76 |
1.1 |
Speicher |
1.024 MB |
134 GB |
1,687 GB |
Bandbreite |
7 Mbit/s |
12,5 Gbit/s |
730 Mbit/s |
Die Anwendung selbst verwendet mehrere Volumes. Sie sind Teil der Anwendung und sind bereits in die Appliance-Instanzen konfiguriert. Es gibt keine Volumes, die in der Anwendungsbegrenzung konfiguriert werden müssen.
Volume |
Größe |
Description |
code |
50 MB |
Dieses Volume wird verwendet, um den Code der API-Anwendung und der Skripte zu speichern. Dieses Volume ist der WEB5-Appliance zugeordnet. Standardmäßig wird für diese Anwendung ein gefülltes Volume namens "code" bereitgestellt. |
conf |
50 MB |
Dieses Volume wird verwendet, um die ganzen Konfigurationsdaten für die Webservice-API-Anwendung zu speichern. Dies schließt "vdcs.conf" ein, das vom Benutzer mit Informationen zu Remote-Grids gefüllt wird, sowie den SSH-Schlüssel, der vom Benutzer für den Zugriff auf das Remote-Grid erstellt wird, von der API-Anwendung generierte SSL-Zertifikate, mit denen über die HTTPS-Schnittstelle auf die API zugegriffen wird, und Zertifikate auf VPN-Server-Seite, die vom Benutzer für den Zugriff auf die API durch die VPN-Schnittstelle erstellt werden. Dieses Volume wird einer NAS-Appliance zugewiesen. Standardmäßig wird für diese Anwendung ein gefülltes Volume namens "conf" bereitgestellt. |
log_data |
50 MB |
Dieses Volume wird verwendet, um Protokollierungsdaten für den API-Server zu speichern. Es wird auch verwendet, um von der API-Anwendung benötigte temporäre Dateien zu speichern. Dieses Volume wird der NAS-Appliance zugewiesen. Standardmäßig wird für diese Anwendung ein gefülltes Volume namens "log_data" bereitgestellt. |
Bevor die WS_API-Anwendung gestartet wird, muss sie für den Zugriff auf die Grids konfiguriert werden, die über die Webdienstschnittstelle verwaltet werden. Dies beinhaltet die Erstellung der Datei "vdcs.conf" im data-Unterverzeichnis des conf-Volumes. Ein Paar aus privaten/öffentlichen Schlüsseln muss erstellt werden, und in der Steuerung des Ziel-Grid muss ein Benutzer mit dem generierten öffentlichen Schlüssel eingerichtet werden. Information über das Auffüllen der Datei "vdcs.conf", das Einrichten von SSH-Schlüsseln und das Erstellen eines Grid-Benutzers für die Webdienst-API finden Sie im Abschnitt Konfigurieren.
WS_API kann für die Ausführung in einem oder mehreren der folgenden Modi konfiguriert werden:
HTTP verwenden
In diesem Modus kann über die reguläre HTTP-basierte Schnittstelle auf die REST-API zugegriffen werden.
Beispiel: curl "http://iface.in/api/v1/app/list?vdc=controller_name".
Um die Anwendung in diesem Modus zu starten, müssen Sie für die obligatorischen Eigenschaften entsprechende Werte und die die Eigenschaft "http_mode" den Wert "http" festlegen. Weitere Informationen über die Einrichtung der Anwendung in diesem Modus finden Sie im Abschnitt Konfigurieren.
HTTPS verwenden
In diesem Modus kann über die sichere HTTP-basierte Schnittstelle auf die REST-API zugegriffen werden.
Beispiel: curl -k -E /path/to/client_key.pem "https://usr_ip/api/v1/app/list?vdc=controller_name".
Um die Anwendung in diesem Modus zu starten, müssen Sie für die obligatorischen Eigenschaften entsprechende Werte und die die Eigenschaft "http_mode" den Wert "https" festlegen. Sie können außerdem für die Eigenschaft "opts" die in der obigen Eigenschaftentabelle angezeigten Optionen festlegen, damit Ihr Zertifikat entsprechend signiert wird. Nachdem die Anwendung erfolgreich gestartet wurde, müssen die Clientzertifikate aus dem Unterverzeichnis "ssl-keys" des conf-Volumes in die Clientanwendung oder den Browser kopiert werden, um für den Zugriff auf WS_API verwendet werden zu können. Für weitere Informationen über die Einrichtung dieses Modus für die Anwendung finden Sie im Abschnitt Konfigurieren.
Verwenden eines VPN-Tunnels
In diesem Modus wird ein sicherer VPN-Tunnel zwischen dem VPN-Server "in_vpn" innerhalb der Anwendung und einem VPN-Client auf der Clientseite erstellt. Sobald der Tunnel mithilfe einer der verfügbaren VPN-Tunnel-Typen erstellt wurde, kann über die reguläre HTTP-basierte Schnittstelle auf die REST-API zugegriffen werden.
Beispiel: curl "http://iface.in/api/v1/app/list?vdc=controller_name".
Um die Anwendung in diesem Modus zu starten, müssen Sie für die obligatorischen Eigenschaften entsprechende Werte festlegen und die externe Schnittstelleneigenschaft "iface.vpn" auf die IP-Adresse festlegen, die für den VPN-Zugriff ausgewählt wurde, und Sie müssen "vpn_standby" auf 0 festlegen. Standardmäßig wird "vpn_ports" auf den Wert "80,443" festgelegt, um Verbindungen zu den Ports 80 und 443 (http und https) zuzulassen. Für die Eigenschaft "vpn_type" wird "certificate" eingestellt, um die Verbindung des VPN-Clients mit dem VPN-Server in der Anwendung über einen auf einem SSL-Zertifikat basierenden Tunnel zu ermöglichen. Sie können außerdem die Eigenschaft "in_standby" auf den Wert 1 festlegen, sodass nur Anfragen über den VPN-Tunnel zulässig sind. Alle API-Anfragen von außerhalb des VPN-Tunnels werden übergangen. Für weitere Informationen über die Einrichtung dieses Modus für die Anwendung finden Sie im Abschnitt Konfigurieren.
Die WS_API-Anwendungsinfrastruktur der CA AppLogic®-Webdienste ist nachfolgend dargestellt:
Es umfasst die folgenden Komponenten:
In diesem Abschnitt wird beschrieben, wie Sie die WS_API-Anwendung so konfigurieren, dass sie in einem der drei Betriebsmodi gestartet wird.
So konfigurieren Sie die WS_API-Anwendung
app provision WS_API ws_api_instance --skipstart
vol manage ws_api_instance:conf
cd /mnt/vol/data ls vdcs.conf
Diese Datei enthält erforderliche Informationen für den Zugriff auf die Grids, die über die REST-API verwaltet werden.
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 # } }
So generieren Sie das Schlüsselpaar:
ssh-keygen -t dsa -f /mnt/vol/data/gridkey Drücken Sie an der Aufforderung zur Eingabe eines Kennworts die Eingabetaste. GEBEN SIE KEIN KENNWORT EIN. 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"
Der Benutzer wird erstellt.
grid modify_acl api@domain.com=grid_administrator
Hinweis: Andere Zugriffsebenen können verwendet werden (weitere Informationen finden Sie im RBAC-Handbuch). Beachten Sie jedoch, dass dies die Befehle einschränken wird, die "ws_api" ausführen kann.
Die Anwendungsbegrenzung kann jetzt so konfiguriert werden, dass sie in einem der drei Betriebsmodi ausgeführt wird.
Die "WS_API"-Anwendung bietet über einen Dienst auf REST-Basis (Representational State Transfer) eine Webservice-Schnittstelle zu einem oder mehreren Grids. Die HTTPS-Zugriffsmethode unterstützt sichere HTTP-basierte Aufrufe der REST-API.
So konfigurieren Sie die Anwendung in HTTPS-Modus
Hinweis: Wenn Sie für die Eigenschaft "opts" keinen Wert eingeben, wird beim Start der Anwendung ein generisches SSL-Zertifikat erzeugt. Für die Eigenschaften "http_mode" und "allowed_hosts" können Sie die Standardwerte übernehmen. Beispiel:
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
Beim ersten Anwendungsstart werden ein Clientschlüssel im PEM-Format bestehend aus dem Clientzertifikat und einem privaten Schlüssel namens "api_client.pem" und ein entsprechender Schlüssel im PKCS12-Format für Browser namens "api_client.p14" im Verzeichnis "/mnt/config/ssl_keys/keys/" des conf-Volumes erstellt. Die Schlüsseldatei "api_client.p14" kann für alle browserbasierte API-Zugriffe und die Schlüsseldatei "api_client.pem" für alle nicht browserbasierten API-Zugriffe verwendet werden.
So generieren Sie zusätzliche Clientzertifikate
Die "WS_API"-Anwendung bietet über einen Dienst auf REST-Basis (Representational State Transfer) eine Webservice-Schnittstelle zu einem oder mehreren Grids. Die HTTP-Zugriffsmethode unterstützt einfache HTTP-basierte Aufrufe der REST-API.
Hinweis: Dieser Modus sollte mit äußerster Vorsicht verwendet werden. Er beinhaltet keine Sicherheitsprüfung, d. h. jeder kann eine API-Anfrage ohne jegliche Authentifizierung erstellen. Darüber hinaus erfolgt der gesamte Datenverkehr zwischen dem Client und der Anwendung "ws_api_instance" in Form von unverschlüsseltem Text.
Um die Anwendung im HTTP-Modus zu konfigurieren, legen Sie für die Eigenschaft "http_mode" den Wert "http" und für die obligatorischen Eigenschaften geeignete Werte fest. Beispiel:
app config ws_api_instance iface.in=usr-ip iface.net=net-ip dns1=dns1 dns2=dns2 http_mode=http
Die Anwendung kann nun mit dem Befehl "app start" oder über die Schaltfläche "Anwendung starten" in der GUI aufgerufen werden.
Die "WS_API"-Anwendung bietet über einen Dienst auf REST-Basis (Representational State Transfer) eine Webservice-Schnittstelle zu einem oder mehreren Grids. Die VPN-Zugriffsmethode ermöglicht, HTTP-Anfragen über einen sicheren VPN-Tunnel zu senden.
So konfigurieren Sie die Anwendung im VPN-Modus
Zum Beispiel:
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
Nach dem Anwendungsstart generiert die VPN-Server-Appliance die erforderlichen Serverzertifikate und Schlüsseldateien, wenn diese Dateien nicht bereits vorhanden sind.
[ws_api_instance:main.in_vpn appliance]# ./security.sh generate_client Generiertes SSL-Client-Zertifikat und Schlüsseldatei. ============================================== Kopieren Sie diese Dateien zusammen mit der CA-Zertifikatsdatei auf den VPN-Server im Unterverzeichnis "/client/" des Daten-Volumes oder des in FS bereitgestellten Volumes. Geben Sie den Pfad zu den Clientdateien (client.a1c65e2bae3d0b57) in der Eigenschaft "auth_path" an. Speicherort der Dateien: Clientzertifikat: /mnt/data/server/client.a1c65e2bae3d0b57.crt Clientschlüsseldatei: /mnt/data/server/client.a1c65e2bae3d0b57.key CA-Zertifikatsdatei in "/mnt/data/server/ca.crt"
Das Clientzertifikat (z. B. client.xxxxxxxxxxxxxxxx.crt) und die Schlüsseldatei (z. B. client.xxxxxxxxxxxxxxxx.key) werden im Unterverzeichnis "client" und das CA-Zertifikat (ca.crt) wird im Unterverzeichnis "server" des conf-Volumes generiert.
Verwendete Open-Source- und Drittanbieter-Software
Auf dem code-Volume wird die folgende Open-Source- bzw. Drittanbieter-Software installiert.
Software |
Version |
Geändert |
Lizenz |
Hinweise |
JSON |
2.15 |
Nein |
Artistic |
N/A |
IPC-Run |
0.80 |
Nein |
GPLv2 |
N/A |
XML-Simple |
2.18 |
Nein |
Artistic |
N/A |
Sort-Naturally |
1.02 |
Nein |
Artistic |
N/A |
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|