Wie Sie die Authentifizierung durchführen, um REST-Befehle ausführen zu können, hängt davon ab, wie der Server eingerichtet wurde und welches Tool Sie verwenden, um die Befehle auszuführen.
Anmerkung: Die Verwendung von REST-Befehlen erfordert dieselben Berechtigungen wie für die Nutzung der Webschnittstelle. Informationen über Berechtigungen finden Sie unter
Roles and permissions.
Authentifizierung mit einem Benutzernamen und Kennwort
Die einfachste Möglichkeit, die Authentifizierung für REST-Befehle durchzuführen, besteht darin, einen Benutzernamen und ein Kennwort zu verwenden. Beispiel: Wenn Sie das Programm
curl verwenden, können Sie den Benutzernamen und das Kennwort im Befehl angeben (siehe folgender Code):
curl -k -u jsmith:passwd
https://myserver.example.com:8443/cli/application/info
?application=JPetStore
Authentifizierung in Scripts und Programmen
Viele Programmier- und scriptbasierte Sprachen können REST-Befehle aufrufen.
Beim folgenden Beispiel handelt es sich um ein Python-Script, das eine Authentifizierung durch Hinzufügen des Kennworts zum Anforderungsheader durchführt.
#!/usr/bin/env python
import urllib2
import json
import base64
import sys
if not len(sys.argv) == 3:
print 'usage: script <username> <password>'
exit(1)
username = sys.argv[1]
password = sys.argv[2]
epass = base64.b64encode(username + ':' + password)
print 'base64 encoded: ' + epass
baseUrl = 'ucdeploy.example.org:8443'
url = 'https://' + baseUrl + '/cli/application/info' + '?application=JPetStore'
opener = urllib2.build_opener(urllib2.HTTPHandler)
req = urllib2.Request(url)
req.add_header('Authorization', 'Basic '+epass)
req.get_method = lambda: 'GET'
resp = opener.open(req)
print resp.read()
Importieren des Serverzertifikats
Das Standardserverzertifikat ist nicht signiert. Manche Tools verbinden sich standardmäßig nicht mit Servern, die nicht signierte Zertifikate haben. Um auf einen Server mit einem selbst signierten Zertifikat zuzugreifen, können Sie das Tool anweisen, die Verbindung unsicher herzustellen, oder Sie können das Zertifikat in Ihren Client importieren. Gehen Sie wie folgt vor, um das Zertifikat in Ihrem Client zu importieren:
- Exportieren Sie das Serverzertifikat in eine Datei:
- Öffnen Sie auf dem Computer, auf dem der IBM UrbanCode Deploy-Server läuft, die Datei server.xml in einem Texteditor. Standardmäßig befindet sich diese Datei unter Serverinstallationsverzeichnis/opt/tomcat/conf/server.xml. The default server installation
directory is /opt/ibm-ucd/server on Linux and C:\Program Files\ibm-ucd\server on Windows.
- In der server.xml-Datei suchen Sie die folgenden Codezeilen und notieren sich die Werte der Attribute keystoreFile und keystorePass:
sslProtocol="TLS"
keystoreFile="conf/tomcat.keystore"
keystorePass="changeit" />
- Führen Sie in einem Befehlszeilenfenster folgenden Befehl aus:
keytool -v -list -keystore
keyStoreFileName
Die Anwendung keytool ist im
Java™-Entwicklerkit enthalten und nicht Teil von
IBM UrbanCode Deploy.
Verwenden Sie den Namen des keystoreFile-Attributs der Datei server.xml für die Variable keyStoreFileName.
Wenn Sie aufgefordert werden, ein Kennwort anzugeben, geben Sie den Wert des keystorePass-Attributs ein. Der Standardwert ist changeit.
- Dem Ergebnis des Befehls entnehmen Sie den Alias des Servers.
Das Ergebnis des Befehls könnte beispielsweise wie folgt aussehen:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: server
Creation date: Mar 19, 2014
Entry type: PrivateKeyEntry
In diesem Code ist der Alias server.
- Führen Sie den folgenden Befehl aus, um das Zertifikat in eine Datei zu exportieren und das Kennwort erneut anzugeben:
keytool -exportcert
-alias serverAlias
-keystore keyStoreFileName
-storetype jks
-file server.cert
Verwenden Sie den Alias des Servers für serverAlias.
- Kopieren Sie die Datei server.cert auf den Client-Computer.
- Importieren Sie die Datei server.cert in den Keystore des Client-Computers:
- Führen Sie in einem Befehlszeilenfenster auf dem Client-Computer den folgenden Befehl aus und geben Sie das Kennwort für den
Keystore auf dem Client an. Der Standardwert ist changeit.
jreLocation\jre\bin\keytool.exe -importcert
-alias serverAlias
-file tomcat.cert
-storetype jks
-keystore jreLocation\jre\lib\security\cacerts
Verwenden Sie den Standort der JRE oder des JDK für jreLocation.
Einige Tools, die diese JRE oder diesen JDK verwenden, akzeptieren jetzt das Serverzertifikat.
Andere Tools wie zum Beispiel
curl akzeptieren das Serverzertifikat möglicherweise weiterhin nicht, da es nicht signiert ist. Richten Sie ein signiertes Zertifikat für den Server ein, um dieses Problem zu beheben.