Sie möchten Unterstützung im Projekt oder Know-How-Transfer für Ihre Mitarbeiter? Hier klicken!

Tipps und Tools für FIM- / MIM-Entwickler

Der Einstieg in die Programmierung mit FIM 2010 (bzw. neuerdings ja MIM 2016) ist nicht unbedingt einfach. Es gibt wenig Code-Beispiele, an Dokumentation gibt es generell nicht riesig viel und zumindest bisher waren auch die APIs teilweise etwas umständlich.

Die wichtigsten FIM-APIs sind:

API Technologie Einsatzzweck Anmerkungen
Provision API .NET Remoting Integration von FIM CM in andere Systeme

Eigene FIM CM-Frontends

Nicht alle Features von FIM CM sind in der API exponiert
Notification API .NET-Interface Customized Handling von FIM CM-Events
Certificate Management REST API REST Integration von MIM CM in andere Systeme

Eigene MIM CM-Frontends

Erst ab MIM 2016
FIM Service API SOAP CRUD-Operationen auf FIM-Objekten
Privileged Access Management REST API REST Rights Elevation im Rahmen des Privileged Access Management-Features ansteuern Erst ab MIM 2016

Um Einsteigern zu helfen, hier einige Tools und Techniken, die viel Zeit sparen können:

  1. Es gibt eine Referenzimplementierung namens FIM 2010 Resource Management Client für die Ansteuerung der FIM Service-SOAP-API. Der funktioniert schon mal relativ gut, hat aber einige Schwächen. Einen verbesserten Fork von Predica findet man hier.
  2. Alternativ gibt es den völlig neu entwickelten und sehr einfach zu verwendenden Lithnet FIM Service Client.
  3. Ebenfalls von Predica kommt der FimExplorer, mit dem man ohne das schwerfällige FIM Portal Informationen aus dem FIM Service auslesen kann. Allein das kann einen schon 50% produktiver machen. Highlights sind:
    1. Direkte Auswertung von XPath-Anfragen.
    2. Bei Referenzfeldern kann man sich direkt zu den referenzierten Objekten durchklicken.
    3. Lookup nach ObjectID
  4. Ein ähnliches, etwas älteres Tool ist das FIM Query Tool. Meiner Erfahrung nach ist dieses Tool vor allem bei größeren Abfragen stabiler, dafür kann man nicht mit XPath arbeiten, sondern muss eine SQL-ähnliche Syntax verwenden. Außerdem kommt mir dieses Tool im Detail etwas durchdachter vor.
  5. FIM stellt von Haus aus eine Reihe von PowerShell-CmdLets zur Datenimport- und Export bereit, welche vor allem für Migrationen gedacht sind und für alle anderen Automatisierungszwecke relativ umständlich zu handhaben sind. Das FIM PowerShell Module wrappt die mitgelieferten PowerShell-Calls so, dass sie auch von der Kommandozeile aus praktisch nutzbar werden. Wo z.B. mit Bordmitteln ein simples Update gerne mal 10 Codezeilen beansprucht, geht es mit dem FIM PowerShellModule in einer Zeile.
  6. Der FIM Service unterstützt Workflow Foundation, um komplexere Prozessanforderungen umzusetzen. Das wäre ja an sich nicht schlimm, durch die Art, wie die CRUD-Operationen aber abgebildet sind, werden simple Operationen wie “Ändere bei allen Usern den Firmennamen” über die Maßen kompliziert. Ich bin dazu übergegangen, in den meisten Fällen alle Workflows in PowerShell umzusetzen; dabei hilft die FIM PowerShell Workflow Activity von Edgile, welche technisch gesehen einfach eine Workflow-Activity implementiert, die ein PowerShell-Skript ausführt und diesem auch Zugriff auf das Workflow-Dictionary ermöglicht. Mit dem Last FIM Workflow You Will Ever Need gibt es ähnliches auch für C#-Code.

Leave a Reply

Your email address will not be published. Required fields are marked *