Wie man OIA Microsoft SQL beibringt

Einmal davon abgesehen, dass Oracle bereits seit einiger Zeit plant, das Produkt Oracle Identity Analytics abzuschaffen, erfreut es sich aber noch immer einer erstaunlichen Beliebtheit. Nicht zuletzt sicher deshalb, weil es flexibel ist und sich in alle nur denkbaren Richtungen konfigurieren, erweitern und sogar anpassen lässt.

Besonders wichtig für ein Identity Management Produkt ist dabei der Weg, wie Daten hineingelangen. I.d.R. stammen diese aus vollkommen unterschiedlichen Systemen und oft werden für den Import-Prozess entweder CSV-Dateien eingesetzt, oder direkt Datenbankverbindungen zu Endsystemen genutzt. Eine weitere Alternative sind sog. Provisioning-Server, die im Gesamtprozess des Identitätsmanagement zwei Aufgaben erfüllen:

  1. Sie liefern in direkter Kommunikation Daten an – und arbeiten dazu zumeist mit Adaptern zu verschiedenen Endsystemen und
  2. sie führen notwendige Korrekturen automatisiert aus.

Wie gelangen nun aber Daten im einfachsten Fall in den OIA Server?

Ganz einfach: Via XML oder CSV. Allerdings müssen sie dazu sinnvoll strukturiert werden. Zwar lässt sich die Struktur dem OIA beibringen, dennoch kommt man meist nicht um einen Transformationsprozess herum, der die Daten aufgrund einer eigenen Geschäftslogik bspw. mit Informationen aus einem Verzeichnisdienst, einer CMDB o.ä. anreichert, veredelt oder sonst wie vor-verarbeitet. Also einem ETL-Prozess.

Der OIA integriert speziell hierzu das Produkt CloverETL, zu dem es eine grafische Oberfläche gibt, mithilfe derer sich ETL-Prozesse designen lassen. Die Integration besteht OIA-seitig aus der cloverETL-engine, die als Bibliothek Bestandteil eines OIA-Deployments ist und entsprechenden Funktionen, die durch den Quartz-Scheduler automatisiert werden können und die Engine nutzen, um anhand entsprechend designter ETL-Prozesse Daten automatisiert zu importieren.

Der Pferdefuß

Die im OIA eingesetzte Version von CloverETL ist uralt! Die dazugehörige CloverGUI gibt es nicht mehr. Unsere Versuche, über die Entwickler an eine archivierte Version dieses Produktes heranzukommen, sind gescheitert, bzw. wären mit hohem finanziellen Aufwand verbunden gewesen.

Ein ehemaliger Oracle Mitarbeiter, dessen Aufgabe es u.a. war, etwaige Dokumentationslücken des OIA mittels Blog-Artikeln zu schließen, hat daher sogar eine Anleitung veröffentlicht, in der er erläutert, wie sich dank der Java-Beans beliebige Alternativen integrieren ließen.

Oder aber… man nutzt Microsoft SSIS.

Denn SSIS ist Bestandteil vom Microsoft SQL Server und somit sowieso an Bord. Von Haus aus bringt es zudem eine übersichtliche Entwicklungsumgebung für das Gestalten auch komplexer ETL-Prozesse mit. Wo ist also der Haken?

Hier ein Screenshot aus den Release Notes vom Oracle Identity Analytics Server 11g Release 1, Patch Set 1 (11.1.1.5.0), der letzten, öffentlich verfügbaren Version vom OIA:

image

 

Autsch.

Kein Support mehr für den Microsoft SQL Server. Und obwohl SSIS natürlich in der Lage ist, über entsprechende Adapter auch Daten aus einer Oracle Datenbank zu importieren, könnte man es als sinnvoll erachten, den OIA innerhalb einer Plattform zu nutzen. Sprich: Windows Server 2008 und SQL Server 2008. Und nun?

In OIA 11.1.1.3.0 gibt es in der Tat noch den Support von Microsoft SQL und die Installations-Dokumentation beschreibt auch, wie das Schema eingerichtet wird. Was also fehlt ist ein Migrations-Skript von 11.1.1.3.x auf 11.1.1.5.0. Für OracleDB wird dieses in 11.1.1.5.0 mitgeliefert.

Außerdem wird ein JDBC Adapter für Microsoft SQL benötigt. 11.1.1.3.0 liefert dazu das Open Source Produkt jTDS mit und erklärt in der Dokumentation, man solle es NICHT herunterladen und im Lib-Verzeichnis ablegen – es sei bereits integriert. Daher wird auch nicht auf die Version eingegangen. In 11.1.1.5.0 fehlt diese Bibliothek. Wir verraten an dieser Stelle: Es wird die Version 1.2 benötigt.

Last but not least liefert 11.1.1.5.0 nur noch die Beispiel JDBC-Konfiguration für den Oracle JDBC Treiber mit. Der Vorgänger hatte noch ein Beispiel für MS SQL dabei.

Für jTDS sind folgende Informationen wichtig:

jdbc.url=jdbc:jtds:sqlserver://$SERVER_NAME:$PORT/rbacx;tds=8.0;lastupdatecount=true

jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver

Für den Quartz-Scheduler muss ebenfalls eine Angabe auf den MS SQL Server hin angepasst werden:

jdbc.quartz.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate

jdbc.quartz.selectWithLockSQL=SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?

Wichtig: Es genügt nicht, die DelegateClass anzugeben, das Select-Statement muss auch angepasst werden, da es ansonsten zu Fehlern beim Ausführen der verantwortlichen Stored Procedures kommt.

Kurz zusammengefasst:

  1. Mittels rbacx-11.1.1.3.0_mssql_schema.sql wird das Schema der alten Version konfiguriert.
  2. Mittels der mitgelieferten Update-Skripte wird das Schema aktualisiert bis zur Version 11.1.1.3.7.
  3. Das Skript migrate-rbacx-11.1.1.3.xTo11.1.1.5.0-oracle.sql muss für Microsoft SQL übersetzt werden, um das Schema auf Version 11.1.1.5.0 zu aktualisieren.
  4. Beim Bereitstellen der 3rd Party Bibliotheken wird die Datei jtds-1.2.jar mit eingebunden.
  5. Entsprechend der Hinweise oben wird eine passende jdbc.properties-Datei für die Datenbankverbindung konfiguriert.
image

 

Ein paar Tipps zum Schluss: Die Verbindung wird per default über Benutzername und Passwort aufgebaut. Es muss entsprechend der Dokumentation von Oracle daran gedacht werden, dass dass Passwort verschlüsselt wird. Außerdem muss der Microsoft SQL Server SQL Authentication erlauben.

Da die Verbindung über TCP Port 1433 (default) hergestellt wird, muss in der Netzwerkkonfiguration des SQL Servers TCP/IP aktiviert werden.

So.

Nun hast Du diesen Artikel bis zum Schluss gelesen und direkt probiert, den OIA in der Version 11.1.1.3.0 herunterzuladen, hast aber keinen Zugriff darauf? Oder aber Dir liegen alle Dateien vor, Du kommst aber nicht weiter?

In dem Fall lass es mich wissen, falls Du Probleme hast. Einfach unten einen Kommentar hinterlassen und wir sprechen mal drüber.

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Über die Autoren

Christian Jacob ist Leiter des Geschäftsbereiches Softwarearchitektur und -entwicklung und zieht als Trainer im Kontext der .NET Entwicklung sowie ALM-Themen Projekte auf links.

Marcus Jacob fokussiert sich auf die Entwicklung von Office-Addins sowie Windows Phone Apps und gilt bei uns als der Bezwinger von Windows Installer Xml.

Martin Kratsch engagiert sich für das Thema Projektmanagement mit dem Team Foundation Server und bringt mit seinen Java- und iOS-Kenntnissen Farbe in unser ansonsten von .NET geprägtes Team.

Aktuelle Kommentare

Comment RSS