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: 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.