Authentifizierung für REST-Befehle

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:
  1. Exportieren Sie das Serverzertifikat in eine Datei:
    1. Ö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.
    2. 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" />
    3. 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.
    4. 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.
    5. 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.
  2. Kopieren Sie die Datei server.cert auf den Client-Computer.
  3. Importieren Sie die Datei server.cert in den Keystore des Client-Computers:
    1. 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.

Feedback