Daten anbieten - OData Einstellungen
Modul Integration
Daten anbieten
OData / Kontextmenü Einstellungen
Bindungsadresse
Die Bindungsadresse definiert, wer auf den OData-Service zugreifen darf.
Bei Verwendung der Auswahl
localhost ist der
Service nur vom lokalen PC aus verfügbar.
Alternative Auswahlmöglichkeiten sind jede (IPv4), jede (IPv6) oder
die manuelle Eingabe einer
bestimmten IP-Adresse. Wählen Sie
localhost,
wenn Sie Ihren ersten OData-Service lokal testen wollen.
Port
Port definiert, unter welchem TCP-Port der OData-Service erreichbar sein
soll. Idealerweise nutzen Sie eine
Portnummer zwischen 49152 und 65535, einen der sogenannten
Private Ports. Diese lassen sich variabel einsetzen, da sie
nicht registriert und damit keiner Anwendung zugehörig sind. Host und Port
bilden zusammen den Endpoint-URL, unter dem ihr
Service erreichbar sein soll. Der Service kann für die öffentliche Verwendung
auch einfach unter ihrer Domain eingebunden werden.
|
Bitte stellen Sie sicher, dass nicht der gleiche Port wie der
des Portalservers verwendet
wird und der Port von keiner anderen Applikation bereits belegt ist.
|
Context
Hier kann optional ein Kontext angegeben werden, der als Teil des
Service-Endpoint-URLs verwendet wird.
Dies kann nützlich sein, um Services hinter einem Reverse-Proxy zu betreiben.
Der Context Name muss URL-konform sein. Die Endpoint-URL wird bei Angabe
eines Contexts wie folgt gebildet:
http://hostname:port/context/service.svc.
Host
Hier kann optional ein Hostname angegeben werden, wenn der Hostname der
öffentlichen Service URL sich
von dem Hostnamen des Servers unterscheidet. Dies kann nützlich sein, um
Services hinter einem
Reverse Proxy zu betreiben.
SSL verwenden
Hier kann die SSL-Verschlüsselung aktiviert werden.
Keystore
Für SSL Verbindungen wird ein Keystore benötigt, der die Zertifikate bereithält.
Geben Sie hier den Dateinamen des Keystores an. Die Keystore-Datei muss
sich im
Portalverzeichnis
\internal\cfg\odata\producer befinden.
Keystore Passwort
Hier ist das Passwort für den Keystore anzugeben.
Anbieter ist aktiv
Aktiviert bzw. deaktiviert den OData Anbieter. Im Auslieferungszustand ist der
Anbieter deaktiviert. Nach der Aktivierung werden die Dienste automatisch gestartet.
SSL Konfiguration
Wenn in den Server-Einstellungen
SSL verwenden
aktiviert wurde, ist ein Zugriff auf die OData-Dienste nur über das HTTPS-Protokoll
möglich. Damit SSL verwendet werden kann, benötigt der Server ein X.509 Zertifikat,
das zusammen mit dem Zertifikat der Certificate Authority in einem Keystore gespeichert
wird. Zum Testen von SSL ist es möglich, ein sogenanntes selbstsigniertes Zertifikat zu
erstellen. Für den Produktiveinsatz sollte ein Zertifikat von einer öffentlichen
Zertifizierungsstelle verwendet werden, da ansonsten Warnungen im Browser erscheinen
bzw. OData-Clients eine SSL Verbindung ablehnen. Im Folgenden wird beschrieben,
wie ein selbstsigniertes Zertifikat zum Testen erzeugt und in einem Keystore
gespeichert werden kann. Weitere Informationen, insbesondere zum Importieren
von vertrauenswürdigen Zertifikaten finden Sie
hier.
Erstellen eines Keystores mit SSL Zertifikat
Öffnen Sie die Eingabeaufforderung unter Windows bzw.
eine Shell unter Linux und wechseln Sie in das
bin Verzeichnis Ihrer Java JDK Installation (z.B.
\jre\windows\amd64\bin). Führen Sie dann folgenden Befehl aus:
$ keytool -keystore /path/to/keystore.ks -alias odata -genkey -keyalg RSA
Enter keystore password: password
What is your first and last name?
[Unknown]: odata.intrexx.com
What is the name of your organizational unit?
[Unknown]: OData
What is the name of your organization?
[Unknown]: United Planet GmbH
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=odata.intrexx.com, OU=OData, O=United Planet GmbH,
L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes
Enter key password for <odata>
Das Programm fragt nun ein Passwort für den Keystore und Angaben
zu dem Server-Zertifikat ab. Bei der Frage nach dem Vor- und Nachnamen
geben Sie den gleichen Hostnamen des OData-Servers an, wie er in der
Service Endpoint-URL definiert wurde.
Authentifizierungsmethoden
Authentifizierung und Berechtigungen
Um einen sicheren Zugriff auf die Daten des Portals über
OData-Services zu gewährleisten, erfolgt die Benutzer-Authentifizierung
über Login-Methoden des Portalservers. Im Folgenden wird beschrieben,
welche Arten von Authentifizierungsmethoden unterstützt werden und wie
diese konfiguriert werden. Es kann dabei eine globale Methode für alle
Services oder pro Service eine spezifische Methode definiert werden.
Die Intrexx Datengruppenberechtigungen eines Benutzers werden bei
OData-Anfragen wie im Portal durch den Intrexx Portalserver geprüft.
Besitzt ein Benutzer nicht ausreichende Berechtigung zum Lesen oder
Ändern von Datensätzen, so antwortet der OData-Service entweder mit
einer leeren Ergebnismenge oder einem Berechtigungsfehler.
Intrexx Authentifizierung
Bei der Intrexx-Authentifizierung erfolgt die Anmeldung durch
Benutzername und Passwort, wobei das Passwort mit einer vom Server
bereitgestelltem Challenge Key verschlüsselt übertragen wird. Dies
ist die empfohlene Methode, um von einem Intrexx-Portal auf einen
OData-Service eines anderen Intrexx Portals zuzugreifen.
Plain Text Authentifizierung
Plain Text Authentifizierung entspricht der HTTP-Basic-Authentifizierungsmethode.
Damit kann eine Anmeldung am Service direkt im Browser erfolgen. Allerdings wird
dabei das Passwort unverschlüsselt übertragen, weshalb diese Methode nur bei
gleichzeitig aktivierter SSL Verschlüsselung eingesetzt werden sollte.
Kombinierte Intrexx und Plain Text Authentifizierung
Standardmäßig wird für OData Services eine Kombination aus Intrexx und Plain
Text Authentifizierung verwendet. Zunächst wird versucht, den Client via
Intrexx Authentifizierung anzumelden. Schlägt dies fehl, wird eine Plain
Text Authentifizierung durchgeführt. Sollte auch diese zu einem Fehler
führen, wird die Anfrage des Clients verweigert.
Windows Integrierte Authentifizierung
Bei der Windows Integrierten Authentifizierung werden die Benutzer
über das Active Directory/LDAP ermittelt und über das Kerberos Protokoll
angemeldet. Dadurch lässt sich ein Single Sign On in Windows Umgebungen
realisieren. Diese Methode steht nur mit Microsoft Windows Server und einer
Domänenumgebung zur Verfügung. Sobald für ein Portal Windows Integrierte
Authentifizierung aktiviert wird, müssen sich OData-Benutzer mit Ihrem
Windows-Benutzernamen (Domäne\User) und Kennwort an einem OData-Service anmelden.
Um auch OData-Anfragen direkt mit dem angemeldeten Windows Benutzer und damit ohne
zusätzliche Anmeldung zu authentifizieren, sind weitere Schritte notwendig.
Zum einen ist eine Drittanbieter Bibliothek erforderlich, die zunächst dem
lib Verzeichnis des Intrexx Portalserver
hinzugefügt werden muss. Kopieren Sie dazu die Datei
waffle-jna-1.6-with-dependencies.jar aus dem Unterverzeichnis
\adapter\odata\kerberos\
des
Installationsverzeichnis in das Unterverzeichnis
\lib. Anschließend führen Sie einen
Neustart des Portalserver-Dienstes durch. Außerdem muss die Login-Methode
für den OData-Server auf Integrierte Authentifzierung umgestellt werden.
Öffnen Sie dazu mit einem Texteditor die Datei
\internal\cfg\om.cfg im
Installationsverzeichnis.
Suchen Sie darin nach der Zeile, die mit
<binding scope="odataservice" auth-type="IntegratedAuthClient"/>
beginnt und ändern Sie den Wert im Attribut
auth-type zu
IntegratedAuth:
<binding scope="odataservice" auth-type="IntegratedAuth"/>
Wiederholen Sie den Schritt für alle weiteren OData-Service-Einträge,
für die Kerberos Authentifizierung aktiviert werden soll. Nach dem
Speichern der Datei ist ein Neustart des Portalservers erforderlich,
um die Änderungen zu aktivieren.
Trusted Authentifizierung
Bei der Trusted Authentifizierung kann ein Benutzer allein über die
Benutzer-
GUID angemeldet werden.
Dabei wird erwartet, dass im HTTP
Request die Benutzer-
GUID
als Benutzer Name gesendet wird. Dies ist
die unsicherste Methode und sollte ausschließlich in vertrauenswürdigen
Umgebungen eingesetzt werden.
Konfiguration der Authentifizierungsmethode
Die globale oder service-spezifische Authentifizierungsmethode wird
in der Datei
om.cfg definiert.
Als Default definiert Intrexx für alle OData-Dienste die
Methode
IntrexxAuth. Um eine
andere Methode zu verwenden oder für einen spezifischen
Service die Methode zu überschreiben, öffnen Sie die Datei
\internal\cfg\om.cfg
im
Portalverzeichnis mit einem Texteditor.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<authentication anonymous="05CE8CE3035924F7D3088895F1D87DADD65CFAE4">
<binding scope="web" auth-type="IntrexxAuth"/>
<binding scope="client" auth-type="IntrexxAuth"/>
…
<binding scope="odataservice" auth-type="ODataAuth"/>
…
</authentication>
/configuration>
Der Eintrag
scope=odataservice definiert
die globale Methode für alle OData-Services. Im Attribut
auth-type wird die
Authentifzierungsmethode hinterlegt. Zur Auswahl stehen:
- ODataAuth
- IntrexxAuth
- PlainTextAuth
- IntegratedAuth
- IntegratedAuthClient
- TrustedAuth
Um für einen Service die globale Methode zu überschreiben,
kopieren Sie den Eintrag und ändern Sie das Attribut
scope wie folgt:
<binding scope="odataservice:MyService" auth-type="PlainTextAuth"/>
Nach dem Doppelpunkt ist der Name des OData-Services aus der
Service-Konfiguration anzugeben. Nach dem Speichern der
Konfigurationsdatei und einem Neustart des Portalservers
wird die Service-spezifische Konfiguration verwendet.